Mit dem GeoShop OrderService kann eine Preisberechung und Bestellung von Daten von einem GeoShop Server durchgeführt werden. Der GeoShop OrderService hat den gleichen Funktionsumfang wie die Applikation GeoShop BatchClient (s.a. [2]). Der GeoShop BatchClient kann daher alternativ zum GeoShop OrderService verwendet werden.
Der GeoShop OrderService kann via folgende SOAP bzw. WSDL Service Endpunkte erreicht werden:
GEOSHOP_URL
/soap/orderservice.igsSOAP Schnittstelle.
GEOSHOP_URL
/soap/orderservice.igs?wsdlWSDL Beschreibung der SOAP Schnittstelle.
Wobei für GEOSHOP_URL
die Basisadresse des
GeoShop eingesetzt werden muss (z.B.
http://localhost:3501
).
Die caculatePrice
Methode liefert das
Resultat der GeoShop Preisberechnung. Neben dem Preis (Betrag/Währung)
wird auch ein formatierter Beleg bzw. eine formatierte Fehlermeldung
zurück geliefert. Der Beleg bzw. die Fehlermeldung entspricht der
Ausgabe der Preisberechnung im GeoShop Client Applet.
Die calculatePrice
Methode wird durch
folgendes XML-Objekt aufgerufen (Darstellung mit
soap:Body
und
soap:Envelope
):
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <calculatePrice xmlns="http://www.infogrips.ch/geoshop/order/"> <user xmlns="">user</user> <password xmlns="">password</password> <product xmlns="">product</product> <parameters xmlns=""> <parameter> <name>name</name> <value>value</value> </parameter> ... </parameters> </calculatePrice> </soap:Body> </soap:Envelope>
Beschreibung der variablen Anteile:
GeoShop Benutzer.
Passwort des GeoShop Benutzers.
Datenprodukt für welches der Preis berechnet werden soll (muss dem Benutzer zugewiesen sein).
Liste von 0-N Parametern. Die Anzahl der notwendigen Parameter ist abhängig vom gewählten Datenprodukt. Die Parameter sind in [2] beschrieben. Beispiel:
<parameters> <parameter> <name>min</name> <value>600000/200000</value> </parameter> <parameter> <name>max</name> <value>620000/250000</value> </parameter> </paramaters>
Der Parameter |
Die calculatePrice Methode liefert als Resultat der Anfrage
folgendes XML-Objekt (Darstellung mit soap:Body
und
soap:Envelope
):
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <calculatePriceResponse xmlns="http://www.infogrips.ch/geoshop/order/"> <priceinfo xmlns=""> <item>price</item> <item>currency</item> <item>1. line of price display</item> <item>2. line of price display</item> ... <item>n. line of price display</item> </priceinfo> </calculatePriceResponse> </soap:Body> </soap:Envelope>
Beschreibung der variablen Anteile:
Liste von Stringwerten, wobei die ersten beiden Werte der Liste eine spezielle Bedeutung haben.
Preis der Bestellung. Ein negativer Preis bedeutet, dass die Bestellung nicht ausgeführt werden kann.
Währung.
Formatierter Beleg bzw. Fehlermeldung (bei negativem Preis).
Die sendOrder
Methode schickt eine Bestellung
an den GeoShop. Die sendOrder
Methode wird
normalerweise asynchron ausgeführt, d.h. es wird nicht auf die
Fertigstellung der Bearbeitung gewartet (die Benachrichtigung des
Benutzers erfolgt per E-Mail). Es ist jedoch auch möglich die
sendOrder
Methode synchron auszuführen. Dazu muss
der Bestellparameter wait
wie folgt gesetzt
werden:
<parameters> ... <parameter> <name>wait</name> <value></value> </parameter> ... </paramaters>
Die sendOrder
Methode wird durch folgendes
XML-Objekt aufgerufen (Darstellung mit soap:Body
und soap:Envelope
):
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <sendOrder xmlns="http://www.infogrips.ch/geoshop/order/"> <user xmlns="">user</user> <password xmlns="">password</password> <product xmlns="">product</product> <parameters xmlns=""> <parameter> <name>name</name> <value>value</value> </parameter> ... </parameters> </sendOrder> </soap:Body> </soap:Envelope>
Beschreibung der variablen Anteile, s.a.
calculatePrice
.
Die sendOrder
Methode liefert als Resultat
der Anfrage folgendes XML-Objekt (Darstellung mit
soap:Body
und
soap:Envelope
):
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <sendOrderResponse xmlns="http://www.infogrips.ch/geoshop/order/"> <order xmlns=""> <orderno>orderno</orderno> <orderurl>orderurl</orderurl> <price>price</price> <currency>currency</currency> </order> </sendOrderResponse> </soap:Body> </soap:Envelope>
Beschreibung der variablen Anteile:
Bestellnummer. Falls die Bestellnummer < 0 ist, konnte die Bestellung nicht verarbeitet werden.
URL an welcher die bestellten Daten verfügbar sind.
Preis.
Währung.