StandardKopplung

Aus GeoMediaKommunal
Zur Navigation springen Zur Suche springen

Einführung

Dieses Dokument beschreibt wie Fremdprogramme mit GMSC Kommunal gekoppelt werden können, d.h. wie Fremdprogramme GMSC Kommunal steuern können.

Start des GMSC Kommunal-Clients

Der GMSC Kommunal-Client wird mittels Java-Webstart gestartet. Das kann über die Kommandozeile mit Hilfe des Programms „javaws“ gemacht werden, welches bei jeder Java-Installation dabei ist. Alternativ kann die Start-URL auch im Web-Browser eingegeben werden. Der Start bei javaws sieht wie folgt aus:

javaws http://gmsckserver:8081/gmsck/gmsck.jnlp?username=xxx&password=xxx&workspace=Mappenname&bookmark=Arbeitssitzungsname

(ab Version 2018: hnlp://gmsckserver:18091/gmsck.hnlp?username=xxx&password=xxx&workspace=Mappenname&bookmark=Arbeitssitzungsname)

Die URL-Parameter sind optional, d.h. mit http://gmsckserver.de:8081/gmsck/gmsck.jnlp bzw. hnlp://gmsckserver:18091/gmsck.hnlp erhält man die normale GMSC Kommunal -Anmeldung.

Folgende URL-Parameter können angegeben werden:

username Nutzername
password Passwort
workspace Name der Mappe
bookmark Name der Arbeitssitzung
showExplorer True oder false – Explorer anzeigen oder nicht
showSearchCenter True oder false – Suchcenter anzeigen oder nicht
showMap True oder false – Karte anzeigen oder nicht
showOverviewMap True oder false – Übersichtskarte anzeigen oder nicht, ab Version 2014.1
remoteControlPort Gibt den Port an, auf dem diese Kopplungsschnittstelle bedient werden kann, Standard ist 18092

Zur Prüfung, ob der Client läuft, kann die URL http://localhost:18092/remote (ab Version 2018: http://localhost:18091/remote) aufgerufen werden. Wenn ein Verbindungsaufbau möglich ist, dann läuft GMSC Kommunal.

Ab Version 10.6.1 steht ausserdem ein Hilfsprogramm zur Verfügung, welches Fremdprogramme aufrufen können, um GMSC Kommunal zu starten. Dieses Programm prüft ob der Client schon läuft, falls nicht, wird der Client gestartet und solange gewartet bis GMSC Kommunal vollständig gestartet ist. Dieses Programm kann wie folgt aufgerufen werden:

javaw –jar <GMSC Kommunal Verzeichnis>\Tools\GMKStarter.jar <GMSC Kommunal Client URL>

Voraussetzung ist, dass sich die Datei GMKStarter.jar in einem für die Client-Rechner zugänglichen Verzeichnis befindet. Bei der Installation vom GMSC Kommunal wird die Datei unter <GMSC Kommunal Installations Verzeichnis>\Tools abgelegt, also z.B. unter c:\Program Files\Intergraph\GeoMedia Kommunal\Tools\.

Steuerung des GMSC Kommunal Clients

Der Client kann über eine HTTP-Schnittstelle gesteuert werden, d.h. durch den Aufruf einer URL. Die URL folgt grundsätzlich folgendem Schema:

http://localhost:18092/remote?command=<command>&<parameter>=...

Folgende Kommandos sind möglich:

showElements

Markiert eine Liste von Objekten in der Karte und zoomt ggf. dorthin. Wird nur ein Objekt angegeben und dieses Objekt exisitiert noch nicht, so kann das Objekt digitalisiert werden. Dazu muss der Nutzer in der Kartentoolbar auf den Reiter „Werkzeuge“ gehen und dort den letzten Button (Objekt digitalisieren) klicken. Die ID des neuen Objektes wird nach dem Digitalisieren automatisch übernommen.

URL-Parameter Wert Beschreibung
command showElements
theme FL, BP etc. Das Themenkürzel der Objekte, die angezeigt werden sollen
ids ID1,ID2,... Komma getrennte Liste der Objekt-IDs
zoom true, false Gibt neben der Markierung an ob auch zu den Objekten gezoomt werden soll.
markMode REPLACE, ADD, SUBSTRACT Gibt an ob die bestehende Markierung ersetzt, erweitert oder verringert werden soll. Standardverhalten ist REPLACE
createIfNotExists true, false Falls true, wird automatisch in den Digitalisiermodus gewechselt, wenn das Objekt nicht vorhanden ist.

(Seit Version 10.6.1)


Beispiel: http://localhost:18092/remote?command=showElements&theme=FL&ids=FL2001,FL2002&zoom=true&markMode=ADD

insertElement

Mit diesem Kommando kann man einen neues Objekt in GMSC-K anlegen. Dabei wird GMSC-K automatisch in den Konstruktionsmodus versetzt und die Kartegröße maximiert. Die übergebene ID und die Datenfelder werden dem Objekt zugewiesen.

URL-Parameter Wert Beschreibung
Command insertElement
Theme FL, BP etc. Das Themenkürzel der Objekte, die angezeigt werden sollen
Id ID1 Wert des ID-Feldes des neuen Objektes
Feldname1 Wert1
Feldname2 Wert2
... ... Eine offene Parameterliste der Felder, die geändert werden sollen (mit ihrem neuen Wert). Der Feldname entspricht dem Feldnamen der Tabelle in GMSC-K, z.B. KEY01

Beispiel: http://localhost:18092/remote?command=insertElement&theme=FL&id=FL2001&KEY01=Wert&KEY02=Wert

unmarkAllElements

Löscht alle Markierungen in der Karte.

URL-Parameter Wert Beschreibung
Command unmarkAllElements

Beispiel: http://localhost:18092/remote?command=unmarkAllElements

deleteElements

Löscht die gegebenen Objekte.

URL-Parameter Wert Beschreibung
command deleteElements
theme FL, BP etc. Das Themenkürzel der Objekte, die gelöscht werden sollen
ids ID1,ID2,... Komma getrennte Liste der Objekt-IDs

Beispiel: http://localhost:18092/remote?command=deleteElements&theme=FL&ids=FL2001,FL2002

updateElement

Setzt Werte am gegebenen Objekt.

command updateElement
URL-Parameter Wert Beschreibung
command updateElement
theme FL, BP etc. Themenkürzel der Objekte, die geändert werden sollen.
id ID1 Objekt-ID des zu ändernden Objektes
Feldname1 Wert1
Feldname2 Wert2
... ... Eine offene Parameterliste der Felder, die geändert werden sollen (mit ihrem neuen Wert). Der Feldname entspricht dem Feldnamen der Tabelle in GMSC-K, z.B. KEY01

Beispiel: http://localhost:18092/remote?command=updateElement&theme=FL&id=FL2001&KEY01=Wert&KEY02=Wert

zoomToCoordinate

Mit diesem Kommando kann man unter Angabe eines Maßstabes zu eine bestimmten Koordinate zoomen.

URL-Parameter Wert Beschreibung
action zoomToCoordinate
x 500.00 Rechtswert
y 500.00 Hochwert
scale 2000 Maßstab

Beispiel: http://localhost:18092/invoke?action=zoomToCoordinate&x=2349.01&y=34788.9&scale=2000

ping

Mit diesem Kommando kann geprüft werden, ob der GMSC-K-Client gestartet ist. Wenn er noch nicht gestartet ist, schlägt der Verbindungsaufbau grundsätzlich fehl, ansonsten liefert das Kommando 'true' als Antwort.

URL-Parameter Wert Beschreibung
action ping

Beispiel: http://localhost:18092/invoke?action=ping

Standardkopplung

Dateiaustausch

GMSC Kommunal verfügt über eine Standardkopplung zu Fremdprogrammen, bei der die Kopplung über den Austausch von Textdateien arbeitet. Dabei schreiben sowohl GMSC Kommunal als auch das Fremdprogramm Objektschlüssel in eine Datei, und die jeweilige Gegenseite bringt die zugehörigen Objekte zu Anzeige.

Um diese Kopplung einzurichten öffnet man im GMSC Kommunal den Adminer und öffnet dort das Kontextmenü des Punktes „Kopplungen“. Dort wählt man „Neu->Datensatz“. Im Editor rechts trägt man folgendes ein:

  • Bezeichnung: ein Name
  • Typ: „Standard“
  • Programmaufruf: ggf. ein ausführbares Programm inkl. Parameter, mit welchem das Fremdprogramm gesteuert werden kann
  • GIS -> Programm-Datei: Ein Datei auf dem Client-Rechner, in welche GMSC Kommunal die Objektschlüssel schreibt, welche im Fremdprogramm angezeigt werden sollen, z.B. c:\temp\gis2app.txt
  • Programm-Datei -> GIS: Ein Datei auf dem Client-Rechner, in welche das Fremdprogramm die Objektschlüssel schreibt, welche in der Karte angezeigt werden sollen, z.B. c:\temp\app2gis.txt

In den Pfadangaben der Dateien werden folgende Platzhalter unterstützt:

  • %APPDATA% -> Windows-APPDATA-Ordner
  • %user.home% -> Windows-Nutzer-Ordner
  • %user.name% -> Windows-Nutzername
  • %user.profile% -> Windows-USERPROFILE-Ordner
  • %userId% -> GMSC-K-Nutzername
  • %sessionid% -> Citrix-Session-ID
  • %TEMP% -> Windows-Temp-Ordner

GMSC Kommunal prüft ständig, ob sich die Textdatei „Programm-Datei -> GIS“ geändert hat und wenn das der Fall ist, wird zu den Objekten gezoomt.

Anschließend wählt man im Explorerbaum eines Projektes eine Sicht aus, die gekoppelt werden soll und zieht sie per Drag&Drop auf den Editor der Kopplung. Es öffnet sich ein neuer Editor „Sichtenzuordnung“, in dem man folgendes einträgt:

  • Keyfeldname: Das Feld der Objektklasse, in welchem der Objektschlüssel steht, auf dessen Basis die Kopplung mit dem Fremdprogramm stattfindet, z.B. der Flurstücksschlüssel.
  • Themen: Hier trägt man ein Themenkürzel ein, welches innerhalb der Kopplung als Objekttypkennzeichen verwendet wird, z.B. „FS“ oder „Flurstuecke“.

Damit ist das Einrichten der Kopplung beendet. Man kann nun aus GMSC Kommunal heraus in der Fremdprogramm verzweigen, in dem man ein Objekt in der Karte oder Tabelle auswählt und dann „Datensatz öffnen“ wählt. Hier hat man dann die Auswahl, ob man die GMSC Kommunal-interne Datensatzanzeige oder das Fremdprogramm verwenden möchte.

Das Format der Austauschdateien sieht wie folgt aus:

<Themenkürzel>
Objektschlüssel_1

Objektschlüssel_n

Also eine Kopfzeile mit dem Themenkürzel und dann durch Zeilenumbruch getrennt eine Liste von Objektschlüsseln.

URL-Aufruf

(ab Version 2020/2022 von 09.03.2023)

Es besteht auch die Möglichkeit ein Fremdprogramm über einen URL-Aufruf zu steuern. Um diese Kopplung einzurichten öffnet man im GMSC Kommunal den Adminer und öffnet dort das Kontextmenü des Punktes „Kopplungen“. Dort wählt man „Neu->Datensatz“. Im Editor rechts trägt man folgendes ein:

  • Bezeichnung: ein Name
  • Typ: „URL“
  • URL: die vom Fremdprogramm vorgegebene URL.

In der URL können folgende Platzhalter benutzt werden:

  • {theme} -> Das Thema bzw. die Objektklasse der Fremdanwendung
  • {ids} -> die IDs der in GMSC-K gewählten Objekte. Welches Feld die ID für das Fremdprogramm enthält, wird in der Sichtenzuordnung der Kopplung definiert.
  • {APPDATA} -> Windows-APPDATA-Ordner
  • {user.home} -> Windows-Nutzer-Ordner
  • {user.name} -> Windows-Nutzername
  • {user.profile} -> Windows-USERPROFILE-Ordner
  • {userId} -> GMSC-K-Nutzername
  • {sessionid} -> Citrix-Session-ID
  • {TEMP} -> Windows-Temp-Ordner

Kopplung XMLAutomate

(ab Version 2020/2022 vom 20.02.2023)

Die Kopplung kann auch durch den Austausch von XML-Dateien anstelle von Textdateien wie bei der Standard-Kopplung durchgeführt werden. Dazu richtet man im Adminer eine Kopplung vom Typ "XMLAutomate" ein. Hier können zusätzlich zu den Ein- und Ausgabedateien auch XSLT-Dateien (https://www.w3.org/TR/xslt-30/) angegeben werden. Diese ermöglichen es beim Export das von GMSC-K produzierte XML in ein für das Fremdprogramm passendes XML umzuwandeln bzw. beim Import das XML-Dokument des Fremdprogramms in das GMSC-K-XML umzuwandeln. Im Folgenden wird das XML für Export und Import beschrieben:

Export


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmlAutomateExport>
    <feature theme="FL" id="001dbac9-1af8-4387-a967-c0c76d5b6949"/>
</xmlAutomateExport>

Import

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmlAutomateImport>
    <!-- auf ein Objekt in der Karte zoomen -->
    <zoom>
        <feature theme="X" id="Z" />
    </zoom>

    <!-- ein neues Objekt anlegen -->
    <insert>
        <feature theme="X" id="Y">
            <attributes>
                <entry>
                    <key>key</key>
                    <value>value</value>
                </entry>
            </attributes>
        </feature>
    </insert>

    <!-- ein Objekt aktualisieren -->
    <update>
        <feature theme="X" id="Y">
            <attributes>
                <entry>
                    <key>key</key>
                    <value>value</value>
                </entry>
            </attributes>
        </feature>
    </update>

    <!-- ein Objekt löschen -->
    <delete>
        <feature theme="X" id="Y" />
    </delete>
</xmlAutomateImport>

Spezielle Kopplungen

Neben der Standard-Kopplung gibt es derzeit spezielle Kopplungen zu folgenden Anwendungen:

  • BEC
  • adKomm (KOB)
  • AFH
  • WebFlur
  • TeraWin
  • TeraFri
  • Kolibri

Die Einrichtung dieser Kopplungen erfolgt analog dem oben beschrieben Schema.