Ansicht
Dokumentation

NUMBER_GET_NEXT - Nummernkreis Nächste freie Nummer vergeben

NUMBER_GET_NEXT - Nummernkreis Nächste freie Nummer vergeben

rdisp/max_wprun_time - Maximum work process run time   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book
Vorbemerkung

Dieser Funktionsbaustein ist freigegeben.

Die Dokumentation des Funktionsbausteins wird noch überarbeitet, so daß sie auch formal den Anforderungen genügt, die an freigegebene Funktionsbausteine gestellt werden.

Der Funktionsbaustein vergibt die nächsten freien Nummern eines Intervalls.

Standardmäßig wird eine Nummer vergeben, wenn im Parameter QUANTITY keine größere Anzahl verlangt wird. Mehrere Nummern können nur bei der Hauptspeicherpufferung angefordert werden. Wenn mehr als eine Nummer verlangt wird und bis zur Intervallgrenze weniger Nummern zur Verfügung stehen, werden nur die Nummern bis zur Intervallgrenze vergeben. Wenn die letzte Nummer vergeben wurde, wird beim nächsten Aufruf wieder die erste Intervallnummer geliefert.

Die Länge der Nummer hängt von der Definition des Nummernkreisobjekts ab. Bei der Vergabe wird die Länge aber nicht über die Definition ermittelt, sondern aus der Länge der Von-Nummer des Intervalls berechnet.

Alle Ausnahmen werden mit MESSAGE ... RAISING ... erzeugt.

Beispiel:

  1. Objekt HUGO, nicht jahresabhängig, nächste freie Nummer gesucht

    DATA: RC         TYPE INRI-RETURNCODE,
          NUMBER(10) TYPE C.

       CALL FUNCTION 'NUMBER_GET_NEXT'
            EXPORTING
              OBJECT      = 'HUGO'
              NR_RANGE_NR = '01'
            IMPORTING
              RETURNCODE  = RC
             NUMBER      = NUMBER.

       CASE RC.
         WHEN ' '.
    *      alles o.k.
         WHEN '1'.
    *      die vergebene Nummer liegt im kritischen Bereich.
         WHEN '2'.
    *      dies war die letzte Nummer, beim nächsten Mal wird die
    *      erste Nummer vergeben
       ENDCASE.
  2. Objekt EGON, jahresabhängig, nächste 5 freien Nummer für 1992 im Buchungskreis 0001 gesucht.

    DATA: RC TYPE INRI-RETURNCODE,
    NUMBER(10) TYPE C,
    YEAR TYPE INRI-TOYEAR,
    QUAN TYPE INRI-QUANTITY.

    YEAR = '1992'.
    QUAN = 5.
    T001-BUKRS = '0001'.

    CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING OBJECT = 'EGON'
    NR_RANGE_NR = '01'
    SUBOBJECT = T001-BUKRS
    TOYEAR = YEAR
    IMPORTING RETURNCODE = RC
    QUANTITY = QUAN
    NUMBER = NUMBER.

    * in NUMBER steht die letzte vergebene Nummer
    * in QUANTITY steht die Anzahl der vergebenen Nummern
    * die erste freie Nummer berechnet sich aus:
    * NUMBER - QUANTITY + 1.

    CASE RC.
    WHEN ' '.
    * alles o.k.
    WHEN '1'.
    * die vergebene Nummer liegt im kritischen Bereich.
    WHEN '2'.
    * dies war die letzte Nummer, beim nächsten Mal wird
    * die erste Nummer vergeben
    WHEN '3'.
    * es werden mehr Nummern verlangt als zur Verfügung stehen,
    * in QUAN steht die Anzahl der vergebenen Nummern.
    ENDCASE.




Parameter

IGNORE_BUFFER
NR_RANGE_NR
NUMBER
OBJECT
QUANTITY
QUANTITY
RETURNCODE
SUBOBJECT
TOYEAR

Ausnahmen

BUFFER_OVERFLOW
INTERVAL_NOT_FOUND
INTERVAL_OVERFLOW
NUMBER_RANGE_NOT_INTERN
OBJECT_NOT_FOUND
QUANTITY_IS_0
QUANTITY_IS_NOT_1

Funktionsgruppe

SNR3

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5776 Date: 20240523 Time: 064526     sap01-206 ( 66 ms )