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.