Ansicht
Dokumentation

/SAPAPO/OM_ORDER_GET_ALL - Liefert die Schlüssel (GUIDs) aller Aufträge im liveCache

/SAPAPO/OM_ORDER_GET_ALL - Liefert die Schlüssel (GUIDs) aller Aufträge im liveCache

Vendor Master (General Section)   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Liefert die Schlüssel (GUIDs) aller im liveCache vorhandenen Aufträge, dabei können die Aufträge nach bestimmten Auftragstypen gefiltert werden.

Bei jedem Aufruf dieses Bausteins, auch wenn nur die Aufträge für einen Auftragstyp selektiert werden sollen, wird im liveCache über alleAufträge iteriert. Deshalb sollten alle gewünschten Selektionen möglichst mit nur einem Aufruf dieses Bausteins vorgenommen werden. (Bei Kundensystemen mit außergewöhnlich vielen Aufträgen im liveCache kann es jedoch vorkommen, daß der APO-Applikationsserver die Anzahl der zurückgelieferten Auftragsschlüssel nicht bewältigen kann. In diesem Fall ist dann die Stückelung auf verschiedene Auftragstypen und somit ein mehrfacher Aufruf dieses Bausteins erforderlich.)

Mit folgenden Import-Parametern können die selektierten Aufträge zusätzlich gefiltert werden:

  • IV_TOP_ORDERS_ONLY: Wenn gc_true, werden nur die Schlüssel von Toporders zurückgeliefert
  • IV_GET_TEST_GUIDS (default: gc_false): Wenn gc_true, werden auch die von liveCache-Testprogrammen (z.B. LCCHECK) erzeugten Aufträge berücksichtigt.

Standardmodus

Diese herkömmliche Arbeitsweise des ORDER_GET_ALL sollte für alle üblichen Anwendungsfälle ausreichen: In der ET_ORDERS werden die Schlüssel derjenigen Aufträge zurückgeliefert, deren Auftragstyp in der IT_ORDER_TYPE_TAB enthalten ist. Ist diese Importtabelle leer, werden alle Aufträge im liveCache gelesen.

Expertenmodus

Es gibt einige Auftragstypen mit besonderem Format, die nicht mit den üblichen liveCache-Bausteinen angelegt werden können (z.B. Bestände und SPP-Aufträge). Für anwendungsübergreifende Aufgaben (Planversionskopie, Upgrade) ist es daher nützlich, die Aufträge im liveCache nach Typen getrennt in verschiedenen Exporttabellen einzusammeln, um sie anschließend separat verarbeiten zu können.

Diesem Zweck dienen die zusätzlichen numerierten Auftragstyp-Tabellen IT_ORDER_TYPE_TABn (n = 1,...,5) und die korrespondierenden Exporttabellen ET_ORDERSn (n = 1,...,5). In der ET_ORDERS4 werden also beispielsweise diejenigen Aufträge zurückgeliefert, deren Auftragstyp in der IT_ORDER_TYPE_TAB4 enthalten ist.

Achtung: Jeder Auftrag wird nur einmal eingesammelt. Wenn also derselbe Auftragstyp in mehreren Importtabellen enthalten ist, werden die passenden Auftragsschlüssel nur in der ersten korrespondierenden Exporttabelle zurückgeliefert!

Die Catch-All-Logik im Expertenmodus

Im Expertenmodus nehmen die Standardtabellen IT_ORDER_TYPE_TAB und die zugehörige ET_ORDERS eine Sonderstellung ein.

Indem man die IT_ORDER_TYPE_TAB mit Auftragstypen füllt, kann man die Tabellen einerseits auf die gleiche Weise wie die numerierten Zusatztabellen nutzen. Läßt man die IT_ORDER_TYPE_TAB aber leer, fungiert die ET_ORDERS als Catch-All-Tabelle, in die Schlüssel aller Aufträge geschrieben werden, deren Auftragstyp nicht in einer der anderen Auftragstyp-Tabellen vorkommt.

Ist die Catch-All-Logik unerwünscht, beginne man mit der Selektion von Auftragstypen nicht in der IT_ORDER_TYPE_TAB1, sondern direkt in der IT_ORDER_TYPE_TAB (siehe Beispiele).

Beispiel

Alle Beispiele gehen davon aus, daß im liveCache insgesamt 100 Aufträge vorhanden sind, davon

  • 20vom Auftragstyp 1F
  • 10vom Auftragstyp 15
  • 5 vom Auftragstyp 34

Bei den folgenden Tabellen steht jeweils in der linken Spalte, wie die Importtabellen IT_ORDER_TYPE_TAB (OTT) gefüllt sind, mehrere Tabelleneinträge sind mit Komma getrennt. Rechts steht die Anzahl der vom Funktionsbaustein in den einzelnen Exporttabellen zurückgelieferten Auftragsschlüsseln.

Standardmodus

Zur herkömmlichen Verwendung des ORDER_GET_ALL wird nur die Importtabelle IT_ORDER_TYPE_TAB (OTT) gefüllt, alle Rückgaben erfolgen in der Exporttabelle ET_ORDERS. Ist die OTT leer, werden alle im liveCache vorhandenen Aufträge zurückgeliefert, ansonsten alle Aufträge mit einem in der OTT angegebenen Auftragstyp.

Sechs Beispiele für jeweils einen ORDER_GET_ALL-Aufruf mit unterschiedlich gefüllter Importtabelle:

Eingabe   Anzahl der Rückgabewerte
OTT: leer => ET_ORDERS: 100
OTT: 1F => ET_ORDERS: 20
OTT: 15 => ET_ORDERS: 10
OTT: 34 => ET_ORDERS: 5
OTT: 1F, 15 => ET_ORDERS: 30
OTT: 1F, 15, 34 => ET_ORDERS: 35

Expertenmodus

Im Expertenmodus werden auch die zusätzlichen (numerierten) Importtabellen gefüllt. Der liveCache liefert die jeweils passenden Aufträge in der zugehörigen Exporttabelle.

Das erste Beispiel demonstriert auch die Catch-All-Logik des Expertenmodus: Läßt man die Standard-Importtabelle (OTT) leer, werden in der ET_ORDERS alle Aufträge zurückgeliefert, die in keine der anderen Exporttabellen passen, weil sie keinen der angegebenen Auftragstypen haben:

Eingabe   Anzahl der Rückgabewerte
OTT : leer => ET_ORDERS : 65
OTT1: 1F => ET_ORDERS1: 20
OTT2: 15 => ET_ORDERS2: 10
OTT3: 34 => ET_ORDERS3: 5

Auch im Expertenmodus können in einer Exporttabelle mehrere Auftragstypen zusammengefaßt werden:

Eingabe   Anzahl der Rückgabewerte
OTT : leer => ET_ORDERS : 65
OTT1: 1F => ET_ORDERS1: 20
OTT2: 15, 34 => ET_ORDERS2: 15

Ist die Catch-All-Logik unerwünscht, nutze man die Standard-Importtabelle (OTT) anstelle einer der numerierten Zusatztabellen. Dadurch, daß die OTTgefüllt ist, wird das Catch-All unterbunden:

Eingabe   Anzahl der Rückgabewerte
OTT : 1F => ET_ORDERS : 20
OTT2: 15, 34 => ET_ORDERS2: 15

Jeder Auftrag wird nur einmal (in der jeweils ersten passenden Exporttabelle) zurückgeliefert, auch wenn ein Auftragstyp mehrfach angegeben wird. Im folgenden Beispiel werden die Aufträge vom Typ 34 bereits in der ET_ORDERS1 zurückgeliefert, deshalb bleibt die ET_ORDERS3 leer:

Eingabe   Anzahl der Rückgabewerte
OTT : leer => ET_ORDERS : 65
OTT1: 1F, 34 => ET_ORDERS1: 25
OTT2: 15 => ET_ORDERS2: 10
OTT3: 34 => ET_ORDERS3: 0


Hinweise

Der einzige zu erwartende Fehler ist 10 = Ungültiger Auftragstyp: In mindestens einer der Auftragstyp-Tabellen wurde mindestens ein ungültiger Wert eingetragen. Dieser Fehler löst die Exception LC_COM_ERROR aus.

Weiterführende Informationen





Parameter

ET_ORDERS
ET_ORDERS1
ET_ORDERS2
ET_ORDERS3
ET_ORDERS4
ET_ORDERS5
ET_RC
IS_GEN_PARAMS
IT_ORDER_TYPE_TAB
IT_ORDER_TYPE_TAB1
IT_ORDER_TYPE_TAB2
IT_ORDER_TYPE_TAB3
IT_ORDER_TYPE_TAB4
IT_ORDER_TYPE_TAB5
IV_GET_TESTGUIDS
IV_SIMSESSION
IV_TOP_ORDERS_ONLY

Ausnahmen

LC_APPL_ERROR
LC_COM_ERROR
LC_CONNECT_FAILED

Funktionsgruppe

APO/SAPLOM_PLANNING

General Material Data   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11507 Date: 20240419 Time: 002957     sap01-206 ( 132 ms )