Soll eine große Anzahl an Features bearbeitet werden, so ist die Service API zum klassischen Editieren wenig zweckmäßig. Daher bietet WebOffice 10.9 R3 eine Service API zur Massenbearbeitung mittels URL-Parametern an, wobei mit einem Aufruf jeweils nur eine einzige Feature-Class bearbeitet werden kann, welche über den Parameter editlayerid definiert wird. Die zu editierenden Features müssen weiters über dasselbe Schlüsselfeld angesprochen werden, welches mittels des Parameters editkeyfield festgelegt wird.

 

Eine Massenbearbeitung besteht aus zwei Schritten. Zuerst wird für alle editkeyvalue-Parameter überprüft, ob sie schon in der Feature-Class gespeichert sind oder nicht. Für das Erstellen dürfen diese Werte nicht vorhanden sein, fürs Löschen und Updaten müssen sie es dagegen sein. Ist skip_checks=false gesetzt, so wird der Editiervorgang schon an dieser Stelle unterbrochen, falls es entsprechende Probleme gibt. Dieser Schritt kann durch Eingabe des Parameters skip_checks=true übersprungen werden, sodass die übrigen, möglichen Editieraktionen sehr wohl durchgeführt werden. Dadurch kann verhindert werden, dass der gesamte Aufruf mit einem Fehler abgebrochen wird und keine Daten verändert werden, sobald eine Inkonsistenz im Aufruf festgestellt wird.

 

In einem zweiten Schritt erfolgt die tatsächliche Änderung der Daten.

 

Ein großer Vorteil der Verwendung dieser Editierfunktionalität besteht im Unterschied zur klassischen Editierfunktionalität darin, dass für den Fall, dass das Editieren einzelner Features nicht möglich ist, in der Logdatei die fehlgeschlagenen Features einzeln angeführt werden. Außerdem besteht die Möglichkeit, mittels skip_checks=true die möglichen Änderungen auch im Falle von Fehlschlägen bei anderen Änderungen durchzuführen.

 

Im Folgenden stehen die HTTP Abfrage String Parameter, die verwendet werden können, um das Verhalten des WebOffice 10.9 R3 Massenbearbeitungsmoduls zu kontrollieren, wobei die Parameter mit _XX mehrmals vergeben werden können und jede Editieraktion durch Parameter derselben Nummer identifiziert werden kann (z.B. _01).

 

Parameter

Beschreibung

project

Definiert das Projekt, in dem die Massenbearbeitung durchgeführt werden soll

skip_checks

Wird dieser Parameter auf false gesetzt, so wird der Editiervorgang schon an dieser Stelle unterbrochen, falls es entsprechende Probleme gibt. Dieser Schritt kann durch Setzen des Parameters auf true übersprungen werden, sodass die übrigen, möglichen Editieraktionen sehr wohl durchgeführt werden.

editlayerid

Die Editier-Layer werden über den Abgleich mit der Kennung identifiziert, die in den Attributen der externen Layer-ID konfiguriert ist.

editkeyfield

Der Parameter editkeyfield muss den Feldnamen enthalten, um nach dem Namen des Features zu suchen, das editiert werden soll. Die zu editierenden Features müssen alle über dasselbe Schlüsselfeld angesprochen werden.

edit action_XX

Definiert die Editier-Aktion, die verwendet werden soll. Gültige Werte für diesen Parameter sind:

create

edit

delete

editkeyvalue_XX

Dieser Parameter ist nur gültig für die Editieraktionen Edit. Der Wert editkeyvalue muss eindeutig sein und darf nicht mehrmals auftauchen (z.B. mittels Objekt-ID, um Objekt eindeutig anzusprechen).

editfields_XX

Liste an Editierfeldern, an welche die jeweiligen Werte unter editvalues übergeben werden sollen. Die Liste wird standardmäßig durch ; begrenzt, z.B. TYPE;NAME;REMARK;DISTANCE

editvalues_XX

Liste mit Editierwerten, die an die Felder unter editkeyvalue übergeben werden sollen. Die Anzahl der Elemente der Liste muss mit der Anzahl der Elemente der Liste der Editierfelder übereinstimmen, z.B.: Mein Eingabetyp;Mein Name;Meine Anmerkung;100.87

geometry_XX

Mit diesem Parameter können Stützpunkte (X,Y) von Objekten gesetzt werden. In Kombination mit den Parametern editvalues und editfields können sowohl die Geometrie als auch die Attribute von Objekten gesetzt werden. Der Editiervorgang muss dann nur mehr im Editierformular mit der Schaltfläche Übernehmen abgeschlossen werden.

Beim Erstellen von Punkten wird nur ein Koordinatenpaar gesetzt. Beim Erstellen von Linien und Polygonen müssen mehr Koordinatenpaare getrennt durch ; gesetzt werden. Die jeweiligen Koordinaten in einem Paar werden durch %20 oder  voneinander getrennt.

edittableid

Die Editier-Tabellen werden über den Abgleich mit der Kennung identifiziert, die in den Attributen der externen Tabellen-ID konfiguriert ist.

 

 

Beispielanfrage für einen Massenbearbeitungsaufruf auf eine Punkt-Feature-Class:

https://myserver.domain.com/MyApplication/synservice?project=MyProject&skip_checks=true&editlayerid=gasthaeuser&editkeyfield=NUMMER&editaction_01=create&editkeyvalue_01=25&editfields_01=E_NAME;ANSCHRIFT&editvalues_01=Basuatz Sägewerk;Schlögelgasse 1&geometry_01=1718472 5954030&editaction_02=edit&editkeyvalue_02=11&editfields_02=E_NAME&editvalues_02=Gasthof zur goldenen Eiche&editaction_03=delete&editkeyvalue_03=12

Auch die Massenbearbeitung von publizierten ArcGIS-Tabellen ist möglich.

Beispielaufrufe:

Hinzufügen mehrerer Einträge in eine Tabelle:

https://<HOST>/<WebOffice-Anwendung>/synservice?project=<WO_PROJECT>&edittableid=<EDIT_TABLE>&editaction_1=create&editfields_1=<FIELD>&editvalues_1=<VALUE>&editaction_2=create&editfields_2=<FIELD>&editvalues_2=<VALUE>

 

Ändern eines Attributs in mehreren Zeilen in einer Tabelle:

https://<HOST>/<WebOffice-Anwendung>/synservice?project=<WO_PROJECT>&edittableid=<EDIT_TABLE>&editkeyfield=<KEYFIELD>&editaction_1=edit&editkeyvalue_1=<KEYVALUE>&editfields_1=<FIELD>&editvalues_1=<VALUE>&editaction_2=edit&editkeyvalue_2=<KEYVALUE>&editfields_2=<FIELD>&editvalues_2=<VALUE>

 

Ändern mehrerer Attribute in mehreren Zeilen in einer Tabelle:

https://<HOST>/<WebOffice-Anwendung>/synservice?project=<WO_PROJECT>&edittableid=<EDIT_TABLE>&editkeyfield=<KEYFIELD>&editaction_1=edit&editkeyvalue_1=<KEYVALUE>&editfields_1=<FIELD_1>;<FIELD_2>&editvalues_1=<VALUE_1>;<VALUE_2>&editaction_2=edit&editkeyvalue_2=<KEYVALUE>&editfields_2=<FIELD_1>;<FIELD_2>&editvalues_2=<VALUE_1>;<VALUE_2>

 

Löschen mehrerer Einträge in einer Tabelle:

https://<HOST>/<WebOffice-Anwendung>/synservice?project=<WO_PROJECT>&edittableid=<EDIT_TABLE>&editkeyfield=<KEYFIELD>&editaction_1=delete&editkeyvalue_1=<KEYVALUE>&editaction_2=delete&editkeyvalue_2=<KEYVALUE>

Ⓒ Copyright 2023 by VertiGIS GmbH