Friday, March 20, 2009

Verfügbarkeit von Artikel/Material

Es kann der aktuelle Bestand geprüft werden. Dafür sind der FuBa
BESTAND_AKTUELL bzw. der BAPI BAPI_MATERIAL_AVAILABILITY geeignet.

Die derzeit lieferbare Menge (ATP) kann davon aber abweichen, da hier der
Bestand um aktuelle Aufträge/Lieferungen bereinigt ist. Ein FuBa, der die
Übersicht aus der Transaktion MD04 liefert, ist
MD_STOCK_REQUIREMENTS_LIST_API.
Dieser liefert alle Informationen im Detail. Ist nur die reine ATP-Menge
von Interesse kann auf den unterliegenden FuBa AVAILABILITY_CHECK
zurückgegriffen werden. Die Parameter sind allerdings nicht einfach zu
setzen. Am besten setzt man hier einen Breakpoint und ruft dann die
Transaktion MD04 auf.

Ein minimaler Aufruf ist so möglich:
DATA: lt_atpcs TYPE TABLE OF atpcs,
ls_atp TYPE atpcs.

ls_atp-matnr = '000000000000000208'.
ls_atp-werks = '1000'.
ls_atp-prreg = 'BO'.
ls_atp-bdter = '20090320'.
ls_atp-trtyp = 'H'.
ls_atp-idxatp = '1'.
ls_atp-resmd = 'X'.
ls_atp-chkflg = 'X'.

APPEND ls_atp TO lt_atpcs.

CALL FUNCTION 'AVAILABILITY_CHECK'
TABLES
p_atpcsx = lt_atpcs.

Thursday, March 19, 2009

Beschreibung von Typen und Strukturen

Der describe Befehl liefert leider viele wichtige Informationen zu
Feldern/Typen nicht. Dafür sind die Klassen CL_ABAP_TYPEDESCR bzw.
CL_ABAP_STRUCTDESCR sehr hilfreich. Mit Letzterer kann man u.a. eine
Struktur beschreiben lassen und erhält eine Liste mit allen Feldnamen und
ihren Längen.

data: o_structdescr type ref to cl_abap_structdescr,
t_component type abap_compdescr_tab.

o_structdescr ?= cl_abap_typedescr=>describe_by_data( pe_data ).
t_component = o_structdescr->components.


Es kann auch versucht werden, den FuBa REUSE_ALV_FIELDCATALOG_MERGE zu
verwenden.

Datenkonvertierung internes/externes Format

Für die Konvertierung von Daten vom internen in das externe Format
(Stichwort führende Nullen) bzw. andersherum können die Funktionsbausteine
CONVERSION_EXIT_ALPHA_INPUT bzw. CONVERSION_EXIT_ALPHA_OUTPUT verwendet
werden.

Für Datumswerte sind die FuBas CONVERSION_EXIT_PDATE_OUTPUT bzw.
CONVERSION_EXIT_PDATE_INPUT zu verwenden.

Für viele Datenformate/Domänen sind Konvertierungsroutinen hinterlegt
(siehe SE11). Über Dopppelklick auf diese können die
Konvertierungsroutinen ermittelt werden, sprich welche FuBa's verwendet
werden.

Wednesday, March 11, 2009

Programmierung für SD-Preisfindung

Die Preisfindung wird beim Anlegen/Ändern eines Auftrags durchlaufen. Der
Endpreis wird beeinflusst durch Umsatzsteuer, Rabatte, u.a. Über
Customizing und Programmierung können hierbei kundeneigene Spezialitäten
umgesetzt werden. Mit der Transaktion VOFM können diese Einstellungen
vorgenommen werden (Bedingungen, Formeln, etc.)

Belegen von IDoc-Feldern

Wenn ein IDoc an das ERP geschickt werden soll, müssen die Segmente und
Felder korrekt gefüllt sein. Die Struktur eines IDocs kann über die
Transaktion WE60 besorgt werden. Hier muss der Basic Type des IDocs (z.B.
ORDERS05) angegeben werden.
Die Doku kann auch als XML-Schema erstellt werden.

Der Funktionsbaustein IDOC_CREATE_OILORD wandelt einen Kundenauftrag in
die IDoc-Struktur um. Mit Hilfe von Debugging kann die Belegung der Felder
gut nachvollzogen werden.

Folgende Transaktionen sind weiterhin hilfreich:
WE09 - IDoc Suche
BD87 - IDoc Queue
WE19 - Testwerkzeug für IDoc Verarbeitung, es können die Werte eines
bestehenden IDocs für Testzwecke verändert werden
WE64 - Vorgangscodes von Partnervereinbarungen
WE20 - Partnervereinbarungen
WE21 - Ports in der IDoc Verarbeitung