Before starting the application, you must create and compile program units. The program units implement the application logic. Further information can be found in the openUTM manual „Programming Applications with KDCS”.
To ensure that the program units will run under openUTM, the UTM application program must be created as follows:
assemble the ROOT table source generated by the KDCDEF generation tool
link the ROOT system modules and the language-specific runtime systems to a start LLM; you can also incorporate other application-specific components, such as UTM message modules, format libraries, and program units into the start LLM
The ROOT table module can be loaded dynamically when starting the application.
The diagram below shows the individual steps involved in generating a UTM application program.
Figure 2: Overview: generating and starting the UTM application program with dynamic loading
The same as other parts of the application, the ROOT tables can also be incorporated into the application program statically, as shown in the diagram below.
Figure 3: Overview: generating the UTM application program without dynamic loading
Main routine KDCROOT
Based on the ROOT system modules supplied with openUTM, the main routine KDCROOT is generated as part of the application program during the link procedure. When running the application, KDCROOT acts as the main control program. Its tasks include:
linking program units and UTM system functions
coordinating the execution of program units in different programming languages
connecting to databases
interacting with format handling systems
KDCROOT also contains the variable data and message areas. Further information on the main routine KDCROOT can be found in the openUTM manual „Programming Applications with KDCS”.
The default name for the ROOT table source is ROOT.SRC.ASSEMB.rootname. The source for the ROOT tables generated by KDCDEF must be assembled, e.g. using ASSEMBH-GEN. The ROOT system modules associated with the application program are stored in the SYSLNK.UTM.070 module library.