Blick über den Tellerrand – willkommen im SD. Dieser Beitrag hat ausnahmsweise einmal gar nichts mit dem PSM zu tun, sondern soll einen Einblick in die Möglichkeiten und Besonderheiten der Selektion von SD-Belegen geben.
Grundsätzlich stehen für beispielsweise die Selektion von Kundenaufträgen (BUS2032) die BAPIs
- BAPI_SALESORDER_GETLIST zur Selektion von Kundenaufträgen und
- BAPI_SALESORDER_GETSTATUS zur Anzeige des Status eines Kundenauftrages zur Verfügung.
Das Problem mit diesen BAPIs ist, dass die Statusanzeige einen konkreten Verkaufsbeleg als Inputparameter benötigt und für BAPI_SALESORDER_GETLIST sind Verkaufsorganisation und eine konkrete Kundennummer obligatorische Inputparameter. Eine Selektion im Sinne „Zeige mir alle Kundenaufträge zu einem Material.“ gestaltet sich damit schwierig.
Abhilfe kann der Funktionsbaustein RV_SALES_DOCUMENT_VIEW_3 schaffen. Als Output erhält man von ihm eine interne Tabelle mit relevanten Verkaufsbelegen (nicht nur Kundenaufträge). Als Input verlangt er dafür (neben einzelnen optionalen Parametern) Daten in Form der Struktur VBCOM.
Bildquelle: SAP-System
Besonders spannende Parameter innerhalb dieser Struktur sind:
- VBALL bzw. VBOFF: über ein ‚X‘ können Sie festlegen, ob Sie alle Vertriebsbelege oder nur die noch offenen lesen möchten. Wenn Sie in beiden Parametern ein ‚X‘ mitgeben, wird im Funktionsbaustein das VBOFF initialisiert und es werden alle Belege zurückgeliefert.
- TRVOG: hier müssen Sie unbedingt angeben, welche Art von Verkaufsbeleg Sie selektieren möchten. Geben Sie den Parameter nicht mit, werden Sie eine leere Ergebnismenge bekommen.
- *_DAZU: über diese Parameter können Sie komfortabel neben den Belegpositionen automatisch die Belegköpfe, den Status sowie den Auftraggebernamen hinzu lesen. Das erspart häufig performancelastige Zusatzselektionen.
- VBERF: in Kombination mit einer SELECT-OPTION ist es so sehr einfach möglich, die Selektion auf die Belege des Anwenders einzuschränken.
- VKORG in Kombination mit VTWEG und SPART: eine initiale Berechtigungsprüfung auf Auftragsart, Verkaufsorganisation, Vertriebsweg und Sparte findet nur statt, wenn alle drei Parameter bei der Übergabe gefüllt sind. Wird z. B. bei der Selektion nur eine Verkaufsorganisation übergeben, findet in diesem Schritt keine Berechtigungsprüfung statt. Je nach Anwendungsfall ist es deshalb auf jeden Fall zu empfehlen, eine eigene Berechtigungsprüfung vor Aufruf des Funktionsbausteins zu implementieren – wie man es ordentlicherweise ja sowieso machen sollte.
Bildquelle: SAP-System
Zudem existieren innerhalb des Funktionsbausteins noch Enhancement Spots, die gerne genutzt werden, um Selektionslogiken zu erweitern oder die Selektionsbilder des SD-Infosystems um zusätzliche Felder zu bereichern.
Alles in allem ein großartiger Funktionsbaustein – wenn man weiss, wie man ihn benutzt.
Wie immer: alle Ausführungen ohne Gewähr!
🙂