Wir haben ein RPG-Programm geschrieben, das für uns das Compiling übernimmt. Im PDM haben wir eine benutzerdefinierte Auswahl erstellt, mit der wir wandeln. Wir wandeln bei uns mit der Auswahl "W3" anstatt mit der Auswahl "14". Bei den benutzerdefinierten Auswahlen kannst du ja jede Menge PDM-Parameter mitgeben. Unsere Auswahl W3 ruft also unser Compileprogramm mit den Parametern Sourcelib, Sourcefile, Sourcemember, Text, Dateiart, usw. auf. Das RPG Programm kann bei uns anhand dieser Parameter erkennen, was für ein Objekt erzeugt werden muss und in welche Lib das Objekt gestellt werden muss. (Wir wandeln mit W3 alle Arten von Programmen (RPGLE, SQLRPGLE, CL, ...) und auch Displayfiles. Unser Wandlungsprogramm baut dann den entsprechenden Wandlungsbefehl als String zusammen (z.b. CRTRPGMOD ...., wenn das geklappt hat, dann CRTPGM usw.). Der String wird dann per QCMDEXC ausgeführt. Über eine Fehlerbezugszahl beim QCMDEXC erkennen wir, ob das Command erfolgreich ausgeführt wurde. Wenn das Wandeln erfolgt ist, senden wir dem User eine Breakmessage über den Erfolg bzw. Misserfolg. Bei Erfolg löschen wir auch eine eventuell vorhandene Spoolfile wieder.

Das zum Prinzip. Unser Wandlungsprogramm macht aber noch viel mehr. Auf jeden Fall bringt die Verwendung eines eigenen Wandlungsprogramms den Vorteil, dass man neben dem reinen Compiliervorgang noch viel mehr selber machen kann. Z.B. erfolgt bei uns nach erfolgreicher Wandlung eine Speicherung des Sources in einer Versionskontrolltabelle. Außerdem füllen wir ein eigenes Repository und wir Erzeugen automatisch Copy Strecken für die Protopypen eines Serviceprogramms. (Mir ist übrigens gar nicht klar, wie man ohne ein eigenes Compile-Programm auskommt: Spätestens beim Erstellen von Serviceprogrammen muss man doch eingreifen, oder?)

Jedenfalls haben wir unsere PDM Wandlungsoption W3 auch im RDi bei den Kompilieroptionen hinterlegt. Bei uns muss sich niemand mehr Gedanken machen, wie er etwas kompiliert. Geht alles immer mit der selben Option.

Dieter