Ansicht
Dokumentation

SD_SHIPMENT_DELIV_ITEM_FILTER - Filtern von Lieferungsdaten aus Transporten

SD_SHIPMENT_DELIV_ITEM_FILTER - Filtern von Lieferungsdaten aus Transporten

CL_GUI_FRONTEND_SERVICES - Frontend Services   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

1. Beschreibung

Bei der Bearbeitung von Transporten / Frachtkosten werden Informationen aus den Lieferungen und deren Positionen benötigt. Abhängig von der Verwendung sind jedoch unterschiedliche Bestandteile (Lieferpositionen) relevant. Durch den zentralen Funktionsbaustein SD_SHIPMENT_DELIV_ITEM_FILTER (Funktionsgruppe V56T) zum Filtern der Lieferungsdaten bei der Erstellung von Transporte bzw. bei der Weiterverarbeitung von Transporten sollen bestehende (individuelle verteilte) Routinen zum Filtern der gelesenen Lieferungsdaten ersetzt werden.

Als unterschiedliche Anwendungen des Filters (Domäne flttyp mit Festwerten) sind derzeit definiert:

  • Transportbearbeitung
  • IDOC Verarbeitung
  • Transportplanung
  • Frachtberechnung
  • CO Überleitung (Fracht)

zusätzlich:

  • keine Bearbeitung
  • Prüfen auf Transportrelevanz (tprel).

Als 'Positionskategorien' sind derzeit definiert:

  • Product Selection (psl)
  • Stücklisten (bill of materials) oder Leergut (returned package) (bom)
  • Chargensplit (batch split) (bat)
  • Textposition (txt)
  • Verpackungsposition (pac)
  • Normalpositionen (stn)
  • Naturalrabatt (rebatte in kind) (rbk)

(Die hier definierten 'Positionskategorien' werden nur innerhalb des Funktionsbausteins verwendet und sind nicht mit den Positionskategorien zur Gruppierung von Positionstypen zu verwechseln)

Zu jeder Verwendung ist ein Filterprofil definiert, das eine individuelle Bearbeitung der Positionskategorien erlaubt (s. unten).

Da bestimmte Positonskategorien auch in verschachtelter (z.B. Product Selection mit Chargensplit Material als Unterpositionen) bzw. mehrstufiger Form (z.B. Stücklisten als Unterpositionen von Stücklisten) auftreten können, arbeitet der Filterbaustein rekursiv. Ein endloser rekursiver Aufruf wird durch einen internen Zähler verhindert.

Die Definition der Filterprofile erfolgt im Include RV56FILT durch ein Makro, das jeweils verwendete Filterprofil wird zur Laufzeit generiert. Die Filterroutinen selbst sind im Include LV56TF0F definiert und werden dynamisch aufgerufen. Für das Anlegen neuer Filterprofile, bzw. neuer Filterroutinen sind die beiden Includes mit Kommentaren versehen. Zusätzliche Filterroutinen müssen ebenfalls im Include LV56TF0F definiert sein, bei der Namensgebung ist auf die im Include RV56FILT beschriebene Konvention zu achten. Innerhalb der Filterroutine muß der Parameter e_filter_not_found auf false(0) gesetzt werden, da dieser von der aufrufenden Routine vor der dynamischen perform-Anweisung auf true(1) gesetzt wird und nach der Rückkehr geprüft wird.

Falls eine neue Positionskategorie aufgenommen werden soll, müssen neben der Erweiterung der Filterprofile vor allem die Routinen zur Analyse und Trennung der Positionen modifiziert werden Bei einer Modifizierung ist zu beachten, daß die Lieferungspositionen i_vtrlp_all innerhalb des Bausteins nicht verändert werden dürfen..

Innerhalb des Funktionsbausteins ist zusätzlich eine Customerfunction definiert, die nach der normalen Bearbeitung der Daten die Möglichkeit einer Nachbearbeitung bietet. Dazu stehen neben den gefilterten Daten e_vtrlp_filter auch die Originaldaten i_vtrlp_all und die Lieferungsköpfe i_vtrlk zur Verfügung.

Der Aufruf des Filterbausteins erfordert folgende Parameter:

  • i_filter_type,,:,,Filtertyp
  • i_vtrlp_all ,,:,,Lieferungspositionen (werden innerhalb des Bausteins nicht verändert)
  • e_vtrlp_filter,,:,,Lieferungsköpfe (optional, falls innerhalb der Customerfunction erforderlich)

Übersicht der verwendeten Filterprofile:


  • Productselection
  • Transportbearbeitung: ,,nur Substitut

  • IDOC-Verarbeitung:,,,,nur Substitut

  • Transportplanung:,,,,nur Original

  • Frachkostenbearbeitung:,,nur Substitut

  • CO-Überleitung:,,,,nur Substitut

  • Stückliste
  • Transportbearbeitung:,,,,tvlp-tprel (Cusomizing)

  • IDOC-Verarbeitung:,,,,tvlp-tprel (Cusomizing)

  • Transportplanung:,,,,bwart <>0 (Bewegungsart)

  • Frachkostenbearbeitung:,,tvlp-tprel (Cusomizing)

  • CO-Überleitung:,,,,tvlp-tprel (Cusomizing)

  • Chargensplit
  • Transportbearbeitung:,,,,nur Hauptpos. (mit Mengen)

  • IDOC-Verarbeitung:,,,,Haupt- und Unterpositionen

  • Transportplanung:,,,,nur Hauptpos. (mit Mengen)

  • Frachkostenbearbeitung:,,Haupt- und Unterpositionen

  • CO-Überleitung:,,,,Haupt- und Unterpositionen

  • Verpackungspos.
  • Transportbearbeitung:,,,,nicht relevant

  • IDOC-Verarbeitung:,,,,nicht relevant

  • Transportplanung:,,,,nicht relevant

  • Frachkostenbearbeitung:,,nicht relevant

  • CO-Überleitung:,,,,nicht relevant

  • Textposition
  • Transportbearbeitung:,,,,tvlp-tprel (Customizing)

  • IDOC-Verarbeitung:,,,,tvlp-tprel (Customizing)

  • Transportplanung:,,,,tvlp-tprel (Customizing)

  • Frachkostenbearbeitung:,,nicht relevant

  • CO-Überleitung:,,,,nicht relevant

  • Normalposition
  • Transportbearbeitung:,,,,relevant

  • IDOC-Verarbeitung:,,,,relevant

  • Transportplanung:,,,,relevant

  • Frachkostenbearbeitung:,,relevant

  • CO-Überleitung:,,,,relevant

  • Naturalrabatt
  • Transportbearbeitung:,,,,relevant

  • IDOC-Verarbeitung:,,,,relevant

  • Transportplanung:,,,,relevant

  • Frachkostenbearbeitung:,,relevant

  • CO-Überleitung:,,,,relevant

2. Aufruf des Filterbausteins (Modifikationen in anderen Programmteilen)

Auf Lieferungen wird für die Generierung von Transporten bzw. beim Bearbeiten bestehender Transporte von unterschiedlichen Positionen im Programm (über mehrere Funktionsbausteine hierachisch gegliedert) zugegriffen:

  • (1) RV_SHIPMENT_PRINT_VIEW
  • (2) RV_SHIPMENT_VIEW
  • (3) RV_SHIPMENT_READ
  • (4) SD_SHIPMENT_DELIVERY_VIEW

Von dem jeweils übergeordneten Funktionsbaustein wird auf den darunterliegenden Funktionsbaustein zugegriffen. Um die Anzahl der Aufrufe gering zu halten, wird der Filterbaustein in SD_SHIPMENT_DELIVERY_VIEW eingebaut, der Filtertyp wird von (1) nach (4) weitergegeben. Die Schnittstellen der Funktionsbausteine werden erweitert.

Um nach außen (bzw. speziell bei Kundenlösungen) die Funktionalität nicht zu verändern, ist der Filtertyp in allen Fällen ein optionaler Parameter, der zur Zeit in allen Fällen den Vorgabewert 'Prüfen auf Transportrelevanz' enthält. Im Funktionsbaustein RV_SHIPMENT_READ wurde dementsprechend der bisherige Standardfilter in der Formroutine delivery_read (LV56TF0D) (Prüfung auf Transportrelevanz) entfernt. Bei allen Aufrufen der Funktionsbausteine die eine spezielle Filterung der Daten benötigen muß der Filtertyp entsprechend übergeben werden.

Innerhalb des Funktionsbausteins SD_SHIPMENT_DELIVERY_VIEW werden die Daten aus der Tabelle lips von der Datenbank gelesen. Optional wird hier in der Formroutine minimized_lips_select (LV56LF02) ein reduzierter Datensatz eingelesen. Dieser Datensatz wurde für den Filterbaustein erweitert, da für die Unterscheidung der Positionskategorien bzw. für einige Filterrourinen zusätzliche Felder erforderlich sind. Beim Hinzufügen neuer Filterroutinen oder neuer Positionskategorien muß dieser Datensatz evt. erneut erweitert werden.

Wichtig:,,

Die Kennzeichen für die verschiedenen Positionskategorien (z.B. xchar, uepos, uepvw, posar , usw.) werden bei der Filterung nicht verändert, d.h. das (z.B.) bei Entfernung der Hauptposition einer Productselection die Unterpositionen nachwievor als solche gekennzeichnet sind und folglich unvollständige Daten vorliegen. Dadurch ist ein mehrfaches Filtern der Daten im Regelfall nicht möglich.

Beispiel

Hinweise

Weiterführende Informationen

Funktionalität

1. Beschreibung

Bei der Bearbeitung von Transporten / Frachtkosten werden Informationen aus den Lieferungen und deren Positionen benötigt. Abhängig von der Verwendung sind jedoch unterschiedliche Bestandteile (Lieferpositionen) relevant. Durch den zentralen Funktionsbaustein SD_SHIPMENT_DELIV_ITEM_FILTER (Funktionsgruppe V56T) zum Filtern der Lieferungsdaten bei der Erstellung von Transporte bzw. bei der Weiterverarbeitung von Transporten sollen bestehende (individuelle verteilte) Routinen zum Filtern der gelesenen Lieferungsdaten ersetzt werden.

Als unterschiedliche Anwendungen des Filters (Domäne flttyp mit Festwerten) sind derzeit definiert:

  • Transportbearbeitung
  • IDOC Verarbeitung
  • Transportplanung
  • Frachtberechnung
  • CO Überleitung (Fracht)

zusätzlich:

  • keine Bearbeitung
  • Prüfen auf Transportrelevanz (tprel).

Als 'Positionskategorien' sind derzeit definiert:

  • Product Selection (psl)
  • Stücklisten (bill of materials) oder Leergut (returned package) (bom)
  • Chargensplit (batch split) (bat)
  • Textposition (txt)
  • Verpackungsposition (pac)
  • Normalpositionen (stn)
  • Naturalrabatt (rebatte in kind) (rbk)

(Die hier definierten 'Positionskategorien' werden nur innerhalb des Funktionsbausteins verwendet und sind nicht mit den Positionskategorien zur Gruppierung von Positionstypen zu verwechseln)

Zu jeder Verwendung ist ein Filterprofil definiert, das eine individuelle Bearbeitung der Positionskategorien erlaubt (s. unten). Die Bestimmung der jeweiligen Positionskategorie erfolgt über bestimmte Felder und sind in Anhang A zusammengefaßt.

Da bestimmte Positonskategorien auch in verschachtelter (z.B. Product Selection mit Chargensplit Material als Unterpositionen) bzw. mehrstufiger Form (z.B. Stücklisten als Unterpositionen von Stücklisten) auftreten können, arbeitet der Filterbaustein rekursiv. Ein endloser rekursiver Aufruf wird durch einen internen Zähler verhindert.

Die Definition der Filterprofile erfolgt im Include RV56FILT durch ein Makro, das jeweils verwendete Filterprofil wird zur Laufzeit generiert. Die Filterroutinen selbst sind im Include LV56TF0F definiert und werden dynamisch aufgerufen. Für das Anlegen neuer Filterprofile, bzw. neuer Filterroutinen sind die beiden Includes mit Kommentaren versehen. Zusätzliche Filterroutinen müssen ebenfalls im Include LV56TF0F definiert sein, bei der Namensgebung ist auf die im Include RV56FILT beschriebene Konvention zu achten. Innerhalb der Filterroutine muß der Parameter e_filter_not_found auf false(0) gesetzt werden, da dieser von der aufrufenden Routine vor der dynamischen perform-Anweisung auf true(1) gesetzt wird und nach der Rückkehr geprüft wird.

Falls eine neue Positionskategorie aufgenommen werden soll, müssen neben der Erweiterung der Filterprofile vor allem die Routinen zur Analyse und Trennung der Positionen modifiziert werden Bei einer Modifizierung ist zu beachten, daß die Lieferungspositionen i_vtrlp_all innerhalb des Bausteins nicht verändert werden dürfen..

Innerhalb des Funktionsbausteins ist zusätzlich eine Customerfunction definiert, die nach der normalen Bearbeitung der Daten die Möglichkeit einer Nachbearbeitung bietet. Dazu stehen neben den gefilterten Daten e_vtrlp_filter auch die Originaldaten i_vtrlp_all und die Lieferungsköpfe i_vtrlk zur Verfügung.

Der Aufruf des Filterbausteins erfordert folgende Parameter:

  • i_filter_type,,:,,Filtertyp
  • i_vtrlp_all ,,:,,Lieferungspositionen (werden innerhalb des Bausteins nicht verändert)
  • e_vtrlp_filter,,:,,Lieferungsköpfe (optional, falls innerhalb der Customerfunction erforderlich)

Übersicht der verwendeten Filterprofile (Bezeichung der einzelnen Filterroutinen siehe Punkt 3 und 4):


  • Productselection
  • Transportbearbeitung: ,,nur Substitut

  • IDOC-Verarbeitung:,,,,nur Substitut

  • Transportplanung:,,,,nur Original

  • Frachkostenbearbeitung:,,nur Substitut

  • CO-Überleitung:,,,,nur Substitut

  • Stückliste
  • Transportbearbeitung:,,,,tvlp-tprel (Cusomizing)

  • IDOC-Verarbeitung:,,,,tvlp-tprel (Cusomizing)

  • Transportplanung:,,,,bwart <>0 (Bewegungsart)

  • Frachkostenbearbeitung:,,tvlp-tprel (Cusomizing)

  • CO-Überleitung:,,,,tvlp-tprel (Cusomizing)

  • Chargensplit
  • Transportbearbeitung:,,,,nur Hauptpos. (mit Mengen)

  • IDOC-Verarbeitung:,,,,Haupt- und Unterpositionen

  • Transportplanung:,,,,nur Hauptpos. (mit Mengen)

  • Frachkostenbearbeitung:,,Haupt- und Unterpositionen

  • CO-Überleitung:,,,,Haupt- und Unterpositionen

  • Verpackungspos.
  • Transportbearbeitung:,,,,nicht relevant

  • IDOC-Verarbeitung:,,,,nicht relevant

  • Transportplanung:,,,,nicht relevant

  • Frachkostenbearbeitung:,,nicht relevant

  • CO-Überleitung:,,,,nicht relevant

  • Textposition
  • Transportbearbeitung:,,,,tvlp-tprel (Customizing)

  • IDOC-Verarbeitung:,,,,tvlp-tprel (Customizing)

  • Transportplanung:,,,,tvlp-tprel (Customizing)

  • Frachkostenbearbeitung:,,nicht relevant

  • CO-Überleitung:,,,,nicht relevant

  • Normalposition
  • Transportbearbeitung:,,,,relevant

  • IDOC-Verarbeitung:,,,,relevant

  • Transportplanung:,,,,relevant

  • Frachkostenbearbeitung:,,relevant

  • CO-Überleitung:,,,,relevant

  • Naturalrabatt
  • Transportbearbeitung:,,,,relevant

  • IDOC-Verarbeitung:,,,,relevant

  • Transportplanung:,,,,relevant

  • Frachkostenbearbeitung:,,relevant

  • CO-Überleitung:,,,,relevant

2. Aufruf des Filterbausteins (Modifikationen in anderen Programmteilen)

Auf Lieferungen wird für die Generierung von Transporten bzw. beim Bearbeiten bestehender Transporte von unterschiedlichen Positionen im Programm (über mehrere Funktionsbausteine hierachisch gegliedert) zugegriffen:

  • (1) RV_SHIPMENT_PRINT_VIEW
  • (2) RV_SHIPMENT_VIEW
  • (3) RV_SHIPMENT_READ
  • (4) SD_SHIPMENT_DELIVERY_VIEW

Von dem jeweils übergeordneten Funktionsbaustein wird auf den darunterliegenden Funktionsbaustein zugegriffen. Um die Anzahl der Aufrufe gering zu halten, wird der Filterbaustein in SD_SHIPMENT_DELIVERY_VIEW eingebaut, der Filtertyp wird von (1) nach (4) weitergegeben. Die Schnittstellen der Funktionsbausteine werden erweitert.

Um nach außen (bzw. speziell bei Kundenlösungen) die Funktionalität nicht zu verändern, ist der Filtertyp in allen Fällen ein optionaler Parameter, der zur Zeit in allen Fällen den Vorgabewert 'Prüfen auf Transportrelevanz' enthält. Im Funktionsbaustein RV_SHIPMENT_READ wurde dementsprechend der bisherige Standardfilter in der Formroutine delivery_read (LV56TF0D) (Prüfung auf Transrelevanz) entfernt. Bei allen Aufrufen der Funktionsbausteine die eine spezielle Filterung der Daten benötigen muß der Filtertyp entsprechend übergeben werden.

Innerhalb des Funktionsbausteins SD_SHIPMENT_DELIVERY_VIEW werden die Daten aus der Tabelle lips von der Datenbank gelesen. Optional wird hier in der Formroutine minimized_lips_select (LV56LF02) ein reduzierter Datensatz eingelesen. Dieser Datensatz wurde für den Filterbaustein erweitert, da für die Unterscheidung der Positionskategorien bzw. für einige Filterrourinen zusätzliche Felder erforderlich sind. Beim Hinzufügen neuer Filterroutinen oder neuer Positionskategorien muß dieser Datensatz evt. erneut erweitert werden.

Wichtig:,,

Die Kennzeichen für die verschiedenen Positionskategorien (z.B. xchar, uepos, uepvw, posar , usw.) werden bei der Filterung nicht verändert, d.h. das (z.B.) bei Entfernung der Hauptposition einer Productselection die Unterpositionen nachwievor als solche gekennzeichnet sind und folglich unvollständige Daten vorliegen. Dadurch ist ein mehrfaches Filtern der Daten im Regelfall nicht möglich.

Beispiel

Für eine Beispiel siehe Funktionsbaustein SD_SHIPMENT_DELIVERY_VIEW

Hinweise

Weiterführende Informationen





Parameter

E_VTRLP_FILTER
I_FILTER_TYPE
I_VTRLK
I_VTRLP_ALL

Ausnahmen

FILTERROUTINE_INCORRECT
FILTERROUTINE_NOT_FOUND
FILTERTYPE_NOT_FOUND
ITEM_PROCESSING_ERROR

Funktionsgruppe

V56T

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

Length: 23390 Date: 20240523 Time: 133310     sap01-206 ( 312 ms )