Testumgebung
Um Scriban-Skripte schneller anpassen zu können, ist es oftmals sinnvoll, diese außerhalb der cardo-Umgebung und damit entkoppelt vom (möglicherweise kompliziert aufzurufenden) Kontext in cardo zu entwickeln.
Für diesen Zweck kann man sich mit wenigen Schritten eine Testumgebung einrichten, welche aus folgenden Bestandteilen besteht:
- VisualStudio Code als Editor
- Scriban-Erweiterung für VS-Code
- ein Tool von IDU zur
- nötige Eingangsparameter als ein spezielles Parameter-File
VisualStudio-Code
herunterladen und installieren: VisualStudio-Code
Scriban Extension installieren:
Arbeitsprojekt für VSCode
lokales Verzeichnis z.B. D:\ScribanWorkspace anlegen
darunter ein Unterverzeichnis 'ScribanWorkspace\out' anlegen
und ein weiteres Verzeichnis 'ScribanWorkspace\tools' anlegen, in welches die von IDU auf Nachfrage erhältliche IduIT.PiB.Tools.exe (+ Dlls) abgelegt wird
VSCode öffnen und dort das Arbeitsverzeichnis (bei mir D:\ScribanWorkspace) öffnen
BuildTask einrichten:
Strg-Shift-B
-> 'No task to run found. Configure build task...' auswählen
-> 'Create task.json file from template' auswählen
-> 'Others' auswählen
es wurde eine task.json-Datei angelegt, diese jetzt bearbeiten und folgenden Inhalt komplett übernehmen
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "D:\\IduIT\\Bins\\IduIT.PiB.Tools\\IduIT.PiB.Tools.exe '${file}' HTML,MD \"http://localhost:8287/iwan/\" developers '${workspaceFolder}\\out'",
"problemMatcher": {
"owner": "build",
"fileLocation": [ "relative", "${workspaceFolder}" ],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)*",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Wenn Iwan nicht lokal läuft, muss in obiger tasks.json noch 'localhost:8287' durch die korrekte Adresse Ihres cardo-Servers ausgetauscht werden. Beachten Sie auch, dass von Ihrem Entwicklungsrechner der Iwan dann Firewall-technisch erreichbar ist.
- die Verzeichnisstruktur sieht jetzt so aus:
Der Pfad zur IduIT.PiB.Tools.exe (Property command) muss noch entsprechend dem Ordner angepasst werden, in welchen die Tools (IduIT.PiB.Tools.exe + Dlls) kopiert wurden.
Scriban-Skript öffnen
Jetzt kann
- per 'Open File' eine beliebige Datei direkt an ihrem Originalstandort bearbeitet werden
- oder per DragAndDrop eine Kopie der Datei in den ScribanWorkspace kopiert werden (muss nach der Bearbeitung zurück kopiert werden)
Scriban-Skript ausführen/testen
- Aktuell geöffnetes Skript kann per Strg-Shift-B ausgeführt werden
- das Ergebnis ist im Unterordner 'out' des ScribanWorkspace als html-Datei zu finden
- Skriptfehler werden im unteren Bereich des VSCode angezeigt
Eingangsparameter per json-Datei beifügen
Normalerweise werden aus der cardo-Umgebung oder Fachanwendung entsprechende Eingangsparameter direkt an die Scriban-Engine übergeben. Dies kann hier über das Erstellen einer json-Datei simuliert werden:
- neue Datei [NameDerSkriptdatei].json im selben Verzeichnis anlegen, in welchem das Skript liegt
Wird im Scriban-Skript z.B. folgender Parameter verwendet:
#Stellungnahme erstellt von: {{BO.Me.RealName}}
In dieser Datei Eingangsparameter im JSON-Format folgendermaßen definieren:
{
"PibObject": {
"Location": {
"ExtendedWellknownText": "SRID=25833;LINESTRING(459744.07389639 5670492.41874176,459862.16182804 5670189.39801706)"
}
},
"Me": {
"RealName": "Stefan"
}
}
Alle in der Datei definierten Parameter können im Scriban-Skript über das fest vorgegebene Objekt 'BO' (BusinessObject) angesprochen werden.
Der oben auch definierte Parameter ExtendedWellknownText könnte z.B. folgendermaßen verwendet werden:
bboxBauvorhaben = uxGeo.BoundingBoxFromGeom (uxGeo.GeometryFromString BO.PibObject.Location.ExtendedWellknownText) buffer:200;
CSS per css-Datei beifügen
Normalerweise wird aus der cardo-Umgebung oder Fachanwendung entsprechendes CSS direkt an die Scriban-Engine übergeben. Dies kann hier über das Erstellen einer css-Datei simuliert werden:
- neue Datei [NameDerSkriptdatei].css im selben Verzeichnis anlegen, in welchem das Skript liegt
Zuletzt geändert: 02.05.2024 16:25:25 (erstmals erstellt 16.12.2020)