Ansicht
Dokumentation

ABAPUPDATE_SET_INDICATOR - UPDATE SET INDICATOR

ABAPUPDATE_SET_INDICATOR - UPDATE SET INDICATOR

TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

UPDATE dbtab, set indicators

Kurzreferenz



... INDICATORS ${$[NOT$] SET STRUCTURE set_ind$}
             $| (indicator_syntax) ...


Alternativen:

1. ... INDICATORS $[NOT$] SET STRUCTURE set_ind

2. ... INDICATORS (indicator_syntax)

Wirkung

Mit dem Zusatz INDICATORS der UPDATE FROM-Klausel können Set-Indikatoren für einen Arbeitsbereich oder eine interne Tabelle angegeben werden. Set-Indikatoren dienen dem Kennzeichnen von zu aktualisierenden Spalten. UPDATE FROM ohne Indikatoren überschreibt alle Felder einer Zeilen, aber bei der Verwendung von Set-Indikatoren werden nur die gekennzeichneten Felder aktualisiert. Der Zusatz kann nur hinter UPDATE FROM für strukturierte Arbeitsbereiche wa oder interne Tabellen itab mit strukturiertem Zeilentyp angegeben werden. Der Quellarbeitsbereich oder interne Quelltabelle muss eine als letztes Feld eine Struktur set_ind mit derselben Anzahl an Komponenten wie die zu aktualisierende DDIC-Datenbanktabelle, wobei jede Komponente als Set-Indikator für eine Zeile dient. Es gibt eine statische und eine dynamische Variante.

Hinweis

Set-Indikatoren erzwingen den strikten Modus ab Release .

Alternative 1

... INDICATORS $[NOT$] SET STRUCTURE set_ind


Wirkung

Der Set-Indikator set_ind markiert die mit der UPDATE FROM-Klausel zu aktualisierenden Felder einer Datenbank. set_ind muss als letztes Feld im Quellarbeitsbereich oder interne Quelltabelle stehen und muss eine Komponente pro Spalte der zu ändernden DDIC-Datenbanktabelle enthalten. Alle einzelnen Komponenten von set_ind müssen entweder den Datentyp c mit Länge 1 oder den Datentyp x mit Länge 1 haben. Die UPDATE FROM-Klausel prüft den Inhalt von set_ind und aktualisiert nur die mit 'X‘ (Datentyp c) oder '1' (Datentyp x) markierten Felder. Felder, die ein anderes Zeichen oder Ziffer enthalten werden nicht aktualisiert.

Bei der Verwendung des Zusatzes INDICATORS NOT SET ist die Logik umgekehrt: alle Felder außer den mit 'X' (Datentyp c) oder '1' (Datentyp x) markierten Feldern werden aktualisiert.

Schlüsselfelder müssen immer Teil der Indikatorstruktur sein, die Set-Indikatoren haben jedoch keine Wirkung auf Schlüsselfelder.

Hinweise

  • Set-Indikatoren funktionieren sowohl bei normalen Strukturen als auch LOB-Handle-Strukturen. Wenn der Quellarbeitsbereich oder interne Quelltabelle LOB-Handle-Komponenten, die nicht für die Aktualisierung markiert sind, werden die von denen referenzierten LOBs auch nicht aktualisiert. Wie ohne Set-Indikatoren sollen LOB-Handles unabhängig vom ihrem Aktualisierungsstatus immer geschlossen werden
  • Arbeitsbereiche mit Set-Indikatoren können mit dem Zusatz INDICATORS der TYPES-Anweisung definiert werden.

Beispiel

Eine interne Tabelle int_tab ist als Quellstruktur definiert. Bei Verwendung des Zusatzes INDICATORS der TYPES-Anweisung besteht sie aus der Struktur der DDIC-Datenbanktabelle DEMO_UPDATE und den Indikatorstrukturen col_ind als letzte Komponente, wobei die Struktur der DDIC-Datenbank gespiegelt wird. Drei Zeilen werden zur Aktualisierung ausgewählt. Unter diesen Zeilen wird aber nur das Feld COL4 für die Aktualisierung markiert. Eine Ausführung der UPDATE FROM-Anweisung aktualisiert nur die drei gekennzeichneten Felder. Ohne die Set-Indikatoren wären die drei Zeilen ganz überschrieben worden und alle Felder ohne angegebenen Wert wären initialisiert worden (siehe Bild unten).

Der folgende Quelltext ist ein Ausschnitt aus dem ausführbaren Beispiel UPDATE, SET INDICATORS. Die Ergebnisse aus dem Bild können mit dem ausführbaren Beispiel repliziert werden.

result1 zeigt das Ergebnis mit und result2 ohne Set-Indikatoren.

IMAGE @@ABDOC_SET_INDICATORS.png@@227@@313@@

UPDATE, SET INDICATORS

Alternative 2

... INDICATORS (indicator_syntax)


Wirkung

Anstatt der statischen Angabe kann ein eingeklammertes Datenobjekt indicator_syntax hinter INDICATORS angegeben werden. Bei Ausführung der Anweisung muss dieses Datenobjekt die gezeigte Syntax für die statische Angabe enthalten. Die Syntax in indicator_syntax ist unabhängig von Groß- und Kleinschreibung. Wenn das Datenobjekt indicator_syntax ohne Inhalt ist, hat der Zusatz keine Wirkung. Siehe SQL-Injections über dynamische Tokens.

Beispiel

Dieses Beispiel ist dem Beispiel für die statische Angabe von Information ähnlich. Die DDIC-Datenbanktabelle DEMO_UPDATE wird aus dem Arbeitsbereich col_ind aktualisiert und nur die Spalte COL4 ist zur Aktualisierung markiert. Anders als im ersten Beispiel wird der Set-Indikator dynamisch angegeben. Das Programm DEMO_UPDATE_SET_IND_DYN füllt die DDIC-Datenbanktabelle mit Werten, führt die UPDATE FROM-Anweisung aus und zeigt das Ergebnis.






BAL Application Log Documentation   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7734 Date: 20240523 Time: 141307     sap01-206 ( 136 ms )