Ansicht
Dokumentation

/ISDFPS/CSAI_BOM_MAINTAIN - API Stücklisten: Stückliste pflegen (E,T,M,K,P)

/ISDFPS/CSAI_BOM_MAINTAIN - API Stücklisten: Stückliste pflegen (E,T,M,K,P)

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Mit dem Funktionsbaustein CSAP_MAT_BOM_MAINTAIN können einfache Materialstücklisten bearbeitet werden.
In erster Linie ist dieser Funktionsbaustein für Stücklistenänderungen vorgesehen. Bei Bedarf können aber auch Stücklisten angelegt werden.

Möchten Sie auschließlich Stücklisten anlegen, so verwenden Sie den Funktionsbaustein CSAP_MAT_BOM_CREATE.

Für Stücklistenänderungen stehen außerdem die folgenden Funktionsbau- steine zur Verfügung:
CSAP_MAT_BOM_OPEN
CSAP_BOM_ITEM_MAINTAIN
CSAP_MAT_BOM_CLOSE

Eine ausführliche Beschreibung und Beispiele finden Sie in der Dokumentation der entsprechenden Funktionsbausteine.

Einschränkungen:

  • Derzeit kann immer nur eine Alternative bzw. Variante bearbeitet werden, d.h. wird dem Baustein CSAP_MAT_BOM_MAINTAIN keine Alternative mitgegeben, so wird davon ausgegangen, daß die Alternative '01' bearbeitet werden soll.
  • Derzeit sind noch keine Stücklistenkopfänderungen vorgesehen.
  • Langtexte sind noch nicht unterstützt
  • Unterpositionen sind noch nicht unterstützt
  • Chargenklassifizierung der Stücklistenpositionen ist derzeit nicht
    möglich

Zu beachten:

  • Die zu ändernde Position kann auf zwei Arten identifiziert werden:
  • über die Felder Positionstyp, Positionsnummer, Sortierbegriff und Objekt (abhängig vom Positionstyp: Material, Dokumentdaten oder Klassendaten).
    Die Feldnamen dieser identifizierenden Felder beginnen mit ID_ und sind in der Struktur CSIDENT_02 enthalten, die Bestandteil der Struktur STPO_API03 ist.
    Sie können eine beliebige Auswahl dieser Felder zur Identizierung benutzen, müssen aber sicherstellen, daß die Position über diese Felder eindeutig identifizierbar ist. Ansonsten erhalten Sie die Fehlermeldung 'Position ist nicht eindeutig identifizierbar'.

  • durch Angabe von Stücklistenknoten und Stücklistenpositionszähler
    Diese Felder sind eigentlich nur bekannt, wenn Sie die Stückliste vorher gelesen haben. Deshalb sollten Sie in diesem Fall die Stückliste über die Funktionbausteine CSAP_MAT_BOM_OPEN, CSAP_BOM_ITEM_MAINTAIN und CSAP_MAT_BOM_CLOSE ändern.

  • Erscheint im Protokoll die Fehlermeldung 'Position ist nicht änderbar', so kann dies folgende Gründe haben:
    - die Position ist zum Gültig-ab nicht gültig, sie läuft erst zu einem
    späteren Zeitpunkt ein.
    - die Position wurde zum gleichen Gültig-ab bereits mit einer anderen
    Änderungsnummer bearbeitet.
  • Der Positionstyp einer bereits existierenden Position kann nicht geändert werden.
  • Soll eine Position gelöscht werden, so muß diese - wie beim Ändern beschrieben - auf eine der beiden Arten identifiziert werden und zusätzlich das Löschkennzeichen gesetzt werden.
  • FL_BOM_CREATE (Default ' ')
    Wenn Sie für dieses Kennzeichen den Wert 'X' setzen, so wird eine neue Stückliste angelegt, falls die zu ändernde Stückliste nicht gefunden werden kann und ansonsten kein Fehler auftritt.
    Die Positionen können nur hinzugefügt werden, wenn die Daten hierfür ausreichend zur Verfügung stehen.
    Positionen mit Löschkennzeichen werden beim Anlegen ignoriert.
  • FL_NEW_ITEM (Default ' ')
    Wenn Sie für dieses Kennzeichen den Wert 'X' setzen, so wird eine neue Position hinzugefügt, falls die Position unter der angegebenen Identi- fizierung nicht gefunden werden kann.
    Positionen mit Löschkennzeichen werden ignoriert.
  • 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.

Beispiel

*---- Feldleiste Stücklistenkopfdaten
data: begin of tstk2.
include structure stko_api02.
data: end of tstk2.
*---- Tabelle Stücklistenpositionen
data: begin of tstp3 occurs 0.
include structure stpo_api03.
data: end of tstp3.

*---- Tabellen für Beziehungswissen:
* Basisdaten
data: begin of tdep2_data occurs 0.
include structure dep_data.
data: end of tdep2_data.
* Beschreibung
data: begin of tdep2_descr occurs 0.
include structure dep_descr.
data: end of tdep2_descr.
* Source
data: begin of tdep2_source occurs 0.
include structure dep_source.
data: end of tdep2_source.
* Reihenfolge
data: begin of tdep2_order occurs 0.
include structure dep_order.
data: end of tdep2_order.
* Dokumentation
data: begin of tdep2_doc occurs 0.
include structure dep_doc.
data: end of tdep2_doc.

data: flg_warning like capiflag-warning.


*- 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.

*- Positionsdaten füllen
* Annahme: Positionen können über die Positionsnummer eindeutig iden-
* tifiziert werden
* 1. Position 0010: Menge ändern
clear tstp3.
tstp3-id_item_no = '0010'. "Identifizierung Pos.
tstp3-comp_qty = '5.000'.
append tstp3.
* 2. Position 0020 löschen
clear tstp3.
tstp3-id_item_no = '0020'. "Identifizierung Pos.
tstp3-fldelete = 'X'.
append tstp3.
*- 3. Neue Position 0030 (Lagerteil)
* Für neue Positionen sind die ID_ Felder und Stücklistenknoten und
* Stücklistenpositionszähler initial, es sei denn sie arbeiten mit
* FLG_NEW_ITEM
clear tstp3.
tstp3-item_no = '0030'.
tstp3-component = 'MAT200'.
tstp3-item_categ = 'L'.
tstp3-comp_qty = '1'.
tstp3-rel_prod = 'X'.
tstp3-sortstring = 'A1'.
append tstp3.
* 4. Position 0040: Komponente ändern
clear tstp3.
tstp3-id_item_no = '0040'. "Identifizierung Pos.
tstp3-component = 'MAT500'.
append tstp3.

*- Stückliste ändern
call function 'CSAP_MAT_BOM_MAINTAIN'
exporting
material = 'MAT100'
plant = '0001'
bom_usage = '1'
valid_from = '14.10.1996'
fl_bom_create = ' '
fl_new_item = ' '
i_stko = tstko
importing
fl_warning = flg_warning
o_stko = tstk2
tables
t_stpo = tstp3
exceptions
others = 1.

if sy-subrc eq 1.
*---- Fehler aufgetreten
* 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

ASTKOB
ASTZUB
ECSIN
ESTKOB
ESTZUB
ET_STPOB
FL_ALE
FL_BOM_CREATE
FL_COMMIT_AND_WAIT
FL_COMPLETE
FL_DEFAULT_VALUES
FL_IMPLICIT_SUBITEM_DELETION
FL_NEW_ITEM
FL_NEW_ROMEN
FL_NO_CHANGE_DOC
FL_NO_COMMIT_WORK
FL_RECURSIVE
FL_WARNING
T_LTX_BOM
T_LTX_ITM
T_STPOB
T_STPUB

Ausnahmen

ERROR

Funktionsgruppe

FPS/SAPLCSAI

General Data in Customer Master   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9184 Date: 20240418 Time: 145002     sap01-206 ( 84 ms )