Mit CRTILEOBJ können wahlweise Module oder ILE-Programme oder ILE-Service-Programme erstellt werden.
CRTILEOBJ kann gegenwärtig die folgenden Quellen-Arten verarbeiten:
RPGLEErstellen von Modulen, ILE-Programmen oder ILE-Service-Programmen
SQLRPGLEErstellen von Modulen, ILE-Programmen oder ILE-Service-Programmen
CLLEErstellen von Modulen, ILE-Programmen oder ILE-Service-Programmen
RPGErstellen RPGIII-Programm über CRTRPGPGM
SQLRPGErstellen RPGIII-Programm über CRTSQLRPG
CLPErstellen OPM-Programm über CRTCLPGM
Für ILE-Programme und Service-Programme erfolgt immer eine 2-stufige Compilierung:
- Erstellen Modul über CRTRPGMOD oder CRTCLMOD oder CRTSQLRPGI
- Binden des Moduls in Programm oder Service-Programm über CRTPGM oder CRTSRVPGM
Die Erstellung von Programmen oder Service-Programmen geht davon aus, dass aus einer Quelle ein Modul erstellt wird und nur dieses eine Modul in das Programm oder Service-Programm gebunden wird. Das Binden von mehreren Modulen in ein (Service-)Programm-Objekt ist nicht (direkt) vorgesehen. CRTILEOBJ erlaubt jedoch Module zu generieren und diese automatisch in einem Binderverzeichnis zu hinterlegen. Der Binde-Prozess also CRTPGM oder CRTSRVPGM muss jedoch manuell ausgeführt werden.
Wird ein Modul direkt in ein Programm oder Service-Programm gebunden, wird das Modul nach dem Binden automatisch gelöscht.
In einer Quelle, die in ein Service-Programm umgewandelt werden soll können mehrere interne und exportierte Funktionen hinterlegt sein. In einer Quelle, die in ein Programm umgewandelt werden soll muss eine (lineare oder zyklische) Main-Prozedur vorhanden sein. Daneben können in der Quelle diverse interne Prozeduren hinterlegt sein.
Doppelte exportierte Prozedur- oder Variablen-Namen sind nicht zulässig!
Wird ein Modul oder Service-Programm erstellt, kann dieses automatisch in ein Binderverzeichnis eingetragen werden.
Werden in den zu erstellenden Objekten Prozeduren aus (anderen) Service-Programmen oder Modulen aufgerufen müssen diese Service-Programme oder Module in einem Binderverzeichnis hinterlegt sein. Dieses Binderverzeichnis muss im Compile-Befehl angegeben werden. Werden mehrere Binderverzeichnisse benötigt, müssen diese in den H-Bestimmungen mit Schlüssel-Wort BNDDIR hinterlegt werden. Das Binderverzeichnis QC2LE wird automatisch in den Compile-Befehl integriert.
Bei der Erstellung von Service-Programmen wird automatisch eine Binderquelle erzeugt oder wenn bereits vorhanden aktualisiert. Die Aktualisierung erfolgt nur dann, wenn sich die Anzahl der exportierten Prozeduren verändert hat. Die Signatur wird automatisch generiert. Der vorhergehende Stand wird in der Binderquelle beibehalten. Damit kann ein Service-Programm diverse Signaturen haben, wodurch Signaturverletzungen vermieden werden.
Der Befehl kann in PDM eingebunden werden oder im RDI als User Action hinterlegt werden und aus diesen Umgebungen aufgerufen werden.
RPG Code
Mit CRTILEOBJ können RPG Quellen in fixem Format und/oder freiem Format verarbeitet werden.
Aktuell können zwar freie H, F, D, C und P-Bestimmungen verarbeitet werden, der freie Source Code muss jedoch zwischen Position 8 und 80 hinterlegt werden.
Full-Free wird mit der nächsten Erweiterung unterstützt werden.