From a82e977de04f6c3174bebacae15a9218abc6e406 Mon Sep 17 00:00:00 2001
From: danrega <16720986+danrega@users.noreply.github.com>
Date: Tue, 8 Jul 2025 17:20:53 +0200
Subject: [PATCH] Update
---
02_Structures.md | 6 +-
23_Date_and_Time.md | 2 +-
31_WHERE_Conditions.md | 238 ++++++++++++++++++++++++++++++++++-------
3 files changed, 200 insertions(+), 46 deletions(-)
diff --git a/02_Structures.md b/02_Structures.md
index f05ae00..0db9831 100644
--- a/02_Structures.md
+++ b/02_Structures.md
@@ -1109,10 +1109,8 @@ TYPES BEGIN OF address_type.
INCLUDE STRUCTURE city_struc AS city RENAMING WITH SUFFIX _city.
TYPES END OF address_type.
-DATA component_names type string_table.
-LOOP AT CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( 'ADDRESS_TYPE' ) )->components INTO DATA(comp).
- APPEND comp-name to component_names.
-ENDLOOP.
+DATA(component_names) = VALUE string_table( FOR wa IN CAST cl_abap_structdescr(
+ cl_abap_typedescr=>describe_by_name( 'ADDRESS_TYPE' ) )->components ( CONV #( wa-name ) ) ).
*Content of COMPONENT_NAMES:
*TITLE
diff --git a/23_Date_and_Time.md b/23_Date_and_Time.md
index 86b6747..36d5dc4 100644
--- a/23_Date_and_Time.md
+++ b/23_Date_and_Time.md
@@ -1272,7 +1272,7 @@ ASSERT sy-subrc = 8.
"Specified time stamp is invalid -> sy-subrc = 12
CONVERT TIME STAMP CONV timestamp( '20249999112458' )
- TIME ZONE 'NOPE'
+ TIME ZONE 'EST'
INTO DATE dat.
ASSERT sy-subrc = 12.
```
diff --git a/31_WHERE_Conditions.md b/31_WHERE_Conditions.md
index 37c33e9..6c7eb24 100644
--- a/31_WHERE_Conditions.md
+++ b/31_WHERE_Conditions.md
@@ -208,13 +208,13 @@ SELECT id FROM @itab AS tab
-`... AND ...` `... OR ...` `... ( ... ) ...`
+`... AND [NOT] ...` `... OR [NOT] ...` `... ( ... ) ...`
|
-Combining multiple logical expressions into one logical expression using `AND` or `OR`. To further detail out the desired condition, expressions within parentheses are possible.
+Combining multiple logical expressions into one logical expression using `AND` or `OR` (inlcuding negations). To further detail out the desired condition, expressions within parentheses are possible.
|
@@ -222,17 +222,27 @@ Combining multiple logical expressions into one logical expression using `AND` o
``` abap
SELECT id FROM @itab AS tab
- WHERE id = 1 AND animal = 'bear'
- INTO TABLE @it.
+ WHERE animal = 'bear' AND count = 5
+ INTO TABLE @it.
SELECT id FROM @itab AS tab
WHERE animal = 'kangaroo' OR count = 4
- INTO TABLE @it.
+ INTO TABLE @it.
SELECT id FROM @itab AS tab
- WHERE ( id = 1 AND animal = 'bear' )
- OR ( id = 20 AND animal = 'lion' )
- INTO TABLE @it.
+ WHERE ( animal = 'bear' AND count = 5 )
+ AND ( animal = 'lion' AND count = 20 )
+ INTO TABLE @it.
+
+SELECT id FROM @itab AS tab
+ WHERE ( animal = 'bear' AND count = 5 )
+ OR ( animal = 'lion' AND count = 20 )
+ INTO TABLE @it.
+
+SELECT id FROM @itab AS tab
+ WHERE count > 10
+ OR NOT ( animal = 'kangaroo' AND count = 8 )
+ INTO TABLE @it.
```
@@ -316,7 +326,7 @@ SELECT id FROM @itab AS tab
-Checks whether the content of the left operand matches (or does not match) a specified pattern. The pattern can be specified by using wildcard characters. `%` stands for any character string, including an empty string. `_` stands for any character. Using the `ESCAPE` addition, you can specify a single-character escape character of length 1 (e.g. `#`) in front of a wildcard character or the escaped character itsef. For example, to search for the pattern `100%`, you may use an expression such as the the following: `... LIKE '100#%' ESCAPE '#' ...`.
+Checks whether the content of the left operand matches (or does not match) a specified pattern. The pattern can be specified by using wildcard characters. `%` stands for any character string, including an empty string. `_` stands for any character. Using the `ESCAPE` addition, you can specify a single-character escape character of length 1 (e.g. `#`) in front of a wildcard character or the escaped character itself. For example, to search for the pattern `100%`, you may use an expression such as the the following: `... LIKE '100#%' ESCAPE '#' ...`.
|
@@ -706,7 +716,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
*&---------------------------------------------------------------------*
SELECT id FROM @itab AS tab
- WHERE id = 1 AND animal = 'bear'
+ WHERE animal = 'bear' AND count = 5
INTO TABLE @it. "1
SELECT id FROM @itab AS tab
@@ -717,15 +727,30 @@ CLASS zcl_demo_abap IMPLEMENTATION.
"in parentheses is false (AND is used between the expressions in parentheses).
"In contrast, the example below returns an entry because of using OR.
SELECT id FROM @itab AS tab
- WHERE ( id = 1 AND animal = 'bear' )
- AND ( id = 20 AND animal = 'lion' )
+ WHERE ( animal = 'bear' AND count = 5 )
+ AND ( animal = 'lion' AND count = 20 )
INTO TABLE @it. "no entry
SELECT id FROM @itab AS tab
- WHERE ( id = 1 AND animal = 'bear' )
- OR ( id = 20 AND animal = 'lion' )
+ WHERE ( animal = 'bear' AND count = 5 )
+ OR ( animal = 'lion' AND count = 20 )
INTO TABLE @it. "1
+ "Negations with NOT
+ SELECT id FROM @itab AS tab
+ WHERE count > 4
+ AND NOT ( animal = 'kangaroo' AND count = 8 )
+ INTO TABLE @it. "1,2,3,4,5,8,9,11
+
+ SELECT id FROM @itab AS tab
+ WHERE count > 4
+ INTO TABLE @it.
+
+ SELECT id FROM @itab AS tab
+ WHERE count > 10
+ OR NOT ( animal = 'kangaroo' AND count = 8 )
+ INTO TABLE @it. "1,2,3,4,5,6,8,9,10,11,12
+
*&---------------------------------------------------------------------*
*& ... a [=|<>|>|<|...] [ALL|ANY|SOME] ( SELECT ... ) ...
*&---------------------------------------------------------------------*
@@ -1025,6 +1050,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LEFT OUTER JOIN zdemo_abap_tab1 AS tab1 ON tab1~char1 = tab2~char1
WHERE tab1~char1 IS NULL
INTO TABLE @DATA(joined_tab).
+*joined_tab:
*KEY_FIELD CHAR2
*4
@@ -1049,6 +1075,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
FROM zdemo_abap_tab2 AS tab2
LEFT OUTER JOIN zdemo_abap_tab1 AS tab1 ON tab1~char1 = tab2~char1
INTO TABLE @joined_tab_w_null_ind INDICATORS NULL STRUCTURE nulls.
+*joined_tab_w_null_ind:
*S2 NULLS
*KEY_FIELD CHAR2 KEY_FIELD CHAR2
*1 y
@@ -1065,6 +1092,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LEFT OUTER JOIN zdemo_abap_tab1 AS tab1 ON tab1~char1 = tab2~char1
WHERE tab1~char1 IS NOT NULL
INTO TABLE @joined_tab.
+*joined_tab:
*KEY_FIELD CHAR2
*1 y
*2 y
@@ -1216,18 +1244,21 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO DATA(wa) WHERE num = 0.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `13`.
CLEAR str.
LOOP AT itab INTO wa WHERE num > 20.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `45`.
CLEAR str.
"Combination of one or more logical expressions with the Boolean operators
"NOT, AND, OR, EQUIV where parentheses are possible
- LOOP AT itab INTO wa WHERE id >= 3 and num > 5.
+ LOOP AT itab INTO wa WHERE id >= 3 AND num > 5.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `45`.
CLEAR str.
"Two logical expressions can be combined with EQUIV, which creates a new
@@ -1244,21 +1275,25 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE id > 2 EQUIV num < 10.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `23`.
CLEAR str.
LOOP AT itab INTO wa WHERE num >= 40 OR num = 0.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `1345`.
CLEAR str.
LOOP AT itab INTO wa WHERE NOT num = 0.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `245`.
CLEAR str.
LOOP AT itab INTO wa WHERE ( id < 5 AND num > 10 ) AND text = `abc`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `2`.
CLEAR str.
"Comparison operators for character-like data types
@@ -1266,59 +1301,69 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE text CO `abc`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `12`.
CLEAR str.
"contains not only
LOOP AT itab INTO wa WHERE text CN `abc`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `345`.
CLEAR str.
"contains string
LOOP AT itab INTO wa WHERE text CS `ef`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `34`.
CLEAR str.
"contains no string
LOOP AT itab INTO wa WHERE text NS `ef`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `125`.
CLEAR str.
"contains any
LOOP AT itab INTO wa WHERE text CA `xyzi`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `5`.
CLEAR str.
"contains not any
LOOP AT itab INTO wa WHERE text NA `a`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `345`.
CLEAR str.
"conforms to pattern
LOOP AT itab INTO wa WHERE text CP `*c`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `12`.
CLEAR str.
"does not conform to pattern
LOOP AT itab INTO wa WHERE text NA `*c`.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `345`.
CLEAR str.
"[NOT] BETWEEN ... AND ...
LOOP AT itab INTO wa WHERE num BETWEEN 5 AND 45.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `24`.
CLEAR str.
LOOP AT itab INTO wa WHERE num NOT BETWEEN 5 AND 45.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `135`.
CLEAR str.
"[NOT] IN ranges_table
@@ -1328,6 +1373,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE num IN rangestab.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `24`.
CLEAR str.
rangestab = VALUE #( ( sign = `I` option = `LT` low = 5 )
@@ -1336,39 +1382,46 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE num IN rangestab.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `1345`.
CLEAR str.
"IS [NOT] INITIAL
LOOP AT itab INTO wa WHERE num IS INITIAL.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `13`.
CLEAR str.
LOOP AT itab INTO wa WHERE num IS NOT INITIAL.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `245`.
CLEAR str.
"IS [NOT] BOUND
LOOP AT itab INTO wa WHERE ref IS BOUND.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `135`.
CLEAR str.
LOOP AT itab INTO wa WHERE ref IS NOT BOUND.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `24`.
CLEAR str.
"IS [NOT] INSTANCE OF
LOOP AT itab INTO wa WHERE oref IS INSTANCE OF cl_system_uuid.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `13`.
CLEAR str.
LOOP AT itab INTO wa WHERE oref IS NOT INSTANCE OF cl_system_uuid.
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `245`.
CLEAR str.
"Dynamic WHERE condition
@@ -1377,6 +1430,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE (dynamic_where_cond).
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `45`.
CLEAR str.
DATA(dynamic_where_cond_tab) = VALUE string_table( ( `num > 20` )
@@ -1386,6 +1440,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
LOOP AT itab INTO wa WHERE (dynamic_where_cond_tab).
str &&= wa-id.
ENDLOOP.
+ ASSERT str = `5`.
CLEAR str.
*&---------------------------------------------------------------------*
@@ -1395,91 +1450,192 @@ CLASS zcl_demo_abap IMPLEMENTATION.
DATA(itab_copy) = itab.
DELETE itab WHERE num > 20.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `123`.
+
itab = itab_copy.
DELETE itab WHERE num = 0.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `245`.
itab = itab_copy.
DELETE itab WHERE num > 5 AND id >= 3.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `123`.
itab = itab_copy.
DELETE itab WHERE num >= 40 OR num = 0.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `2`.
itab = itab_copy.
DELETE itab WHERE NOT num = 0.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `13`.
itab = itab_copy.
DELETE itab WHERE ( id < 5 AND num > 10 ) AND text = `abc`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `1345`.
itab = itab_copy.
"contains only
DELETE itab WHERE text CO `abc`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `345`.
itab = itab_copy.
"contains not only
DELETE itab WHERE text CN `abc`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `12`.
itab = itab_copy.
"contains string
DELETE itab WHERE text CS `ef`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `125`.
itab = itab_copy.
"contains no string
DELETE itab WHERE text NS `ef`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `34`.
itab = itab_copy.
"contains any
DELETE itab WHERE text CA `xyzi`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `1234`.
itab = itab_copy.
"contains not any
DELETE itab WHERE text NA `a`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `12`.
itab = itab_copy.
"conforms to pattern
DELETE itab WHERE text CP `*c`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `345`.
itab = itab_copy.
"does not conform to pattern
DELETE itab WHERE text NA `*c`.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `12`.
itab = itab_copy.
DELETE itab WHERE num BETWEEN 5 AND 45.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `135`.
itab = itab_copy.
DELETE itab WHERE num NOT BETWEEN 5 AND 45.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `24`.
itab = itab_copy.
rangestab = VALUE #( ( sign = `I` option = `BT` low = 5 high = 45 ) ).
DELETE itab WHERE num IN rangestab.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `135`.
itab = itab_copy.
DELETE itab WHERE num IS INITIAL.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `245`.
itab = itab_copy.
DELETE itab WHERE num IS NOT INITIAL.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `13`.
itab = itab_copy.
DELETE itab WHERE ref IS BOUND.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `24`.
itab = itab_copy.
DELETE itab WHERE ref IS NOT BOUND.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `135`.
itab = itab_copy.
DELETE itab WHERE oref IS INSTANCE OF cl_system_uuid.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `245`.
itab = itab_copy.
DELETE itab WHERE oref IS NOT INSTANCE OF cl_system_uuid.
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `13`.
itab = itab_copy.
dynamic_where_cond = `num > 20`.
DELETE itab WHERE (dynamic_where_cond).
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `123`.
itab = itab_copy.
dynamic_where_cond_tab = VALUE string_table( ( `num > 20` )
( `AND` )
( `id > 4` ) ).
DELETE itab WHERE (dynamic_where_cond_tab).
+
+ ASSERT REDUCE string( INIT string = ``
+ FOR IN itab
+ NEXT string &&= -id ) = `1234`.
itab = itab_copy.
*&---------------------------------------------------------------------*
@@ -1487,99 +1643,99 @@ CLASS zcl_demo_abap IMPLEMENTATION.
*&---------------------------------------------------------------------*
READ TABLE itab INTO DATA(line) WHERE num > 20.
- DATA(tabix) = sy-tabix.
+ ASSERT sy-tabix = 4.
"The following statement issues a warning, which can be suppressed by a
"pragma. For better performance, the WHERE clause should be replaced by
"a key specification with a simple component or operand pair list.
READ TABLE itab INTO line WHERE num = 0 ##read_where_ok.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
READ TABLE itab INTO line WITH KEY num = 0.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
READ TABLE itab INTO line WHERE num > 5 AND id >= 3.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 4.
READ TABLE itab INTO line WHERE NOT num = 0.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
READ TABLE itab INTO line WHERE ( id < 5 AND num > 10 ) AND text = `abc`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
"contains only
READ TABLE itab INTO line WHERE text CO `abc`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
"contains not only
READ TABLE itab INTO line WHERE text CN `abc`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 3.
"contains string
READ TABLE itab INTO line WHERE text CS `ef`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 3.
"contains no string
READ TABLE itab INTO line WHERE text NS `ef`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
"contains any
READ TABLE itab INTO line WHERE text CA `xyzi`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 5.
"contains not any
READ TABLE itab INTO line WHERE text NA `a`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 3.
"conforms to pattern
READ TABLE itab INTO line WHERE text CP `*c`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
"does not conform to pattern
READ TABLE itab INTO line WHERE text NA `*c`.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 3.
READ TABLE itab INTO line WHERE num BETWEEN 5 AND 45.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
READ TABLE itab INTO line WHERE num NOT BETWEEN 5 AND 45.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
rangestab = VALUE #( ( sign = `I` option = `BT` low = 5 high = 45 ) ).
READ TABLE itab INTO line WHERE num IN rangestab.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
"Same as above. Without the pragma, a warning is issued. It is
"recommended that you specify a key and a component or operand
"pair list.
READ TABLE itab INTO line WHERE num IS INITIAL ##read_where_ok.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
READ TABLE itab INTO line WHERE num IS NOT INITIAL.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
READ TABLE itab INTO line WHERE ref IS BOUND.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
READ TABLE itab INTO line WHERE ref IS NOT BOUND.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
READ TABLE itab INTO line WHERE oref IS INSTANCE OF cl_system_uuid.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 1.
READ TABLE itab INTO line WHERE oref IS NOT INSTANCE OF cl_system_uuid.
- tabix = sy-tabix.
+ ASSERT sy-tabix = 2.
dynamic_where_cond = `num > 20`.
READ TABLE itab INTO line WHERE (dynamic_where_cond).
- tabix = sy-tabix.
+ ASSERT sy-tabix = 4.
dynamic_where_cond_tab = VALUE string_table( ( `num > 20` )
( `AND` )
( `id > 4` ) ).
READ TABLE itab INTO line WHERE (dynamic_where_cond_tab).
- tabix = sy-tabix.
+ ASSERT sy-tabix = 5.
*&---------------------------------------------------------------------*
*& FILTER constructor operator
@@ -1692,7 +1848,7 @@ CLASS zcl_demo_abap IMPLEMENTATION.
DATA(it20) = VALUE int_tab_type( FOR w IN itab WHERE ( ref IS BOUND ) ( w-id ) ).
DATA(it21) = VALUE int_tab_type( FOR w IN itab WHERE ( ref IS NOT BOUND ) ( w-id ) ).
DATA(it22) = VALUE int_tab_type( FOR w IN itab WHERE ( oref IS INSTANCE OF cl_system_uuid ) ( w-id ) ).
- DATA(it23) = VALUE int_tab_type( FOR w IN itab WHERE ( oref IS NOT INSTANCE OF cl_system_uuid ) ( w-id ) ).
+ DATA(it23) = VALUE int_tab_type( FOR w IN itab WHERE ( oref IS NOT INSTANCE OF cl_system_uuid ) ( w-id ) ).
dynamic_where_cond = `num > 20`.
DATA(it24) = VALUE int_tab_type( FOR w IN itab WHERE (dynamic_where_cond) ( w-id ) ).
dynamic_where_cond_tab = VALUE string_table( ( `num > 20` )