Ansicht
Dokumentation

ABAPIUMD_CLIENT - IUMD CLIENT

ABAPIUMD_CLIENT - IUMD CLIENT

RFUMSV00 - Advance Return for Tax on Sales/Purchases   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

INSERT, UPDATE, MODIFY, DELETE dbtab, CLIENT, CLIENTS

... ${ USING CLIENT clnt $}  $| ${ CLIENT SPECIFIED $}

  $| ${ USING ${ CLIENT clnt $}
          $| ${ CLIENTS IN @client_range_tab $}
          $| ${ CLIENTS IN T000 $}
          $| ${ ALL CLIENTS $} $} ...


Varianten:

1. ... ${USING CLIENT clnt$}$|${CLIENT SPECIFIED$}

2. ... ${USING CLIENT clnt$}$|${USING $[ALL$] CLIENTS $[IN$]$}

Wirkung

Diese Zusätze beeinflussen die Mandantenbehandlung der schreibenden -Anweisungen INSERT, UPDATE, MODIFY und DELETE. Sie können optional hinter dem Ziel target jeder dieser Anweisungen angegeben werden. Wenn keiner der Zusätze angegeben ist, wirkt die standardmäßige Mandantenbehandlung:

  • Wenn als Quelle source ein Arbeitsbereich wa, eine interne Tabelle itab oder eine Subquery subquery_clauses hinter FROM angegeben ist, werden beim Ändern von mandantenabhängige Tabellen nicht deren Werte für die Mandantenspalte verwendet sondern die Kennung des aktuellen Mandanten.
  • Bei den Varianten UPDATE SET oder DELETE FROM, bei denen eine WHERE-Bedingung angegeben werden kann, darf in dieser keine explizite Bedingung auf die Mandantenspalte gesetzt werden. Statt dessen wird eine implizite Bedingung für den aktuellen Mandanten an das Datenbanksystem übergeben.

Die beiden Varianten der optionalen Zusätze sind spezifisch für diese beiden Fälle:

  • Variante 1 ändert die Mandantenbehandlung bei Angaben von Quellen hinter FROM.
  • Variante 2 ändert die Mandantenbehandlung in ändernden Anweisungen mit möglichen WHERE-Bedingungen.

Hinweise

  • Da jeder Mandant eine in sich abgeschlossene Einheit darstellt, sollte die implizite Mandantenbehandlung in Anwendungsprogrammen in aller Regel nicht umgeschaltet werden.

Variante 1

... ${USING CLIENT clnt$}$|${CLIENT SPECIFIED$}


Alternativen:

1. ... USING CLIENT clnt

2. ... CLIENT SPECIFIED

Wirkung

Diese beiden Zusätze beeinflussen die implizite Mandantenbehandlung einer ändernden -Anweisung, wenn deren Quelle als Arbeitsbereich wa, als interne Tabelle itab oder als Subquery subquery_clauses hinter FROM angegeben ist.

  • Der Zusatz USING CLIENT stellt die implizite Mandantenbehandlung auf den angegebenen Mandanten um.
  • Der Zusatz CLIENT SPECIFIED bewirkt, dass die in source angegebenen Mandantenkennungen verwendet werden.

Hinweise

  • Wenn Daten mit genau einer anderen Mandantenkennung bearbeitet werden sollen, ist USING CLIENT dem Zusatz CLIENT SPECIFIED vorzuziehen, da der Mandant damit explizit angegeben wird.
  • Wenn Daten mehrerer Mandanten bearbeitet werden sollen, kann oder muss CLIENT SPECIFIED verwendet werden. Dies ist insbesondere dann der Fall, wenn eine interne Tabelle als Datenquelle verwendet wird, deren Mandantenspalte verschiedene Mandantenkennungen enthält oder wenn eine Subquery als Datenquelle verwendet wird, die mit USING $[ALL$] CLIENTS $[IN$] die Daten verschiedener Mandanten selektiert.
  • In dieser Variante ist der Zusatz CLIENT SPECIFIED nicht obsolet und auch beim Zugriff auf globale temporäre Tabellen erlaubt. Er drückt hier aus, dass die Mandantenkennungen der hinter FROM angegebenen Quellen verwendet werden sollen.

Beispiel

Die beiden folgenden INSERT-Anweisungen haben die gleiche Wirkung. Die erste Anweisung verwendet den Zusatz USING CLIENT und zeigt damit die empfohlene Variante, in welcher der einzufügende Mandant explizit angegeben wird. Die zweite Anweisung verwendet dagegen CLIENT SPECIFIED und muss deshalb das Mandantenfeld im übergebenen Arbeitsbereich mit dem gewünschten Wert füllen.

Beispiel

Modifizieren einer Zeile in einem anderen Mandanten. Die erste UPDATE-Anweisung zeigt die empfohlene Vorgehensweise mit dem Zusatz USING CLIENT. In der zweiten UPDATE-Anweisung wird dagegen CLIENT SPECIFIED verwendet und das Mandantenfeld des Arbeitsbereichs muss versorgt werden.

Siehe INSERT, CLIENT

Alternative 1

... USING CLIENT clnt


Wirkung

Dieser Zusatz stellt die implizite Mandantenbehandlung von so um, dass statt der aktuellen Mandantenkennung die in clnt vorhandene Mandantenkennung verwendet wird. Das ABAP-Laufzeit-Framework ersetzt den in source angegebenen Mandanten mit dem in clnt angegebenen Mandanten und übergibt diesen an das Datenbanksystem.

Für clnt muss ein Datenobjekt vom Typ c der Länge 3 angegeben werden, das eine Mandantenkennung enthält. Es kann ein Literal oder eine Hostvariable angegeben werden.

Für den Zusatz USING gelten folgende Regeln:

  • Er darf nur beim Ändern einer mandantenabhängigen Tabelle bzw. einer solchen View verwendet werden.
  • Er darf nicht gemeinsam mit dem Zusatz CLIENT SPECIFIED verwendet werden.
  • Er kann nicht verwendet werden, wenn eine Subquery als Datenquelle von INSERT oder MODIFY verwendet wird, in der die implizite Mandantenbehandlung mit USING $[ALL$] CLIENTS $[IN$] umgeschaltet wird.
  • Ein Angabe des Systemfelds sy-mandt hätte keine Wirkung und es darf nicht direkt für clnt angegeben werden.

Hinweise

  • Bei Verwendung des Zusatzes USING CLIENT arbeitet die-Anweisung so, als sei der aktuelle Benutzer mit der in clnt angegebenen Mandantenkennung angemeldet.
  • Wenn der Zusatz USING CLIENT bei einer dynamischen Angabe der DDIC-Datenbanktabelle oder DDIC-View angegeben ist und dann keine Mandantenabhängigkeit vorliegt, wird er ignoriert.
  • Bei Verwendung des Zusatzes USING CLIENT wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.

Beispiel

Die folgenden MODIFY-Anweisung verwendet wie empfohlen den Zusatz USING CLIENT um auf einen bestimmten Mandanten zuzugreifen.

Beispiel

Mit dem Zusatz USING CLIENT hinter INSERT werden zwei Spalten einer DDIC-Datenbanktabelle mit drei Zeilen für den Mandanten 100 gefüllt. Danach werden diese Zeilen über die Angabe von USING CLIENT in einer Subquery in den aktuellen Mandanten kopiert.

Alternative 2

... CLIENT SPECIFIED


Wirkung

Der Zusatz CLIENT SPECIFIED bewirkt, dass statt der Kennung des aktuellen Mandanten die Mandantenkennung verwendet wird, die in der hinter FROM angegebenen Quelle source in der Mandantenspalte vorliegt.

Für den Zusatz CLIENT SPECIFIED gelten folgende Regeln:

  • Er darf nur beim Zugriff auf mandantenabhängige DDIC-Datenbanktabellen oder Views angegeben werden.
  • Er kann nicht gemeinsam mit USING CLIENT angegeben werden.
  • Er kann nicht verwendet werden, wenn eine Subquery als Datenquelle von INSERT oder MODIFY verwendet wird, die mit der standardmäßigen Mandantenbehandlung arbeitet oder in der die implizite Mandantenbehandlung mit USING CLIENT umgestellt wird.

Hinweise

  • Wenn der Zusatz CLIENT SPECIFIED bei einer dynamischen Angabe der DDIC-Datenbanktabelle oder DDIC-View angegeben ist und dann keine Mandantenabhängigkeit vorliegt, wird er ignoriert.
  • Die Angabe des Zusatzes CLIENT SPECIFIED für statisch angegebene mandantenunabhängige Datenbanktabellen oder DDIC-Views führt in den strikten Modi der Syntaxprüfung ab Release zu einem Syntaxfehler und ansonsten zu einer Syntaxwarnung.

Beispiel

Das Beispiel verwirklicht eine Mandantenkopie aller Daten einer Tabelle in mehrere Mandanten. Der Zusatz CLIENT SPECIFIED der Anweisung INSERT bewirkt, dass die Mandantenkennungen der als Datenquelle verwendeten internen Tabelle nicht durch den aktuellen Mandanten überschrieben werden. Die interne Tabelle wird in einem Hostausdruck dadurch erzeugt, dass die zuvor aus SCARR eingelesenen Daten des aktuellen Mandanten unter mehreren anderen Mandantenkennungen vervielfältigt werden. Um doppelte Einträge zu vermeiden, werden vorher über den Zusatz USING CLIENTS IN alle Daten des vorgesehenen Bereichs gelöscht. Nach dem Einfügen werden alle Daten dieses Bereichs ausgelesen und dargestellt.

Variante 2

... ${USING CLIENT clnt$}$|${USING $[ALL$] CLIENTS $[IN$]$}


Alternativen:

1. ... USING CLIENT clnt

2. ... USING CLIENTS IN @client_range_tab

3. ... USING CLIENTS IN T000

4. ... USING ALL CLIENTS

Wirkung

Diese Zusätze beeinflussen die implizite Mandantenbehandlung einer ändernden -Anweisung UPDATE SET oder DELETE FROM, bei denen eine WHERE-Bedingung angegeben werden kann.

  • Der Zusatz USING CLIENT stellt die implizite Mandantenbehandlung auf den angegebenen Mandanten um.
  • Die Zusätze USING $[ALL$] CLIENTS $[IN$] selektieren statt des aktuellen Mandanten die Daten beliebig vieler Mandanten,

Hinweis

An Stelle von USING kann außerhalb des strikten Modus ab Release auch noch der Zusatz CLIENT SPECIFIED angegeben werden. Dieser ist hier aber obsolet. Statt dessen sollen die hier gezeigten Zusätze verwendet werden.

Alternative 1

... USING CLIENT clnt


Wirkung

Dieser Zusatz stellt die implizite Mandantenbehandlung von so um, dass statt der aktuellen Mandantenkennung die in clnt vorhandene Mandantenkennung verwendet wird. Das ABAP-Laufzeit-Framework ersetzt in der impliziten WHERE-Bedingung die aktuelle Mandantenkennung durch die in clnt angegebene Kennung.

Für clnt muss ein Datenobjekt vom Typ c der Länge 3 angegeben werden, das eine Mandantenkennung enthält. Es kann ein Literal oder eine Hostvariable angegeben werden.

Für den Zusatz USING gelten folgende Regeln:

  • Er darf nur beim Ändern einer mandantenabhängigen Tabelle bzw. einer solchen View verwendet werden.
  • Ein Angabe des Systemfelds sy-mandt hätte keine Wirkung und es darf nicht direkt für clnt angegeben werden.

Hinweise

  • Bei Verwendung des Zusatzes USING CLIENT arbeitet die-Anweisung so, als sei der aktuelle Benutzer mit der in clnt angegebenen Mandantenkennung angemeldet.
  • Wenn der Zusatz USING CLIENT bei einer dynamischen Angabe der DDIC-Datenbanktabelle oder DDIC-View angegeben ist und dann keine Mandantenabhängigkeit vorliegt, wird er ignoriert.
  • Bei Verwendung des Zusatzes USING CLIENT wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.

Beispiel

Anweisungen DELETE FROM mit dem Zusatz USING CLIENT. Mit der ersten Anweisung werden Zeilen des Mandanten 100 mit einer bestimmten Kennung gelöscht. Mit der zweiten Anweisung werden all Zeilen des Mandanten 100 gelöscht.

Alternative 2

... USING CLIENTS IN @client_range_tab


Alternative 3

... USING CLIENTS IN T000


Alternative 4

... USING ALL CLIENTS


Wirkung

Diese Zusätze stellen die implizite Mandantenbehandlung von so um, dass diese nicht nur die Daten des aktuellen Mandanten ändert, sondern die Daten aller über den Zusatz angegebenen Mandanten. Die Zusätze ändern die implizite WHERE-Bedingung für die Mandantenspalte, die beim Zugriff an die Datenbank übergeben wird.

  • Der Zusatz USING CLIENTS IN @client_range_tab selektiert statt des aktuellen Mandanten implizit die Mandanten, deren Mandantenkennungen den Bedingungen in einer Ranges-Tabelle client_range_tab genügen. Wenn die Ranges-Tabelle leer ist, werden die Daten aller Mandanten selektiert.
  • Der Zusatz USING CLIENTS IN T000 selektiert statt des aktuellen Mandanten implizit die Mandanten, deren Mandantenkennungen in der Spalte MANDT der Systemtabelle T000 enthalten sind.
  • Der Zusatz USING ALL CLIENTS selektiert statt des aktuellen Mandanten implizit alle Zeilen unabhängig von der Mandantenkennung.

Für die Zusätze gelten die gleichen Regeln wie für die gleichnamigen Zusätze USING $[ALL$] CLIENTS $[IN$] in Queries.

Hinweise

  • Die Zusätze USING $[ALL$] CLIENTS $[IN$] ersetzen den obsoleten Zusatz CLIENT SPECIFIED wenn dieser verwendet wird, um mehr als einen Mandanten zu selektieren.
  • Die Verwendung der Zusätze USING $[ALL$] CLIENTS $[IN$] führt zum strikten Modus ab Release .

Siehe UPDATE, USING CLIENT, CLIENTS






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

Length: 21934 Date: 20240329 Time: 125839     sap01-206 ( 272 ms )