Serialnummern anlegen mit SERNR_ADD_TO_PP

Mit dem Funktionsbaustein SERNR_ADD_TO_PP lassen sich Serialnummern zu einer Position eines Fertigungsauftrags erstellen. Die erstellten Serialnummern können im Fertigungsauftrag über "Kopf -> Serialnummern" angezeigt werden.

Beispiel

        CALL FUNCTION 'SERNR_ADD_TO_PP'
          EXPORTING
            profile               = gs_afpo-sernp " Serialnummernprofil (kann abweichend Materialstamm sein)
            material              = gs_afpo-matnr
            quantity              = lv_anz            " Gesamtanzahl Serialnummern der Position
            ppaufnr               = gs_afpo-aufnr
            ppposnr               = gs_afpo-posnr
            ppautyp               = gs_caufv-autyp
            ppaufart              = gs_caufv-auart
            pmrsord               = gs_caufv-rsord
            ppwerk                = gs_caufv-werks
            i_bapi                = 'X'
          IMPORTING
            anzsn                 = lv_anz_out        " Gesamtanzahl Serialnummern der Position
*           zeilen_id             = lv_zeilen_id
*           serial_commit         = lv_serial_commit
          TABLES
            sernos                = lt_new_serno      " anzulegende Serialnummern
*           r_sernr               = lt_r_serno
          EXCEPTIONS
            konfigurations_error  = 1
            serialnumber_errors   = 2
            serialnumber_warnings = 3
            no_profile_operation  = 4
            OTHERS                = 5.

        IF sy-subrc = 0 AND lv_anz_out > 0.
          CALL FUNCTION 'SERIAL_LISTE_POST_PP' .      " Sichern der Serialnummern 

          IF sy-subrc = 0.
            COMMIT WORK AND WAIT.
          ENDIF. 
        ENDIF.

Parameter

Im folgenden werden die notwendigen Parameter beschrieben. Optionale Parameter werden nicht betrachtet.

Name Typ Richtung Beschreibung
PROFILE T377P-SERAIL Importing Serialnummernprofil für die Anlage (siehe Abschnitt Besonderheiten)
MATERIAL MATNR Importing Materialnummer zu denen Serialnummern angelegt werden sollen
QUANTITY RISA0-ANZAHL Importing Gesamtanzahl der Serialnummern
PPAUFNR AUFK-AUFNR Importing Auftragsnummer
PPPOSNR AFPO-POSNR Importing Auftragsposition
PPAUTYP AUFK-AUTYP Importing Auftragstyp
PPAUFART AFKO-AUART Importing Auftragsart
PMRSORT AUFK-RSORD Importing Aufarbeitungsauftrag
PPWERK SER05-PPWERK Importing Produkutionswerk
I_BAPI CHAR1 Importing Aufruf erfolgt aus BAPI
ANZSN LIPS-ANZSN Exporting Gesamtanzahl der Serialnummern
SERIAL_COMMIT Boolean Exporting gibt an, ob etwas geändert wurde (Commit erforderlich)
SERNOS E1RMSNO TABLES Tabelle mit anzulegenden Serialnummern
R_SERNR ERSERNR TABLES Fehlermeldungen beim Erstellen pro Serialnummer

Nacharbeiten

Nach erfolgreichem Aufruf (SY-SUBRC = 0) muss der Funktionsbaustein SERIAL_LISTE_POST_PP aufgerufen werden. Ist dieser ebenfalls erfolgreich, muss ein COMMIT WORK abgesetzt werden.

Ergebnis

Der TABLES Parameter R_SERNR enthält pro Serialnummer eine Fehlermeldung, falls eine aufgetreten ist. Ist die Verarbeitung geglückt, ist der SUBRC = 0. Außerdem enthält der Parameter ANZSN die Anzahl der Serialnummern zu der Auftragsposition.

 

Besonerheiten

Tritt bei der Verarbeitung ein Fehler auf, erzeugt der Funktionsbaustein ein Popup Fenster mit detaillierten Fehlerbeschreibungen. Diese lassen sich per Parameter I_BAPI unterdrücken. Der Parameter scheint darüber hinaus keinen Einfluss auf die Funktion zu haben.

Falls bereits Serialnummern existieren und weitere hinzugefügt werden sollen, darf die Tabelle des TABLES Parameter SERNOS nur die neuen Serialnummern enthalten. Der Parameter QUANTITY muss die Gesamtzahl der Serialnummern der Position (also inklusive der bereits existierenden) enthalten. Andernfalls werden Fehlermeldungen als Popup ausgegeben. In diesem Fall werden die Serialnummern aber korrekt erstellt und der SUBRC auf 0 gesetzt.

Ist eine der übergebenen Serialnummern entweder bei dieser Position oder bei einer anderen Position bereits zugewiesen, scheitert der Aufruf.

Der Parameter PROFILE erwartet das zu verwendene Serialnummernprofil. Dieses kann abweichend von dem im Materialstammsatz (Werkssicht) hinterlegtem Serialnummernprofil sein. Es findet keine Plausibilitätsprüfung zwischen übergebenem Serialnummernprofil und im Materialstamm hinterlegten Profil statt. Der Funktionsbaustein prüft allerdings, ob das gewählte Profil zum Erstellen von Serialnummern zulässig ist.