1 Kurzbeschreibung
Zur Ausgabe der offenen Werte von Vertriebsaufträgen stehen drei virtuelle Tabellen zur Verfügung:
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Werte“ ermittelt alle Vertriebsaufträge, die über offene Liefer- oder Rechnungswerte verfügen.
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Lieferwerte“ ermittelt alle Vertriebsaufträge, die über offene Lieferwerte verfügen.
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Rechnungswerte“ ermittelt alle Vertriebsaufträge, die über offene Rechnungswerte verfügen.
Optional werden jeweils die dazugehörigen Belegreferenzen (Lieferaufträge, Ausgangsrechnungen) angezeigt. Sie können durch einen Filter eingeschränkt werden.
2 Zielgruppe
- Berater
- Entwickler
3 Begriffsbestimmung
Eine virtuelle Tabelle existiert nicht in der Datenbank, sondern wird vom SAS emuliert. Prinzipiell kann auf virtuelle Tabelle wie auf eine Datenbanktabelle zugegriffen werden. Der Inhalt einer virtuellen Tabelle wird zur Laufzeit der Abfrage bezüglich der Eingabewerte berechnet. Als Anfrageergebnis können beliebig viele Zeilen zurückgeben werden. Eine virtuelle Tabelle darf nur als einzige Tabelle in einem einfachen SQL-Statement verwendet werden.
Virtuelle Tabellen sollten verwendet werden, wenn das Anfrageergebnis mehr als eine Zeile umfassen kann. Wenn das Anfrageergebnis nur maximal eine Zeile enthält, bietet sich eine virtuelle Funktion an, da diese in Joins verwendet werden kann.
4 Virtuelle Tabelle
Zur Ausgabe der offenen Werte von Vertriebsaufträgen stehen drei virtuelle Tabellen zur Verfügung:
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Werte“ ermittelt alle Vertriebsaufträge, die über offene Liefer- oder Rechnungswerte verfügen.
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Lieferwerte“ ermittelt alle Vertriebsaufträge, die über offene Lieferwerte verfügen.
- Die virtuelle Tabelle „Vertriebsauftrag: Offene Rechnungswerte“ ermittelt alle Vertriebsaufträge, die über offene Rechnungswerte verfügen.
Optional werden jeweils die dazugehörigen Belegreferenzen (Lieferaufträge, Ausgangsrechnungen) angezeigt. Sie können durch einen Filter eingeschränkt werden.
Beachten Sie bitte, dass bei diesen virtuellen Tabellen im Gegensatz zum Karteireiter in der Anwendung „Vertriebsaufträge“ die instanzbezogene Berechtigung laut Customizing nicht auf die Ergebniszeilen wirkt.
4.1 Offene Werte
Die virtuelle Tabelle „Vertriebsauftrag: Offene Werte“ ermittelt alle Vertriebsaufträge, die über Offene Liefer- oder Rechnungswerte verfügen.
Die virtuelle Tabelle wird durch die Java-Klasse
com.cisag.app.sales.order.log.OpenSalesOrderValuesVirtualTable
implementiert.
4.2 Offene Lieferwerte
Die virtuelle Tabelle „Vertriebsauftrag: Offene Lieferwerte“ ermittelt alle Vertriebsaufträge, die über Offene Lieferwerte verfügen.
Die virtuelle Tabelle wird durch die Java-Klasse
com.cisag.app.sales.order.log.OpenDeliveryValuesVirtualTable
implementiert.
4.3 Offene Rechnungswerte
Die virtuelle Tabelle „Vertriebsauftrag: Offene Rechnungswerte“ ermittelt alle Vertriebsaufträge, die über Offene Rechnungswerte verfügen.
Die virtuelle Tabelle wird durch die Java-Klasse
com.cisag.app.sales.order.log.OpenInvoiceValuesVirtualTable
implementiert.
4.4 Tabellenname
Die virtuellen Tabellen werden in einem Bericht über die Namen:
- app_sales_OpenSalesOrderValuesVirtualTable (Offene Werte)
- app_sales_OpenDeliveryValuesVirtualTable (Offene Lieferwerte)
- app_sales_OpenInvoiceValuesVirtualTable (Offene Rechnungswerte)
angesprochen.
4.5 Suchen
Über den Eingabe-Parameter in_sourceDocumentInfo (siehe Kapitel 4.6 Tabellenspalten) kann eingestellt werden, ob in dem Bericht die Belegreferenzen für die jeweiligen Vertriebsaufträge angezeigt werden sollen.
Abhängig von diesem Parameter wird die zu verwendende Suche bestimmt.
- Ist in_sourceDocumentInfo gleich true, dann wird die Suchecisag.app.sales.rpt.obj.OpenOrderValuesDocumentInfoSearch verwendet.
- Ist in_sourceDocumentInfo gleich false, dann wird die Suchecisag.app.sales.rpt.obj.OpenOrderValuesSearch verwendet.
4.6 Tabellenspalten
Die virtuelle Tabelle hat Eingabe- bzw. Ausgabeparameter und jeder Parameter entspricht einer Spalte in der virtuellen Tabelle. Eingabeparameter sind mit dem Präfix „in_“ gekennzeichnet. Sie sind gleichzeitig Ausgabeparameter (nicht änderbar). Reine Ausgabeparameter haben kein Präfix.
Der Aufbau der virtuellen Tabelle ist wie folgt:
Spaltennamen | Beschreibung |
in_sourceOrderNumber | Geben Sie als Suchmerkmal eine oder mehrere Vertriebsauftrags-Nummern an. |
in_sourceOrderCustomer | Geben Sie als Suchmerkmal eine oder mehrere Kunden an. Der Kunde hier entspricht abhängig von der jeweiligen virtuellen Tabelle dem Auftraggeber, dem Lieferempfänger oder dem Rechnungsempfänger. |
in_SourcSalesRepresentative | Geben Sie als Suchmerkmal einen oder mehrere Vertreter an. Die Eingabe bezieht sich auf den ersten Vertreter der jeweiligen Aufträge. |
in_sourceOrderResponsible | Geben Sie als Suchmerkmal einen oder mehrere Mitarbeiter an. Die Eingabe bezieht sich auf den „Zuständigen Mitarbeiter“ der jeweiligen Aufträge. |
in_sourceDocumentInfo | Legen Sie fest, ob Belegreferenzen ausgeben werden sollen (true) oder nicht (false). |
in_orderTypeFilter | Enthält die jeweils relevanten Belegtypen. |
in_sourceSalesOrderType | Geben Sie als Suchmerkmal eine oder mehrere Vertriebs-Auftragsarten an. |
in_sourceOrderDate_gmt | Geben Sie als Suchmerkmal einen Zeitpunkt oder einen Zeitraum an, in dem die gesuchten Vertriebsaufträge erfasst wurden. |
salesOrderHeaderGuid | Die GUID des Vertriebsauftrags |
referenceDate | Datum laut Belegreferenz |
referenceQuantity | Menge laut Belegreferenz |
referenceQuantities0 | Lagermenge 0 laut Belegreferenz |
referenceQuantities1 | Lagermenge 1 laut Belegreferenz |
referenceQuantities2 | Lagermenge 2 laut Belegreferenz |
referenceQuantities3 | Lagermenge 3 laut Belegreferenz |
targetOrderType | Belegtyp in Zielbeleg (Lieferauftrag, Ausgangsrechnung). |
targetOrderTypeCode | Die Identifikation der Zielbelegsart |
targetOrderHeaderGuid | Die GUID der Basis des Zielbelegs |
targetOrderDetailGuid | Die GUID der Position des Zielbelegs |
targetOrderTypeGuid | Die GUID der Zielbelegsart |
targetOrderNumber | Die Nummer der Basis des Zielbelegs |
targetOrderDetailNumber | Die Nummer der Position des Zielbelegs |
targetOrderDetailSubNumber | Die Nummer der Detail-Position des Zielbelegs |
targetOrderFormattedDetailNumber | Die vollständige Positionsnummer des Zielbelegs |
targetOrderFormattedFullNumber | Die vollständige Nummer des Zielbelegs |
targetItemGuid | Die GUID des Artikels in der Zielbelegsposition |
targetPartnerGuid | Die GUID des Partners in der Zielbelegsposition |
targetOrderDate | Das Erfassungsdatum des Zielbelegs |
targetOrderQuantity | Die Menge in der Zielbelegsposition |
Hinweis:
Der optionale Filter in_orderTypeFilter muss wie ein SelectionString aufgebaut sein (siehe Konstanten im ValueSet com.cisag.app.general.OrderType).
Will man z.B. die Ergebnisse auf Lieferaufträge und Ausgangsrechnungen einschränken, so lautet der Filter: ORDER_TYPE_FILTER = “90, 100”.
4.7 Datenbanktyp
Der hier relevante Datenbanktyp ist OLTP:
public short[] getDatabaseContentTypes() {
return new short[] {CisODBCExtensionLogic.DB_CONTENT_TYPE_OLTP};
}
4.8 Berechtigungen
Für die Einschränkung der Verwendbarkeit der virtuellen Tabelle wird auf die Berechtigungsdefinitionen des Belegketten-Business-Objects zurückgegriffen:
public byte[] getBaseBusinessObjectGuid() {
return CisObjectUtility.getClassGuid(
com.cisag.app.sales.obj.SalesOrder.class);
}