Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Data Interfaces and Communication Interfaces →  ABAP and XML →  Simple Transformations →  ST - Reusing ST Programs 

ST - tt:call, Calling Transformations

Other versions: 7.31 | 7.40 | 7.54

Syntax


<tt:call transformation="trafo"> 
  [<tt:with-root name="root1" [ref="node1"] />
   <tt:with-root name="root2" [ref="node2"] />
   ...]
  [<tt:with-parameter name="para1"
                      [ref="node1"|val="val1"|var="var1"] />
   <tt:with-parameter name="para2"
                      [ref="node2"|val="val2"|var="var2"] />
   ...]
</tt:call>

Effect

In an ST program, you can use the tt:call statement to call a different ST program trafo, as follows: The ST program trafo must exist actively in the repository. trafo is not case-sensitive.

The ST command tt:with-root bind the data roots root1, root2, ... of the main template of the called transformation to the nodes node1, node2, ... of the current transformation, that is, pass to these data roots the ABAP data objects that are currently bound to the specified nodes. If ref is not specified, the current node of the calling transaction is used.

If formal parameters are declared with tt::parameter in the called ST program, these can be linked to the actual parameters with the ST command tt:with-parameter. As actual parameters, you can use ref to specify data roots, var to specify variables and val to specify values. Depending on the kind of formal parameter, the values of the specified actual parameters are either passed in the call or used when the called ST program ends.


Example

In the ST program below, another ST program is called in a tt:loop loop.

<tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="ROOT"/>
  <tt:template>
    <tab1>
      <tt:loop ref="ROOT">
        <key>
          <tt:value ref="key" />
        </key>
        <tt:call transformation="...">
          <tt:with-root name="ROOT" ref="values"/>
        </tt:call>
      </tt:loop>
    </tab1>
  </tt:template>
</tt:transform>

If the called ST program is implemented as shown below, the transformation has the same function as the example of transforming internal tables.

<tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="ROOT"/>
  <tt:template>
    <tab2>
      <tt:loop ref="ROOT">
        <value>
          <tt:value/>
        </value>
      </tt:loop>
    </tab2>
  </tt:template>
</tt:transform>