Condições complexas

O extrato de arquivo abaixo ilustra as condições aninhadas usando o exemplo da tabela de chave estrangeira:

...

<docreftable tablename="VBAK" classtouse="ZDocRefTable">

<booleancondition logicaloperator="AND">

<condition fieldname="ERDAT#-#ERZET"

logicaloperator="char_creationtimestamp">

<value>yyyyMMdd</value>

<value>HHmmss</value>

</condition>

<condition fieldname="VBTYP" logicaloperator="in">

<value>C</value>

<value>K</value>

</condition>

<booleancondition logicaloperator="OR">

<booleancondition logicaloperator="AND">

<condition fieldname="VKORG" logicaloperator="eq">

<value>1000</value>

</condition>

<condition fieldname="VKBUR" logicaloperator="eq">

<value>0041</value>

</condition>

</booleancondition >

<booleancondition logicaloperator="AND">

<condition fieldname="VKORG" logicaloperator="eq">

<value>2000</value>

</condition>

<condition fieldname="VKBUR" logicaloperator="neq">

<value>0060</value>

</condition>

</booleancondition >

</booleancondition >

</booleancondition >

...

</docreftable>

...

Em termos de lógica proposicional, o extrato de arquivo exibido corresponde à condição seguinte:

ERDAT e ERZET contêm a hora de criação
and
VBTYP é C ou V
and
((VKORG é igual a 1000 and VKBUR é igual a 0041) or (VKORG é igual a 2000 and VKBUR não é igual a 0060)).