Show TOC Anfang des Inhaltsbereichs

Syntaxdokumentation Bedingungen  Dokument im Navigationsbaum lokalisieren

Für den Inhalt cond des Attributs [s-|d-]check eines Elements tt:cond oder tt:cond-var können folgende Bedingungen angegeben werden. Die Operanden der Bedingungen können entweder Datenknoten (nicht in tt:cond-var), Variablen oder Werte sein.

·        Datenknoten werden in der Form dnode  angegeben.

·        Variablen werden in der Form

var(variable)

angegeben, wobei variable eine Variable oder ein Parameter ist.

·        Werte werden in der Form

value

angegeben, wobei value ein gemäß den Regeln für ABAP-Werte angegebener Wert ist.

Hinweis

Wenn check als Attribut von tt:cond-var angegeben ist, können keine Datenknoten als Operanden angegeben werden.

 

Zustandsabfragen

 

Bedingung

Bedeutung

exist(dnode)

Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden ist.

initial(dnode|var(variable))

Erfüllt, wenn das angebundene ABAP-Datenobjekt inital ist.

not-initial(dnode|var(variable))

Erfüllt, wenn das angebundene ABAP-Datenobjekt nicht inital ist.

 

Hinweis

In tt:cond-var ist die Zustandsabfrage exist nicht möglich.

 

Beispiel

Das Element X wird bei einer Serialisierung nur berücksichtigt, wenn das an ROOT angebundene ABAP-Datenobjekt nicht initial ist.

 

<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">

  <tt:root name="ROOT"/>

  <tt:template>
    <tt:s-cond check="not-initial(ROOT)">
      <X>
        <tt:value ref="ROOT" />
      </X>
    </tt:s-cond>
  </tt:template>

</tt:transform>

 

Vergleiche

Vergleiche werden in der Form

 

dnode|var(variable)|value operator dnode|var(variable)|value

 

angegeben, wobei folgende Operatoren operator möglich sind:

 

Vergleichsoperator

Bedeutung

=

Die Bedingung ist erfüllt, wenn der Wert beider Operanden gleich ist.

!=

Die Bedingung ist erfüllt, wenn der Wert beider Operanden nicht gleich ist.

>, &gt;

Die Bedingung ist erfüllt, wenn der Wert des linken Operanden größer als der Wert des rechten ist.

>=, &gt;=

Die Bedingung ist erfüllt, wenn der Wert des linken Operanden größer als der oder gleich dem Wert des rechten ist.

&lt;

Die Bedingung ist erfüllt, wenn der Wert des linken Operanden kleiner als der Wert des rechten ist.

&lt;=

Die Bedingung ist erfüllt, wenn der Wert des linken Operanden kleiner als der oder gleich dem Wert des rechten ist.

 

Hinweis

Das Zeichen < muss in XML immer durch &lt; dargestellt werden. Das Zeichen > kann dagegen direkt und durch &gt; dargestellt werden.

 

Beispiel

Das Element X wird bei einer Serialisierung nur berücksichtigt, wenn der Wert des an ROOT1 angebundenen ABAP-Datenobjekts kleiner oder gleich dem Wert des an ROOT2 angebundenen ABAP-Datenobjekts ist.

 

<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">

  <tt:root name="ROOT1"/>
  <tt:root name="ROOT2"/>

  <tt:template>
    <tt:ref name="ROOT1">
      <tt:s-cond check="
$ref &lt;= ref('.ROOT2')">
        <X>
          <tt:value/>
        </X>
      </tt:s-cond>
    </tt:ref>
  </tt:template>

</tt:transform>

 

Beachten Sie, dass die Datenwurzel .ROOT2 in der Bedingung nicht direkt angegeben werden kann, sondern nur über ref('.ROOT2').

 

Negation, Verknüpfungen, Klammerungen

Bedingungen können mit not negiert und mit and oder or verknüpft werden, wobei and stärker bindet als or. Das Ergebnis einer solchen Operation ist wieder eine Bedingung.

 

Operation

Bedeutung

not(cond)

Erfüllt, wenn cond nicht erfüllt ist.

cond1 and cond2

Erfüllt wenn cond1 und cond2 beide erfüllt sind.

cond1 or cond2

Erfüllt wenn nicht cond1 und cond2 beide nicht erfüllt sind.

 

Bedingungen können mit runden Klammern ( ) eingeklammert werden, um die Priorisierung zu ändern.

 

Beispiel

Das Element X wird bei einer Serialisierung nur berücksichtigt, wenn der Wert des an ROOT1 angebundenen ABAP-Datenobjekts zwischen den Werten der an ROOT2 und ROOT3 angebundenen ABAP-Datenobjekte liegt.

 

<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">

  <tt:root name="ROOT1"/>
  <tt:root name="ROOT2"/>
  <tt:root name="ROOT3"/>

  <tt:template>
    <tt:ref name="ROOT1">
      <tt:s-cond check="($ref > ref('.ROOT2')) and ($ref &lt; ref('.ROOT3'))">
        <X>
          <tt:value/>
        </X>
      </tt:s-cond>
    </tt:ref>
  </tt:template>

</tt:transform>

 

Beachten Sie, dass die Datenwurzeln .ROOT2 und .ROOT3 in der Bedingung nicht direkt angegeben werden können, sondern nur über ref('.ROOT2') und ref('.ROOT3').

 

Ende des Inhaltsbereichs