Spezifikation DPD und primetime WebService Routenberechnung Gültig für Paketversender in Österreich Version 3.3.0
1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Versionshistorie... 2 3 Allgemein... 3 3.1 Beschreibung... 3 4 Softwaretechnische Grundlagen... 4 5 Die SOAP-Funktion CalcRoute... 4 5.1 Funktionsbeschreibung... 4 5.2 WSDL CalcRoute... 4 5.3 Aufrufparameter RouteParams... 4 5.4 Ergebnisparameter result... 4 6 Implementierungs-Beispiele... 5 6.1.net Framework, C#... 5 2 Versionshistorie Tabelle 1 - Versionshistorie Ab Version Änderungen 2.2 Keine Änderungen Seite 2 von 5
3 Allgemein Das vorliegende Dokument stellt eine Ergänzung zum Dokument Spezifikation DPD und primetime Paketversand Gültig für Paketversender in Österreich (im Folgenden Hauptdokument genannt) dar, spezifiziert das WebService Routenberechnung im Detail und hat nur in Zusammenwirkung mit diesem Dokument Gültigkeit. 3.1 Beschreibung Die GBS Routenberechnung stellt ein komplexes Verfahren zur Ermittlung der Routeninformation für ein Versandpaket dar. Für Versandkunden, die den Paketscheindruck und die zugehörige Routenberechnung in ihre eigenen Applikationen integrieren wollen, bedeutet das einen entsprechenden Aufwand in der Entwicklung der notwendigen Applikationsteile und in der laufenden Wartung und Pflege der Routing-Database. Das WebService Routenberechnung ist ein über das SOAP-Protokoll (Simple Object Access Protocol) angebotener Dienst, der die Aufgaben Routenberechnung und Wartung und Pflege der Routing-Database übernimmt. In der Versandkunden-Applikation ist lediglich ein SOAP Funktionsaufruf erforderlich und die nötigen Routeninformation werden in Echtzeit als Ergebnis geliefert. Voraussetzung: Zugriff auf www.dpd-business.at/soapservices.php Softwaretechnische Möglichkeit zur Implementierung eines SOAP-Calls Seite 3 von 5
4 Softwaretechnische Grundlagen SOAP, das Simple Object Access Protocol und WSDL, die Web Service Description Language, sind W3C-Standards, die weitgehend auf XML basieren und die Interoperabilität von Systemen im Rahmen einer SOA Service Oriented Architecture ermöglichen. SOAP-Implementierungen sind gegenwärtig für nahezu jede Plattform und Programmiersprache verfügbar. Die Spezifikationen dieser Protokolle sowie Informationen zu Implementierungen in verschiedensten Betriebssystemen und Programmiersprachen finden Sie am besten im Internet. http://www.w3.org/tr/soap/ http://www.w3.org/tr/wsdl20/ 5 Die SOAP-Funktion CalcRoute Die Funktion besitzt eine sehr einfach anzusprechende Schnittstelle, denn sie besteht aus einem einzigen Eingabeparameter und einem einzigen Ergebnisparameter, die jeweils als Zeichenkette (xsd:string) ausgeführt sind. 5.1 Funktionsbeschreibung Es wird die zu den Eingabeparametern passende Route anhand einer zentral gespeicherten aktuellen Routing- Database errechnet. Im Ergebnisparameter werden sämtliche für den Paketscheindruck relevanten Parameter zurückgeliefert. Konnte keine passende Route gefunden werden ist der Ergebnisparameter leer. 5.2 WSDL CalcRoute Dies WSDL-Spezifikation ist über http://www.dpd-business.at/soapservices.php abrufbar. 5.3 Aufrufparameter RouteParams Zeichenkette der Form Format;Versanddepot;Versandzeitpunkt;Land;Postleitzahl;Service Beispiel: CalcRoute( 1;0621;200608012359;AT;1230;101 ) 5.4 Ergebnisparameter result Zeichenkette der Form Versanddepot;Versanddatum;Versandzeit;Service;Land;Postleitzahl;Area;City;Land-ISO Alpha2;Zieldepot;Origin-Sort;Destination-Sort;Barcode-ID;Service-Text;Service-Mark;Service- Info;Routing-Database-Version Seite 4 von 5
6 Implementierungs-Beispiele 6.1.net Framework, C# using System.Diagnostics; using System.Xml.Serialization; using System; using System.Web.Services.Protocols; using System.Web.Services; [System.Web.Services.WebServiceBindingAttribute( Name="RouteService", Namespace="urn:RouteService")] public class Routing : System.Web.Services.Protocols.SoapHttpClientProtocol public Routing() this.url = "http://www.dpd-business.at/soapservices.php"; [System.Web.Services.Protocols.SoapRpcMethod( Action = "", RequestNamespace = "urn:routeservice", ResponseNamespace = "urn:routeservice", Use = System.Web.Services.Description.SoapBindingUse.Encoded)] public string CalcRoute(string RouteParams) object[] results = this.invoke("calcroute", new object[] RouteParams); return ((string)(results[0])); public static void Main(string[] args) Console.WriteLine("Calling CalcRoute"); Routing example1 = new Routing( ); Console.WriteLine("Result: " + example1.calcroute("1;0621;200608012359;at;1230;101")); Seite 5 von 5