Die getForms Operation gibt die gespeicherten Formulareingänge zurück.
Wichtig: Ein Field bzw. dessen ID kann nur einmal verwendet werden. Es darf also nicht zweimal "PLZ" im selben Request gebraucht werden.
Request Struktur
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.eforms.jaxfront.com/"> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ws:getForms> <formId>?</formId> <dbmResource>?</dbmResource> <pageSize>?</pageSize> <offset>?</offset> <countTotal>?</countTotal> <includeXML>?</includeXML> <resultFields>?</resultFields> <search> <field id="?"> <condition>?</condition> <orClauseGroup>?</orClauseGroup> <sortOrder>?</sortOrder> <value>?</value> </field> </search> </ws:getForms> </soapenv:Body> </soapenv:Envelope>
Element | Default | Beschreibung |
---|---|---|
formId | ID des Formulars | |
dbmResource | Absoluter Pfad zu einem DBM. Beispiel: resources/MANDANT/FormularXY/special_search.dbm | |
pageSize | 100 | Anzahl Zeilen |
offset | 0 | Anzahl der Zeilen, die übersprungen werden sollen. |
countTotal | false | Liest alle Zeilen und gibt die Anzahl in der Response zurück. |
includeXML | false | Definiert, ob das xmlField zurückgegeben werden soll. |
checkPDF | false | Definiert, das überprüft werden soll, ob für ein Formular ein PDF existiert. Die einzelnen PDF müssen dann über einen Rest-Aufruf konsumiert werden. |
checkAttachment | false | Definiert, das überprüft werden soll, ob für das Formular Beilagen existieren. Die einzelnen Attachments müssen dann über einen Rest-Aufruf konsumiert werden. |
resultFields | * (alle) | Im XMLDBMapping definierte Felder, welche zurückgegeben werden sollten. |
id | Field-ID gemäss XMLDBMapping | |
value | Wert, nachdem in dem Feld gesucht werden soll. Standardmässig werden die Suchabfragen mit AND verknüpft ausser es wird eine orClauseGroup angegeben. | |
condition | = | Wie der Wert gesucht werden soll (=, <>, >, <, >=, <=, LIKE, IN), erläutert unter "Mögliche Operatoren für Condition" |
orClauseGroup | Identifikation für mindestens 2 searchFields, welche mit OR selektiert werden sollen. Siehe "Eingeschränkte Abfrage mit Verwendung der orClauseGroup". | |
sortOrder | asc | Sortierung aufsteigend/absteigend (asc/desc) |
Mögliche Operatoren für Condition
Operator | Beschreibung | Beispiel |
---|---|---|
= | Gleich | |
<> | Nicht gleich | |
> | Grösser als | |
< | Kleiner als | |
>= | Grösser gleich | |
<= | Kleiner gleich | |
LIKE | Ähnlich wie. Suchbegriff muss mit den Wildcards % oder * umgeben sein. | <value>*formular*</value> |
MULTI_LIKE | Wenn der Operand entweder ähnlich wie einer angegebenen Werten ist. Die Zahlenwerte müssen per "_;_" getrennt werden. | <value>BL_;_XX_;_GL</value> wenn LIKE %BL%, %XX% und %GL% gesucht werden soll. |
IN | Wenn der Operand gleich ist wie einer aus einer Liste von Werten. WICHTIG: Kein Whitespace zwischen den Werten und Single-Quotes verwenden | <value>'BegriffEins','Test','weitererBegriff'</value> |
BETWEEN | Wenn der Operand zwischen den beiden Zahlenwerten ist. Die Zahlenwerte müssen per Komma oder "_;_" getrennt werden. | <value>5000,6000</value> wenn 5221 gesucht wird. |
CUSTOM | Eigene Where-Bedingung, erlaubt komplexe Abfragen mit Verschachtelungen. | <value>PLZ > 3000 AND PLZ < 3100 AND PLZ not like '%50%'</value> |
NOT [Operator] | Kann als Prefix zur Verneinung eines Operators verwendet werden, z.B.: NOT LIKE |
Response Struktur
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getFormsResponse xmlns:ns2="http://ws.eforms.jaxfront.com/"> <result> <info> <hasNext>?</hasNext> <offset>?</offset> <pageSize>?</pageSize> <size>?</size> <totalSize>?</totalSize> </info> <row> <field id="?">?</field> </row> </result> </ns2:getFormsResponse> </S:Body> </S:Envelope>
Element | Beschreibung |
---|---|
hasNext | toalSize - offset > pageSize |
offset | Definiertes offset |
pageSize | Definierte pageSize |
size | Effektiv zurükgebene Anzahl Zeilen |
totalSize | Total gelesene Zeilen |
field | Wert des Feldes |
id | Field-id gemäss XMLDBMapping |
Beispiele anhand des PLZ Registers
XMLDBMapping PLZ Register
XMLDBMapping example (PLZ)
<XMLDBMapping openLinkSupported="false" performInitialSearch="false" sortOrder="desc" tableName="PLZ" useColumnChooser="false" uuidFieldName="ONO" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlDBMapping.xsd"> <field> <id>Name</id> <columnName>PLACE_LONG</columnName> <showAsFilter>true</showAsFilter> <showAsColumn>true</showAsColumn> </field> <field> <id>PLZ</id> <columnName>PLZ</columnName> <showAsFilter>false</showAsFilter> <showAsColumn>true</showAsColumn> </field> <field> <id>Canton</id> <columnName>CANTON</columnName> <showAsFilter>true</showAsFilter> <showAsColumn>true</showAsColumn> </field> </XMLDBMapping>
Seitenweise Abfragen
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.eforms.jaxfront.com/"> <soapenv:Header> <ws:token>b86d157d-491f-4af0-b0ad-0141c8fe480c</ws:token> </soapenv:Header> <soapenv:Body> <ws:getForms> <formId>ZIP</formId> <countTotal>true</countTotal> <pageSize>10</pageSize> <offset>5329</offset> </ws:getForms> </soapenv:Body> </soapenv:Envelope>
Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getFormsResponse xmlns:ns2="http://ws.eforms.jaxfront.com/"> <result> <info> <hasNext>false</hasNext> <offset>5329</offset> <pageSize>10</pageSize> <size>2</size> <totalSize>5331</totalSize> </info> <row> <field id="Name">Lausanne 1 Dépôt</field> <field id="PLZ">1000</field> <field id="Canton">VD</field> </row> <row> <field id="Name">Lausanne</field> <field id="PLZ">1000</field> <field id="Canton">VD</field> </row> </result> </ns2:getFormsResponse> </S:Body> </S:Envelope>
Eingeschränkte Abfrage
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.eforms.jaxfront.com/"> <soapenv:Header> <ws:token>b86d157d-491f-4af0-b0ad-0141c8fe480c</ws:token> </soapenv:Header> <soapenv:Body> <ws:getForms> <formId>ZIP</formId> <countTotal>true</countTotal> <search> <field id ="PLZ"> <value>9656</value> <condition>>=</condition> <sortOrder>desc</sortOrder> </field> </search> </ws:getForms> </soapenv:Body> </soapenv:Envelope>
Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getFormsResponse xmlns:ns2="http://ws.eforms.jaxfront.com/"> <result> <info> <hasNext>false</hasNext> <offset>0</offset> <pageSize>100</pageSize> <size>3</size> <totalSize>3</totalSize> </info> <row> <field id="PLZ">9658</field> <field id="Name">Wildhaus</field> <field id="Canton">SG</field> </row> <row> <field id="PLZ">9657</field> <field id="Name">Unterwasser</field> <field id="Canton">SG</field> </row> <row> <field id="PLZ">9656</field> <field id="Name">Alt St. Johann</field> <field id="Canton">SG</field> </row> </result> </ns2:getFormsResponse> </S:Body> </S:Envelope>
Eingeschränkte Abfrage mit Verwendung der orClauseGroup
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.eforms.jaxfront.com/"> <soapenv:Header> <ws:token>b86d157d-491f-4af0-b0ad-0141c8fe480c</ws:token> </soapenv:Header> <soapenv:Body> <ws:getForms> <formId>ZIP</formId> <countTotal>true</countTotal> <search> <field id="PLZ"> <value>6085</value> <condition>></condition> <orClauseGroup>OR1</orClauseGroup> </field> <field id ="Name"> <value>Schangnau</value> <condition>=</condition> <orClauseGroup>OR1</orClauseGroup> </field> <field id ="Canton"> <value>BE</value> <condition>=</condition> </field> </search> </ws:getForms> </soapenv:Body> </soapenv:Envelope>
Resultierende Query (Pseudo): ... WHERE (PLZ > '6085' OR PLACE_LONG= 'Schangnau') AND CANTON = 'BE'
Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getFormsResponse xmlns:ns2="http://ws.eforms.jaxfront.com/"> <result> <info> <hasNext>false</hasNext> <offset>0</offset> <pageSize>100</pageSize> <size>2</size> <totalSize>2</totalSize> </info> <row> <field id="PLZ">6197</field> <field id="Name">Schangnau</field> <field id="Canton">BE</field> </row> <row> <field id="PLZ">6086</field> <field id="Name">Hasliberg Reuti</field> <field id="Canton">BE</field> </row> </result> </ns2:getFormsResponse> </S:Body> </S:Envelope>
Abfrage der JAXForms Standard-Formulare (Standard XMLDBMapping)
Wenn keine formId und dbmResource angegeben werden, werden die Standard JAXForms Formulare abgefragt.
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.eforms.jaxfront.com/"> <soapenv:Header> <ws:token>30de6360-c1e4-4e72-a3c2-b0b7f0f2b2b1</ws:token> </soapenv:Header> <soapenv:Body> <ws:getForms> <countTotal>true</countTotal> <includeXML>false</includeXML> <resultFields>Type,Sender</resultFields> <search> <field id ="Type"> <value>DEMO-FEEDBACK</value> </field> <field id ="Sender"> <value>rwu@jaxfront.com</value> </field> </search> </ws:getForms> </soapenv:Body> </soapenv:Envelope>
Response
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getFormsResponse xmlns:ns2="http://ws.eforms.jaxfront.com/"> <result> <info> <hasNext>false</hasNext> <offset>0</offset> <pageSize>100</pageSize> <size>1</size> <totalSize>1</totalSize> </info> <row> <field id="Type">DEMO-FEEDBACK</field> <field id="Sender">rwu@jaxfront.com</field> </row> </result> </ns2:getFormsResponse> </S:Body> </S:Envelope>