ABAP Keyword Documentation → ABAP - Reference → Data Interfaces and Communication Interfaces → ABAP and XML → Transformations for XML → ST - Simple Transformations → ST - Reusing ST Programs
ST - tt:include, Including Transformations
Other versions: 7.31 | 7.40 | 7.54
Syntax
<tt:include name="trafo" [templates="tmpl1 tmpl2 ..."] />
Effect
The statement tt:include can be used to embed a different ST program trafo in an ST program: This statement makes the templates and type definitions of the included program usable in the current ST program. The ST program trafo must exist actively in the repository. trafo is not case-sensitive.
The ST command tt:include can be executed in an ST program only outside of templates. In the default setting, it includes all named templates of transformation trafo at transformation level (unnamed main templates are not included). Make sure that no namespace conflicts occur; a transformation is not allowed to include itself.
If the attribute templates is specified, only the templates tmpl1 tmpl2 specified there and the templates called by them using tt:apply are included.
Note
Only those transformations can be included (in another transformation) whose named templates are not in conflict with the existing named templates. tt:apply can be used to use the included named templates as subtemplates in "including" templates.
Example
The ST program below corresponds to the example from Subtemplates Without Their Own Data Roots, except that the subtemplate of an included ST program is used.
xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:template name="TEMP_MAIN">
<week>
<day1 tt:ref="ROOT.DAY1">
<tt:apply name="TEMP_SUB" />
</day1>
<day2 tt:ref="ROOT.DAY2">
<tt:apply name="TEMP_SUB" />
</day2>
...
</week>
</tt:template>
<tt:include name="..." />
</tt:transform>
The statement tt:include could also be placed before the main template. The included ST program can be implemented as follows:
xmlns:tt="http://www.sap.com/transformation-templates">
<tt:template>
...
</tt:template>
<tt:template name="TEMP_SUB">
<name>
<tt:value ref="$ref.name" />
</name>
<work>
<tt:value ref="$ref.work" />
</work>
</tt:template>
</tt:transform>