3. Konfigurieren mit ICS

3.1. Einleitung

In den letzten Kapiteln wurde der generelle Aufbau von ICS und die Funktionsweise des RUN1 Algorithmus erklärt. In diesem Kapitel soll nun auf die praktische Arbeit mit den diversen ICS Werkzeugen eingegangen werden.

3.2. Verwendung von Editoren

Die iG/Script Konfigurationsdateien sind ASCII Dateien, welche mit einem beliebigen Texteditor bearbeitet werden können. Wir empfehlen die Verwendung eines Texteditors mit Anzeige- bzw. Suchfunktionen für die Zeilennummer (z.B. PFE, Ultraedit, etc.). Via die Zeilennummer können Fehler in den Skriptdateien leicht gefunden werden.

Für einige Schnittstellen existieren ausserdem spezielle Konfigurationseditoren mit einer graphischen Benutzeroberfläche (GUI), z.B. DBEDIT, DXFEDIT, SHPEDIT, etc. . Nachfolgend ist die Benutzeroberfläche von SHPEDIT dargestellt:

Abbildung 3. Konfigurationseditor SHPEDIT

Konfigurationseditor SHPEDIT

Diese Editoren erzeugen ebenfalls RUN1 kompatible .cfg Dateien, welche auch von Hand (d.h. mit einem Texteditor) nachbearbeitet oder ergänzt werden können. Konsultieren Sie dazu die entsprechenden Benutzerhandbücher.

3.3. Ausführen der Konfigurationen

Für die Ausführung von iG/Script Konfigurationen kann man je nach Anwendungszweck unter vier verschiedenen Runtime Umgebungen auswählen:

ICS for Windows

Eignet sich für das Ausführen von beliebigen iG/Script Konfigurationen unter Windows. Eine detaillierte Beschreibung dieser Oberfläche ist im INTERLIS Tools Benutzerhandbuch enthalten.

ICS for Microstation

Bei ICS for Microstation handelt sich um eine direkt in das CAD Paket Microstation integrierte Version von ICS for Windows. Eine detaillierte Beschreibung dieser Oberfläche ist im INTERLIS Tools Benutzerhandbuch enthalten.

ICS Kommandozeile

ICS Kommandozeilenversion, welche sich vorallem für die automatisierte Verarbeitung von grossen Datenbeständen oder für das Debugging eignet (s.a. nächster Abschnitt). Eine detaillierte Beschreibung dieser Oberfläche ist im INTERLIS Tools Benutzerhandbuch enthalten.

GeoShop

Der GeoShop ist ein universeller Datenserver für das Publizieren, Verteilen und Verkaufen von Geodaten im Intra- oder Internet. Der GeoShop baut auf ICS (bzw. den INTERLIS Tools) auf. iG/Script Programme welche für ICS entwickelt wurden, können auch im GeoShop ausgeführt werden. Das Produkt GeoShop ist in der separaten Dokumentation zum GeoShop beschrieben.

Als Beispiel ist nachfolgend die Benutzeroberfläche ICS for Windows dargestellt:

Abbildung 4. ICS for Windows

ICS for Windows

3.4. Hinweise und Tips

3.4.1. Fehlersuche in ICS Konfigurationen (Debugging)

Auch beim geübtesten ICS Programmierer wird einmal der Fall auftreten, dass eine Konfiguration nicht genau das macht, was er oder sie wollte, bzw. das die Konfiguration mit einer Fehlermeldung abbricht. Bei der Fehlersuche kann man wie folgt vorgehen:

  1. Zuerst sollte man die Fehlermeldung in der Logdatei (normalerweise \data\temp\ics.log) untersuchen. Meist findet man dort einen Hinweis auf die Zeilennummer des Problems in der Skriptdatei.

  2. Mit einem Texteditor kann man dann die entsprechende Stelle im Skript untersuchen. Falls man nicht sofort sieht, wo das Problem liegt (wie z.B. bei einem Syntaxfehler), kann man mit DISPLAY Befehlen versuchen das Problem im Skript genauer einzukreisen. Es ist z.B. folgender Benutzerskript (user.out) geschrieben worden:

    ...
    278 IN.TXT => OUT.TXT
    ...

    Bei der Ausführung des Skripts ist dabei folgender Fehler aufgetreten:

    *** ERROR *** ICSCPU() attribute ROOT.IN.Txt unknown user.out line 278
    STACK
       EMPTY
    END_STACK
    PSTACK
       EMPTY
    END_PSTACK

    Dann sollte man in der Datei user.out vor der Zeile 278 einen DISPLAY Befehl wie folgt einbauen:

    278 DISPLAY IN
    279 IN.TXT => OUT.TXT

    Bei der nächsten Ausführung des Skripts wird dann der Inhalt des IN-Objekts ausgegeben:

    --- MAP IN -------
       Txt -> string(hello, world) refs:1
    --- END MAP IN ---

    Offenbar liegt also das Problem darin, dass die Komponente nicht IN.TXT, sondern IN.Txt heisst, was zum Skriptabbruch führte (in iG/Script ist die Gross- bzw. Kleinschrift von Komponentennamen wesentlich).

    [Anmerkung]

    Für das Debugging eignen sich ausserdem die Methoden ICSCPU.DISPLAY_STACK und ICS.DISP (s.a. iG/Script Benutzer- und Referenzhandbuch).

  3. Das oben beschriebene Verfahren kann aber mühsam sein, wenn man jedesmal den Skript starten und dann diverse Eingaben interaktiv machen muss, bis dann der Skript endlich an der Problemstelle abbricht. Man kann daher die Testläufe automatisieren, indem man mit der ICS Kommandozeile arbeitet und den Skript mit allen notwendigen Parametern aufstartet. Der Skript fragt dann nicht mehr interaktiv nach Parametern (s.a. INTERLIS Tools Benutzerhandbuch für alle möglichen Parameter). Nachfolgend ist ein Beispiel mit der ICS Kommandozeile angegeben:

    ics.exe -script \il2dxf\Grunddatensatz.cfg 
            -input test.itf 
            -output test.dxf

    Bei sehr vielen Parametern kann man ausserdem eine Optionendatei (hier: test.opt) wie folgt anlegen:

    script \il2dxf\Grunddatensatz.cfg
    input test.itf
    output test.dxf
    log c:\test.log
    ...
    etc.

    Die Optionendatei test.opt kann man dann wie folgt anwenden:

    ics.exe -opt test.opt

3.4.2. Batchaufruf von ICS Konfigurationen

Muss man sehr viele Dateien verarbeiten, ist es sinnvoll, eine Batchdatei anzulegen.

Beispiel 5. Batchdatei translate.bat

ICS_DIR\system\bin\ics.exe -script \script\il2dxf\Grunddatensatz.cfg \
                           -input test1.itf -output test1.dxf
ICS_DIR\system\bin\ics.exe -script \script\il2dxf\Grunddatensatz.cfg \
                           -input test2.itf -output test2.dxf
ICS_DIR\system\bin\ics.exe -script \script\il2dxf\Grunddatensatz.cfg \
                           -input test3.itf -output test3.dxf
...
etc.
...
ICS_DIR\system\bin\ics.exe -script \script\il2dxf\Grunddatensatz.cfg \
                           -input testn.itf -output testn.dxf

Die Batchdatei translate.bat kann man dann von der MSDOS Kommandozeile wie folgt aufrufen:

$ translate.bat

Für eine noch höhere Autmatisierung kann man den Batchaufruf ausserdem in einen Systemtask (Geplante Tasks in der Windows-Systemsteuerung) einbetten, welcher dann zu einem bestimmten Zeitpunkt jeweils wieder ausgeführt wird. Konsultieren Sie dazu die entsprechenden Dokumentationen der Windows Betriebssysteme.

Schliesslich steht mit dem GeoShop ein Produkt zur Verfügung mit dem man jeden ICS Script ins Intra- oder Internet stellen kann. Mögliche GeoShop Anwendungen sind:

  • Automatisierte Lieferung von Daten an Dritte via Dateisystem, FTP oder E-Mail.

  • Automatische Verrechnung der Datenbezüge.

  • Visualisierung der Daten im Internet- bzw. Intranet.

  • etc.

Das Produkt GeoShop ist in seperaten Benutzerhandbüchern beschrieben.