Execution Order

Section - Language Reference

SML is a declarative language. This means it is generally not possible to specify or determine the order in which transform statements will be executed, with the Code Generator and Execution System deciding how to perform transformations described in SML.  However Transformation Manager reports to the user the execution order of the transform statements.  This allows projects to be analysed and de-bugged if necessary (see screen shot below).

 

SML contains some procedural constructs, such as variables, IF, CASE, FOR_EACH, and so on. These can be used when the order of statements within a transform is significant.

Transformation Manager may not always be able to guarantee correct results from such use. For example, re-use of a local variable may produce unexpected results, so a warning message is issued.


SML supports three fairly distinct transform styles


It also supports any combination of the above. The actual solution you use depends upon the type of transform problem you are trying solve (combinations of RDBMS, XML and class) and the actual structure of the models. Trees of dependent transforms are generally convenient where the target requires order (for example, XML), but in some cases a few independent transforms will do the work of the entire tree with much less effort.