Komponenten einem Fertigungsauftrag hinzufügen

Für den Fertigungsaufträge sind die BAPIs leider sehr rar gesät und man muss auf andere Bausteine ausweichen. Um einem Auftrag Komponenten hinzuzufügen, habe ich nur den Baustein CO_XT_COMPONENT_ADD gefunden. Die CO_XT-Funktionsbausteine sind zwar prinzipiell „extern“ und in der Funktionsgruppe „APIs Fertigungsauftrag“, jedoch sind die Bausteine allesamt sehr mit Vorsicht zu genießen.

Das folgende Coding fügt einem Fertigungsauftrag eine Komponente (Materialnummer) hinzu.

Code

Fehlende Positionsnummer

Der Baustein hat leider einen kleinen Schönheitsfehler: Die Positionsnummer (RSB-POSNR) wird leider nicht gesetzt und kann auch nicht ohne weiteres geändert werden. Um die Positionsnummer trotzdem ändern zu können, habe ich zwei Lösungen gefunden:

  1. Die Änderung der internen Tabelle RESB_BT  über einen Dirty-Assign
  2. Änderung über die Standardbausteine
    • CO_BT_RESB_READ_WITH_KEY
    • CO_BT_RESB_GET_LAST_POSNR
    • CO_BT_RESB_UPDATE

Die Änderung muss nach dem CO_XT_COMPONENT_ADD und vor dem Commit erfolgen.

Positionsnummer ändern über Dirty-Assign

Änderung der Positionsnummer über Funktionsbausteine

Dialog oder nicht Dialog?

Ein weiteres Problem könnte der Baustein CO_XT_ORDER_PREPARE_COMMIT machen, denn bei der Änderung des Fertigungsauftrags können Popups erscheinen, die vom Anwender bestätigt werden müssen.

Wenn man Dialoge verhindern möchte, dann muss der Update-Baustein CO_ZV_ORDER_POST direkt aufgerufen werden. Dieser hat einen Parameter NO_DIALOG, den man entsprechend mit X besetzen kann.