SAP Formulare Spezialthemen

Ändern von Daten im Userexit beim Sichern eines Fertigungsauftrags in SAP

In vielen Fällen ist es notwendig, Daten im Fertigungsauftrag per ABAP Coding zu ändern. Leider gibt es im SAP Fertigungsauftrag nur wenige Userexits, wo man Daten manipulieren kann. Häufig muss man auf den zentralen Userexit bzw. Badi beim Sichern eines Fertigungsauftrags zurückgreifen. In diesem Userexit bzw. Badi ist es nicht ohne weiters möglich, Daten im Fertigungsauftrag zu ändern. Vielmehr ist er dafür gedacht, Daten in eigenen Tabellen fortzuschreiben oder Folgeaktionen per ABAP Coding anzustoßen.

Im folgenden möchte ich eine Methode vorstellen, wie auf einfache Art und Weise Daten im Fertigungsauftrag nachträglich im Userexit beim Sichern eines Fertigungsauftrag geändert werden können.

Szenario

In den Vorgängen zum Fertigungsauftrag soll das Feld „Abladestelle“ mit dem Arbeitsplatz des vorhergehenden Arbeitsvorgangs gefüllt werden. Da kein passender Userexit für diese Anforderung existiert, wird das Feld „Abladestelle“ im Userexit beim Sichern des Fertigungsauftrags gefüllt. Der Userexit soll nur beim Anlegen des Fertigungsauftrags durchlaufen werden.

SAP Userexit Fertigungsauftrag

Leider können bestimmte Funktionsbausteine bzw. BAPIs zum Ändern von Daten eines Fertigungsauftrags nicht verwendet werden. Diese sind nur für Service- und Instandhaltungsaufträge gedacht. Es betrifft u.a. folgende Funktionsbausteine:

  • BAPI_ALM_ORDER_MAINTAIN
  • CO_SE_PRODORD_CHANGE
  • IBAPI_ORDER_OPERATION_CHANGE

Es wird ein Funktionsbaustein/Verbuchungsbaustein angelegt, in dem das Coding zum Ändern des Fertigungsauftrags eingefügt wird.Wichtig ist, dass in den Eigenschaften des Funktionsbsusteins das Attribut „Start verzögert“ markiert wird. In diesem Fall wird der Funktionsbaustein im V2-Verbucher durchlaufen.

FUNCTION z_pp_change_avfc_ablad.
*“———————————————————————-
*“*“Verbuchungsfunktionsbaustein:
*“
*“*“Lokale Schnittstelle:
*“  TABLES
*“      HEADER_TABLE STRUCTURE  CAUFVDB OPTIONAL
*“      OPERATION_TABLE STRUCTURE  AFVGB OPTIONAL
*“———————————————————————-

* Deklarationen —————————————————— *
  DATAoperation_table2 TYPE TABLE OF afvgb WITH HEADER LINE,
        ls_header        TYPE caufvdb,
        ls_operation     TYPE afvgb,
        ls_operation2    TYPE afvgb,
        lv_tabix         TYPE i.

* Determine the next operation ————————————— *
  operation_table2[] =  operation_table[].

* Update the oparation table AFVC ———————————— *
  LOOP AT header_table INTO ls_header.

    LOOP AT operation_table INTO ls_operation
                            WHERE aufpl ls_headeraufpl.
      lv_tabix sytabix.

      „Unloading point = Work center of next operation
      READ TABLE operation_table2 INTO ls_operation2
                                  INDEX lv_tabix + 1.
      IF sysubrc 0.
        SELECT SINGLE arbpl INTO ls_operationablad
               FROM crhd
               WHERE objty ‚A‘
               AND   objid ls_operation2arbid. 
      ELSE.
        ls_operationablad ‚Letzter Vorgang‘.
      ENDIF.
      MODIFY operation_table FROM ls_operation.

      „Update
      UPDATE afvc SET ablad ls_operationablad
            WHERE aufpl ls_operationaufpl
            AND   aplzl  ls_operationaplzl.
    ENDLOOP.

  ENDLOOP.

ENDFUNCTION. 

Einfügen des Funktionsbausteins im Userexit

Der Funktionsbaustein wird im Userexit EXIT_SAPLCOBT_001 beim Sichern eines Fertigungsauftrags eingefügt. Der Funktionsbaustein wird nur beim initialen Anlegen eines Fertigungsauftrags durchlaufen.

SAP Userexit EXIT_SAPLCOBT_001

* Füllen der Abladestelle im Vorgang mit dem Arbeitsplatz des nächsten Vorgangs
* Nur beim Anlegen durchlaufen
READ TABLE header_table_old INDEX 1.
IF sysubrc NE 0.
  CALL FUNCTION ‚Z_PP_CHANGE_AVFC_ABLAD‘
    IN UPDATE TASK
    TABLES
      header_table    header_table
      operation_table operation_table.
ENDIF. 

Hinweis

Die vorgestellte Methode macht einen direkten Update auf Tabelle AFVC. Es werden dabei keine Änderungsbelege fortgeschrieben.

Weitere Informationen

Spezialthemen zu SAP Formularen
SAP Formulare zum Festpreis
SAP Formularentwicklung