Ansicht
Dokumentation

ABENINSERT_CLIENT_ABEXA - INSERT CLIENT ABEXA

ABENINSERT_CLIENT_ABEXA - INSERT CLIENT ABEXA

ROGBILLS - Synchronize billing plans   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

INSERT, CLIENT

Das Beispiel demonstriert die Mandantenbehandlung in der-Anweisung INSERT.

Quelltext

Ausführen

Beschreibung

Das Beispiel zeigt die Verwendung der Zusätze USING CLIENT und CLIENT SPECIFIED in INSERT-Anweisungen, die verschiedene Subqueries als Datenquellen verwenden. Das Beispiel arbeitet mit zwei DDIC-Datenbanktabellen, der mandantenabhängigen Tabelle DEMO_CLNT und der mandantenunabhängigen Tabelle DEMO_NO_CLNT, die in den Subqueries über einen Join verknüpft werden.

  • Zuerst werden alle Daten der beiden DDIC-Datenbanktabellen mit DELETE-Anweisungen ohne Angabe einer Bedingung oder Quelle gelöscht. Für die mandantenabhängige Tabelle wird der Zusatz USING ALL CLIENTS verwendet, um die Daten aller Mandanten zu löschen.
  • Dann werden die beiden Datenbanktabellen mit INSERT-Anweisungen mit Daten aus internen Tabellen gefüllt, die in einem Hostausdruck konstruiert werden. Für die mandantenabhängige Tabelle wird der Zusatz CLIENT SPECIFIED verwendet, um die Mandantenkennungen der Mandantenspalte der internen Tabelle zu berücksichtigen.
  • Eine Ausgabe zeigt die Ergebnismenge der Query, die in der folgenden INSERT-Anweisung als Subquery verwendet wird. Diese Query verwendet den Zusatz USING CLIENT, sodass Daten des Mandanten 100 gelesen werden. Durch den LEFT OUTER JOIN zwischen mandantenabhängiger und mandantenunabhängiger Tabelle entsteht ein Null-Wert in der Mandantenspalte.
  • Beim Einfügen der Ergebnismenge der Subquery wird bei INSERT ebenfalls der Zusatz USING CLIENT verwendet. Dieser sorgt dafür, dass der Inhalt der Mandantenspalte der Subquery für jede Zeile mit dem angegebenen Wert 100 überschrieben wird. Dadurch spielt der Null-Wert keine Rolle. Eine Ausgabe zeigt das Ergebnis.
  • Die nächste Ausgabe zeigt die Ergebnismenge einer weiteren Query, die statt USING CLIENT den Zusatz USING CLIENTS IN @rtab verwendet. Da die Ranges-Tabelle ebenfalls nur den Mandanten 100 selektiert, ist das Ergebnis wie in der vorhergehenden Query.
  • Ein Unterschied ergibt sich aber bei der Verwendung der Query als Subquery einer INSERT-Anweisung. Die Angabe von USING CLIENTS IN @rtab wird so aufgefasst, dass die Mandantenkennung der Subquery eingefügt werden sollen, weshalb die implizite Mandantenbehandlung der INSERT-Anweisung mit CLIENT SPECIFIED entsprechend umgestellt werden muss. Da die Mandantenspalte der Subquery aber einen Null-Wert enthält, kommt es zur entsprechenden Ausnahme.
  • Die letzte INSERT-Anweisung umgeht die Ausnahme dann dadurch, dass der Null-Wert durch die COALESCE-Funktion in der SELECT-Liste der Subquery durch die Mandantenkennung 100 ersetzt wird.





ROGBILLS - Synchronize billing plans   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4179 Date: 20240523 Time: 164753     sap01-206 ( 82 ms )