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

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

    Extensions

  • BuildTask einrichten:

    Strg-Shift-B

    Extensions

    -> 'No task to run found. Configure build task...' auswählen

    Extensions

    -> 'Create task.json file from template' auswählen

    Extensions

    -> '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: Extensions

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: 16.04.2024 08:43:49 (erstmals erstellt 16.12.2020)