Ansicht
Dokumentation

/ISDFPS/CSAI_BOM_CREATE - API Stücklisten: Materialstückliste anlegen

/ISDFPS/CSAI_BOM_CREATE - API Stücklisten: Materialstückliste anlegen

rdisp/max_wprun_time - Maximum work process run time   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Mit diesem Baustein können einfache Materialstücklisten angelegt werden.
Das Eweitern zur Mehrfach- bzw. Variantenstückliste ist nicht möglich.

(Entspr. Transaktion CS01)

Einschränkungen:

  • Langtexte sind noch nicht unterstützt
  • Unterpositionen sind noch nicht unterstützt
  • Chargenklassifizierung der Stücklistenpositionen ist derzeit nicht möglich

Die Stückliste wird nur gesichert, wenn keine Fehler aufgetreten sind,
da ein Ändern der Stückliste derzeit nicht möglich ist, d.h. sowohl die
Kopfdaten wie alle Positionen müssen in Ordnung sein.

Zu beachten:

  • Felder die gemäß Feldauswahl nicht gefüllt werden dürfen, werden ini- tialisiert. Im Protokoll gibt es derzeit keine Information zu zurück- gesetzten Feldern.
  • Wie im Dialog werden die Steuerungsdaten Stückliste-Vorschlagswerte und die benutzerspezifischen Vorschlagswerte berücksichtigt.
  • Stücklistenverwendungsabhängige Vorschlagswerte (z.B. Kennzeichen fertigungsrelevant, kalkulationsrelevant usw.) werden derzeit nicht berücksichtigt.
  • Werden Positionen mit Beziehungswissen angelegt, so müssen mindestens die Basisdaten, die Beschreibung und die Source gefüllt werden.
    Über die Felder OBJECT_ID und IDENTIFIER wird das Objekt identifiziert, zu dem das Beziehungswissen gehört.
    (OBJECT_ID = '2' => Stücklistenposition)
    Die Beziehung selbst wird über einen internen oder externen Namen identifiziert. Da eine neue Beziehung erst beim Sichern einen internen Namen bekommt, muß beim Anlegen irgendein externer Namen mitgegeben werden.
  • Für Klassenpositionen wird die Rekursivität erkannt, allerdings kann
    nicht erkannt werden, welche Objekte der Klasse zu Rekursivität
    geführt haben. Außerdem ist es derzeit nicht möglich, für diese Objekte
    Rekursivität zu erlauben.

Beispiel

*---- Feldleiste Stücklistenkopfdaten
data: begin of tstko.
include structure stko_api01.
data: end of tstko.
*---- Tabelle Stücklistenpositionen
data: begin of tstpo occurs 0.
include structure stpo_api01.
data: end of tstpo.

*---- Tabellen für Beziehungswissen:
* Basisdaten
data: begin of tdep_data occurs 0.
include structure csdep_dat.
data: end of tdep_data.
* Beschreibung
data: begin of tdep_descr occurs 0.
include structure csdep_desc.
data: end of tdep_descr.
* Source
data: begin of tdep_source occurs 0.
include structure csdep_sorc.
data: end of tdep_source.
* Reihenfolge
data: begin of tdep_order occurs 0.
include structure csdep_ord.
data: end of tdep_order.
* Dokumentation
data: begin of tdep_doc occurs 0.
include structure csdep_doc.
data: end of tdep_doc.

data: flg_warning like capiflag-flwarning.


*- Datenbankprotokoll eröffnen
call function 'CALO_INIT_API'
exceptions
log_object_not_found = 1
log_sub_object_not_found = 2
other_error = 3
others = 4.


*- Kopfdaten füllen
tstko-base_quan = '1.000'.
tstko-bom_text = 'Stücklistentext'.

*- Positionsdaten füllen
* 1. Position (Lagerteil)
clear tstpo.
tstpo-item_no = '0010'.
tstpo-item_categ = 'L'. "Mußeingabe
tstpo-component = 'MAT200'. "Mußeingabe
tstpo-comp_qty = '1.000'. "Mußeingabe
tstpo-comp_unit = 'ST'.
append tstpo.
* 2. Position (Rohmaßposition)
2 Stück a 4 m X 3 m => 2 St a 12 m2
clear tstpo.
tstpo-item_no = '0020'.
tstpo-item_categ = 'R'. "Mußeingabe
tstpo-component = 'MAT300'. "Mußeingabe
tstpo-comp_qty = '2.000'. "Mußeingabe
tstpo-vsi_size1 = '4.000'. "Mußeingabe
tstpo-vsi_size2 = '3.000'.
tstpo-vsi_szunit = 'M'.
tstpo-comp_unit = 'M2'.
append tstpo.
* 3. Position (Textposition)
clear tstpo.
tstpo-item_no = '0030'.
tstpo-item_categ = 'T'. "Mußeingabe
tstpo-item_text1 = 'Positionstext'. "Mußeingabe
append tstpo.
* 4. Position (Dokumentposition)
clear tstpo.
tstpo-item_no = '0040'.
tstpo-item_categ = 'D'. "Mußeingabe
tstpo-document = 'DOK1'. "Mußeingabe
tstpo-doc_type = 'DRW'. "Mußeingabe
tstpo-comp_qty = '1.000'.
tstpo-comp_unit = 'ST'.
append tstpo.
* 5. Position (Klassenposition)
clear tstpo.
tstpo-item_no = '0050'.
tstpo-item_categ = 'K'. "Mußeingabe
tstpo-res_itm_ct = 'L'.
tstpo-class = 'CLS1'. "Mußeingabe
tstpo-class_type = '200'. "Mußeingabe
tstpo-comp_qty = '1.000'. "Mußeingabe
tstpo-comp_unit = 'ST'.
append tstpo.
6. Position (Lagerteil) mit Beziehungswissen
clear tstpo.
tstpo-item_no = '0060'.
tstpo-item_categ = 'L'. "Mußeingabe
tstpo-component = 'MAT200'. "Mußeingabe
tstpo-comp_qty = '1.000'. "Mußeingabe
tstpo-comp_unit = 'ST'.
tstpo-identifier = 'P1'. "Mußeingabe beim Anlegen von BezWissen
append tstpo.
* Beziehungswissen zu Position 0060
clear tdep_data.
tdep_data-object_id = '2'.
tdep_data-identifier = 'P1'.
tdep_data-dep_extern = 'B1'.
tdep_data-dep_type = '5'.
tdep_data-status = '1'.
append tdep_data.
clear tdep_source.
tdep_source-object_id = '2'.
tdep_source-identifier = 'P1'.
tdep_source-dep_extern = 'B1'.
tdep_source-line_no = '1'.
tdep_source-line = 'Farbe = ''rot'''.
append tdep_source.
clear tdep_descr.
tdep_descr-object_id = '2'.
tdep_descr-identifier = 'P1'.
tdep_descr-dep_extern = 'B1'.
tdep_descr-language = 'D'.
tdep_descr-descript = 'Beziehung B1 zu Position P1'.
append tdep_descr.
* 7. Position (Lagerteil) mit Beziehungswissen
clear tstpo.
tstpo-item_no = '0070'.
tstpo-item_categ = 'L'. "Mußeingabe
tstpo-component = 'MAT400'. "Mußeingabe
tstpo-comp_qty = '1.000'. "Mußeingabe
tstpo-comp_unit = 'ST'.
tstpo-identifier = 'P2'. "Mußeingabe beim Anlegen von BezWissen
append tstpo.
* Beziehungswissen zu Position 0070
clear tdep_data.
tdep_data-object_id = '2'.
tdep_data-identifier = 'P2'.
tdep_data-dep_extern = 'B2'.
tdep_data-dep_type = '5'.
tdep_data-status = '1'.
append tdep_data.
clear tdep_source.
tdep_source-object_id = '2'.
tdep_source-identifier = 'P2'.
tdep_source-dep_extern = 'B2'.
tdep_source-line_no = '1'.
tdep_source-line = 'Farbe = ''rot'''.
append tdep_source.
clear tdep_descr.
tdep_descr-object_id = '2'.
tdep_descr-identifier = 'P2'.
tdep_descr-dep_extern = 'B2'.
tdep_descr-language = 'D'.
tdep_descr-descript = 'Beziehung B1 zu Position P1'.
append tdep_descr.


*- Materialstückliste anlegen
call function 'CSAP_MAT_BOM_CREATE'
exporting
material = 'MAT100'
plant = '0001'
bom_usage = '1'
valid_from = '01.01.1995'
i_stko = tstko
importing
fl_warning = flg_warning
tables
t_stpo = tstpo
t_dep_data = tdep_data
t_dep_descr = tdep_descr
t_dep_source = tdep_source
t_dep_order = tdep_order
t_dep_doc = tdep_doc
exceptions
error = 1.

if sy-subrc eq 1.
*---- Fehler aufgetreten (Stückliste kann nicht angelegt werden)
* Bitte Protokoll auswerten
endif.
if flg_warning eq 'X'.
*---- Bitte Protokoll auswerten. Dieses enthält Informationen, War-
* nungen und Erfolgsmeldungen
Endif.

Hinweise

Weiterführende Informationen





Parameter

ASTLNR
ECSIN
ESTKOB
ESTZUB
FL_ALE
FL_COMMIT_AND_WAIT
FL_DEFAULT_VALUES
FL_NO_CHANGE_DOC
FL_NO_COMMIT_WORK
FL_WARNING
T_STPOB

Ausnahmen

ERROR

Funktionsgruppe

FPS/SAPLCSAI

TXBHW - Original Tax Base Amount in Local Currency   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10042 Date: 20240419 Time: 003421     sap01-206 ( 40 ms )