Mit dem Modul IL2OUT können Objekte in eine INTERLIS 2
.xtf
Datei geschrieben werden. Der Modul
interpretiert neben der .xtf Datei auch die zugehörigen INTERLIS 2
Datenmodelle (.ili Dateien). Jedes Objekt wird von IL2OUT auf seine
Konsistenz gegenüber den INTERLIS 2 Datenmodellen überprüft. Falls z.B.
zwingende Attribute vergessen oder falsche Attributwerte gefunden
werden, werden entsprechende Fehlermeldungen ausgegeben.
IL2OUT wird mit:
|INCL \script\il2out.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map
IL2OUT_PARAM
für den Modul IL2OUT gesetzt
werden:
Parameter | req/opt | Beschreibung |
FORCE_COMPILE | r | Falls dieser Parameter auf ON
(Default = OFF ) gesetzt wird, werden die
INTERLIS Datenmodelle jedes mal mit dem INTERLIS 2.2
Compiler analysiert. Falls die Option auf
OFF gesetzt ist, wird zuerst
nachgeschaut, ob bereits eine vorcompilierte Version des
Modells existiert (.ilo und .ilp Datei). Das Laden von
vorcompilierten Modelldateien ist viel schneller möglich,
daher ist die Option normalerweise auf
OFF gesetzt. |
MODEL_DIR | o | Normalerweise werden Modelldateien (.ili) zuerst in ICS_DIR\user\models2 gesucht. Mit der Option MODEL_DIR kann man einen alternativen (User-)Suchpfad angeben (Default = OFF). |
MODELS | r | Modelldateien als kommaseparierte Liste (z.B.
Units.ili,Time.ili,DM01AVCH24D.ili ). Die
Modelldateien müssen in der korrekten Reihenfolge für den
INTERLIS 2 Compiler angegeben werden. Alternativ kann auch
der Name einer Option angegeben werden, welche den
Dateinamen einer .xtf Datei enthält (z.B.
OPT.input ). |
STATISTICS | o | Objektstatistik am Ende der .log Datei ausgeben
(Default = OFF ). |
DEBUG | o | ON oder OFF .
Debugmodus ein oder aus (Default =
OFF ). |
XML_ID_CHECK | o | ON , OFF oder
undefiniert . (Default undefiniert ). INTERLIS
TID's müssen einem XML Type ID entsprechen. Siehe dazu
http://www.w3.org/TR/REC-xml > 3.3.1 Attribute Types >
Validity constraint: ID. Ist dieser Parameter undefiniert,
so wird immer das Zeichen x als Prefix dem Wert des TID
vorangestellt, um sicherzustellen, dass die XML-Vorgabe
erfüllt wird. Ist der Parameter mit ON
definiert, wird geprüft, ob der TID bereits ein erlaubtes
Zeichen am Anfang beinhaltet, nur wenn nicht wird ein x als
Prefix dem Wert des TID vorangestellt. Ist der Parameter mit
OFF definiert, wird der Wert des TID
nicht geprüft und nicht verändert. Damit die INTERLIS
Referenzen erhalten beleiben, gelten diesselben Regeln auch
für die Werte der Referenzattribute. |
Der Modul IL2OUT verlangt pro OUT-Objekt folgende Systemkomponenten:
Komponente | req/opt | Beschreibung |
OUT.MODEL(s) | r | Model des OUT-Objekts. |
OUT.TOPIC(s) | r | Topic des OUT-Objekt |
OUT.CLASS(s) | r | Table des OUT-Objekts. |
OUT.TID(s) | r | Transferidentifikation des OUT-Objekts . |
Die restlichen Objektkomponenten sind abhängig von der
dazughörigen INTERLIS Klasse (s.a. OUT.MODEL
,
OUT.TOPIC
bzw. OUT.CLASS
). Alle
INTERLIS Attribute werden als Komponenten des OUT-Objekts mit dem
gleichem Namen erwartet. Die ICS Datentypen werden wie folgt auf
INTERLIS Datentypen abgebildet:
INTERLIS Datentyp | ICS Datentyp |
NUMBER | real oder int. |
TEXT | string. |
ENUMERATION | string. |
STRUCTURE | map. Das XML-Tag der Struktur kann dem Label der Map
entnommen werden (mit GET_LABEL ). |
LIST | list of map. Die XML-Tags der Sturkturelemente können den Labeln der Maps entnommen werden. |
BAG | list of map. Die XML-Tags der Strukturelemente können den Labeln der Maps entnommen werden. |
ROLE | link. |
Prozedur | IL2OUT_OPEN ! [s output][] |
Beschreibung | Erzeugt eine neue INTERLIS 2 Datei <output> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel | 'c:\test.xtf' IL2OUT_OPEN |
Prozedur | IL2OUT_WRITE_OBJECT ! [][] |
Beschreibung | Schreibt das aktuelle OUT-Objekt in die geöffnete INTERLIS 2 Datei. |
Beispiel | IL2OUT_WRITE_OBJECT |
Prozedur | IL2OUT_CREATE_LINK ! [s key,i orderpos][] |
Beschreibung | Erzeugt einen Link für
das Schreiben einer Rolle. In der Outputdatei wird für die
Rolle |
Beispiel | '123' 0 IL2OUT_CREATE_LINK => OUT.Entstehung_von |
Prozedur | IL2OUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel | IL2OUT_CLOSE |
! Diese ICS Konfiguration kopiert alle von IL2OUT ! gelesenen Objekte mit IL2OUT in in eine .xtf Datei. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .xtf Input File' FILE_FILTER => xtf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .xtf Output File' FILE_FILTER => xtf FILE_EXISTS => FALSE OPT => output END_MAP MAP IL2IN_PARAM INPUT_EXTENSION => xtf MODELS => XTF ! get from .xtf file FORCE_COMPILE => OFF TRACE => OFF STATISTICS => ON END_MAP MAP IL2OUT_PARAM OUTPUT_EXTENSION => xtf MODELS => OPT.input ! same as input FORCE_COMPILE => OFF TRACE => OFF STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => IL2IN,OPT.input END_MAP MAP INOUT I1 => COPY_INOUT0 END_MAP |INCL \script\util.lib |INCL \script\il2in.mod |INCL \script\il2out.mod PROCEDURE COPY_INOUT0 &IN &OUT MAPCOPY IL2OUT_WRITE_OBJECT END_PROCEDURE |INCL \script\run1.prg