Automatisch compilieren
Im ersten Schritt wollen wir nur nach der Code-Generierung die Compilierung automatisch starten. In den bisherigen Beispielen wurde dazu noch manuell die Skript-Datei !CompileAndRun.bat gestartet, siehe Cs/C#-Test ausführen.
Im letzten Kapitel wurde bereits eine erste Version der Datei Project.ini erläutert:
D:\Projekte\LF‑ET-Demo\Cs\Project.ini
ide.cs=true
ide.cs.procedure.file=procedure.bat
ide.cs.procedure.args=${project.drive} "${src.folder}" ${src.name} ${codetype}
Jetzt muss noch die Skript-Datei procedure.bat angelegt werden. Für unsere Beispiele speichern wir diese ebenfalls im selben Ordner wie die Entscheidungstabelle:
D:\Projekte\LF‑ET-Demo\Cs\procedure.bat
@echo off
set projectDrive=%1
set srcFolder=%2
set srcName=%3
set codetype=%4
if not %codetype%==Application goto exitok
%projectDrive%
cd %srcFolder%
call ..\ConfigCs.bat
echo.
echo * Compile %srcName%.cs *
csc.exe /out:%srcName%Test.exe %srcName%.cs
if errorlevel 1 goto err
:exitok
echo * Folgeverarbeitung erfolgreich beendet *
exit
:err
echo * Fehler in der Folgeverarbeitung * >&2
| Skript-Eintrag | Bedeutung/Wirkung |
|---|---|
@echo off set projectDrive=%1 set srcFolder=%2 set srcName=%3 set codetype=%4 |
Deaktivierung aller Prompts auf der Konsole. Übername der Aufruf-Parameter in sprechend benannte Variablen. |
if not %codetype%==Application goto exitok |
Wenn codetype nicht Application, dann keine weitere Verarbeitung. |
%projectDrive% cd %srcFolder% |
Setzen der Arbeitsumgebung (Laufwerk und Ordner). |
call ..\ConfigCs.bat |
Aufruf der 'zentralen' Anpassung von Umgebungsvariablen an die aktuelle Systemumgebung, siehe auch Kapitel: Cs/C#-Test ausführen |
echo. echo * Compile %srcName%.cs * csc.exe /out:%srcName%Test.exe %srcName%.cs if errorlevel 1 goto err |
Leerzeile und Compile-Info auf der Konsole ausgeben, dann die Compilierung aller C#-Sourcen starten. Im Fehlerfalle (errorlevel ist größer oder gleich 1) Sprung zur Fehlerausgabe. |
:exitok echo * Folgeverarbeitung erfolgreich beendet * exit |
Sprungmarke für reguläres Ende: Erfolgsmeldung auf der Konsole ausgeben und das Skript beenden. |
:err echo * Fehler in der Folgeverarbeitung * >&2 |
Sprungmarke für den Fehlerfall: Ausgabe der Fehlermeldung auf dem Fehlerkanal (>&2) und Skript-Ende. |
Wird in LF‑ET nun die Cs/C#-Generierung gestartet, dann passiert folgendes:
-
LF‑ET stellt fest, dass eine Datei Project.ini existiert
-
Die Datei Project.ini wird ausgewertet und LF‑ET stellt fest, dass für C# eine Folgeverarbeitung definiert ist
-
Die C#-Source-Datei zur Entscheidungstabelle wird generiert
-
Die Skript-Datei procedure.bat wird mit den dynamisch aufbereiteten Parametern aufgerufen
Alle Vorgänge, auch die Konsol-Ausgaben der Skript-Datei, werden im Protokoll-Bildschirm dargestellt, u.a. sieht man hier auch ganz genau die tatsächlich an das Skript procedure.bat übergebenen Parameter:

Sollten Fehler auftreten (wir haben zur Demonstration im Entscheidungstabellen-Prolog public class in bublic class geändert), werden Informationen dazu ebenfalls angezeigt und der Fortschrittsbalken wird rot:

Wichtig: Der hier definierte Mechanismus gilt automatisch für alle Entscheidungstabellen im Wirkungsbereich der Konfigurationsdatei Project.ini. Wirkungsbereich: siehe Die Suche nach INI-Dateien.
Auf diese Weise lassen sich beliebig komplexe Folgeprozesse für die Generierung realisieren.
Weiterführende Informationen: