Ansicht
Dokumentation

SD_DELIVERY_FOR_TRANSPORT - Lieferungen selektieren für Transport

SD_DELIVERY_FOR_TRANSPORT - Lieferungen selektieren für Transport

ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Dieser Funktionsbaustein dient der Selektion von Lieferungen für den Transport.

Wenn gewünscht (OPTION_SELECTION_SCREEN = 'X') wird ein Selektionsbild hochgebracht, auf dem der User die Selektionskriterien, nach denen er Lieferungen selektieren möchte, eingeben kann. Man beachte die Funktionsweise der Lieferungsselektion.

Dieses Selektionsbild gehört zum Report RV56LFSL. Dieser wird via SUBMIT aufgerufen, wobei ihm einige Vorgaben mitgegeben werden (z.B. ob er für den Wareneingangs- oder für den Warenausgangsfall aufgerufen wird ---> Parameter SHIPMENT_PROCESSING_TYPE).

Die Kommunikation mit diesem Report läuft über das Memory (EXPORT/IMPORT): Nach dem Drücken des Knopfes 'Ausführen' (F8) werden die Eingaben ins Memory exportiert (SELECT_OPTIONS_EXPORT(RV56LFSL)) und vom Funktionsbaustein wieder importiert (SELECT_OPTIONS_IMPORT(SAPLV56L)).

Danach erfolgt noch eine Prüfung, ob die eingegebenen Daten zur aktuellen Abfertigungsart (SHIPMENT_PROCESSING_TYPE) passen. Es kann nämlich sein, daß der User eine Variante für eingehende Transporte geholt hat, obwohl er ausgehende Transporte anlegen will. Dies würde Schwierigkeiten machen.

Das Selektionsbild kann vorbelegt werden, in dem diesem Funktionsbaustein entweder der Name einer Selektionsvariante zum Report RV56LFSL mitgegeben wird (SELECTION_SET) oder in der Tabelle SELECT_OPTIONS Daten vorbestimmt werden.

Mit OPTION_DIALOG kann gesteuert werden, ob dieser Funktionsbaustein I-Messages bringen soll oder nicht.

OPTION_SEARCH_STRATEGY gibt vor wie Lieferungen gesucht werden sollen. Default ist 'I' für die Suche über die Indextabelle VTRDI. 'L' ist eine Direkteingabe der Liefernummern, dient aber nur zu Testzwecken.

Die eigentliche Selektion findet in diesem Funktionsbaustein statt.

Diese hat folgende Abfolge:

  • Es werden zuerst Vorgaben der Rubrik 'Bezug auf' verarbeitet. So wird z.B. bei Angabe von Transportnummern ermittelt, welche Lieferungen sich in diesen Transporten befinden. Ergebnis sind gegebenenfalls also eine Menge von Liefernummern (insofern bei 'Bezug auf' Angaben gemacht wurden). Siehe z.B. BEZUG_FUER_LIEFERUNGEN(SAPLV56L).
  • Es erfolgt ein SELECT auf die Indextabelle VTRDI mit den Liefernummern (sofern vorhanden) und mit den angegebenen Selektionskriterien (INDEX_SELEKTIEREN(SAPLV56L)). Ergebnis ist jetzt eine Tabelle mit konkreten Liefernummern, die den Selektionskriterien entsprechen.
  • Die Lieferungen werden gelesen über den Funktionsbaustein SD_SHIPMENT_DELIVERY_VIEW.
  • Prüfungen werden durchgeführt, ob die Lieferungen wirklich valide sind:
  • Paßt der Buchungskreis des Werks der Lieferungen zum Buchungskreis der Transport-Dispo-Stelle (Parameter TRANS_PLANNING_POINT) ?

  • Ist die Lieferung auch nicht gesperrt ?

  • Es gibt noch Selektionskriterien, die bisher nicht abgeprüft wurden, da sie nicht in der Index-Tabelle VTRDI stehen (z.B. Postleitzahl). Diese werden jetzt geprüft.

  • Ergebnis sind jetzt Lieferungen, die allen Kriterien entsprechen. Die Lieferkopfdaten stehen in der Tabelle DELIVERY_HEADER, die Positionsdaten in DELIVERY_ITEM. Der Export-Parameter NUMBER_OF_DELIVERIES gibt an, wie viele Lieferungen erfolgreich selektiert worden sind. ERROR_OCCURED zeigt an, ob dabei Fehler aufgetreten sind.

Falls gewünscht (NO_DISPOSITION = SPACE) werden die Lieferungen gleich dem Transport mit der Nummer SHIPMENT_NUMBER zugeordnet. Dazu wird die Tabelle SHIPMENT_ITEM verändert und auch der Transportkopf SHIPMENT_HEADER. Dies darf allerdings nur geschehen, wenn der Transport noch nicht disponiert ist (Parameter SHIPMENT_COMPLETION).

Im Rahmen der Transportbearbeitung sind nicht alle Daten der Lieferung notwendig. Wenn OPT_MINIMIZED_DELIVERY_DATA = 'X' ist, werden nur die wirklich benötigten Daten von der Datenbank gelesen (Viele Positionsdaten werden weggelassen). Dieser Parmeter wird an den Funktionsbaustein SD_SHIPMENT_DELIVERY_VIEW weitergereicht.

Das Sperren der Lieferung erfolgt normalerweise mit dem Scope-Parameter '2'. Das heißt, die Sperre geht bei der asynchronen Verbuchung and die Update-Task über. Mit ENQUEUE_SCOPE_PARAMETER kann ein andere Scope-Parameter für die Sperre vorgegeben werden. Z.B. im Sammellauf zum Anlegen von Transporten (Transaktion VT04) soll die Sperre nicht weitergegeben werden, sondern dem laufenden Programm erhalten bleiben. Der Grund dafür ist, daß Lieferungen im Sammellauf durchaus mehrfach verabeitet werden können (z.B. in Vor-, Haupt- und Nachlauftransporte einer Transportkette). Zwischen diesen Teilen wird zwar verbucht, die Sperren sollen aber nicht verschwinden).

Dieser Funktionsbaustein erstellt ein Protokoll der Selektion, welches mit SD_DELIVERY_FOR_TRANSPORT_LOG angezeigt werden kann.

Beispiel

Hinweise

Weiterführende Informationen





Parameter

DELIVERY_HEADER
DELIVERY_ITEM
ENQUEUE_SCOPE_PARAMETER
ERROR_OCCURED
E_DISPO
LEG_INDICATOR
NO_DISPOSITION
NUMBER_OF_DELIVERIES
OPTION_DIALOG
OPTION_SEARCH_STRATEGY
OPTION_SELECTION_SCREEN
OPT_MINIMIZED_DELIVERY_DATA
RUN_WITH_SELECT_OPTIONS
SELECTION_SET
SELECT_OPTIONS
SHIPMENT_COMPLETION
SHIPMENT_HEADER
SHIPMENT_ITEM
SHIPMENT_NUMBER
SHIPMENT_PROCESSING_TYPE
STANDARD_SEL_SET
TRANS_PLANNING_POINT

Ausnahmen

EMPTY_SHIPMENT
WRONG_CALL

Funktionsgruppe

V56L

Fill RESBD Structure from EBP Component Structure   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7261 Date: 20240523 Time: 150104     sap01-206 ( 122 ms )