Basic Features of CTL
Easy scripting language
CloverDX transformation language (CTL) is a very simple scripting language that can serve for writing transformations in a great number of CloverDX components.
Although Java can be used in all of these components, working with CTL is much easier.
CTL2 is strongly typed. Each variable has its data type. The declarations of container types contain the data types as well.
Arbitrary Order of Code Parts
Declare your variable where you need them.
CTL2 allows to declare variables and functions in any place of the code. Only one condition must be fulfilled - each variable and function must be declared before it is used.
CTL2 also allows to define mapping in any place of the transformation and be followed by other code.
Parts of CTL2 code may be interspersed almost arbitrarily.
Almost as fast as Java
Transformations written in CTL are almost as fast as those written in Java.
Source code of CTL2 can even be compiled into Java class.
CTL2 code can be transformed into pure Java which greatly increases speed of the transformation. This is called a "compiled mode" and CloverDX can do it for you transparently each time you run a graph with CTL2 code in it. The transformation into compiled form is done internally, so you do not need to be Java programmer to use it.
To enable the CTL2 compiled mode, type
//#CTL2:COMPILEat the beginning of the code.
Each time you use a component with CTL2 transform and explicitly set it to work in compiled mode, CloverDX produces an in-memory Java code from your CTL and runs the Java natively - giving you a great speed increase.
Used in many CloverDX components
CTL2 can be used in all of the components whose overview is provided in Transformations Overview, except in JMSReader and JMSWriter.
Used even without knowledge of Java
Even without any knowledge of Java, the user can write the code in CTL2.
Access to Graph Elements (Lookups, Sequences, …)
A strict type checking is further extended to validation of lookup tables and sequences access. For lookup tables, the actual arguments of lookup operation are validated against lookup table keys, while using the record returned by table in further type checked.
Sequences support three possible return types explicitly set by the user: