KNV Webservice Dokumentation der Programmierschnittstelle Version 2.0.18 (Dokumentversion 1.7) Stand: 20.04.2015 Koch, Neff & Volckmar GmbH, Stuttgart und Köln Geschäftsführer: Uwe Ratajczak Geschäftsführende Gesellschafter: Frank Thurmann, Oliver Voerster Sitz Stuttgart, Amtsgericht Stuttgart HRB 11907, USt-Id: DE147816562 © 2010-2014 Koch, Neff & Volckmar GmbH Inhaltsverzeichnis 1 EINLEITUNG ......................................................................................................................................... 5 1.1 2 ÄNDERUNGSHISTORIE ............................................................................................................................. 5 ALLGEMEINES ..................................................................................................................................... 6 2.1 WAS IST EIN WEB SERVICE?..................................................................................................................... 6 2.2 WSDL .................................................................................................................................................... 6 2.3 ARBEITSWEISE ........................................................................................................................................ 6 2.3.1 Übersicht der Funktionen............................................................................................................ 7 2.4 AUTHENTIFIZIERUNG .............................................................................................................................. 8 2.5 ZEICHENSATZ ......................................................................................................................................... 8 2.6 NUMERISCHE FELDER............................................................................................................................. 8 2.7 FEHLERBEHANDLUNG ............................................................................................................................. 8 2.8 WS VERSIONSNUMMER............................................................................................................................ 8 3 BESCHREIBUNG DER SCHNITTSTELLE ....................................................................................... 9 3.1 WEBSERVICE-FUNKTION „WSCALL“ ...................................................................................................... 9 3.1.1 Beispiel Arbeitsweise 1 ................................................................................................................ 9 3.1.2 Beispiel Arbeitsweise 2 .............................................................................................................. 10 3.1.3 Erweiterbarkeit ......................................................................................................................... 10 3.2 TEILFUNKTION „LOGIN“ ...................................................................................................................... 11 3.2.1 Struktur...................................................................................................................................... 11 3.2.2 Felder für die Anfrage ............................................................................................................... 11 3.2.3 Felder der Antwort .................................................................................................................... 11 3.2.4 Beispiel ...................................................................................................................................... 11 3.3 TEILFUNKTION “LOGOUT” ................................................................................................................... 13 3.3.1 Struktur...................................................................................................................................... 13 3.3.2 Felder für die Anfrage ............................................................................................................... 13 3.3.3 Felder der Antwort .................................................................................................................... 13 3.4 TEILFUNKTION “SUCHEN”.................................................................................................................... 16 3.4.1 Struktur...................................................................................................................................... 16 3.4.2 Felder für die Anfrage ............................................................................................................... 17 3.4.3 Felder der Antwort .................................................................................................................... 26 3.4.4 Weitere Beispiele ....................................................................................................................... 34 3.4.5 Besonderheiten bei der Preissuche ........................................................................................... 35 3.5 TEILFUNKTION „FILTERLISTE LESEN“ ................................................................................................... 36 3.5.1 Struktur...................................................................................................................................... 36 3.5.2 Felder für die Anfrage ............................................................................................................... 36 3.5.3 Felder der Antwort .................................................................................................................... 37 3.6 TEILFUNKTION „FORMATAUSWAHL“ ..................................................................................................... 41 3.6.1 Struktur...................................................................................................................................... 41 3.6.2 Felder für die Anfrage ............................................................................................................... 41 3.6.3 Felder der Antwort .................................................................................................................... 41 3.6.4 Spezielle Aufrufwerte................................................................................................................. 42 3.6.5 Beispiel ...................................................................................................................................... 42 3.6.6 Fehlerbehandlung ..................................................................................................................... 45 3.7 TEILFUNKTION „GETMULTIMEDIAINFO“ .............................................................................................. 47 3.7.1 Struktur...................................................................................................................................... 47 3.7.2 Felder für die Anfrage ............................................................................................................... 47 3.7.3 Felder der Antwort .................................................................................................................... 48 3.7.4 Beispiel ...................................................................................................................................... 48 3.8 TEILFUNKTION „LESEN“ ...................................................................................................................... 50 3.8.1 Struktur...................................................................................................................................... 50 3.8.2 Felder für die Anfrage ............................................................................................................... 50 3.8.3 Formatierung der Datensätze der Antwort mit dem CDATA-Format ....................................... 53 3.8.4 Felder der Antwort .................................................................................................................... 53 3.8.5 Lesen von Multimediadaten....................................................................................................... 55 3.8.6 Beispiele Lesen .......................................................................................................................... 55 Seite 2 3.9 TEILFUNKTION „REGISTER“ ................................................................................................................. 64 3.9.1 Struktur...................................................................................................................................... 64 3.9.2 Felder für die Anfrage ............................................................................................................... 64 3.9.3 Felder der Antwort .................................................................................................................... 66 3.9.4 Beispiel ...................................................................................................................................... 66 3.10 TEILFUNKTION “OLA“ ......................................................................................................................... 69 3.10.1 Struktur...................................................................................................................................... 69 3.10.2 Felder für die Anfrage ............................................................................................................... 70 3.10.3 Felder der Antwort .................................................................................................................... 71 3.10.4 Fehlerbehandlung ..................................................................................................................... 73 3.10.5 Beispiele .................................................................................................................................... 74 3.10.6 Vormerkungen ........................................................................................................................... 76 3.10.7 Bestellstorno .............................................................................................................................. 76 3.11 TEILFUNKTION „EBOOKBESTELLUNG“ ................................................................................................. 79 3.11.1 Struktur...................................................................................................................................... 79 3.11.2 Felder für die Anfrage ............................................................................................................... 80 3.11.3 Felder der Antwort .................................................................................................................... 81 3.11.4 Beispiele .................................................................................................................................... 83 3.12 TEILFUNKTION „SUCHVORSCHLAG“ ..................................................................................................... 86 3.12.1 Struktur...................................................................................................................................... 86 3.12.2 Felder für die Anfrage ............................................................................................................... 86 3.12.3 Felder der Antwort .................................................................................................................... 87 3.13 TEILFUNKTION „ZUSATZFUNKTION“ ..................................................................................................... 89 3.13.1 Struktur...................................................................................................................................... 89 3.13.2 Felder in der Anfrage ................................................................................................................ 89 3.13.3 Felder in der Antwort ................................................................................................................ 89 3.13.4 Zusatzfunktion „APIInformationen“ ......................................................................................... 90 3.13.5 Zusatzfunktion: „LeseMultimediadaten“ .................................................................................. 92 3.14 WEBSERVICE-FUNKTION „CHECKVERSION“ ......................................................................................... 95 3.14.1 Aufbau der Versionsnummer ..................................................................................................... 95 3.14.2 Felder für die Anfrage ............................................................................................................... 95 3.14.3 Felder in der Antwort ................................................................................................................ 95 3.14.4 Arbeitsweise .............................................................................................................................. 95 3.14.5 Beispiel 1: aktuelle Version abfragen ....................................................................................... 96 3.14.6 Beispiel 2: Aufruf eines alten Clients. ....................................................................................... 96 3.14.7 Beispiel 2: Aufruf eines alten Webservice. ................................................................................ 97 4 SATZFORMATE .................................................................................................................................. 98 4.1 NEUK-FORMAT ................................................................................................................................... 98 4.1.1 Grundsätzlicher Aufbau ............................................................................................................ 98 4.1.2 Formatbeschreibung ................................................................................................................. 99 4.1.3 Feldbeschreibungen ................................................................................................................ 105 4.1.4 Beispiele .................................................................................................................................. 113 4.2 KNVXML-FORMAT ............................................................................................................................ 116 4.2.1 Formatbeschreibung ............................................................................................................... 116 4.2.2 Beispiel .................................................................................................................................... 120 4.3 BESONDERHEITEN ZUSATZTEXTE ......................................................................................................... 124 5 FEHLERBEHANDLUNG .................................................................................................................. 126 5.1 FEHLERKATEGORIEN .......................................................................................................................... 126 5.1.1 Syntaxfehler bei der Benutzung ............................................................................................... 126 5.1.2 Fehler in der Anwendung ........................................................................................................ 128 5.1.3 Fehler in einer Anwendungsfunktion....................................................................................... 128 5.2 FEHLERMELDUNG .............................................................................................................................. 129 5.2.1 Beispiel 1 ................................................................................................................................. 129 5.2.2 Beispiel 2 ................................................................................................................................. 130 5.3 LISTE DER FEHLERCODES ................................................................................................................... 131 5.3.1 Fehlercodes des Webservice ................................................................................................... 131 5.3.2 Fehlermeldungen der OLA ...................................................................................................... 133 5.3.3 Fehlermeldungen der EBookBestellung .................................................................................. 135 5.3.4 Andere Fehlermeldungen ........................................................................................................ 136 A. ANHANG ............................................................................................................................................. 137 A.1 AUFRUFPARAMETER ........................................................................................................................... 137 Seite 3 A.2 A.3 A.4 A.5 A.6 FORMAT FÜR (TEIL)SUCHSTRING ........................................................................................................ 137 FORMAT FÜR EMPFEHLUNGEN UND VARIANTEN .................................................................................. 139 SORTIMENTCODES .............................................................................................................................. 141 CLUSTERSYSTEMATIK .......................................................................................................................... 142 TESTZUGANG ...................................................................................................................................... 147 Verzeichnis der Abbildungen Abbildung 1: Liste der Schnittstellenfunktionen ................................................................... 7 Abbildung 2: Liste der (Teil-)Funktionen .............................................................................. 7 Abbildung 3: Aufbau der Versionsnummer ......................................................................... 95 Abbildung 4: Aufbau des Satzformates NEUK ................................................................... 99 Abbildung 5: Beispiel des Satzformates NEUK .................................................................. 99 Abbildung 6: Preisformatierung in Feld „21“ .................................................................... 106 Abbildung 7: Liste der Text-Kategorien ............................................................................ 124 Abbildung 8: Liste der Fehlercodes 100xx ........................................................................ 131 Abbildung 9: Liste der Fehlercodes 199xx ........................................................................ 132 Abbildung 10: Liste der Fehlercodes 200xx ...................................................................... 133 Abbildung 11: Liste der Fehlercodes 198xx ...................................................................... 133 Abbildung 12: OLA Fehlermeldungen .............................................................................. 134 Abbildung 13: Fehlernummern der PCBIS-Anwendung ................................................... 136 Abbildung 14: Liste erlaubter Parameterwerte .................................................................. 137 Seite 4 1 Einleitung Dieses Dokument beschreibt den KNV Webservice ab Version 2.0. Er ermöglicht den direkten Zugriff aus Programmen heraus auf Online-Funktionen, die KNV zur Verfügung stellt, über ein standardisiertes, plattformunabhängiges Protokoll. Die zur Verfügung gestellten Funktionen dienen der Recherche in den Titelbeständen von KNV und seinen ausländischen Partnern, sowie der Online Lieferbarkeitsabfrage und Bestellung beim KNV Barsortiment. 1.1 Änderungshistorie Änderungen in Version 2.0.5: 30.6.2014 • Neue Exportfelder für Volumendaten und GTIN Auflagenvarianten • Neues Exportfeld tagesgenauer Erscheinungstermin Änderungen in Version 2.0.17: 12.11.2014 • Änderungen in den XML-Formaten der Datensätze (CDATA) 17.12.2014 • Neues Exportfeld Sortimentskennzeichen • Neue Exportfelder verwiesene Reihen 1 – 6 und Bandnummern zu den verwiesenen Reihen 1 -6 Änderungen in Version 2.0.18: 27.2.2015 • DRM Flags aufgeführt 20.4.2015 • Neue Fehlermeldungen bei der EBookBestellung • Hinweis auf neues Feld „tagesgenauer Erscheinungstermin“ beim bisherigen Feld „Erscheinungstermin“ Seite 5 2 2.1 Allgemeines Was ist ein Web Service? Unter einem Web Service versteht man eine Sammlung von Funktionen, die im Internet zur Verfügung gestellt werden, deren Rückgabe aber nicht - wie HTML-Seiten etwa - dazu dient, von Menschen betrachtet, sondern von anderen Computern weiter verarbeitet zu werden. Damit beliebige Anwender mit beliebigen Web Services ohne hohen Abstimmungsaufwand kommunizieren können, wurden vom W3C (World Wide Web Consortium) Standard Protokolle entwickelt, auf denen auch der KNV Webservice basiert: Die Übertragung der Daten über das Internet erfolgt über HTTP (Hypertext Transfer Protocol). Eine Beschreibung findet man unter http://www.w3.org/Protocols. Verpackt sind die Daten in XML (Extensible Markup Language) (die Definition liegt unter http://www.w3.org/XML), das als Basis des eigentlichen Web Service-Protokolls SOAP (Simple Object Access Protocol) dient. (Beschreibung unter http://www.w3.org/TR/soap) Schließlich gibt es noch eine standardisierte Beschreibung der Funktionen und ihrer Parameter. Diese erfolgt in WSDL (Web Service Definition Language), die unter http://www.w3.org/2002/ws/desc beschrieben wird. Es gibt eine Reihe von Werkzeugen, die einem die Arbeit abnehmen, sich im Detail mit diesen Protokollen zu beschäftigen. Eine Beschreibung dieser Werkzeuge oder gar der zugrunde liegenden Protokolle würde den Rahmen dieses Dokumentes sprengen. Wir gehen daher im Folgenden davon aus, dass der Leser mit der Erstellung von Web Service Anbindungen vertraut ist und gehen nur auf die spezifischen Funktionen des KNV Webservices ein. 2.2 WSDL Die WSDL beschreibt die zur Verfügung stehenden Funktionen, ihre Parameter und Formate der Parameter. Die WSDL des KNV Webservices ist unter der URL http://ws.pcbis.de/knv-2.0/services/KNVWebService?wsdl zu finden. Während der Entwicklungsphase bitte nicht diesen Zugang, sondern den Testzugang verwenden (s. Kapitel A.6A.2) Die Adresse sowie die Zugangsdaten können per E-Mail an [email protected] erfragt werden. 2.3 Arbeitsweise Im Unterschied zur Version 1.x des KNV Webservice gibt es nur noch eine einzige Schnittstellenfunktion namens „WSCall“. Beim Aufruf dieser Funktion besteht die Parameterstruktur nun aus verschiedenen Teilen, wobei jeder dieser Teile eine Funktion repräsentiert. Seite 6 Sie können dadurch nun die Funktionen „kombinieren“, d.h. Sie können z.B. in einem einzigen Webserviceaufruf eine Anmeldung, eine Suche und eine Leseoperation ausführen und sich sofort wieder vom Webservice abmelden. Oder Sie können wie bisher die Funktionen einzeln aufrufen, d.h. Sie führen nur einen Login durch und erhalten dabei eine Sitzungskennung (Session-ID), die Sie in jedem weiteren Aufruf bis zum Logout als Parameter verwenden müssen. Dieser Mechanismus wird im nächsten Kapitel noch ausführlich beschrieben. 2.3.1 Übersicht der Funktionen Im Unterschied zur alten Version 1.x gibt es also nur noch 2 Funktionen. Funktion Beschreibung WSCall Schnittstellenfunktion CheckVersion Überprüfung der Webservice Version Abbildung 1: Liste der Schnittstellenfunktionen Die Parameter für die Schnittstellenfunktion enthalten verschiedene Teile, wobei jeder dieser Teile eine bestimmte Funktion repräsentiert. Die folgende Liste enthält eine erste kurze Übersicht über die verfügbare Funktionalität. Die genaue Beschreibung der Schnittstellenfunktion finden Sie im nächsten Kapitel. Teilfunktion Beschreibung Login Anmelden, Sitzung beginnen Logout Sitzung beenden Suchen Suchen von Titeln über Suchfelder Filterliste Lesen Lesen von vordefinierten KNV-Suchfiltern Formatauswahl Dynamische Auswahl der Felder für das Lesen GetMultimediaInfo Verfügbare Multimediaobjekte abfragen Lesen Lesen von Titeldaten Multimediadaten zum Titel dazu lesen Empfehlungen zum Titel dazu lesen Varianten zum Titel dazu lesen Register Indexsuche über Registerfelder OLA Online-Lieferbarkeitsabfrage bzw. -Bestellung und Bestellstorno EBook-Bestellung EBook-Bestellung Suchvorschlag Suchvorschläge zu einer Eingabe anzeigen Zusatzfunktion Freie Funktion für Erweiterungen Abbildung 2: Liste der (Teil-)Funktionen Seite 7 2.4 Authentifizierung Die Benutzung des KNV-Web Services ist nur registrierten Benutzern möglich, daher ist immer eine Anmeldung beim Web Service notwendig. Diese Anmeldung beim Web Service erfolgt über die (Teil-)Funktion Login. Dies ist die Voraussetzung für den Aufruf weiterer Funktionen. Wie bereits angesprochen wurde, können Sie den Login gleich mit weiteren Funktionen kombinieren. Falls bei dieser Kombination kein Logout am Ende dabei ist, erhalten Sie eine Sitzungskennung (Session-ID), durch die die gestartete Sitzung identifiziert wird. Diese Session-ID muss nun beim Aufruf jeder weiteren Funktion angegeben werden, da der Aufruf sonst fehlschlägt. Nach einem Login können mit der erhaltenen SessionID beliebige viele Folgeaufrufe gemacht werden. Es ist allerdings zu beachten, dass die Gültigkeit der SessionID abläuft, wenn eine gewisse Zeit (z.Zt. 1 Stunde) keine Aufrufe mit einer SessionID gemacht werden. Ein erneuter Aufruf führt dann zu einer Fehlermeldung, die entsprechend behandelt werden muss. 2.5 Zeichensatz Als Zeichensatz (Encoding) wird UTF-8 verwendet. 2.6 Numerische Felder Numerische Anfragefelder (Ganzzahl und Zahl mit Nachkommastellen) dürfen ausschließlich numerische Werte enthalten. Sie dürfen nicht leer sein. Preise dürfen 2 Nachkommastellen besitzen, die durch Punkt (kein Komma) von den Vorkommastellen getrennt sind. 2.7 Fehlerbehandlung Lesen Sie hierzu das extra Kapitel 5 Fehlerbehandlung nach. 2.8 WS Versionsnummer Bei jeder Antwort des Webservice wird im Feld WSVersion die aktuelle Version des Webservice mitgeliefert. Weitere Informationen hierzu sind bei der Beschreibung der Funktion CheckVersion (Kapitel 3.14) zu finden. Seite 8 3 Beschreibung der Schnittstelle 3.1 Webservice-Funktion „WSCall“ Ein Aufruf an den Webservice hat folgenden Aufbau. <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>xxx</SessionID> <LoginInfo> … (Parameter für Funktion Login) </LoginInfo> <Suchvorschlag> … (Parameter für Funktion Suchvorschlag) </Suchvorschlag> <Suchen> … (Parameter für Funktion Suchen) </Suchen> <Formatauswahl> … (Parameter für Formatauswahl) </Formatauswahl> <Lesen> … (Parameter für Funktion Lesen) </Lesen> <Register> … (Parameter für Funktion Register) </Register> <GetFilterList> … (Parameter für Funktion Filterliste) </GetFilterList> <GetMultimediaInfo> … (Parameter für Funktion Multimediainfo) </GetMultimediaInfo> <OLA> … (Parameter für Funktion OLA) </OLA> <EBookBestellung> … (Parameter für Funktion Ebook-Order) </EBookBestellung> <Zusatzangabe> … (Parameter für Zusatzfunktionen) </Zusatzangabe> <Logout></Logout> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Die einzelnen Teile der Parameterstruktur „wscallParam“ entsprechen den verschiedenen Funktionen. Diese können miteinander kombiniert werden. In der Einleitung wurde diese grundsätzliche Arbeitsweise bereits kurz angedeutet. Ja nach Situation, in der Sie den Webservice einsetzen, können zwei verschiedene Vorgehensweisen empfohlen werden: 3.1.1 Beispiel Arbeitsweise 1 Die erste Arbeitsweise entspricht derjenigen des „alten“ Webservices und ist geeignet, wenn Sie über einen längeren Zeitraum bibliographieren möchten: - Zuerst melden Sie sich mit Login an Seite 9 - Der Login liefert im Erfolgsfalle eine Session-ID - Diese SessionID wird nun in allen folgenden Aufrufen der Sitzung verwendet. - Am Ende der Sitzung wird ein Logout ausgeführt. 3.1.2 Beispiel Arbeitsweise 2 Benötigen Sie nur vereinzelt einen kurzzeitig Zugriff, bei dem Sie den genauen Ablauf der Recherche bereit im Voraus kennen , ist auch folgender Ablauf möglich: Sie kombinieren mehrere gewünschte Aktionen in einem einzigen Aufruf, in dem Sie z.B. die Felder für „Login“, „Suchen“, „Lesen“ und „Logout“ belegen. Sie führen also eine Abfolge mehrerer Funktionen in einem einzigen Aufruf durch. Als Ergebnis erhalten Sie eine Liste der gefundenen Titel, aber in diesem Falle keine SessionID, weil Sie sich ja gleich wieder abgemeldet haben. Eine SessionID erhalten Sie nur zurück, wenn die Abfolge der Aktionen kein Logout enthält. Bei der Beschreibung der einzelnen Funktion in den folgenden Abschnitten wird auf diese verschiedenen Arbeitsweisen immer wieder einmal hingewiesen. 3.1.3 Erweiterbarkeit Damit die einzelnen Funktionen um weitere Parameter erweitert werden können, ohne dass die WSDL geändert werden muss, wurden die meisten Funktionen um zusätzliche optionale Parameter „SonstigeWerte“ ergänzt: <SonstigeWerte> <Name></Name> <Wert></Wert> </SonstigeWerte> Diese haben zunächst keine Funktion, können aber bei Bedarf mit zusätzlichen Parameterwerten belegt werden, so dass nur derjenige, der die neue Funktionalität benötigt, sie angeben kann. Die übrigen Nutzer sind von der Änderung dann nicht betroffen. Seite 10 3.2 Teilfunktion „Login“ Mit der Funktion Login identifizieren Sie sich als Benutzer gegenüber dem Webservice. Wenn Sie berechtigt sind, die Funktionalität des Webservice zu benutzen, erhalten Sie als Antwort auf das Login eine Sitzungskennung (SessionID), die Sie für alle Ihre weiteren Aufrufe anstelle eines erneuten Logins verwenden können. Eine SessionID erhalten Sie jedoch nur zurück, wenn die Abfolge der Aktionen kein Logout enthält. (siehe 3.1.2 Beispiel Arbeitsweise 2) 3.2.1 Struktur Aufruf: <ws:wscallParam> <LoginInfo> <VKN></VKN> <Benutzer> </Benutzer> <Passwort> </Passwort> <Zusatzinfo> </Zusatzinfo> </LoginInfo> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> </ns1:wscallResponse> 3.2.2 Felder für die Anfrage Feld Datentyp Beschreibung VKN String Verkehrsnummer Benutzer String Benutzer für die aktuelle Sitzung Passwort String Passwort für die aktuelle Sitzung Zusatzinfo String Beliebige Information, diese wird nur protokolliert 3.2.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String 3.2.4 Version des Webservice Beispiel Login mit Verkehrsnummer 12345 Benutzer „user“ und Kennwort „password“. Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> Seite 11 <SessionID></SessionID> <LoginInfo> <VKN>12345</VKN> <Benutzer>user</Benutzer> <Passwort>password</Passwort> <Zusatzinfo></Zusatzinfo> </LoginInfo> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 12 3.3 Teilfunktion “Logout” Mit der Funktion Logout wird eine Sitzungskennung am Server wieder gelöscht. Diese ist nun ungültig und weitere Funktionsaufrufe mit dieser Session-ID werden vom Server mit einer Fehlermeldung abgewiesen. 3.3.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Logout></Logout> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <LogoutAusgefuehrt></LogoutAusgefuehrt> </ns1:wscallResponse> 3.3.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String SessionID der aktuellen Sitzung. Wenn das Login in derselben Anfrage gemacht wird, braucht keine Sessionid angegeben werden Logout String Wenn das Logout durchgeführt werden soll, so ist diese Feld mit „Ja“, „Yes“ oder „True“ zu belegen 3.3.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Nach erfolgtem Logout immer leer WSVersion String Version des Webservice LogoutAusgefuehrt String Bestätigung dass die Sitzung beendet ist Beispiel 1 Ausloggen mit der SessionID des Login-Beispiels aus dem letzten Abschnitt Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Logout>ja</Logout> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: Seite 13 <soapenv:Envelope> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID/> <WSVersion>2.0.0.4.8.0</WSVersion> <LogoutAusgefuehrt>true</LogoutAusgefuehrt> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Ein beliebiger weiterer Funktionsaufruf mit dieser nun gelöschten Session-ID: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Suchen> ….. </Suchen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Liefert die folgende Fehlermeldung <soapenv:Envelope> <soapenv:Body> <soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode>axis2ns1:11000</faultcode> <faultstring>Fehlermeldung des TLD-Servers</faultstring> <detail> <TLDFehler> <errcode>-528</errcode> <errmsg</errmsg> <interrcode></interrcode> <interrmsg> </interrmsg> <addinfo/> <errlocation/> </TLDFehler> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Der Fehlercode “-528” stammt von der PCBIS-Anwendung und besagt, dass diese SessionID unbekannt ist. Die anderen Felder liefern optionale zusätzliche Informationen und sind in diesem Zusammenhang uninteressant. Beispiel 2 Ausloggen mit Login im selben Aufruf: In dem folgenden Beispiel wird ein Login gemacht und sofort wieder ein Logout. Dazwischen können belibiege weitere Aufrufe eingefügt werden. Anfrage: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://ws.pcbis.de/"> <soap:Header/> <soap:Body> Seite 14 <ws:wscallParam> <LoginInfo> <VKN>12345</VKN> <Benutzer>user</Benutzer> <Passwort>password</Passwort> </LoginInfo> <Logout>Ja</Logout> </ws:wscallParam> </soap:Body> </soap:Envelope> Antwort: <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID/> <WSVersion>2.0.9.5.0.0</WSVersion> <LogoutAusgefuehrt>true</LogoutAusgefuehrt> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 15 3.4 Teilfunktion “Suchen” Die Funktion “Suchen” ist eine der zentralen Funktionen des Webservice. Sie bietet gegenüber dem bisherigen Webservice einige umfangreiche Erweiterungen, die in den folgenden Abschnitten beschrieben werden. 3.4.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Suchen> <Datenbank>?</Datenbank> <Suche> <SimpleTerm Suchfeld="" Suchwert="" Suchwert2="" Suchart=""/> <TeilSuchString></TeilSuchString> <QueryHandle></QueryHandle> <DatensatzNummer></DatensatzNummer> <ComplexTerm> <Teilsuche1/> <Teilsuche2/> <Verknuepfung></Verknuepfung> </ComplexTerm> </Suche> <KNVSuche Suchwert="" Alternativenvorschlagen=""/> <SuchFilter></SuchFilter> <Einschraenkung></Einschraenkung> <Sortierung Feld="" Richtung=""/> <SuchString></SuchString> <ClusterParameter></ClusterParameter> <ClusterDatenLiefern></ClusterDatenLiefern> <ErgebnisName></ErgebnisName> </Suchen> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <Suchergebnis> <Handle></Handle> <Ergebnis> <DB></DB> <Treffer></Treffer> </Ergebnis> <TrefferGesamt></TrefferGesamt> <AusgefuehrteSuche> </AusgefuehrteSuche> <SortierungInfo> </SortierungInfo> <ClusterDaten> <Cluster> <Typ></Typ> <Code></Code> <AnzeigeName> </AnzeigeName> <Treffer></Treffer> <Ebene></Ebene> <lfdNummer></lfdNummer> <Werte> <Code></Code> <AnzeigeName> </AnzeigeName> <Treffer></Treffer> <Ebene></Ebene> <WeitereEbeneVorhanden> </WeitereEbeneVorhanden> Seite 16 <lfdNummer></lfdNummer> </Werte> </Cluster> </ClusterDaten> <SuchVorschlaege> <Alternative> <Suchwort></Suchwort> <Alternativen/> </Alternative> </SuchVorschlaege> </Suchergebnis> </ns1:wscallResponse> 3.4.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String SessionID der aktuellen Sitzung Datenbank String / mehrfach Zu verwendende Datenbank (zulässige Werte werden weiter unten beschrieben) Suchen Struktur Suchparameter Der Suchparameter „Suchen“ hat folgende Struktur: Suche Struktur / mehrfach Ein Element einer Standardsuche, es muss genau eines der möglichen Unterfelder benutzt werden SimpleTerm String mit Attributen Einfache Suchbedingung wie im Webservice 1.x TeilSuchString String Vorformulierte Suche bzw. Teil einer Suche QueryHandle String „ErgebnisName“ einer zuvor ausgeführten Suche. DatensatzNummer String ID-Nummer eines Datensatzes. Dient zum schnellen Auffinden eines einzelnen Datensatzes ComplexTerm Struktur Komplexe Suchbedingung die wiederum aus zwei „Suche“ Elementen und einer logischen Verknüpfung besteht. KNVSuche String mit Attributen Aufruf der KNV-Suche, d.h. es wird nur ein Suchwert, bestehend aus beliebig vielen Begriffen angegeben, und der Webservice liefert die am besten dazu passenden Treffer. SuchFilter String Angabe eines Filters zur Einschränkung der Suche. Einschraenkung Aufzählungstyp (zulässige Einschränkung bei der Suche Werte s. u.) String mit Attributen Feld, nach dem die Titel beim Aufruf von „TitelLesen“ sortiert werden. Sortierung Seite 17 SuchString String Vorformulierte Suche ClusterParameter String Clustercode aus Response einer geclusterten Suche. Schränkt das Suchergebnis auf dieses Cluster ein. ClusterDatenLiefern String Ja/Nein Wert ErgebnisName String Name für das Suchergebnis. Der Name kann dann in folgenden Aufrufen dazu verwendet werden, das Suchergebnis weiter zu verarbeiten. In den Beispielen in den folgenden Abschnitten wird nicht mehr immer der gesamte SOAPRequest beschrieben sondern nur der Teil mit den Suchparametern: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.pcbis.de/"> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Suchen> <Datenbank>KNV</Datenbank> <KNVSuche Suchwert="Potter" Alternativenvorschlagen="ja"/> <Sortierung Feld="Sortiment" Richtung="vor"/> <ClusterParameter>1:0101</ClusterParameter> <ClusterDatenLiefern>ja</ClusterDatenLiefern> <ErgebnisName>Doku1</ErgebnisName> </Suchen> <Lesen> … </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> 3.4.2.1 Feld Datenbank Das Feld muss einen der folgenden Werte enthalten: • KNV • KNVBG (Besorgungsdatenbank) • BakerTaylor • Gardners Falls Sie gar keine Datenbank angeben, wird die KNV-Datenbank verwendet. Für die gleichzeitige Suche in mehreren Datenbanken kann das Feld mehrmals, mit unterschiedlichen Werten wiederholt werden. 3.4.2.2 Feld „Suche“ Das Feld Suche definiert ein einzelnes Suchelement. Es kann mehrfach angegeben werden und die einzelnen Teile werden logisch mit „UND“ verknüpft. Das Feld repräsentiert verschiedene Möglichkeiten, von denen jeweils genau eine benutzt werden kann: Seite 18 3.4.2.3 SimpleTerm Diese Auswahl stellt eine einfache Suchangabe dar, so wie Sie Ihnen bisher aus dem Webservice bekannt sein sollte. Es wird angegeben mit welchem Suchwert in welchem Suchfeld gesucht werden soll. Diese Angaben werden durch die folgenden Attribute des „SimpleTerm“ beschrieben: Attribut Datentyp Beschreibung Suchfeld Aufzählungstyp (zulässige Werte s. Feld, auf das die Suche angewendet u.) wird Suchwert String Wert für die Suche Suchwert2 String Zusätzlicher Wert für die Suche Suchart Aufzählungstyp (zulässige Werte s. Art der Suche u.) Zulässige Suchfelder: • AllgemeineSuche (gleichzeitige Suche des Suchwertes in Autor, Stichwort, Schlagwort, Verlag, Band/Bestellnummer) • Alter (erfordert die Angabe von zwei Suchwerten (von-bis)) • Autor (Autor in der Form „Nachname, Vorname“, wenn man z.B. nach einem Autor suchen will, den man über die Register-Funktion ermittelt hat) • Autorteile (Suche nach einem Wort des Namens (z.B. Nachname)) • AutorPhonetisch (wie Autorteile, es werden aber auch ähnliche Namen gefunden) • Band • BandBestellNummer • Doknr • EAN • Einband • Erschjahr (erfordert die Angabe von zwei Suchwerten (von-bis)) • Erscheinunsgtermin (erfordert die Angabe von zwei Suchwerten (von-bis)) • ISBN • ISMN • Laenderschl • Massstab (erfordert die Angabe von zwei Suchwerten (von-bis)) • Preis (erfordert die Angabe von zwei Suchwerten (von-bis)) • Reihe • Reihentitel • Sortiment • Sprachschl Seite 19 • Schlagwort • Stichwort • StichwortPhonetisch (wie Stichwort, es werden aber auch ähnliche Stichwörter gefunden) • Titel (gesamter Titel) • Titelart • Titelkategorisierung • Titelnr • Verlag • WG (Warengruppe alt) • WGNeu (Warengruppe neu) Zulässige Sucharten: • Genau (nur Titel, in denen der Suchwert wie eingeben vorkommt, werden gefunden) • RechtsUngenau (es werden alle Titel gefunden, in denen im entsprechenden Feld ein Begriff vorkommt, der mit der in Suchwert übergebenen Zeichenfolge beginnt) Beispiel: Genaue Suche nach dem Stichwort “Potter” <Suchen> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="Potter" Suchwert2="" Suchart="Genau"/> </Suche> </Suchen> Der „Suchwert2“ kann nur bei Feldern benutzt werden, bei denen über einen Bereich gesucht werden kann. Zurzeit sind dies: • Alter • Erscheinungsjahr • Erscheinungstermin • Preis • Massstab Bei den anderen Suchfeldern wird der „Suchwert2“ ignoriert. Mit Hilfe des „TeilSuchString“ und „SuchString“ können Sie aber auch „größer“„kleiner“-Suchen mit den anderen Suchfeldern definieren, falls Sie das brauchen 3.4.2.3.1 DatensatzNummer Sie können als Suchkriterium die Interne Nummer (Record-ID, recid) eines einzelnen Datensatzes angeben (diese wird beim Lesen eines Datensatzes geliefert). Diese Möglichkeit Seite 20 dient dazu, z.B. aus einer zuvor gelesenen Liste von Datensätzen einen auszuwählen, um andere oder mehr Informationen zu diesem Datensatz vom Webservice anzufordern. Beispiel: Suche nach dem Datensatz mit der Nummer xyz <Suchen> <Suche> <DatensatzNummer>xyz</DatensatzNummer> </Suche> </Suchen> Diese Suchmöglichkeit kann nur eingeschränkt sinnvoll mit anderen Möglichkeiten verknüpft werden und wird in der Regel alleine verwendet (es macht ja keinen Sinn, z.B. alle Datensätze zu suchen die die recid 1 und gleichzeitig auch die recid 2 haben). 3.4.2.3.2 QueryHandle Ein QueryHandle ist der „Name“ einer zuvor ausgeführten Suche. Sie müssen also zuvor bereits eine Suche ausgeführt haben und bei dieser Suche das Feld „ErgebnisName“ befüllt haben. Der Server hat nun im Speicher eine Struktur, welche das Ergebnis Ihrer Suche enthält. Sie können nun diese bereits ausgeführte Suche mit weiteren Suchkriterien „verfeinern“, indem Sie z.B. noch nach einem weiteren Stichwort suchen. Das Ergebnis ist dasselbe als wenn Sie Ihre zuvor ausgeführte Suche um dieses neue Suchfeld erweitern und insgesamt noch mal ausführen. Es ist für den Server aber weniger „Arbeit“, die bereits ausgeführte Suche zu verwenden und nicht noch einmal alle Suchkriterien auszuwerten. Beispiel: Suche nach Stichwort Potter das Suchergebnis bekommt den Namen „Menge1“. <Suchen> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="Potter" Suchwert2="" Suchart="Genau"/> </Suche> <ErgebnisName>Menge1</ErgebnisName> </Suchen> Dann wird dieses Teilergebnis mit dem Stichwort „Harry“ verknüpft: <Suchen> <Suche> <QueryHandle>Menge1</QueryHandle> </Suche> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="Harry" Suchwert2="" Suchart="Genau"/> </Suche> </Suchen> Das Ergebnis dieser Suche ist natürlich dasselbe, wenn Sie direkt eine Suche nach den beiden Stichwörtern durchführen: <Suchen> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="Potter" Suchwert2="" Suchart="Genau"/> </Suche> <Suche> Seite 21 <SimpleTerm Suchfeld="Stichwort" Suchwert="Harry" Suchwert2="" Suchart="Genau"/> </Suche> </Suchen> Diese Möglichkeit bringt Geschwindigkeitsvorteile, wenn Sie z.B. sehr aufwändige Suchen sukzessive mit weiteren Bedingungen erweitern möchten 3.4.2.3.3 TeilSuchString Diese Suchmöglichkeit stellt eine „Spezialität“ dar. Es gibt komplexe Suchanforderungen, die nicht mit den vorhandenen Suchstrukturen abgedeckt werden können. In diesem Fall können Sie einen Teil (TeilSuchString) oder eine gesamte Suchanfrage (SuchString, s. Kap. 3.4.2.5) bereits so vorformulieren, dass diese unverändert an den Server weitergegeben und ausgewertet werden kann. Hierzu ist natürlich die Kenntnis der Sprache (Syntax) notwendig, mit der die Suchanfragen formuliert werden müssen. Diese wird im Anhang beschrieben (s. A.2). Sie entspricht der Syntax für den SuchString (s. 3.4.2.5). 3.4.2.3.3.1 Beispiel Mit Hilfe dieser Suchmöglichkeit können jetzt auch komplexe Suchen mit verschiedenen Operationen und Klammerungen definiert werden. <Suchen> <Suche> <Datenbank>KNV</Datenbank> <TeilSuchString>AU="Rowling" AND (TI="Stein" OR TI="Feuer*") </TeilSuchString> </Suche> </Suchen> Eine derartige Suche konnten Sie im Webservice bisher nicht definieren. Der TeilSuchString ist besonders geeignet, um Einschränkungen zu definieren, die immer wieder mit anderen Suchkriterien zusammen verwendet werden. Ansonsten wurde der ComplexTerm geschaffen, der es ebenfalls ermöglicht, solche komplexen Suchanfragen auf XML-Ebene zu formulieren. Diese Möglichkeit ist im nächsten Kapitel beschrieben. 3.4.2.3.4 ComplexTerm Mit der Suche über ComplexTerm haben Sie die Möglichkeit, zwei Suchbedingungen zusätzlich zum Standardoperator „UND“ mit den Operatoren „ODER“ oder „UND NICHT“ zu verknüpfen. Sie haben hierdurch neue Suchmöglichkeiten, die bisher nicht gegeben waren. Allerdings ist natürlich die Definition einer derartigen Suchanfrage etwas komplizierter. Sie definieren genau zwei Suchbedingungen mit Hilfe des Parameters „Suche“ und einer der bisher beschriebenen 4 Ausprägungen. Dazu kommt nun noch eine logische Verknüpfung und das ganze wird dann zu einer komplexen Suchbedingung zusammengefasst. Mehrere komplexe Suchbedingungen können dann wieder kombiniert und ineinander geschachtelt werden. Der im letzten Kapitel definierte TeilSuchString (Autorteile = "Rowling" AND (Stichwort = "Stein " OR Stichwort = "Feuer*")) könnte dann folgendermaßen formuliert werden: <Suchen> Seite 22 <Datenbank>KNV</Datenbank> <Suche> <ComplexTerm> <Teilsuche1> <SimpleTerm Suchfeld="Autorteile" Suchwert="Rowling" Suchwert2="" Suchart="Genau"/> </Teilsuche1> <Teilsuche2> <ComplexTerm> <Teilsuche1> <SimpleTerm Suchfeld="Stichwort" Suchwert="Stein" Suchwert2="" Suchart="Genau"/> </Teilsuche1> <Teilsuche2> <SimpleTerm Suchfeld="Stichwort" Suchwert="Stein" Suchwert2="" Suchart="RechtsUngenau"/> </Teilsuche2> <Verknuepfung>OR</Verknuepfung> </ComplexTerm> </Teilsuche2> <Verknuepfung>AND</Verknuepfung> </ComplexTerm> </Suche> </Suchen> 3.4.2.4 Feld KNVSuche Die KNV-Suche stellt eine Alternative zur bisher beschriebenen „Standardsuche“ dar und kann durch die folgenden Eigenschaften beschrieben werden: • Sie geben einen Suchwert oder eine Kombination von Suchwerten nur noch in einem Suchfeld ein und müssen nicht überlegen, in welchen Suchfeldern Sie suchen wollen. • Zurzeit sucht der Server in den Suchfeldern „Titel“, „Stichwort“, „Autor“, „Schlagwort“, „Verlag“ und „Zusatztexte“. Dies kann sich im Laufe der Zeit immer mal wieder ändern. • Es wird auf verschiedene Weisen gesucht: genau, rechtsungenau und phonetisch. • Da die Treffermengen dadurch weitaus größer werden, ordnet der Server nun jedem Titel des Suchergebnisses eine „Wertigkeit“ zu. Diese soll ausdrücken wie „gut“ der gefundene Titel zu Ihrer Suchanfrage passt. • Die Titel werden dann in der Reihenfolge dieser Wertigkeit geliefert. Die KNV-Suche und die Standardsuche können nicht gleichzeitig benutzt werden, dies führt zu einer Fehlermeldung. Die KNV-Suche kann jedoch mit Einschränkungen versehen werden (siehe Feld Einschränkung). Die Definition einer KNVSuche ist einfach, wieder soll nach dem Wort „Potter“ gesucht werden: <Suchen> <KNVSuche Suchwert="Potter" Alternativenvorschlagen="nein"/> </Suchen> Der Server liefert nun alle Titel, die „irgendwo“ das Wort Potter enthalten. Das Suchergebnis wird nach der bereits erwähnten Wertigkeit geordnet, was dazu führt, dass im allgemeinen Artikel mit „Harry Potter“ im Titel oder Bücher der Autorin „Beatrix Potter“ ganz oben im Ergebnis zu finden sind. Seite 23 Wenn Sie das Attribut „Alternativenvorschlagen“ positiv belegen (also mit „ja“, „yes“ oder „true“), dann enthält das Suchergebnis noch Begriffe, die so „ähnlich“ wie Ihr Suchwert sind. Diese können als Ausgangspunkt für weitere Suchen genutzt werden. 3.4.2.5 Feld SuchString Der SuchString ist die dritte grundlegende Suchmöglichkeit. Hier müssen Sie die gesamte Suchanfrage fertig vorformulieren (genauso wie es bereits bei der einfachen Suchbedingung mit TeilSuchString beschrieben wurde). Hier ein Beispiel: <Suchen> <SuchString>(TI EQ "harry" AND TI EQ "potter") AND NOT (AU EQ "Rowling*" or AU EQ "Joan*") </SuchString> </Suchen> Diese Suche soll folgende Titel liefern: • Sie enthalten die Stichwörter „harry“ und „potter“ • Autoren, deren Namen mit „Joan“ oder „Rowling“ beginnen, sollen nicht gefunden werden Die Syntax für den SuchString wird im Anhang (s. A.2) beschrieben. Der SuchString kann nicht zusammen mit einer der anderen Suchen, also Standardsuche oder KNV-Suche kombiniert werden. Dies führt zu einer Fehlermeldung. Allerdings kann ein TeilSuchString mit der gleichen Syntax innerhalb der Standardsuche verwendet werden (s. 3.4.2.3.3). 3.4.2.6 Feld SuchFilter Das Feld kann eine Kennung (ID) für einen Filter enthalten. Welche FilterIDs zur Verfügung stehen, können Sie mit der Funktion „GetFilterList“ ermitteln. Siehe Kap. 3.5. Sie haben die Möglichkeit, mehrere Filter gleichzeitig zu verwenden. 3.4.2.7 Feld Einschraenkung Das Feld kann einen der folgenden Werte enthalten: • HC (Hardcover) • TB (Taschenbücher) • Novitaet • NurBuch • NurLieferbar Das Feld kann mehrmals mit verschiedenen Einschränkungen wiederholt werden, die dann alle gelten müssen. 3.4.2.8 Feld Sortierung Mit der Sortierung geben Sie an, wie eine Liste von gesuchten Titeln sortiert werden soll. Sie können bis zu 3 Sortierkriterien angeben. Beispiel: <Suchen> <Suche> … Seite 24 </Suche> <Sortierung Feld="Autor" Richtung="aufsteigend"/> <Sortierung Feld="Preis" Richtung="absteigend"/> </Suchen> Die Titel werden also nach Autor aufsteigend sortiert, bei Titeln mit dem gleichen Autor werden diese dann nach Preis absteigend sortiert. Es können nicht alle Suchfelder auch zum Sortieren benutzt werden, die Liste der Sortierfelder ist: • Autor • Titel • Verlag • ISBN • EAN • Preis • Meldenummer • Starrating • Sortiment (hier wird allerdings nach den Sortiment-Codes sortiert, diese finden Sie im Anhang (s. A.4)) Es gibt zwei Sortierrichtungen, die Werte dafür sind • „Aufsteigend“, „Ascending“, „Vor“ oder „1“ • „Absteigend“, „Descending“, „Zurück“ oder „2“ Ist keine Richtung angegeben, wird immer aufsteigend sortiert. 3.4.2.9 Feld ClusterDatenLiefern In diesem Feld geben Sie einen Ja/Nein-Wert ein. Falls „ja“, enthält das Suchergebnis sogenannte Clusterinformationen. Dieses sind weitere Informationen über die Struktur des Suchergebnisses, indem die Suchtreffer verschiedenen Kategorien und Einteilungen zugeordnet werden. Das Clusterergebnis wird bei den Antwortparametern ausführlich beschrieben. Beispiel: <Suchen> <KNVSuche Suchwert="Potter" Alternativenvorschlagen="nein"/> <ClusterDatenLiefern>ja</ClusterDatenLiefern> </Suchen> 3.4.2.10 Feld ClusterParameter Sie können eine Suche auf die Treffer einer bestimmten Kategorie (Cluster) einschränken. Hierzu müssen Sie bei der Suche einfach einen oder mehrere Werte definieren, die Sie zuvor aus einem geclusterten Suchergebnis entnommen haben. Hier ein Beispiel: Sie wollen das Suchergebnis einer KNV-Suche beschränken auf Bücher/Belletristik. Das Ergebnis soll wieder Kategorien (Cluster) enthalten um ggf. eine weitere Einschränkung vornehmen zu können. <Suchen> <KNVSuche Suchwert="Potter" Alternativenvorschlagen="nein"/> <ClusterParameter>1:0101</ClusterParameter> Seite 25 <ClusterDatenLiefern>ja</ClusterDatenLiefern> </Suchen> Die Werte für das Feld „ClusterParameter“ werden so angegeben, wie sie zuvor in einem geclusterten Suchergebnis geliefert wurden. Eine Systematik der Werte finden Sie im Anhang (s. A.5). 3.4.2.11 Feld ErgebnisName Dieses Feld dient dazu, dem Suchergebnis einen Namen bzw. eine Kennung zu geben: • Wenn Sie keine Kennung verwenden, wird die Standardkennung KNVANFRAGE verwendet. • Mit verschiedenen Kennungen können Sie mehrere Suchergebnisse im Server aktiv halten und diese dann mit dem Suchparameter „QueryHandle“ wieder in weiteren Suchen verwenden. • Ein älteres Suchergebnis mit bei Neuverwendung derselben Kennung überschrieben. • Wenn Sie zu viele Suchergebnisse erzeugen, werden vom Server alte Ergebnisse gelöscht. • Wenn Sie eine unbekannte oder gelöschte Kennung in einer Suche verwenden, führt dies zu einer Fehlermeldung. Beispiel: <Suchen> <KNVSuche Suchwert="Potter" Alternativenvorschlagen="nein"/> <ErgebnisName>Doku1</ErgebnisName> </Suchen> 3.4.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice Suchergebnis Struktur Das Suchergebnis Die Struktur „Suchergebnis“ enthält die folgenden Informationen Handle String Die Kennung des Suchergebnisses Ergebnis Struktur / mehrfach Die Anzahl der Treffer in den beteiligten Datenbanken TrefferGesamt Numerisch Anzahl der Gesamttreffer AusgefuehrteSuche String Die ausgeführte Suche SortierungInfo String Die ausgeführte Sortierung ClusterDaten Struktur Die Cluster-Informationen SuchVorschlaege Struktur Alternative Suchvorschläge bei der KNVSuche Beispiel: Seite 26 <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Suchergebnis> <Handle>Doku1</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>4837</Treffer> </Ergebnis> <TrefferGesamt>4837</TrefferGesamt> <AusgefuehrteSuche>Potter</AusgefuehrteSuche> <SortierungInfo>Zu viele Suchtreffer - Keine Sortierung möglich</SortierungInfo> <ClusterDaten> … </ClusterDaten> <SuchVorschlaege> … </SuchVorschlaege> </Suchergebnis> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> In den Beispielen in den folgenden Abschnitten wird jeweils nur noch der Teil „Suchergebnis“ beschrieben. 3.4.3.1 Feld Handle Das Feld Handle enthält die Kennung des Suchergebnisses. Hier finden Sie den Namen wieder, den Sie beim Aufruf der Suche im Feld „ErgebnisName“ festgelegt haben. Falls Sie keinen Namen angegeben haben, wird hier die Standardkennung „KNVANFRAGE“ geliefert. 3.4.3.2 Struktur Ergebnis und Feld TrefferGesamt Für jede bei der Suche beteiligten Datenbank wird eine Ergebnis-Struktur geliefert, die die Anzahl der Treffer der Datenbank zurückgibt. Das Feld TrefferGesamt liefert die Anzahl der Gesamttreffer der Suche über alle Datenbanken. <Suchergebnis> <Ergebnis> <DB>KNV</DB> <Treffer>430</Treffer> </Ergebnis> <Ergebnis> <DB>Gardners</DB> <Treffer>234</Treffer> </Ergebnis> <TrefferGesamt>664</TrefferGesamt> </Suchergebnis> Seite 27 3.4.3.3 Feld AusgefuehrteSuche Dieses Feld dient nur der Information. Hier wird die vom Server ausformulierte und letztendlich ausgeführte Suche als String zurückgegeben. Insbesondere bei komplexeren Suchanfragen können Sie damit kontrollieren, ob auch die Suche ausgeführt wurde, die Sie beabsichtigt haben. Bitte beachten Sie, dass in der Suchanfrage die internen Datenbanknamen der Suchfelder anstelle ihrer bekannten Namen stehen. Dies hat den Grund, dass in der WebserviceSchnittstelle eigene lesbare Namen für die Suchfelder benutzt werden, um von den internen Namen der verschiedenen Datenbanken unabhängig zu sein. 3.4.3.4 Feld SortierungInfo Dieses Feld liefert die Information darüber, ob und wie sortiert wurde. Für die Sortierung gibt es im Webservice eine Obergrenze (derzeit 500 Titel), oberhalb derer keine Sortierung mehr stattfindet. Dieses Feld liefert die entsprechende Information. Beispiel: Sie haben eine Suche ausgeführt und wollen nach Titel sortieren, die Suche hatte 40 Treffer, dann sieht das Ergebnis so aus: <Suchergebnis> <Handle>Doku1</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>40</Treffer> </Ergebnis> <TrefferGesamt>40</TrefferGesamt> <AusgefuehrteSuche>FIND (((TI="potter"))) AND (((TI="harry"))) AND (((TI="askaban")))</AusgefuehrteSuche> <SortierungInfo>Sortiert nach Titel:1</SortierungInfo> </Suchergebnis> Falls die Suche mehr als 500 Treffer erzielt, wird NICHT sortiert <Suchergebnis> <Handle>Doku1</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>522</Treffer> </Ergebnis> <TrefferGesamt>522</TrefferGesamt> <AusgefuehrteSuche>FIND (((TI="potter"))) AND (((TI="harry")))</AusgefuehrteSuche> <SortierungInfo>Zu viele Suchtreffer - Keine Sortierung möglich</SortierungInfo> </Suchergebnis> 3.4.3.5 Struktur Clusterdaten Neben der Trefferanzahl können in einem Suchergebnis weitere Informationen angefordert werden. Hierzu gehören die sogenannten Cluster-Informationen. In den „ClusterDaten“ werden alle Treffer des Suchergebnisses verschiedenen Kategorien und Einteilungen zugeordnet, um das Ergebnis übersichtlicher zu gestalten und zielgerichteter weitersuchen zu können. Das Clustering von KNV erfolgt in drei verschiedenen Clustertypen. Kategoriencluster (Typ 1, Clustername „Total“) Im diesem Cluster, das im Prinzip der Warengruppensystematik entspricht, werden die Titel der Trefferliste der Suchanfrage in Kategorien eingeteilt, wie z.B. „Bücher“, „Internationale Titel“, „Hörbücher“, „EBooks“ usw.. Das Kategoriencluster ist hierarchisch aufgeSeite 28 baut, d.h. jede Kategorie kann dann noch um bis zu 2 weitere Ebenen verfeinert werden. Beispiel: Kategorie Ebene 1: Bücher Kategorie Ebene 2: Reise Kategorie Ebene 3: Reiseführer Filtercluster (Typ 2) Daneben gibt es noch mehrere sog. Filtercluster, die nicht hierarchisch aufgebaut sind, die also keine weiteren Ebenen haben. Beispiele für Filtercluster sind „Sortiment“, „Einband“, „Sprache“, „Starrating“, „Lieferbarkeit“, „Zielgruppe“ etc. Jeder Filtercluster besitzt eine feste Liste von Werten, denen die Titel der Trefferliste zugeordnet werden. Beispiel: Filtercluster „Lieferbarkeit“: Clusterwerte: „Sofort lieferbar“, „Lieferbar“, „nicht lieferbar“ Im Clusterergebnis der Webservice Response wird jedes Cluster mit all den Clusterwerten und Treffermengen zurückgeben, für die es bei der Suchanfrage Treffer gibt. Clusterwerte ohne Treffer werden nicht zurückgemeldet. Fundstellencluster (Typ 3, nur bei KNV-Suche möglich) Clusterwerte: „Titel“, „Autor“, „Thema“, „Zusatztext“ Im Fundstellencluster der KNV-Suche werden Titel einer Trefferliste den Suchbegriffen zugeordnet, über die sie in der Suche gefunden wurden. Die Liste aller Clusterkategorien und Filter wird im Anhang (s. A.5) beschrieben. Ein „Cluster“ beinhaltet folgende Informationen Typ Numerisch Art der Clusterinformation Code String Clustercode. Dieser Wert kann als ClusterParameter in einer Suche verwendet werden. Anzeigename String Name der Kategorie für eine Anzeige Treffer Numerisch Anzahl der Treffer in dieser Kategorie Ebene Numerisch Ebene dieser Kategorie (0-3) Werte Struktur mehrfach Weitere Einteilung dieser Kategorie auf der nächsten Ebene Jeder Wert besteht aus folgenden Informationen: Code String Clustercode. Dieser Wert kann als ClusterParameter in einer Suche verwendet werden (siehe 3.4.2.10) Anzeigename String Name der Kategorie für eine Anzeige Treffer Numerisch Anzahl der Treffer in dieser Kategorie Ebene Numerisch Ebene dieser Unterkategorie (1-3) WeitereEbeneVorhanden Boolean Gibt an ob diese Kategorie weiter verfeinert werden kann indem nach dem Code dieser Kategorie gesucht wird Seite 29 Hierzu ein Beispiel: Wir führen wieder die KNV-Suche nach „Harry Potter“ durch, diese Suche hat z.B. 1052 Treffer in der KNV-Datenbank. Suchergebnis im Kategoriencluster (Typ 1, Ebene 1): - 771 Bücher - 375 Internationale Titel - 82 Videos/DVDs - 80 Hörbücher - 50 Spiele Extras - 47 Software-Treffer - 22 Kalender Der entsprechende Teil des Suchergebnisses mit der Oberkategorie und den ersten 3 Kategorien: <Suchergebnis> <ClusterDaten> <Cluster> <Typ>1</Typ> <Code>1:*</Code> <AnzeigeName>Total</AnzeigeName> <Treffer>1052</Treffer> <Ebene>0</Ebene> <lfdNummer>1</lfdNummer> <Werte> <Code>1:01</Code> <AnzeigeName>Bücher</AnzeigeName> <Treffer>771</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>true</WeitereEbeneVorhanden> <lfdNummer>1</lfdNummer> </Werte> <Werte> <Code>1:06</Code> <AnzeigeName>International</AnzeigeName> <Treffer>375</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>true</WeitereEbeneVorhanden> <lfdNummer>2</lfdNummer> </Werte> <Werte> <Code>1:04</Code> <AnzeigeName>Video/DVD</AnzeigeName> <Treffer>82</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>true</WeitereEbeneVorhanden> <lfdNummer>3</lfdNummer> </Werte> … </Cluster> <Cluster> <Typ>2</Typ> … </Cluster> <Cluster> <Typ>3</Typ> … </Cluster> Seite 30 <ClusterDaten> </Suchergebnis> Suchergebnis im Filtercluster „Sortiment“ (Typ 2, Ebene 1): - 674 Buch - 81 Film - 75 Hörbuch - 72 Musik - 47 Software - 34 Ebook - 23 Kalender - 22 Schulbuch - 16 Nonbooks - 5 Bürobedarf - 2 unbekannt - 1 Spielwaren Der entsprechende Teil des Suchergebnisses mit der Filterkategorie „Sortiment“ und den ersten 3 Werten: <Suchergebnis> <ClusterDaten> <Cluster> <Typ>1</Typ> … </Cluster> <Cluster> <Typ>2</Typ> <AnzeigeName>Sortiment</AnzeigeName> <Ebene>0</Ebene> <lfdNummer>2</lfdNummer> <Werte> <Code>2:SO:01</Code> <AnzeigeName>Buch</AnzeigeName> <Treffer>674</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>1</lfdNummer> </Werte> <Werte> <Code>2:SO:10</Code> <AnzeigeName>Film</AnzeigeName> <Treffer>81</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>2</lfdNummer> </Werte> <Werte> <Code>2:SO:11</Code> <AnzeigeName>Hörbuch</AnzeigeName> <Treffer>75</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>3</lfdNummer> </Werte> … Seite 31 </Cluster> <Cluster> <Typ>3</Typ> … </Cluster> <ClusterDaten> </Suchergebnis> Suchergebnis im Cluster „Fundstellen“ (Typ 3, Ebene 1): - 651 im Titel - 37 im Autor - 152 im Thema (Schlagwort) - 817 im Zusatztext Hier der entsprechende Teil des Suchergebnisses mit den ersten 3 Werten: <Suchergebnis> <ClusterDaten> <Cluster> <Typ>1</Typ> … </Cluster> <Cluster> <Typ>2</Typ> … </Cluster> <Cluster> <Typ>3</Typ> <AnzeigeName>Fundstellen</AnzeigeName> <Ebene>0</Ebene> <Werte> <Code>3:Titel</Code> <AnzeigeName>Titel</AnzeigeName> <Treffer>651</Treffer> <Ebene>0</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>1</lfdNummer> </Werte> <Werte> <Code>3:Autor</Code> <AnzeigeName>Autor</AnzeigeName> <Treffer>37</Treffer> <Ebene>0</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>2</lfdNummer> </Werte> <Werte> <Code>3:Thema</Code> <AnzeigeName>Thema</AnzeigeName> <Treffer>152</Treffer> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>3</lfdNummer> </Werte> … </Cluster> <ClusterDaten> </Suchergebnis> Seite 32 3.4.3.6 Struktur Suchvorschlaege Bei der KNV-Suche können Sie bei Bedarf auch eine Liste ähnlich lautender Suchvorschläge anfordern. Diese finden Sie dann im Suchergebnis und können Sie dazu benutzen, dem Benutzer ggf. weitere Suchen vorzuschlagen („meinten Sie“). Bei der KNV-Suche nach „Harry Potter“ werden folgende Alternative Suchworte geliefert: <Suchergebnis> <SuchVorschlaege> <Alternative> <Suchwort>word 1</Suchwort> <Alternativen Aehnlichkeit="87" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="77" <Alternativen Aehnlichkeit="77" <Alternativen Aehnlichkeit="76" <Alternativen Aehnlichkeit="76" </Alternative> <Alternative> <Suchwort>word 2</Suchwort> <Alternativen Aehnlichkeit="88" <Alternativen Aehnlichkeit="83" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="82" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="80" <Alternativen Aehnlichkeit="79" <Alternativen Aehnlichkeit="79" <Alternativen Aehnlichkeit="79" <Alternativen Aehnlichkeit="78" <Alternativen Aehnlichkeit="78" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" <Alternativen Aehnlichkeit="75" </Alternative> </SuchVorschlaege> </Suchergebnis> Nummer="1" Wert="Hary"/> Nummer="2" Wert="Harrys"/> Nummer="3" Wert="Wharry"/> Nummer="4" Wert="Härry"/> Nummer="5" Wert="Sharry"/> Nummer="6" Wert="Harray"/> Nummer="7" Wert="Haary"/> Nummer="8" Wert="Harr"/> Nummer="9" Wert="Arry"/> Nummer="10" Wert="Hartry"/> Nummer="11" Wert="Harary"/> Nummer="1" Wert="Poter"/> Nummer="2" Wert="Pooter"/> Nummer="3" Wert="POTTERS"/> Nummer="4" Wert="POTTERY"/> Nummer="5" Wert="Spotter"/> Nummer="6" Wert="Pötter"/> Nummer="7" Wert="Pottier"/> Nummer="8" Wert="Pottler"/> Nummer="9" Wert="Pottern"/> Nummer="10" Wert="Otter"/> Nummer="11" Wert="Potte"/> Nummer="12" Wert="Piotter"/> Nummer="13" Wert="Plotter"/> Nummer="14" Wert="Protter"/> Nummer="15" Wert="Potterie"/> Nummer="16" Wert="pottered"/> Nummer="17" Wert="Pitter"/> Nummer="18" Wert="Petter"/> Nummer="19" Wert="Putter"/> Nummer="20" Wert="Patter"/> Nummer="21" Wert="Pöter"/> Nummer="22" Wert="Potier"/> Nummer="23" Wert="Powter"/> Nummer="24" Wert="Poater"/> Nummer="25" Wert="potere"/> Zu jedem Suchbegriff werden alle Alternativen geliefert, die mit dem Suchbegriff eine Ähnlichkeit von über 75 Prozent haben. Die Ähnlichkeit wird hierbei mit dem sog. Levenstein-Algorithmus ermittelt. Insbesondere wenn ein Benutzer sich vertippt hat und kaum Treffer bekommt, ist die Wahrscheinlichkeit groß, dass sich der eigentlich gewünschte Suchwert in dieser Liste befindet. Hat er zum Beispiel anstelle von „Potter“ den Suchwert „Poter“ angegeben, wird als erster alternativer Suchwert immerhin das wahrscheinlich beabsichtigte „Potter“ geliefert. Seite 33 3.4.4 Weitere Beispiele Zur weiteren Veranschaulichung hier noch einige Beispiele für Suchanfragen und die gelieferten Ergebnisse. 3.4.4.1 Beispiel 1 Suche - in den Datenbanken KNV und BakerTaylor - nach Autor „Hesse“ - nach Stichwörtern, die mit „Steppe“ beginnen Das Ergebnis soll nach dem Titel sortiert werden und die Kennung „Doku2“ haben: Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>[email protected]@de</SessionID> <Suchen> <Datenbank>KNV</Datenbank> <Datenbank>BakerTaylor</Datenbank> <Suche> <SimpleTerm Suchfeld="Autorteile" Suchwert="Hesse" Suchwert2="" Suchart="Genau"/> </Suche> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="steppe" Suchwert2="" Suchart="RechtsUngenau"/> </Suche> <Sortierung Feld="Titel" Richtung="Aufsteigend"/> <ErgebnisName>Doku2</ErgebnisName> </Suchen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Suchergebnis> <Handle>Doku2</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>32</Treffer> </Ergebnis> <Ergebnis> <DB>BakerTaylor</DB> <Treffer>5</Treffer> </Ergebnis> <TrefferGesamt>37</TrefferGesamt> <AusgefuehrteSuche>FIND AU = "Hesse" AND (((TI="steppe*")))</AusgefuehrteSuche> <SortierungInfo>Sortiert nach Titel:1</SortierungInfo> </Suchergebnis> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 34 3.4.5 Besonderheiten bei der Preissuche Eine Suche über das Feld „Preis“ ist nur in Verbindung mit weiteren Suchangaben möglich. Bei einer Preissuche wird die Treffermenge erst beim Lesen der Datensätze ermittelt. Die Treffermengen bei einer Suchanfrage mit und einer Suchanfrage ohne Preiseinschränkung ist daher identisch. Erst beim „Lesen“ werden Titel, die der Preiseinschränkung nicht entsprechen, herausgefiltert. Seite 35 3.5 Teilfunktion „Filterliste Lesen“ PCBIS stellt eine Reihe vordefinierter Einschränkungen, sog. Filter für die Suche bereit. Sie können z.B. eine beliebige Suche ausführen und das Ergebnis auf „Hörbücher“ oder „Elektronische Medien“ einschränken. Diese Filter-Einschränkungen können häufig durch andere Suchangaben nicht erreicht werden, denn die zugrundeliegenden Suchdefinitionen sind teilweise sehr komplex. Die angebotenen Filter werden immer wieder geändert und optimiert oder auch an saisonale Gegebenheiten (Ostern, Weihnachten etc.) angepasst. Mit der Funktion „GetFilterList“ haben Sie daher die Möglichkeit, alle aktuell vorhandenen Filter abzufragen. Sie erhalten so für jeden Filter eine Kennung (ID). Diese Kennungen können Sie dann innerhalb der Suche im Feld „SuchFilter“ verwenden, um Ihre Suchanfrage damit einzuschränken. Die Menge der verfügbaren Filter ist in Filtergruppen zu bestimmten Themen organisiert. Mit der Funktion „GetFilterList“ können Sie entweder die Liste der Filtergruppen, oder aber die Liste der Einzelfilter innerhalb einer Gruppe abfragen. 3.5.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <GetFilterList> <idFilterGruppe>?</idFilterGruppe> <Sprache>?</Sprache> </GetFilterList> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <FilterList> <Sprache></Sprache> <FilterGruppe> <Code></Code> <Name></Name> <FilterDefinition> <Code></Code> <Name></Name> </FilterDefinition> <FilterDefinition> <Code></Code> <Name></Name> </FilterDefinition> … </FilterGruppe> … </ns1:wscallResponse> 3.5.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Seite 36 GetFilterList Struktur Funktionsparameter Der Funktionsparameter „GetFilterList“ hat folgende Struktur idFilterGruppe String ID der gewünschten Filtergruppe oder leer lassen, oder „ALLE“. Sprache String Gewünschte Sprache für das Ergebnis 3.5.2.1 Feld idFilterGruppe Wenn Sie hier die Kennung (ID) einer Filtergruppe übergeben, erhalten Sie eine Liste der einzelnen Filter innerhalb der Gruppe. Wenn Sie dieses Feld leer lassen, erhalten Sie als Ergebnis die Liste der verfügbaren Filtergruppen. Wenn Sie hier den Wert „ALLE“ übergeben, erhalten Sie die vollständige Liste aller Filtergruppen und Einzelfilter. 3.5.2.2 Feld Sprache Dieses Feld wird noch nicht berücksichtigt. Es ist für künftige Versionen von PCBiS geplant. 3.5.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice FilterList Struktur Das Funktionsergebnis Das Funktionsergebnis „FilterList“ hat folgende Struktur Sprache String Sprache der gelieferten Daten FilterGruppe Struktur Liste mit Strukturen, die die Informationen über die gelieferten Filtergruppen enthalten. Code String Kennung der Filtergruppe Name String Beschreibung/Name der Filtergruppe FilterDefinition Struktur Liste mit Strukturen, die die Informationen über die gelieferten Einzelfilter enthalten. Code String Kennung des Filters Name String Beschreibung/Name des Filters 3.5.3.1 Beispiel 1 Es soll die Liste aller verfügbaren Filtergruppen abgefragt werden: Seite 37 Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <GetFilterList> <Sprache>de</Sprache> </GetFilterList> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <FilterList> <Sprache>de</Sprache> <FilterGruppe> <Code>EMED</Code> <Name>Elektronische Medien</Name> </FilterGruppe> <FilterGruppe> <Code>AUDI</Code> <Name>Hörbücher</Name> </FilterGruppe> <FilterGruppe> <Code>CARD</Code> <Name>Karten</Name> </FilterGruppe> <FilterGruppe> <Code>CLDR</Code> <Name>Kalender</Name> </FilterGruppe> <FilterGruppe> <Code>LANG</Code> <Name>Sprache</Name> </FilterGruppe> <FilterGruppe> <Code>WINE</Code> <Name>Weine</Name> </FilterGruppe> <FilterGruppe> <Code>NOBK</Code> <Name>Nonbooks</Name> </FilterGruppe> <FilterGruppe> <Code>PBS1</Code> <Name>PBS - Papier, Büro, Schreibwaren</Name> </FilterGruppe> <FilterGruppe> <Code>STAR</Code> <Name>Titelkategorisierung</Name> </FilterGruppe> Seite 38 <FilterGruppe> <Code>TARG</Code> <Name>Zielgruppen</Name> </FilterGruppe> <FilterGruppe> <Code>PTIT</Code> <Name>Prämierte Titel</Name> </FilterGruppe> <FilterGruppe> <Code>BLOC</Code> <Name>Belletristik - Ort der Handlung</Name> </FilterGruppe> <FilterGruppe> <Code>BAUT</Code> <Name>Belletristik - Herkunft des Autors</Name> </FilterGruppe> </FilterList> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Die gelieferten Gruppenkennungen „EMED“, „AUDI“ usw. können in einer Suchanfrage nicht benutzt werden. Dort können Sie nur Filterkennungen verwenden. Diese erfahren Sie, wenn Sie die Liste der Filter einer Filtergruppe abfragen, wie im folgenden Beispiel. 3.5.3.2 Beispiel 2 Es soll die Liste aller verfügbaren Filter aus der Gruppe „Preisgekrönte Artikel“ abgefragt werden. Hierzu muss beim Aufruf die Kennung der Filtergruppe „Preisgekrönte Artikel“ (PTIT) angegeben werden: Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <GetFilterList> <Sprache>de</Sprache> <idFilterGruppe> PTIT</idFilterGruppe> </GetFilterList> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <FilterList> <Sprache>de</Sprache> <FilterGruppe> <Code>PTIT</Code> <Name>Preisgekrönte Artikel</Name> <FilterDefinition> Seite 39 <Code>PTITGES</Code> <Name>alle preisgekrönten Artikel</Name> </FilterDefinition> <FilterDefinition> <Code>PTITBIL</Code> <Name>Bilderbücher</Name> </FilterDefinition> <FilterDefinition> <Code>PTITFIL</Code> <Name>Filme</Name> </FilterDefinition> <FilterDefinition> <Code>PTITHOE</Code> <Name>Hörbücher</Name> </FilterDefinition> <FilterDefinition> <Code>PTITKIN</Code> <Name>Kinder- und Jugendbücher</Name> </FilterDefinition> <FilterDefinition> <Code>PTITKRI</Code> <Name>Krimis</Name> </FilterDefinition> <FilterDefinition> <Code>PTITROM</Code> <Name>Romane, Erzählungen</Name> </FilterDefinition> <FilterDefinition> <Code>PTITSAC</Code> <Name>Sach- und Fachbücher</Name> </FilterDefinition> <FilterDefinition> <Code>PTITSPI</Code> <Name>Spiele</Name> </FilterDefinition> </FilterGruppe> </FilterList> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Die gelieferten Filterkennungen „PTITGES“, „PTITBIL“ usw. können in einer Suchanfrage zur Einschränkung des Ergebnisses benutzt werden (siehe 3.4.2.6). <Suchen> <Suche> <SimpleTerm Suchfeld="Stichwort" Suchwert="Afrika" Suchwert2="" Suchart="Genau"/> </Suche> <SuchFilter> PTITGES</SuchFilter> </Suchen> Seite 40 3.6 Teilfunktion „Formatauswahl“ Mit der Funktion „Formatauswahl“ können Sie festlegen, welche Felder des Datensatzes beim Lesen geliefert werden sollen, wenn Sie nicht eines der Standardformate verwenden möchten. (Lesen Sie hierzu bitte auch das Kapitel über die Datensatzformate nach, siehe Kap 4). Beim „Lesen“ selber müssen Sie dann die dynamischen Formate verwenden: • KNVXML • NEUK 3.6.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Formatauswahl> <Feld></Feld> </Formatauswahl> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>6</Anzahlfelder> <Feld></Feld> </Formatauswahl> </ns1:wscallResponse> 3.6.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Formatauswahl Struktur Funktionsparameter Der Funktionsparameter „FilterList“ hat folgende Struktur Field String / mehrfach Angabe eines Feldes aus dem Datensatzformat KNVXML. Dieses Anfragefeld kann mehrfach angegeben werden. 3.6.2.1 Feld Field Es enthält den Namen eines Datensatzfeldes, welches beim Lesen der Datensätze geliefert werden soll. Hier werden die Feldnamen des KNVXML-Formates verwendet. (Siehe Abschnitt 4.2 ). 3.6.3 Feld Felder der Antwort Datentyp Beschreibung Seite 41 SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice Formatauswahl Struktur Das Funktionsergebnis Das Funktionsergebnis „Formatauswahl“ hat folgende Struktur Status String Liefert „OK“, wenn die Feldauswahl erfolgreich war. Anzahlfelder Numerisch Liefert die Anzahl der aktuell gewählten Felder. Feld String / mehrfach Liefert die Liste der aktuell gewählten Felder Hinweise: Die dynamischen Formate können erst nach einem Aufruf von „Formatauswahl“ verwendet werden. Andernfalls bekommen Sie einen Fehler. Diese Feldauswahl bleibt solange gültig, bis Sie durch einen erneuten Aufruf von Formatauswahl verändert oder wieder gelöscht wird. Wenn Sie den Parameter „Field“ nur einmal übergeben und dabei als Wert „Reset“ mitgeben, wird die Formatauswahl wieder gelöscht. Danach führt die Verwendung der dynamischen Formate wieder zu einem Fehler. Im NEUK-Format wird das Typkennzeichen (*03) immer ausgegeben, auch wenn es nicht angefordert wurde, da nur daran erkannt werden kann, ob es sich um einen Kopf, Band oder Einzelwerk handelt. Wenn Sie den Aufruf „Formatauswahl“ mehrmals hintereinander ausführen, funktioniert er kumulativ, d.h. die zusätzlich definierten Felder werden zum bereits definierten dynamischen Format hinzugefügt. Solange das mit „Formatauswahl“ definierte dynamische Format aktiv ist, können Sie die vordefinierten Formate „xxxKurz, xxxLang und xxxLangtext“ nicht benutzen, bzw. die Benutzung zeigt keine Wirkung. Es werden nur die mit „Formatauswahl“ definierten Felder geliefert, solange, bis die dynamische Feldauswahl wieder gelöscht wurde. 3.6.4 Spezielle Aufrufwerte Anstelle der Feldnamen können einige bestimmte Aufrufwerte, die folgende Bedeutung haben. Diese werden als einziges „Feld“ übergeben: „Reset“: Deaktiviert eine aktuell gültige dynamische Feldauswahl. Nach diesem Befehl sind wieder die Standardformate aktiviert. „AlleFelderAnzeigen“: Liefert in der Response alle verfügbaren Felder zurück. „AktuelleFelderAnzeigen“: Liefert in der Response alle aktuell durch ein dynamisches Format aktiven Felder zurück. Ist kein dynamisches Format ausgewählt, wird eine leere Antwort geliefert 3.6.5 Beispiel 3.6.5.1 Beispiel: Ein Format wählen Anfrage: <soapenv:Envelope> <soapenv:Header/> Seite 42 <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>ISBN</Feld> <Feld>Ladenpreis</Feld> </ Formatauswahl > </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: Die aktuelle Auswahl enthält einige Felder mehr, die für die Verarbeitung der Titel notwendig sind. <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>10</Anzahlfelder> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>ISBN</Feld> <Feld>Ldpreis</Feld> <Feld>Typknz</Feld> <Feld>Doknr</Feld> <Feld>DoknrKopf</Feld> <Feld>Doknr13</Feld> <Feld>Doknr13Kopf</Feld> <Feld>EAN</Feld> </Formatauswahl> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.6.5.2 Beispiel: Einige Felder dazu wählen Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>Verlag</Feld> <Feld>Text1</Feld> <Feld>Text2</Feld> </Formatauswahl > </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: Die aktuelle Auswahl ist größer geworden. <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> Seite 43 <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>13</Anzahlfelder> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>ISBN</Feld> <Feld>Ldpreis</Feld> <Feld>Typknz</Feld> <Feld>Doknr</Feld> <Feld>DoknrKopf</Feld> <Feld>Doknr13</Feld> <Feld>Doknr13Kopf</Feld> <Feld>EAN</Feld> <Feld>Verlag</Feld> <Feld>Text1</Feld> <Feld>Text2</Feld> </Formatauswahl> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.6.5.3 Beispiel: Aktuelle Auswahl anzeigen Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>AktuelleFelderAnzeigen</Feld> </Formatauswahl > </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: Die gleiche Antwort wie im letzten Beispiel <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>13</Anzahlfelder> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>ISBN</Feld> <Feld>Ldpreis</Feld> <Feld>Typknz</Feld> <Feld>Doknr</Feld> <Feld>DoknrKopf</Feld> <Feld>Doknr13</Feld> <Feld>Doknr13Kopf</Feld> <Feld>EAN</Feld> <Feld>Verlag</Feld> <Feld>Text1</Feld> <Feld>Text2</Feld> </Formatauswahl> Seite 44 </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.6.5.4 Beispiel: Formatauswahl löschen Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>reset</Feld> </Formatauswahl > </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: Die Auswahl ist jetzt leer. <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>0</Anzahlfelder> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.6.6 Fehlerbehandlung Wenn bei Aufruf der Formatauswahl ein ungültiger Feldnamen angegeben wird, so wird eine Fehlermeldung ausgegeben. Die Fehlermeldung der ungültigen Feldnamen: Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>ISBN</Feld> <Feld>Falsch1</Feld> <Feld>Falsch2</Feld> </Formatauswahl > </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> Seite 45 <soapenv:Fault> <faultcode>axis2ns3:20006</faultcode> <faultstring>Fehler im Formatauswahl-Aufruf</faultstring> <detail> <TLDFehler> <errcode>20006</errcode> <errmsg>Fehler im Formatauswahl-Aufruf</errmsg> <interrcode>0</interrcode> <interrmsg/> <addinfo>Ungültige Feldnamen : Falsch1, Falsch2</addinfo> <errlocation>Formatauswahl</errlocation> </TLDFehler> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Seite 46 3.7 Teilfunktion „GetMultimediaInfo“ KNV betreibt einen Multimediaserver, auf dem eine Vielzahl zusätzlicher Dateien zu den Datensätzen der Titeldatenbanken vorhanden ist. Hierzu gehören zum Beispiel die CoverBilder. Beim Lesen der Titelsätze können die Links auf die Multimediaobjekte nun direkt mitgelesen werden. Da es jedoch zu einem Titel verschiedene Multimediainformationen gibt, können Sie die Menge der MM-Objekte filtern. Die Funktion „GetMultimediaInfo“ liefert Ihnen die Informationen, welche Arten von Multimediaobjekten für welchen Katalog überhaupt verfügbar sind. Sie können entweder eine Gesamtliste anfordern oder aber die Auswahl auf eine bestimmte Datenbank beschränken. 3.7.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <GetMultimediaInfo> <Sprache> </Sprache> <Datenbank> </Datenbank> </GetMultimediaInfo> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <FilterList> <Sprache></Sprache> <MultimediaInfo> <Sprache>de</Sprache> <MultimediaInfo> <Datenbank>KNV</Datenbank> <MMInfoRecord> <mmTyp>HBILD</mmTyp> <mmVariante>mini</mmVariante> <mmVariante>normal</mmVariante> <mmVariante>zoom</mmVariante> <mmVariante>pcbis</mmVariante> <Bemerkung>Coverbilder gibt es in 4 Groessen</Bemerkung> </MMInfoRecord> <MMInfoRecord> … </MMInfoRecord> </MultimediaInfo> </MultimediaInfo > </ns1:wscallResponse> 3.7.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung GetMultimediaInfo Struktur Funktionsparameter. Seite 47 Der Funktionsparameter „GetMultimediaInfo“ hat folgende Struktur Sprache String Gewünschte Sprache für das Ergebnis Datenbank String Name der Datenbank. 3.7.2.1 Feld Datenbank Wenn Sie dieses Feld leer lassen, erhalten Sie als Ergebnis die Liste der verfügbaren Multimediaobjekte aller Datenbanken. Wenn Sie hier den Namen einer Datenbank übergeben, wird die Liste auf die verfügbaren Multimediaobjekte dieser Datenbank beschränkt. 3.7.2.2 Feld Sprache Dieses Feld wird noch nicht berücksichtigt. Es ist für künftige Versionen von PCBiS geplant. 3.7.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice MultimediaInfo Struktur Funktionsergebnis Das Funktionsergebnis „MultimediaInfo“ hat folgende Struktur Sprache String DBMultimediaInfo Struktur DB Sprache der gelieferten Daten Liste mit Strukturen die die Informationen über die möglichen Multimediaobjekte einer Datenbank enthalten. String MMInfoRecord Struktur 3.7.4 Name der Datenbank Liste mit Strukturen die die eigentlichen Informationen enthalten. MMTyp String Typ des verfügbaren MM-Objekts MMVariante String Liste der möglichen verfügbaren Varianten (Größen) des MMObjektes MMRang String Interne Nummer wenn mehrere gleichartige Objekte vorhanden sind Bemerkung String Bemerkung zum Inhalt oder ähnliches Beispiel Es soll die Liste aller möglichen Multimediaobjekten der Datenbank KNV gelesen werden: Seite 48 Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <GetMultimediaInfo> <Sprache>de</Sprache> <Datenbank>KNV</Datenbank> </GetMultimediaInfo> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <MultimediaInfo> <Sprache>de</Sprache> <DBMultimediaInfo> <Datenbank>KNV</Datenbank> <MMInfoRecord> <mmTyp>HBILD</mmTyp> <mmVariante>mini</mmVariante> <mmVariante>normal</mmVariante> <mmVariante>zoom</mmVariante> <Bemerkung>Hauptbilder, d.h. Coverabbildungen als JPG. Drei verschiedene Groessen</Bemerkung> </MMInfoRecord> </DBMultimediaInfo> </MultimediaInfo> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Die gelieferten Daten können nun in im Strukturfeld „AuswahlMultimediaDaten“ des Lesebefehles benutzt werden, um die Auswahl der zu lesenden Multimediaobjekte einzuschränken. Seite 49 3.8 Teilfunktion „Lesen“ Das Lesen der Titeldaten ist neben der Suche die zweite zentrale Funktion des Webservice. Sie enthält gegenüber der Vorgängerversion wesentliche Änderungen und Erweiterungen. 3.8.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Lesen> <Handle></Handle> <SatzVon></SatzVon> <SatzBis></SatzBis> <OhneDuplikate></OhneDuplikate> <NeueWarengruppen></NeueWarengruppen> <Format></Format> <AuswahlMultimediaDaten> <mmDatenLiefern></mmDatenLiefern> <mmTypFilter></mmTypFilter> <mmVarianteFilter></mmVarianteFilter> <mmRangFilter></mmRangFilter> </AuswahlMultimediaDaten> <AuswahlWeitereDaten> <Empfehlungen></Empfehlungen> <Varianten></Varianten> <Sonstiges></Sonstiges> </AuswahlWeitereDaten> </Lesen> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <Lesen> <Sprache></Sprache> <FilterGruppe> <Code></Code> <Name></Name> <FilterDefinition> <Code></Code> <Name></Name> </FilterDefinition> <FilterDefinition> <Code></Code> <Name></Name> </FilterDefinition> … </FilterGruppe> … </ns1:wscallResponse> 3.8.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Lesen Struktur Funktionsparameter Seite 50 Der Funktionsparameter „Lesen“ hat folgende Struktur Handle String Name des Suchergebnisses aus dem gelesen werden soll SatzVon Ganzzahl Erster zu lesender Satz SatzBis Ganzzahl Letzter zu lesender Satz OhneDuplikate Boolean Gibt an, ob Duplikate im Ergebnis weggelassen werden sollen. Wird der Parameter weggelassen, wird das Ergebnis ohne Duplikate geliefert. NeueWarengruppen Boolean Gibt an, welche WarengruppenSystematik angewendet werden soll Format Aufzählungstyp (zulässi- Format der Titeldaten in der Antge Werte s. u.) wort AuswahlMultimediaDaten Struktur Zusatzangebe, ob und welche Multimediadaten mit den Titeln geliefert werden solle mmDatenLiefern Ja/Nein Angabe ob MM-Daten gelesen werden sollen mmTypFilter String Optionale Einschränkung auf bestimmte Typen mmVarianteFilter String Optionale Einschränkung auf bestimmte Varianten mmRangFilter String Optionale Einschränkung auf bestimmte Ränge AuswahlWeitereDaten Struktur Zusatzangabe welche weiteren Informationen zu einem Titel geliefert werden sollen Empfehlungen Ja/Nein Angabe ob Empfehlungen gelesen werden sollen Varianten Ja/Nein Optionale Varianten auf bestimmte Typen Sonstiges Ja/Nein Zur Zeit noch unbenutzt 3.8.2.1 Feld Handle Hier können Sie den Namen eines Suchergebnisses eingeben, aus welchem die Daten gelesen werden sollen. Ein solches Suchergebnis liegt dann vor, wenn Sie zuvor eine Suchanfrage ausgeführt haben, für das Sie einen eigenen Namen vergeben haben (siehe 3.4.2.11). Geben Sie keinen Namen an, wird das Standardergebnis „KNVANFRAGE“ verwendet. Wenn Sie einen Namen angeben, zu dem kein Suchergebnis existiert, erhalten Sie eine Fehlermeldung 3.8.2.2 Felder SatzVon / SatzBis Diese Felder legen fest, welche Sätze bei diesem Leserequest gelesen werden sollen. Falls der „Bis“-Wert außerhalb des Ergebnisses liegt, werden weniger Datensätze geliefert. Falls auch der „Von“-Wert außerhalb des Ergebnisses liegt, dann bekommen Sie eine Fehlermeldung. Seite 51 Beispiel: Das Ergebnis hat 20 Treffer Wollen Sie die Treffer 15-25 lesen, so enthält das Ergebnis die Treffer 15-20. Wollen Sie die Treffer 21-25 lesen, so erhalten Sie eine Fehlermeldung. 3.8.2.3 Feld OhneDuplikate Wenn Sie eine Suche über mehrere Datenbanken ausführen, kann es sein, dass Ihr Ergebnis denselben Titel (gleiche ISBN/EAN) mehrfach enthält, weil dieser Titel in verschiedenen Datenbanken enthalten ist. Dieser Parameter gibt an, ob Duplikate weggelassen werden sollen (1/true = ja, 0/false = nein). Bei 1/true werden Titel mit derselben ISBN nur aus der DB geliefert, in der sie zuerst gelesen wurden. Die Lesereihenfolge wird durch die Reihenfolge der Datenbanken in der Suchanfrage definiert. Wird der Parameter weggelassen, wird das Ergebnis ohne Duplikate geliefert. 3.8.2.4 Feld NeueWarengruppen Gibt an, welche Warengruppensystematik bei den gelieferten Titeln angewendet werden soll. Bei „Ja“ oder „Yes“ werden im Feld „WG“ (ID 98) die Codes der neuen Warengruppensystematik 2.0 geliefert. Wird der Parameter auf „Nein“ oder „No“ gesetzt oder weggelassen, werden wie bisher die alten Warengruppen-Codes geliefert. Ihre bisherige Anwendung bleibt also weiterhin funktionsfähig. 3.8.2.5 Feld Format Das Feld kann einen der folgenden Werte enthalten: Standardformate: • NEUKKurz • NEUKLang • NEUKLangText • KNVXMLKurz • KNVXMLLang • KNVXMLLangText Dynamische Formate: • NEUK • KNVXML Zu den dynamischen Formaten lesen Sie bitte das vorige Kapitel „Formatauswahl“ nach (siehe 3.6.). Das Kapitel 4 enthält weitere Details zu den einzelnen Satzformaten. Seite 52 3.8.2.6 Feld AuswahlMultimediaDaten Die Benutzung dieses Feldes wird ein einem extra Abschnitt weiter unten in diesem Kapitel ausführlich beschrieben. 3.8.2.7 Feld AuswahlWeitereDaten Hier können Sie optional angeben, ob Sie zusammen mit dem eigentlichen Datensatz noch weitere Informationen lesen wollen. Varianten: Wenn Sie dieses Feld mit „JA“ belegen wird eine Liste von Varianten des Titels geliefert. Hierbei handelt es sich z.B. um den gleichen „Titel“ auf anderen Medien, bzw. andere Ausgaben desselben Titels (Format s. Anhang A.3). Empfehlungen: Wenn Sie dieses Feld mit „JA“ belegen wird eine Liste von Empfehlungen geliefert. Hierbei handelt es sich um andere Titel zu denselben oder ähnlichen Themen (Format s. Anhang A.3). 3.8.3 Formatierung der Datensätze der Antwort mit dem CDATA-Format Die konkrete Struktur der gelieferten Titelsätze, bzw. die einzelnen Teile (Artikeldaten, Multimediadaten, Varianten, Empfehlungen), sind NICHT Bestandteil der WSDL, d.h. die Struktur der Datensätze selbst wird nicht in der WSDL definiert. Dies hat den Vorteil, dass sie keine neue WSDL benötigen, wenn z.B. die Titelsätze um neue Felder erweitert werden. Aus Sicht der WSDL sind die Bestandteile des Titels einfach nur Zeichenketten (Strings), obwohl sie ja zumindest im Format KNVXML auch eine eigene XML-Struktur besitzen. Damit nun der Webservice-Client nicht versucht, die XML-Struktur der Titelsätze zu verarbeiten und zu interpretieren, werden die entsprechenden Anteile der Daten mit dem XML-Schlüsselwort CDATA gekennzeichnet und eingeklammert. Hierdurch wird dem Webservice-Client mitgeteilt, dass hier eine Zeichenkette geliefert wird, auch wenn diese wiederum eine XML-Struktur hat. Wenn die Datensätze im NEUK-Format geliefert werden, wird keine CDATA-Notation benutzt. Dies ist in diesem Fall nicht nötig, da der Titel keine XML-Elemente enthält. Die Handhabung der CDATA-Notation wird im Anhang ausführlich beschrieben 3.8.4 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice Daten Struktur Enthält das Leseergebnis Das Funktionsergebnis „Daten“ hat folgende Struktur Handle String Name des Leseergebnisses SatzVon Ganzzahl Erster Satz aus dem Suchergebnis, der gelesen wurde SatzBis Ganzzahl Letzter Satz aus dem Suchergebnis, der gelesen wurde WeitereVorhanden Boolean Gibt an ob es noch weitere Sätze hinter SatzBis gibt. Datensaetze Struktur Enthält die gefundenen Sätze samt ihren Zusatzinformationen Seite 53 Record Struktur Enthält die vollständigen Informationen zu einem einzelnen Datensatz Datenbank String Angabe aus welcher Datenbank der Titel gelesen wurde Format String Typ des gelesenen Formates: NEUK oder KNVXML DatensatzNummer Zahl Interne Nummer des Datensatzes Artikeldaten XML: CDATA NEUK: String Die Titeldaten MultimediaDaten XML: CDATA Die Multimediadaten Varianten XML: CDATA NEUK: String Die Liste der Varianten Empfehlungen XML: CDATA NEUK: String Die Liste der Empfehlungen 3.8.4.1 Feld Handle Dieses Feld enthält den Namen des Suchergebnisses, aus dem die Datensätze gelesen wurden. 3.8.4.2 Feld Record Eine Record-Struktur enthält alle angeforderten Daten eines einzelnen Titelsatzes. Im Gegensatz zum alten Webservice ist diese Struktur erheblich erweitert worden. Datenbank liefert die Information, aus welcher Datenbank dieser Datensatz gelesen wurde. Format Bestätigt das Format, das geliefert wird. DatensatzNummer Liefert eine interne Nummer des Datensatzes. Dieser Wert kann bei der Suche verwendet werden, wenn bei einem Suchparameter die Variante „DatensatzNummer“ benutzt wird (siehe 3.4.2.3.1). Artikeldaten Liefert den Datensatz im gewählten Format. Aus Sicht der WSDL wird hier einfach ein String geliefert. Die innere Struktur entspricht dem gewählten Format, dieses ist entweder ein NEUK-String oder eine KNVXML-Struktur, die mit CDATA geklammert ist. Diese Formate sind im Kapitel 4 beschrieben und müssen von Ihrer Anwendung entsprechend formatiert werden. Varianten Hier wird auf Anfrage eine Liste von Varianten des Titels geliefert. Hierbei handelt es sich z.B. um den gleichen „Titel“ auf anderen Medien, bzw. andere Ausgaben desselben Titels. Es wird hier eine verkürzte Variante des angeforderten Datensatzformats geliefert. Das Format ist im Anhang A.3 beschrieben. Empfehlungen Hier wird auf Anfrage eine Liste von Empfehlungen geliefert. Hierbei handelt es sich um andere Titel zu denselben oder ähnlichen Themen. Es wird hier eine verkürzte Variante des angeforderten Datensatzformats geliefert. Das Format ist im Anhang A.3 beschrieben. Multimediadaten Hier werden bei Bedarf die zum Titel gehörigen Multimediadaten geliefert. Dies wird noch mal extra im nächsten Absatz beschrieben. Seite 54 3.8.5 Lesen von Multimediadaten Zu einem Datensatz gibt es meist eine verschiedene Anzahl von Multimediaobjekten. Hierbei handelt es sich z.B. um die Cover-Bilder. Multimediadaten lassen sich einteilen in verschiedene Typen und Varianten. Welche MM-Objekte insgesamt möglich sind, können Sie durch die Funktion „GetMultiMediaInfo“ abfragen. Zurzeit werden nur Hauptbilder (Cover) in drei Größen zur Verfügung gestellt. Das Lesen der Multimediadaten erfolgte bisher im alten Webservice durch einen extra Aufruf. Dieses ist nun mit dem Lesen des Titels kombiniert worden. Es gibt hierbei zwei mögliche Varianten. Variante 1 Sie benutzen eines der Standardformate „***Kurz, ***Lang oder ***LangText. Die Multimediafelder sind NICHT Bestandteil dieser Standardformate. Beim Lesen müssen Sie nun angeben, dass Sie die Multimediadaten lesen wollen. Der Server wird dann intern die Feldliste automatisch um die Multimediafelder erweitern und die Multimediadaten als Bestandteil der Records liefern. Zusätzlich werden die MM-Links noch mal als extra Struktur geliefert. Dieses entspricht dem Ergebnis der MultimediaDaten-Funktion aus dem alten Webservice. Variante 2: Sie benutzen ein dynamisches Format und geben bei der Auswahl der Felder gleich die MM-Felder mit an. In diesem Fall werden die MM-Daten auch als Bestandteil der Records geliefert. Sie brauchen die extra Anforderung in diesem Fall nicht, es sei denn Sie wollen zusätzlich noch auf bestimmte MM-Daten einschränken. Multimediadaten filtern Sie können das Lesen der Multimediadaten auf bestimmte Daten einschränken. MMTyp: Es gibt verschiedene Typen von Multimediadaten, zurzeit werden jedoch nur Cover (Typ „HBILD“) bereitgestellt. Die Liste der möglichen Typen kann mit der Funktion „GetMultiMediaInfo“ gelesen werden. MMVariante: Meistens gibt es die Bilder in verschiedenen Varianten, z.B. „mini“, „normal“, „zoom“ und „pcbis“ MMRang: Der Rang dient der Ordnung von gleichartigen Objekten, z.B. die einzelnen Seiten eines Kalenders 3.8.6 Beispiele Lesen 3.8.6.1 Beispiel 1: Einfaches Lesen mehrerer Datensätze Sie haben eine Suche nach dem Stichwort „Potter“ ausgeführt und wollen nun die ersten beiden Datensätze lesen. Es soll das XML-Kurzformat verwendet werden. Es sollen aber keine Multimediadaten und keine weiteren Informationen gelesen werden. Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Lesen> <SatzVon>1</SatzVon> <SatzBis>2</SatzBis> Seite 55 <Format>KNVXMLKurz</Format> </Lesen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>2</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> <Format>KNVXML</Format> <DatensatzNummer>3600</DatensatzNummer> <ArtikelDaten><![CDATA[<TITEL index="1" DB="KNV"> <EINZELWERK> <Typknz ID="03">E</Typknz> <AutorSachtitel ID="06">LEGO Harry Potter, Lexikon der Minifiguren, m. Minifigur</AutorSachtitel> <ISBN ID="16">3831021821</ISBN> <Verlag ID="17">DORLING KINDERSLEY</Verlag> <Ldpreis ID="21">16.95</Ldpreis> <Mnr ID="26">21</Mnr> <FPrKnz ID="34">0</FPrKnz> <Kurztitel ID="42">LEGO Harry Potter, Lexikon der Minifigu</Kurztitel> <AuslLdpreis ID="45">C24.5</AuslLdpreis> <IndexSchlagw ID="53">LEGO-Figuren </IndexSchlagw> <Erschjahr ID="66">2012</Erschjahr> <Titelart ID="68"> 17</Titelart> <Titelart ID="68"> 25</Titelart> <Titelart ID="68"> 53</Titelart> <Vlgsnr ID="70">38310 </Vlgsnr> <KlassTitelart ID="90">17</KlassTitelart> <KlassTitelart ID="90">25</KlassTitelart> <KlassTitelart ID="90">53</KlassTitelart> <EAN ID="95">9783831021826</EAN> <WG ID="98">12950 </WG> <Datum ID="A0">20130605</Datum> <PreisEurD ID="A6">16.95</PreisEurD> <PreisEurA ID="A7">17.5</PreisEurA> <Titelnr ID="B2">33399028</Titelnr> <Titelkategorie ID="SR">005</Titelkategorie> </EINZELWERK> </TITEL>]]></ArtikelDaten> </Record> <Record index="2"> <Datenbank>KNV</Datenbank> <Format>KNVXML</Format> <DatensatzNummer>6212</DatensatzNummer> <ArtikelDaten><![CDATA[<TITEL index="2" DB="KNV"> <EINZELWERK> Seite 56 <Typknz ID="03">E</Typknz> …die weiteren Felder des zweiten Titels </EINZELWERK> </TITEL>]]></ArtikelDaten> </Record> </Datensaetze> </Daten> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.8.6.2 Beispiel 2: Lesen mit allen Informationen Es wird der erste Datensatz des Suchergebnisses gelesen. In diesem Fall sollen aber alle verfügbaren Informationen geliefert werden. Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Lesen> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <Format>KNVXMLKurz</Format> <AuswahlMultimediaDaten> <mmDatenLiefern>Ja</mmDatenLiefern> </AuswahlMultimediaDaten> <AuswahlWeitereDaten> <Empfehlungen>Ja</Empfehlungen> <Varianten>Ja</Varianten> </AuswahlWeitereDaten> </Lesen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> <Format>KNVXML</Format> <DatensatzNummer>3600</DatensatzNummer> <ArtikelDaten><![CDATA[<TITEL index="1" DB="KNV"> <EINZELWERK> <Typknz ID="03">E</Typknz> <AutorSachtitel ID="06">Klüpfel, Volker; Kobr, Michael</AutorSachtitel> <Titel ID="08">Laienspiel</Titel> <Verlag ID="17">PIPER</Verlag> <Ldpreis ID="21">7</Ldpreis> <Mnr ID="26">07</Mnr> Seite 57 <FPrKnz ID="34">0</FPrKnz> <Kurztitel ID="42">Serie Piper.30303 Klüpfel.Laienspiel</Kurztitel> <AuslLdpreis ID="45">C11</AuslLdpreis> <IndexAutor ID="51">Klüpfel, Volker </IndexAutor> <IndexAutor ID="51">Kobr, Michael </IndexAutor> <IndexSchlagw ID="53">Allgäu; Krimis/Thriller </IndexSchlagw> <IndexSchlagw ID="53">Corine - Internationaler Buchpreis; Weltbild Leserpreis </IndexSchlagw> <IndexSchlagw ID="53">MIMI (Krimi-Publikumspreis) </IndexSchlagw> <Erschjahr ID="66">2013</Erschjahr> <Titelart ID="68"> 03</Titelart> <Titelart ID="68"> 57</Titelart> <Vlgsnr ID="70">3492 </Vlgsnr> <KlassTitelart ID="90">03</KlassTitelart> <KlassTitelart ID="90">57</KlassTitelart> <EAN ID="95">9783492303033</EAN> <WG ID="98">21200 </WG> <PreisEurD ID="A6">7</PreisEurD> <PreisEurA ID="A7">7.2</PreisEurA> <Titelnr ID="B2">35242546</Titelnr> <MultimediaInfo ID="M1">M</MultimediaInfo> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=MMBIINCMJRCJNO&variante=mini&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">mini</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=MMBIINCMJRCJNO&variante=normal&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">normal</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=MMBIINCMJRCJNO&variante=zoom&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">zoom</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <Doknr13 ID="B5">2012112600264</Doknr13> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=MMBIINCMJRCJNO&variante=pcbis&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">pcbis</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> </EINZELWERK></TITEL>]]></ArtikelDaten> <MultimediaDaten><![CDATA[<MULTIMEDIADATEN> <mmRecord> <mmUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=HKKLTDEIONBFOK&variante=mini&rang=01</mmUrl> <mmDatenbank>KNV</mmDatenbank> <mmTyp>HBILD</mmTyp> <mmVariante>mini</mmVariante> <mmRang>01</mmRang> </mmRecord> <mmRecord> Seite 58 <mmUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=HKKLTDEIONBFOK&variante=normal&rang=01</mmUrl> <mmDatenbank>KNV</mmDatenbank> <mmTyp>HBILD</mmTyp> <mmVariante>normal</mmVariante> <mmRang>01</mmRang> </mmRecord> <mmRecord> <mmUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=HKKLTDEIONBFOK&variante=zoom&rang=01</mmUrl> <mmDatenbank>KNV</mmDatenbank> <mmTyp>HBILD</mmTyp> <mmVariante>zoom</mmVariante> <mmRang>01</mmRang> </mmRecord> <mmRecord> <mmUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=35242546& kennwort=HKKLTDEIONBFOK&variante=pcbis&rang=01</mmUrl> <mmDatenbank>KNV</mmDatenbank> <mmTyp>HBILD</mmTyp> <mmVariante>pcbis</mmVariante> <mmRang>01</mmRang> </mmRecord> </MULTIMEDIADATEN>]]></MultimediaDaten> <Varianten><![CDATA[<VARIANTEN> <RECORD> <AUTOR>Klüpfel, Volker</AUTOR> <SORTIMENT>03</SORTIMENT> <ISBN13>978-3-492-25482-3</ISBN13> <VERLAG>Piper</VERLAG> <TITEL>Laienspiel</TITEL> <TITELNR>22749152</TITELNR> </RECORD> <RECORD> <AUTOR>Klüpfel, Volker</AUTOR> <SORTIMENT>11</SORTIMENT> <ISBN13>978-3-89813-742-3</ISBN13> <VERLAG>Der Audio Verlag, DAV</VERLAG> <TITEL>Laienspiel, 3 Audio-CDs</TITEL> <TITELNR>19948904</TITELNR> <EAN>4029758873120</EAN> </RECORD></VARIANTEN>]]></Varianten> <Empfehlungen><![CDATA[<EMPFEHLUNGEN> <RECORD> <AUTOR>Rangnick, Joachim</AUTOR> <SORTIMENT>03</SORTIMENT> <ISBN13>978-3-548-61186-0</ISBN13> <VERLAG>List TB.</VERLAG> <MELDENR>21</MELDENR> <TITEL>Fürchte deinen Bruder</TITEL> <TITELNR>43595478</TITELNR> </RECORD> <RECORD> <AUTOR>Klüpfel, Volker</AUTOR> <SORTIMENT>07</SORTIMENT> <ISBN13>978-3-426-41754-6</ISBN13> <VERLAG>Droemer/Knaur</VERLAG> <TITEL>Herzblut</TITEL> <TITELNR>37280948</TITELNR> </RECORD></EMPFEHLUNGEN>]]></Empfehlungen> </Record> </Datensaetze> </Daten> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 59 3.8.6.3 Beispiel 3: Lesen mit dynamischem Format Es wurde wieder die Suche nach „potter“ durchgeführt, und es soll der erste Satz gelesen werden. Vorher wird ein dynamisches Format ausgewählt, und von den zusätzlichen Daten soll nur das PCBIS-Coverbild gelesen werden Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Formatauswahl> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>Verlag</Feld> </Formatauswahl> <Lesen> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <Format>KNVXML</Format> <AuswahlMultimediaDaten> <mmDatenLiefern>Ja</mmDatenLiefern> </AuswahlMultimediaDaten> <AuswahlWeitereDaten> <Empfehlungen>Ja</Empfehlungen> <Varianten>Ja</Varianten> </AuswahlWeitereDaten> </Lesen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Formatauswahl> <Status>OK</Status> <Anzahlfelder>8</Anzahlfelder> <Feld>AutorSachtitel</Feld> <Feld>Titel</Feld> <Feld>Verlag</Feld> <Feld>Typknz</Feld> <Feld>Doknr</Feld> <Feld>DoknrKopf</Feld> <Feld>Doknr13</Feld> <Feld>Doknr13Kopf</Feld> </Formatauswahl> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> Seite 60 <Format>KNVXML</Format> <DatensatzNummer>3600</DatensatzNummer> <ArtikelDaten><![CDATA[<TITEL index="1" DB="KNV"> <EINZELWERK> <Typknz ID="03">E</Typknz> <AutorSachtitel ID="06">LEGO Harry Potter, Lexikon der Minifiguren, m. Minifigur</AutorSachtitel> <Verlag ID="17">DORLING KINDERSLEY</Verlag> <MultimediaInfo ID="M1">M</MultimediaInfo> <Doknr13 ID="B5">2012050700841</Doknr13> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=QHHKQHGMODJKUC&variante=pcbis&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">pcbis</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> </EINZELWERK> </TITEL>]]></ArtikelDaten> <MultimediaDaten><![CDATA[<MULTIMEDIADATEN> <mmRecord> <mmUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 5242546&kennwort=MMBIINCMJRCJNO&variante=mini&rang=01</mmUrl> <mmDatenbank>KNV</mmDatenbank> <mmTyp>HBILD</mmTyp> <mmVariante>mini</mmVariante> <mmRang>01</mmRang> </mmRecord> </MULTIMEDIADATEN>]]></MultimediaDaten> </Record> </Datensaetze> </Daten> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.8.6.4 Beispiel 3: Lesen im NEUK Format Wenn Sie Datensätze im NEUK-Format lesen wollen, gibt es drei Dinge zu beachten: - Die einzelnen Teile des Datensatzes haben keine XML-Struktur und werden somit auch nicht mit der CDATA-Notation gekennzeichnet. - Anders als im XML-Format werden Multimediadaten nicht zusätzlich im Tag <MULTIMEDIADATEN> geliefert. Sie sind aber Bestandteil des NEUKDatensatzes. - Die Varianten und Empfehlungen werden als einzelne Sätze geliefert und nicht wie beim XML-Format als CDATA-Liste innerhalb eines einzelnen Tags. Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Lesen> <SatzVon>1</SatzVon> Seite 61 <SatzBis>1</SatzBis> <Format>NEUKLang</Format> <AuswahlMultimediaDaten> <mmDatenLiefern>Ja</mmDatenLiefern> </AuswahlMultimediaDaten> <AuswahlWeitereDaten> <Empfehlungen>Ja</Empfehlungen> <Varianten>Ja</Varianten> </AuswahlWeitereDaten> </Lesen> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.17.5.1.0</WSVersion> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> <Format>NEUK</Format> <DatensatzNummer>3162</DatensatzNummer> <ArtikelDaten>NEUK*03E*05Nr.26790*06Moyes, Jojo*08Die Tage in Paris*11Übersetzung: Fell, Karolina*12rororo Taschenbücher Nr.26790*132015. 112 S. m. 8 4-farb. ganzs. Ill. 190 mm*17ROWOHLT TB.*181*182*20KT*218*2621*29001*3100800*3226790*331*340*3630*403*405*4133 .3*4135*42rororo TB.26790 Moyes,Tage in Paris*4315444*4413181*45C11.9*50Rowohlt TB. *50TB. # Rowohlt *51Moyes, Jojo *51Fell, Karolina *52Die *52Tage *52in *52Paris *52rororo *52Taschenbücher *53Paris, Geschichte; Romane/Erzählungen *662015*670080026790*68 01*703499 *9001*93130*9401*959783499267901*9821110 *A3012015*A68*A78.3*B249391701*B52014111000359*EZ49019900*F0DE*F8115*F919 0*AC20150123 </ArtikelDaten> <Varianten>NEUK*06Moyes, Jojo*95978-3-8398-1399-7*17Argon*2621*08Die Tage in Paris, 2 Audio-CDs*B249020842</Varianten> <Varianten>NEUK*06Moyes, Jojo*95978-3-644-51041-8*17Rowohlt Verlag GmbH*2621*08Die Tage in Paris*B249403301</Varianten> <Empfehlungen>NEUK*06Modiano, Patrick*95978-3-423-14100-0*17DTV*08Place de l' Étoile*B231547510</Empfehlungen> <Empfehlungen>NEUK*06Modiano, Patrick*95978-2-07-0366989*17Gallimard*2680*08La Place de l' Étoile, französische Ausgabe*B225191320</Empfehlungen> <Empfehlungen>NEUK*06Rutherfurd, Edward*95978-3-89667-5156*17Blessing*08Paris*B246020145</Empfehlungen> <Empfehlungen>NEUK*06Rutherfurd, Edward*95978-3-641-137878*17Blessing*08Paris*B246316077</Empfehlungen> Seite 62 <Empfehlungen>NEUK*06Modiano, Patrick*95978-3-446-233997*17Hanser*08Place de l' Étoile*B224247206</Empfehlungen> <Empfehlungen>NEUK*06Modiano, Patrick*95978-3-446-24878-6*17Carl Hanser Verlag München*08Place de l'Etoile*B249010406</Empfehlungen> <Empfehlungen>NEUK*06Modiano, Patrick*95978-3-518-466230*17Suhrkamp*08Ruinenblüten*B248896865</Empfehlungen> <Empfehlungen>NEUK*06Modiano, Patrick*95978-3-518-739822*17Suhrkamp*08Ruinenblüten*B249333738</Empfehlungen> <Empfehlungen>NEUK*06Prange, Peter*95978-3-10-403028-9*17S. FISCHER*08Die Philosophin*B246157773</Empfehlungen> <Empfehlungen>NEUK*06Prange, Peter*95978-3-596-03054-5*17FISCHER Taschenbuch*08Die Philosophin*B246129622</Empfehlungen> </Record> </Datensaetze> </Daten> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 63 3.9 Teilfunktion „Register“ Mit der Registerfunktion kann eine Liste der in einem Suchindex enthaltenen Werte ausgelesen werden. Diese Werte können dann in Suchbefehlen benutzt werden. 3.9.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Register> <Datenbank></Datenbank> <RegisterFeld></RegisterFeld> <StartWert></StartWert> <Anzahl></Anzahl> <Richtung></Richtung> </Register > </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <Index> <Eintrag> <Wert></Wert> <Anzahl> <DB></DB> <Treffer></Treffer> </Anzahl> <Anzahl> <DB></DB> <Treffer></Treffer> </Anzahl> … </Eintrag> <Eintrag> <Wert></Wert> <Anzahl> <DB></DB> <Treffer></Treffer> </Anzahl> </Eintrag> … </Index> </ns1:wscallResponse> 3.9.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Register Struktur Funktionsparameter Der Funktionsparameter „Register“ hat folgende Struktur Datenbank String (zulässige Werte s. u.) Zu verwendende Datenbank, mehrfach RegisterFeld Aufzählungstyp (zulässige Verwendetes Feld bei der Indexsuche Seite 64 Werte s. u.) StartWert String Startwert für die Suche Anzahl Ganzzahl Anzahl der Einträge in der Antwort Richtung Aufzählungstyp (zulässige Werte s. u.) Suchrichtung 3.9.2.1 Feld Datenbank Das Feld kann einen der folgenden Werte enthalten: • KNV • KNVBG (Besorgungsdatenbank) • BakerTaylor • Gardners Für das gleichzeitige Register über mehrere Datenbanken kann das Feld mehrmals, mit unterschiedlichen Werten wiederholt werden. 3.9.2.2 Feld RegisterFeld Das Feld kann einen der folgenden Werte enthalten: • Autor • Autorteile • Band • BestellNummer • Doknr • EAN • Einband • Erschjahr • Erscheinungstermin • ISBN • ISMN • Reihentitel • Sortiment • Schlagwort • Stichwort • Titel • Titelnr • Verlag • WG • WGNeu Seite 65 3.9.2.3 Feld Richtung Das Feld kann einen der folgenden Werte enthalten: • Vor (oder Aufsteigend, Ascending) • Zurueck (oder Absteigend, Descending) 3.9.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice Index Funktionsergebnis Struktur Das Funktionsergebnis „Index“ hat folgende Inhalte: Eintrag 3.9.4 Struktur Für jeden gelesenen Wert wird eine Struktur geliefert. Wert String Unterfeld von Eintrag, enthält den gefundenen Registerwert Anzahl Struktur Unterfeld von Eintrag, mit der Trefferanzahl in einer Datenbank DB String Unterfeld von Anzahl. Datenbank, in der Treffer zu „Wert“ gefunden wurden Treffer Ganzzahl Unterfeld von „Anzahl“. Trefferanzahl von „Wert“ in „DB“ Beispiel Autorenregister über die Datenbanken KNV und die Besorgungsdatenbank mit Startwert „eco“. Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Register> <Datenbank>KNV</Datenbank> <Datenbank>KNVBG</Datenbank> <RegisterFeld>Autor</RegisterFeld> <StartWert>eco</StartWert> <Anzahl>10</Anzahl> <Richtung>vor</Richtung> </Register> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Seite 66 Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Index> <Eintrag> <Wert>ECO</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>6</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>Eco, Direcção de Umberto</Wert> <Anzahl> <DB>KNV</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>ECO, HUMBERTO</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>ECO - LE GOFF (PREF.)</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>ECO /MARTINI</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>Eco, Renate</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>ECO U.</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>Eco, Umberto</Wert> <Anzahl> Seite 67 <DB>KNV</DB> <Treffer>112</Treffer> </Anzahl> <Anzahl> <DB>KNVBG</DB> <Treffer>255</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>ECO, UMBERTO ; ARROYO, LUIS ;</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>1</Treffer> </Anzahl> </Eintrag> <Eintrag> <Wert>Eco, Umberto (EDT)</Wert> <Anzahl> <DB>KNVBG</DB> <Treffer>5</Treffer> </Anzahl> </Eintrag> </Index> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 68 3.10 Teilfunktion “OLA“ Online Lieferbarkeits-Abfrage und Bestellung. Diese Funktion ist gegenüber dem bisherigen Webservice so erweitert worden, dass in einem Aufruf mehrere Datensätze abgefragt oder bestellt werden können. Außerdem gibt es jetzt noch die Möglichkeit, eine Bestellung zu stornieren. 3.10.1 Struktur Anfrage: <ws:wscallParam> <SessionID> </SessionID> <OLA> <Art></Art> <OLAItem> <Bestellnummer> <Titelnummer></Titelnummer> <ISBN></ISBN> <EAN></EAN> <ReiheBand> <Reihe></Reihe> <Band></Band> </ReiheBand> </Bestellnummer> <Menge></Menge> <Bestelldaten> <Referenz></Referenz> <Bestellzeichen></Bestellzeichen> <Abteilung></Abteilung> <Untervkn></Untervkn> <Abholname></Abholname> <Abholfach></Abholfach> <AbholEAN></AbholEAN> <Preis> <Betrag></Betrag> <Waehrung></Waehrung> <PreisArt></PreisArt> </Preis> <Vormerkkennzeichen></Vormerkkennzeichen> <Warengruppe></Warengruppe> <VormerkeinstellungBeachten></VormerkeinstellungBeachten> </Bestelldaten> </OLAItem> <OLAItem> … </OLAItem> … <Datenformat></Datenformat> </OLA> </ws:wscallParam> Antwort: <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID></SessionID> <WSVersion></WSVersion> <OLAResponse> <Art> </Art> <Datenformat> </Datenformat> <OLAResponseRecord> <StatusPosition>OK</StatusPosition> <Bestellnummer/> Seite 69 <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>2</Lieferbaremenge> </OLAResponseRecord> <OLAResponseRecord> … </OLAResponseRecord> … <OLACData> … <(OLACData> </OLAResponse> </ns1:wscallResponse> 3.10.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung OLA Struktur Funktionsparameter Der Funktionsparameter „OLA“ hat folgende Struktur: Art Aufzählungstyp (zulässige Werte s. u.) Art der Anfrage OLAItem Struktur /mehrfach Ola-Daten für einen Titel Bestellnummer Struktur /mehrfach Identifikation dieses Titels mit Hilfe einer der verschiedenen Angaben Titelnummer Ganzzahl Titelnummer des gewünschten Artikels ISBN String ISBN des gewünschten Artikels EAN String EAN des gewünschten Artikels Reihe Ganzzahl Reihe des gewünschten Artikels Band Ganzzahl Band des gewünschten Artikels Menge Ganzzahl Nachgefragte Menge Bestelldaten Struktur Bestelldaten für diesen Titel Referenz String Referenz (Bestellangabe). Bei Bestellstorno die Referenz, die beim Bestellen der zu stornierenden Position mitgegeben wurde. Bestellzeichen String Bestellzeichen (Bestellangabe) Abteilung String Abteilung (Bestellangabe) Untervkn String Unterverkehrsnummer des Mandanten Abholname String Abholname (Bestellangabe) Abholfach Ganzzahl Abholfach (Bestellangabe) Seite 70 AbholEAN Ganzzahl Preis AbholEAN (Bestellangabe) Preis (Bestellangabe) Betrag Währung Zahl mit Nachkommastellen (2 Nachkommastellen, Trennung durch Punkt) String Betrag des Preises Die Währung Vormerkkennzeichen String Titel, die nicht bestellt werden können, sollen vorgemerkt werden (greift nur, wenn VormerkeinstellungBeachten „Nein“ oder nicht vorhanden) Warengruppe Numerisch (2-5 stellig) Eine Warengruppennummer des Sortimenters VormerkeinstellungBeachten String Format Ja/Nein Wert. Gibt an, ob die bei KNV hinterlegten Vormerkeinstellungen beachtet werden sollen. Optionales Feld, der Defaultwert ist „Nein“ (Vormerken wird dann über das Feld Vormerkkennzeichen gesteuert) String Format für das Ergebnis 3.10.2.1 Feld Art Das Feld kann einen der folgenden Werte enthalten: • Abfrage • Bestellung • Bestellstorno 3.10.2.2 Feld Format Das Ergebnis des OLA-Aufrufes wird standardmäßig als XML-Struktur geliefert und ist auch über die WSDL definiert. Sie können hier im Feld auch das Format „CDATA“ wählen. Dann wird das Ergebnis der OLA in einem CDATA-String geliefert. Dies ist vorgesehen dafür, falls es in Zukunft eine Erweiterung des OLA-Ergebnisses geben könnte. Sie können dieses Ergebnis dann auch lesen, wenn Sie noch keinen neuen Webservice-Client definiert haben 3.10.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice OLAResponse Struktur Ergebnis der Funktion Der Ergebnisparameter „OLAResponse“ hat folgenden Inhalt: Seite 71 Art String Ausgeführte Funktion Datenformat String Das Format des Ergebnisses OLAResponseRecord Struktur Ergebnisdaten für eine Olaposition StatusPosition String OK/FAILED Bestellnummer Struktur /mehrfach Identifikation dieses Titels mit Hilfe einer der verschiedenen Angaben Titelnummer Ganzzahl Titelnummer des gewünschten Artikels ISBN String ISBN des gewünschten Artikels EAN String EAN des gewünschten Artikels Reihe Ganzzahl Reihe des gewünschten Artikels Band Ganzzahl Band des gewünschten Artikels Bestellmenge Ganzzahl Nachgefragte Menge Lieferbaremenge Ganzzahl Tatsächlich lieferbare/bestellte Menge Meldenummer Ganzzahl Zweistellige Meldenummer der Barsortimente KNV (numerisch). Erscheinungstermin String Erscheinungstermin einer Neuerscheinung oder Neuauflage (sollte nicht mehr benutzt werden, es wird ersetzt durch das genauere Feld „Erscheinungstag“ (s.u.) und wird nur noch wegen der Kompatibilität zu älteren Version geführt) Erscheinungstag String Tagesgenauer Erscheinungstermin im Format JJJJMMTT (ersetzt das Feld „Erscheinungstermin“ (s.o.)) Auftragsnummer String Nummer, die den Auftrag kennzeichnet (nur bei Bestellung) NummerIntern String Interne Nummer TimestampIntern String Interne Zeitmarke KennzeichenVormerkung String Kennzeichen ob eine fehlende bestellmenge vorgemerkt wurde VorgemerkteMenge Ganzzahl Anzahl der Titel die vorgemerkt wurden LieferfristVon String Datum, ab wann die Lieferung der vorgemerkten Titel vorgesehen ist LieferfristBis String Datum, bis wann die Lieferung der vorgemerkten Titel vorgesehen ist Fehlernummer Ganzzahl Fehlercode falls bei dieser Position ein Fehler aufgetreten ist Fehlertext String Fehlertext falls bei dieser Position ein Fehler aufgetreten ist Seite 72 CutoffZeitUeberschritten String OlaCData String „J“, wenn die Bestellzeit für die Lieferung am nächsten Tag überschritten ist Gesamtergebnis falls als Format CDATA gewählt wurde Zu beachten ist, dass StatusPosition lediglich eine Aussage ist, ob die Funktion erfolgreich für die Position ausgeführt werden konnte. Der Status gibt daher keine Auskunft darüber, ob die Bestellung ausgeführt wurde oder nicht. Auch wird immer eine Auftragsnummer erzeugt und zurückgegeben, auch wenn keine Bestellung erfolgte. Ob die Bestellung tatsächlich durchgeführt wurde, ist daher anhand von Bestellmenge, Lieferbaremenge, Meldenummer, KennzeichenVormerkung und VorgemerkteMenge zu ermitteln: Ist die Lieferbaremenge gleich der Bestellmenge, dann sind alle Titel lieferbar und die Bestellung ist erfolgt. Ist die Lieferbaremenge kleiner als die Bestellmenge, sind nicht alle Titel lieferbar, die Meldenummer gibt dann den Grund dafür an. Ob die Bestellung dann durchgeführt wurde, hängt dann vom KennzeichenVormerkung ab: Ist KennzeichenVormerkung „J“, dann erfolgte die Bestellung, Lieferbaremenge wird sofort geliefert, VorgemerkteMenge ist vorgemerkt. Anderenfalls wurde keine Bestellung durchgeführt (auch die Lieferbaremenge ist nicht bestellt). Die Bestellung muss dann ggf. mit Vormerkkennzeichen oder mit reduzierter Bestellmenge wiederholt werden. 3.10.4 Fehlerbehandlung Falls Ihre OLA nur eine einzige Position enthält und bei dieser Position ein Fehler auftritt, so wird der Fehler in der gewohnten Weise als „SOAP“-Exception zurückgegeben, z.B.: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <soapenv:Fault> <faultcode>axis2ns10:11000</faultcode> <faultstring>Fehlermeldung des TLD-Servers</faultstring> <detail> <TLDFehler> <errcode>0</errcode> <errmsg>Empfangsberechtigung fehlt</errmsg> <interrcode/> <interrmsg/> <addinfo>Status: FAILED</addinfo> <errlocation/> </TLDFehler> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Seite 73 Falls Ihre OLA mehrere Positionen enthält, und dabei Positionen fehlerhaft sind, so werden die Fehler im Ergebnis bei den einzelnen Positionen zurückgegeben <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <OLAResponse> <Art>Abfrage</Art> <Datenformat>XML</Datenformat> <OLAResponseRecord> <StatusPosition>FAILED</StatusPosition> <Bestellnummer/> <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>0</Lieferbaremenge> <Fehlernummer>0</Fehlernummer> <Fehlertext>Empfangsberechtigung fehlt</Fehlertext> </OLAResponseRecord> <OLAResponseRecord> <StatusPosition>FAILED</StatusPosition> <Bestellnummer/> <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>0</Lieferbaremenge> <Fehlernummer>0</Fehlernummer> <Fehlertext>Empfangsberechtigung fehlt</Fehlertext> </OLAResponseRecord> </OLAResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Die Liste der Fehlermeldungen finden Sie im Kapitel 5. 3.10.5 Beispiele 3.10.5.1 Beispiel 1 Anfrage, ob 2 Exemplare des Titels mit der Titelnummer 13149951beim KNVBarsortiment lieferbar sind. Anfrage: <soapenv:Envelope"> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <OLA> <Art>Abfrage</Art> <OLAItem> <Bestellnummer> <Titelnummer>13149951</Titelnummer> </Bestellnummer> <Menge>2</Menge> <Bestelldaten> <Referenz>test</Referenz> <Bestellzeichen>test</Bestellzeichen> <Abteilung>62352st</Abteilung> <Untervkn>62352</Untervkn> <Abholname>test</Abholname> <Abholfach>100</Abholfach> <AbholEAN>100</AbholEAN> Seite 74 </Bestelldaten> </OLAItem> <Datenformat>XML</Datenformat> </OLA> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Ergebnis: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <OLAResponse> <Art>Abfrage</Art> <Datenformat>XML</Datenformat> <OLAResponseRecord> <StatusPosition>OK</StatusPosition> <Bestellnummer/> <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>2</Lieferbaremenge> <Referenz>test</Referenz> </OLAResponseRecord> </OLAResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.10.5.2 Beispiel 2 Die selbe OLA, aber das Ergebnis soll als CDATA geliefert werden. Anfrage: <soapenv:Envelope"> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <OLA> <Art>Abfrage</Art> <OLAItem> <Bestellnummer> <Titelnummer>13149951</Titelnummer> </Bestellnummer> <Menge>2</Menge> <Bestelldaten> <Referenz>test</Referenz> <Bestellzeichen>test</Bestellzeichen> <Abteilung>62352st?</Abteilung> <Untervkn>62352</Untervkn> <Abholname>test</Abholname> <Abholfach>100</Abholfach> <AbholEAN>100</AbholEAN> </Bestelldaten> </OLAItem> <Datenformat>CDATA</Datenformat> </OLA> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Seite 75 Ergebnis: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <OLAResponse> <Art>Abfrage</Art> <Datenformat>XML</Datenformat> <OLACData><![CDATA[<OLA> <RESULT> <STATUS>OK</STATUS> </RESULT> <OLAITEM> <POS_STATUS>OK</POS_STATUS> <Anfragemenge>2</Anfragemenge> <Lieferbaremenge>2</Lieferbaremenge> <Titelnummer>13149951</Titelnummer> <Referenz>test</Referenz> </OLAITEM> </OLA>]]></OLACData> </OLAResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.10.6 Vormerkungen Es können auch Titel bestellt werden, die im Moment nicht lieferbar sind. Dazu ist das Vormerkungskennzeichen zu übertragen. 3.10.6.1 Anfrage mit Vormerken Ist ein Titel momentan nicht lieferbar, kann in der OLA-Anfrage das Feld „Vormerkungskennzeichen“ mit „A“ belegt werden, um in der Antwort die möglichen Lieferfristen (von, bis) zu erhalten, sofern diese bekannt sind. 3.10.6.2 Bestellung mit Vormerken Soll eine OLA-Bestellung mit Vormerken ausgeführt werden, ist das Feld „Vormerkungskennzeichen“ mit „J“ zu belegen. Ansonsten kann es leer gelassen werden oder mit „N“ belegt werden. Andere Werte werden ignoriert. Falls die Bestellung nicht vollständig ausgeführt werden kann, dann enthält die Antwort 4 neue Felder: • „KennzeichenVormerkung“: Enthält eine „J“ falls die fehlende Menge vorgemerkt wurde, ansonsten „N“ • VorgemerkteMenge“: Enthält die Anzahl der vorgemerkten Titel (Anzahl der bestellten Titel ohne Anzahl der lieferbaren Titel) • „LieferfristVon, LieferfristBis“: Enthält den Zeitraum, wann die vorgemerkten Titel geliefert werden können. 3.10.7 Bestellstorno Seite 76 Über die OLA-Funktion können nun auch Bestellpositionen storniert werden, indem „Bestellstorno“ im Feld „Art“ angegeben wird. Neben einer Bestellnummer muss in jedem Fall auch die Referenznummer der Bestellposition angegeben werden, mit der die Bestellposition eindeutig von KNV identifiziert werden kann. 3.10.7.1 Besonderheiten beim Aufruf Bei der Bestellstornierung sind folgende Besonderheiten zu beachten: - - Gesamtstorno Wird die Stornierung ohne Angabe einer Menge durchgeführt, wird die gesamte Bestellung storniert. Teilstorno Will man bei einer Bestellmenge größer 1 nur einen Teil der Bestellmenge stornieren, gibt man im Feld Menge die Menge an, die als Restbestellmenge (!) verbleiben und nicht storniert werden soll. Es ist also zu beachten, dass es sich in diesem Fall nicht um eine Stornomenge handelt! Beispiel Anfrage <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <OLA> <Art>Bestellstorno</Art> <OLAItem> <Bestellnummer> <ISBN>978-0-7475-5819-4</ISBN> </Bestellnummer> <Bestelldaten> <Referenz>123456789</Referenz> </Bestelldaten> </OLAItem> </OLA> </ws:wscallParam> Antwort bei einer erfolgreichen Stornierung: <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.9.5.0.0</WSVersion> <OLAResponse> <Art>Bestellstorno</Art> <Datenformat>XML</Datenformat> <OLAResponseRecord> <StatusPosition>OK</StatusPosition> <Bestellnummer> <ISBN>978-0-7475-5819-4</ISBN> </Bestellnummer> <Referenz>123456789</Referenz> </OLAResponseRecord> </OLAResponse> </ns1:wscallResponse> Ist eine Stornierung der Bestellposition nicht mehr möglich, erhalten in der Antwort einen Fehlertext: <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID/> <WSVersion>2.0.9.5.0.0</WSVersion> Seite 77 <OLAResponse> <Art>Bestellstorno</Art> <Datenformat>XML</Datenformat> <OLAResponseRecord> <StatusPosition>FAILED</StatusPosition> <Bestellnummer> <Titelnummer>724452</Titelnummer> </Bestellnummer> <Referenz>Test-Ro-001</Referenz> <Fehlernummer>19060</Fehlernummer> <Fehlertext>Keine stornierbare Bestellung gefunden</Fehlertext> </OLAResponseRecord> </OLAResponse> </ns1:wscallResponse> Seite 78 3.11 Teilfunktion „EBookBestellung“ Die Funktion „EBookBestellung“ ist in der Funktionsweise der OLA ähnlich. Sie dient dazu, eine E-Book-Bestellung durchzuführen. Genau genommen wird hier nicht die Bestellung ausgeführt, sondern nur der Download-Link ermittelt. Wie in der OLA können Sie auch hier mehrere E-Books direkt in einer Anfrage bestellen. Der Webservice hat hierfür den zentralen E-Book-Order Service von KNV (EOS) integriert und liefert dessen Antworten zurück. Die Funktion EBookBestellung steht erst dann zur Verfügung, wenn sie zur Nutzung freigeschaltet wurde. Bitte wenden Sie sich an Ihren Ansprechpartner bei KNV, wenn Sie diese Funktion nutzen wollen. Mit der Test-Verkehrsnummer, die Sie während der Entwicklungs- und Testphase Ihrer Anwendung benutzen sollten (siehe Kap. A.6 Testzugang) können Sie eine definierte ISBN als Test-E-Book downloaden. Bitte beachten Sie, dass alle sonstigen E-Book Bestellungen verbindliche Bestellungen auslösen, die nicht storniert werden können. Registrierten Kunden wird rund um die Uhr (24/7) ermöglicht, Aufträge für E-Books an KNV zu übermitteln. Nach der Übertragung der Bestellinformationen, erhält das aufrufende Programm nach erfolgreicher Überprüfung der Auftrags- und Kundenstammdaten als Antwort eine URL mit einem Token zum Download des E-Books. (Mögliche Fehlermeldungen: CUST*, siehe Kap. 0) Für jede E-Book Bestellung muss eine Anfrage pro EAN gestellt werden. Anschließend wird der angefragte E-Book Titel (EAN und ProductFormatCode) und seine Verfügbarkeit überprüft. (Mögliche Fehlermeldungen: ITEM*, siehe Kap. 0) Nach erfolgreicher Prüfung der Auftrags- und Kundenstammdaten wird eine URL für einen Token (DownloadURL) zum Download des angefragten E-Books erstellt und zurückgemeldet. (Mögliche Fehlermeldungen: DCS*, siehe Kap. 0) Bei einer Anfrage einer EBookBestellung muss eine eindeutige AuftragsReferenz übergeben werden. Wird für eine EAN dieselbe AuftragsReferenz nochmals übergeben, wird dies als wiederholte Anfrage erkannt und ein bereits ermittelter Download Token noch einmal zur Verfügung gestellt, ohne dass ein weiterer Auftrag bei KNV erzeugt wird. Bei einer Anfrage ist die Übergabe des Länderkennzeichens (aus welchem der Endkundenkäufer stammt) ein Pflichtfeld. Andernfalls wird der Fehlercode DCS007 zurückgemeldet. Die einzelnen Länderkennzeichen sind nach den ISO-Standards ISO-3166 definiert, die auf folgender Webseite gesichtet werden können: http://www.iso.org/iso/country_codes 3.11.1 Struktur Anfrage <ws:wscallParam> <SessionID> </SessionID> <EBookBestellung> <EBOItem> <Bestellnummer> <Titelnummer></Titelnummer> <ISBN></ISBN> <EAN></EAN> </Bestellnummer> <Format></Format> <AuftragsReferenz></AuftragsReferenz> Seite 79 <ReferenzEndKunde></ReferenzEndKunde> <LaenderCode></LaenderCode> <GeraeteIDs></GeraeteIDs> </EBOItem> <Datenformat> </Datenformat> </EBookBestellung> </ws:wscallParam> Antwort <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID> </SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <EBOResponse> <Datenformat></Datenformat> <EBOResponseRecord> <EAN></EAN> <DownloadLink> </DownloadLink> <EOSErgebnis></EOSErgebnis> <Fehlernummer></Fehlernummer> </EBOResponseRecord> </EBOResponse> </ns1:wscallResponse> 3.11.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung EBookBestellung Struktur Funktionsparameter Der Funktionsparameter „EBookBestellung“ hat folgende Struktur: EBOItem Struktur /mehrfach Bestellnummer EAN Struktur String Daten für eine Bestellposition. Kann mehrfach vorkommen Identifikation dieses Titels EAN des gewünschten Artikels Format String Format des E-Book AuftragsReferenz String Referenz zur Bestellung ReferenzEndKunde String Bestellreferenz des Endkunden LaenderCode String Länder Code des Endkunden nach ISO-3166 GeraeteIDs String / mehrfach IDs der Geräte, auf denen das E-Book genutzt werden soll Datenformat String Format für das Ergebnis 3.11.2.1 Feld Bestellnummer Bei der EBookBestellung wird nur eine EAN akzeptiert. 3.11.2.2 Feld Format Hier wird das gewünschte Format des E-Books übergeben (PDF, EPUB). Seite 80 3.11.2.3 Feld AuftragsReferenz Hier muss eine eindeutige Referenz übergeben werden, mit der die Bestellung identifiziert wird. Wird eine Referenz für dieselbe EAN wiederverwendet, so führt dies nicht zu einer erneuten Bestellung, sondern nur dazu, dass der Download Link erneut zurückgegeben wird. 3.11.2.4 Feld ReferenzEndKunde Optionale Angabe einer Endkunden Referenz zu der Bestellung. 3.11.2.5 Feld LaenderCode Länder Code des Endkunden nach ISO-3166 (Pflichtfeld). 3.11.2.6 Feld GerateIDs Optionale Angabe der Geräte IDs, auf denen das E-Book genutzt werden soll. 3.11.2.7 Feld Datenformat Dieser Parameter wird in der aktuellen Version ignoriert. Er ist dafür vorgesehen, ein Ergebnisformat zu bestimmen, falls in einer zukünftigen Version verschiedene Ergebnisformate unterstützt werden. 3.11.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice EBOResponse Struktur Ergebnis der Funktion Der Ergebnisparameter „EBOResponse“ hat folgenden Inhalt: Datenformat String Immer „XML“ EBOResponseRecord Struktur Ergebnisdaten für eine OLAposition EAN String OK/FAILED Downloadlink String Identifikation dieses Titels mit Hilfe einer der verschiedenen Angaben EOSErgebnis CDATA Detaillierte Rückmeldungsdaten als CDATA Seite 81 EBOITEM EAN Struktur String EAN des gewünschten Artikels ProductFormatCode String E-Book Format z.B. PDF, ePub CustOrderNoRef String Eindeutige Auftragsreferenz Kunde CustomerId String Referenz Endkunde DownloadURL String URL für Token zum E-Book Download CountryCode String CountryCode String Länderkennzeichen Pids String Liste Geräte ID’s ErrorCode String Fehlercode ErrorMessage String Fehlermeldung /-beschreibung ErrorDetails String Detaillierte Fehlermeldung (Dump) Fehlernummer Ganzzahl Fehlernummer der Rückmeldung 3.11.3.1 Feld EAN Hier wird die EAN aus der Bestellung bestätigt. 3.11.3.2 Feld DownloadLink Als einziges Datenelement der gesamten Antwort wird hier der Download-Link in einem extra Feld zurückgegeben. Dies ist i.A. das Element, das den Benutzer am meisten interessiert. 3.11.3.3 Feld EOSErgebnis Dieser CDATA-String enthält die komplette Antwort des EOS (E-Book-Order-System) mit allen Informationen, so wie sie der KNV Webservice selbst erhält. 3.11.3.4 Feld Fehlernummer Falls ein Fehler aufgetreten ist, wird er in dieser Position zurückgegeben. 3.11.3.5 Fehlerbehandlung Bei der EBookBestellung wird pro Position ein Fehlercode geliefert, wenn ein Fehler vorgelegen hat. Im Feld EOSErgebnis finden Sie in der ErrorMessage dann meist auch eine weitere Erläuterung zum Fehler, z.B. <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID/> <WSVersion>2.0.9.5.0.0</WSVersion> <EBOResponse> <Datenformat>XML</Datenformat> <EBOResponseRecord> <EAN>9783955164461</EAN> <DownloadLink>missing</DownloadLink> <EOSErgebnis><![CDATA[<EBOITEM> <EAN>9783955164461</EAN> <ProductFormatCode>PDF</ProductFormatCode> <CustOrderNoRef>Test0013</CustOrderNoRef> <CountryCode>DE</CountryCode> <ErrorCode>1</ErrorCode> <ErrorMessage>DCS001 - Invalid Format Code</ErrorMessage> </EBOITEM>]]></EOSErgebnis> <Fehlernummer>1</Fehlernummer> Seite 82 </EBOResponseRecord> </EBOResponse> <LogoutAusgefuehrt>true</LogoutAusgefuehrt> </ns1:wscallResponse> Mögliche Fehlermeldungen siehe Kap. 0 Dies bedeutet: Der OLA-Aufruf selbst war korrekt und konnte vom Webservice verarbeitet werden. Allerdings konnte die OLA-Funktion beide Bestell-Positionen des Requests nicht verarbeiten, weil die OLA-Zugangsdaten nicht korrekt eingerichtet waren. Dieser Fehler wurde für jede Einzelposition separat zurückgemeldet. Fehlermeldungen der EBookBestellung, 3.11.4 Beispiele Es soll das E-Book mit den EAN „9783955164461“ bestellt werden: Anfrage: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://ws.pcbis.de/"> <soap:Header/> <soap:Body> <ws:wscallParam> <SessionID>KNVWS1@test81@05356838403C6C3F44505A5D40727343444B4B486B6B704B4C4D 4E4F50515253545556706C5A5E5B62605F5F676362@de</SessionID> <EBookBestellung> <EBOItem> <Bestellnummer> <EAN>9783955164461</EAN> </Bestellnummer> <Format>EPUB</Format> <AuftragsReferenz>200063</AuftragsReferenz> <LaenderCode>DE</LaenderCode> <GeraeteIDs>IDRQ2EB1</GeraeteIDs> </EBOItem> </EBookBestellung> </ws:wscallParam> </soap:Body> </soap:Envelope> Ergebnis: soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@test81@05356838403C6C3F44505A5D40727343444B4B486B6B704B4C4D 4E4F50515253545556706C5A5E5B62605F5F676362@de</SessionID> <WSVersion>2.0.9.5.0.0</WSVersion> <EBOResponse> <Datenformat>XML</Datenformat> <EBOResponseRecord> <EAN>9783955164461</EAN> <DownloadLink>http://auslieferung1.ciando.com/dd/3955164462.epub?d=352ED740-1D654B61-6A2C691CB412CF0E</DownloadLink> <EOSErgebnis><![CDATA[<EBOITEM> Seite 83 <EAN>9783955164461</EAN> <ProductFormatCode>EPUB</ProductFormatCode> <CustOrderNoRef>200063</CustOrderNoRef> <CountryCode>DE</CountryCode> <Pids>/</Pids> <DownloadURL>http://auslieferung1.ciando.com/dd/3955164462.epub?d=352ED7401D65-4B61-6A2C691CB412CF0E</DownloadURL> </EBOITEM>]]></EOSErgebnis> </EBOResponseRecord> </EBOResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Beispiel 2 Wiederholung des Aufrufs mit derselben AuftragsReferenz: Anfrage: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://ws.pcbis.de/"> <soap:Header/> <soap:Body> <ws:wscallParam> <SessionID>KNVWS1@test81@05356838403C6C3F44505A5D40727343444B4B486B6B704B4C4D 4E4F50515253545556706C5A5E5B62605F5F676362@de</SessionID> <EBookBestellung> <EBOItem> <Bestellnummer> <EAN>9783955164461</EAN> </Bestellnummer> <Format>EPUB</Format> <AuftragsReferenz>200063</AuftragsReferenz> <LaenderCode>DE</LaenderCode> <GeraeteIDs>IDRQ2EB1</GeraeteIDs> </EBOItem> </EBookBestellung> </ws:wscallParam> </soap:Body> </soap:Envelope> Ergebnis: <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@test81@05356838403C6C3F44505A5D40727343444B4B486B6B704B4C4D 4E4F50515253545556706C5A5E5B62605F5F676362@de</SessionID> <WSVersion>2.0.9.5.0.0</WSVersion> <EBOResponse> <Datenformat>XML</Datenformat> <EBOResponseRecord> <EAN>9783955164461</EAN> <DownloadLink>http://auslieferung1.ciando.com/dd/3955164462.epub?d=352ED740-1D654B61-6A2C691CB412CF0E</DownloadLink> <EOSErgebnis><![CDATA[<EBOITEM> <EAN>9783955164461</EAN> <ProductFormatCode>EPUB</ProductFormatCode> <CustOrderNoRef>200063</CustOrderNoRef> Seite 84 <CountryCode>DE</CountryCode> <Pids>/</Pids> <DownloadURL>http://auslieferung1.ciando.com/dd/3955164462.epub?d=352ED7401D65-4B61-6A2C691CB412CF0E</DownloadURL> <InfoMessage>Bestellnummer wurde bereits verwendet / Downloadlink wird neu geliefert</InfoMessage> </EBOITEM>]]></EOSErgebnis> </EBOResponseRecord> </EBOResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 85 3.12 Teilfunktion „Suchvorschlag“ Diese Funktion dient dazu, dem Benutzer zu einer Eingabe oder Teileingabe eine Liste von möglichen Suchwerten oder Titeln anzuzeigen. 3.12.1 Struktur Anfrage <ws:wscallParam> <SessionID> </SessionID> <Suchvorschlag> <Teilsuchwert>?</Teilsuchwert> <AnzahlWortVorschlaege>?</AnzahlWortVorschlaege> <AnzahlTitelVorschlaege>?</AnzahlTitelVorschlaege> </Suchvorschlag> </ws:wscallParam> Antwort <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID> </SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Suchvorschlag> <Eingabe></Eingabe> <Wortvorschlag></Wortvorschlag> … <Wortvorschlag></Wortvorschlag> <Titelvorschlag> <Autor></Autor> <Titel></Titel> <Dokumentennummer></Dokumentennummer> <Sortiment></Sortiment> </Titelvorschlag> <Titelvorschlag> … </Suchvorschlag> </ns1:wscallResponse> 3.12.2 Felder für die Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Suchvorschlag Struktur Funktionsparameter Der Funktionsparameter „Suchvorschlag“ hat folgende Struktur: Teilsuchwert String Format für das Ergebnis AnzahlWortVorschlaege Ganzzahl Gewünschte Anzahl Vorschläge AnzahlTitelVorschläge Gewünschte Anzahl Vorschläge Ganzzahl 3.12.2.1 Feld Teilsuchwert Hier kann der Benutzer einen beliebigen Wert übergeben, der Webservice liefert dann eine Liste von weiteren Suchwerten passend zu diesem eingegebenen Wert sowie eine Liste von Titelvorschlägen passend zu dem Eingabewert. Seite 86 3.12.3 Felder der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Sitzung für Folgeaufrufe WSVersion String Version des Webservice Suchvorschlag Struktur Ergebnis der Funktion Der Ergebnisparameter „Suchvorschlag“ hat folgenden Inhalt: Eingabe String Der eingegebene Wert“ Wortvorschlag String / mehrfach Vorschläge für Sucheingaben Titelvorschlag Struktur /mehrfach Titelvorschläge für Sucheingabe Autor String Autor des Titelvorschlages Titel String Titelvorschlag Dokumentennummer String Dokumentennummer des Titelvorschlags Sortiment String Sortimentskürzel des Titels 3.12.3.1 Feld Sortiment Hier wird eine Codierung für das Sortiment zurückgegeben in welches der Titel eingeordnet wurde. Diese Kürzel werden beispielsweise auch verwendet in den Clusterdaten eines Suchergebnisses (siehe Kapitel 3.4.3.5). Eine Liste der aktuellen Kürzel finden Sie im Anhang (s. A.4). 3.12.3.2 Beispiel 1 Es sollen Suchvorschläge für die Teileingabe „pot“ gelesen werden. Es sollen 10 Suchvorschläge und 5 Titelvorschläge geliefert werden. Anfrage: <soapenv:Envelope"> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Suchvorschlag> <Teilsuchwert>pot</Teilsuchwert> <AnzahlWortVorschlaege>10</AnzahlWortVorschlaege> <AnzahlTitelVorschlaege>5</AnzahlTitelVorschlaege> <Suchvorschlag> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> Seite 87 <Suchvorschlag> <Eingabe>pot</Eingabe> <Wortvorschlag>Potter</Wortvorschlag> <Wortvorschlag>Potempa</Wortvorschlag> <Wortvorschlag>Pott</Wortvorschlag> <Wortvorschlag>Potsdam</Wortvorschlag> <Wortvorschlag>Potsdamer</Wortvorschlag> <Wortvorschlag>Potsdam; Reiseführer</Wortvorschlag> <Wortvorschlag>Pottprinzessin</Wortvorschlag> <Wortvorschlag>Pots</Wortvorschlag> <Wortvorschlag>Potential</Wortvorschlag> <Wortvorschlag>Potenzial</Wortvorschlag> <Titelvorschlag> <Autor>Rowling, Joanne K.</Autor> <Titel>Harry Potter, 14 MP3-CDs.</Titel> <Dokumentennummer>2013043001055</Dokumentennummer> <Sortiment>11</Sortiment> </Titelvorschlag> <Titelvorschlag> <Autor>Potempa, Axel-Jürg</Autor> <Titel>Was Sie besser nicht über Sex wissen sollten.</Titel> <Dokumentennummer>2012121901435</Dokumentennummer> <Sortiment>01</Sortiment> </Titelvorschlag> <Titelvorschlag> <Autor>Pott, Eckart</Autor> <Titel>Das große Ravensburger Tierlexikon von A-Z.</Titel> <Dokumentennummer>2004122300102</Dokumentennummer> <Sortiment>01</Sortiment> </Titelvorschlag> <Titelvorschlag> <Autor>Potter, Lawrence G.</Autor> <Titel>Liebe Mathematik, löse deine Probleme bitte selber.</Titel> <Dokumentennummer>2012112101265</Dokumentennummer> <Sortiment>03</Sortiment> </Titelvorschlag> <Titelvorschlag> <Autor>Potter, Lawrence G.</Autor> <Titel>Liebe Mathematik, löse deine Probleme bitte selber.</Titel> <Dokumentennummer>2013052305664</Dokumentennummer> <Sortiment>07</Sortiment> </Titelvorschlag> </Suchvorschlag> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 88 3.13 Teilfunktion „Zusatzfunktion“ Der KNV-Webservice 2.0 stellt noch eine zusätzliche allgemeine Funktion für verschiedene Zwecke zur Verfügung. Hier können ohne Schnittstellenveränderung neue Funktionalitäten bereitgestellt werden. Die Schnittstelle der Zusatzfunktion ist deswegen ganz einfach gehalten. 3.13.1 Struktur Anfrage: <ws:wscallParam> <SessionID></SessionID> <Zusatzangabe> <Name></Name> <Wert></Wert> </Zusatzangabe> </ws:wscallParam> Ergebnis: <ns1:wscallResponse> <SessionID></SessionID> <WSVersion></WSVersion> <Zusatzergebnis> <Bezeichnung></Bezeichnung> <Daten></Daten> <Detaildaten></Detaildaten> </Zusatzergebnis> </ns1:wscallResponse> 3.13.2 Felder in der Anfrage Feld Datentyp Beschreibung SessionID String Session-ID der aktuellen Sitzung Zusatzangabe Struktur Funktionsparameter Der Funktionsparameter „Zusatzangabe“ hat folgende Struktur: Name String Namen der Zusatzfunktion Wert String Parameter für die Zusatzfunktion, Inhalt hängt von der jeweiligen Funktion ab 3.13.3 Felder in der Antwort Feld Datentyp Beschreibung SessionID String Identifikation der Session WSVersion String Version des Webservice Zusatzergebnis Struktur Ergebnis der Zusatzfunktion Der Ergebnisparameter „Zusatzergebnis“ hat folgenden Inhalt: Bezeichnung String Namen der Zusatzfunktion Seite 89 Daten Struktur Ergebnisdaten der Zusatzfunktion Detaildaten String/mehrfach Weitere Ergebnisdaten der Zusatzfunktion In der aktuellen Version des Webservice sind 2 Zusatzfunktionen implementiert. 3.13.4 Zusatzfunktion „APIInformationen“ Diese Funktion ist als Hilfe für den Entwickler gedacht. In den verschiedenen Funktionen des Webservice gibt es einige Felder, die zwar vom Typ String sind, deren Inhalt aber nur bestimmte Werte enthalten darf (Aufzählungstypen). Die Werte dieser Aufzählungstypen sind nicht mehr in der WSDL definiert, weil sonst eine Hinzunahmen eines neuen Wertes eine Änderung der Schnittstelle nach sich ziehen würde. Die Werte werden nun vom Webservice direkt geprüft und es werden auch wie früher entsprechende Fehlermeldungen generiert. Diese Funktion dient nun dazu, die Inhalte dieser verschiedenen Aufzählungen abfragen zu können. Hierzu müssen die Aufrufparameter folgendermaßen belegt werden: 3.13.4.1 Aufrufparameter: Parameter Inhalt Name Wert „APIInformationen“ • Wird hier kein Wert übergeben, erhalten Sie eine Liste der verschiedenen Aufzählungen • Geben Sie einen der verschiedenen Aufzählungsnamen als Parameter an, erhalten Sie ein Liste der möglichen Werte 3.13.4.2 Ergebnis: Parameter Inhalt Bezeichnung „WSAPIInformationen“ Daten Ein Textfeld mit allen Informationen Detaildaten In diesem wiederholbaren Feld werden alle Ergebniswerte noch mal einzeln geliefert 3.13.4.3 Beispiel 1: Aufruf ohne Wert um die Liste aller Aufzählungen zu erhalten Aufruf: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Zusatzangabe> <Name>APIInformationen</Name> <Wert></Wert> </Zusatzangabe> Seite 90 </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Ergebnis <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Zusatzergebnis> <Bezeichnung>WSAPIInformationen</Bezeichnung> <Daten>Aufrufwerte(18) [Datenbank, Suchfeld, Suchart, Verknuepfung, Einschraenkung, Sortierfeld, Sortierrichtung, Format, Formatfeld, MMTyp, MMVariante, Registerfeld, Registerrichtung, Sprache, OLA-Art, OLADatenformat, EBO-Laendercode, EBO-Datenformat]</Daten> <Detaildaten>Datenbank</Detaildaten> <Detaildaten>Suchfeld</Detaildaten> <Detaildaten>Suchart</Detaildaten> <Detaildaten>Verknuepfung</Detaildaten> <Detaildaten>Einschraenkung</Detaildaten> <Detaildaten>Sortierfeld</Detaildaten> <Detaildaten>Sortierrichtung</Detaildaten> <Detaildaten>Format</Detaildaten> <Detaildaten>Formatfeld</Detaildaten> <Detaildaten>MMTyp</Detaildaten> <Detaildaten>MMVariante</Detaildaten> <Detaildaten>Registerfeld</Detaildaten> <Detaildaten>Registerrichtung</Detaildaten> <Detaildaten>Sprache</Detaildaten> <Detaildaten>OLA-Art</Detaildaten> <Detaildaten>OLA-Datenformat</Detaildaten> <Detaildaten>EBO-Laendercode</Detaildaten> <Detaildaten>EBO-Datenformat</Detaildaten> <Detaildaten>XML-Empfehlungen</Detaildaten> <Detaildaten>XML-Varianten</Detaildaten> </Zusatzergebnis> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.13.4.4 Beispiel 2 Im zweiten Beispiel möchten Sie z.B. die Liste aller möglichen „Sortierfelder“ erfahren. Aufruf: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Zusatzangabe> <Name>APIInformationen</Name> <Wert>Sortierfeld</Wert> </Zusatzangabe> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Seite 91 Ergebnis <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Zusatzergebnis> <Bezeichnung>WSAPIInformationen</Bezeichnung> <Daten>Sortierfeld(8) [Starrating, Verlag, Autor, Preis, Meldenummer, Sortiment, ISBN, Titel]</Daten> <Detaildaten>Starrating</Detaildaten> <Detaildaten>Verlag</Detaildaten> <Detaildaten>Autor</Detaildaten> <Detaildaten>Preis</Detaildaten> <Detaildaten>Meldenummer</Detaildaten> <Detaildaten>Sortiment</Detaildaten> <Detaildaten>ISBN</Detaildaten> <Detaildaten>Titel</Detaildaten> </Zusatzergebnis> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> 3.13.5 Zusatzfunktion: „LeseMultimediadaten“ Im alten Webservice gab es eine Funktion um zu einem bekannten Titel alle Multimediaobjekte lesen zu können (bzw. die URLs für die Multimediaobjekte). Diese Funktion wird im Webservice 2.0 eigentlich nicht mehr benötigt, weil die MM-Objekte direkt mit den Datensätzen gelesen werden können. Da es aber eventuell existierende Anwendungen gibt, die nicht auf diese Funktionalität verzichten wollen, stellt der WS 2.0 diese Funktion als Zusatzfunktion noch bereit. Das gesamte Ergebnis wird jedoch als ein einzelner CDATA-String geliefert und muss dann von Ihrer Anwendung weiter verarbeitet werden. 3.13.5.1 Aufrufparameter: Parameter Inhalt Name Lesemultimediadaten Wert Die KNV-Titelnummer zu der die MM-Objekte geliefert werden sollen 3.13.5.2 Ergebnis Parameter Inhalt Bezeichnung „WSAPIInformationen“ Daten Ein CDATA-String mit dem Ergebnis 3.13.5.3 Ergebnis-XML Das gesamte Ergebnis wird in einem CDATA-String geliefert. Dieser String enthält wiederum eine XML-Struktur namens „MULTIMEDIADATA“ mit den MM-Informationen. (Dies entspricht dem XML, welches von der Funktion im alten Webservice zuvor geliefert wurde) Seite 92 Feld Datentyp Beschreibung NUMOFRECORDS Ganzzahl Anzahl der folgenden MM-Records MMRecord Struktur Liste mit Informationen zu einem einzelnen Multimediaobjekt. MMUrl String Link zum Anzeigen des MM-Objektes MMDatenbank String Datenbank, zu der das MM-Objekt gehört. MMTyp String Typ des MM-Objekts MMVariante String Variante (Größe) des MM-Objektes MMRang String Interne Nummer, wenn mehrere gleichartige Objekte vorhanden sind 3.13.5.4 Beispiel Es soll die Liste der Multimediaobjekte für die Titelnummer 13149951 eingelesen werden: Anfrage: <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ws:wscallParam> <SessionID>KNVWS1@[email protected]@de</SessionID> <Zusatzangabe> <Name>LeseMultimediadaten</Name> <Wert>13149951</Wert> </Zusatzangabe> </ws:wscallParam> </soapenv:Body> </soapenv:Envelope> Antwort: <soapenv:Envelope> <soapenv:Header> </soapenv:Header> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Zusatzergebnis> <Bezeichnung>Multimediadaten</Bezeichnung> <Daten><![CDATA[<MULTIMEDIADATA> <NUMOFRECORDS>4</NUMOFRECORDS> <MMRECORD> <MMUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=1 3149951&kennwort=LLMQFFOLUBMKRO&variante=mini&rang=01</MMUrl> <MMDatenbank>KNV</MMDatenbank> <MMTyp>HBILD</MMTyp> <MMVariante>mini</MMVariante> <MMRang>01</MMRang> </MMRECORD> Seite 93 <MMRECORD> <MMUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=1 3149951&kennwort=LLMQFFOLUBMKRO&variante=normal&rang=01</MMUrl> <MMDatenbank>KNV</MMDatenbank> <MMTyp>HBILD</MMTyp> <MMVariante>normal</MMVariante> <MMRang>01</MMRang> </MMRECORD> <MMRECORD> <MMUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=1 3149951&kennwort=LLMQFFOLUBMKRO&variante=zoom&rang=01</MMUrl> <MMDatenbank>KNV</MMDatenbank> <MMTyp>HBILD</MMTyp> <MMVariante>zoom</MMVariante> <MMRang>01</MMRang> </MMRECORD> <MMRECORD> <MMUrl>http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=1 3149951&kennwort=LLMQFFOLUBMKRO&variante=pcbis&rang=01</MMUrl> <MMDatenbank>KNV</MMDatenbank> <MMTyp>HBILD</MMTyp> <MMVariante>pcbis</MMVariante> <MMRang>01</MMRang> </MMRECORD> </MULTIMEDIADATA>]]></Daten> </Zusatzergebnis> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Sie haben hier nun z.B. die Information erhalten, dass es zu diesem Titel nur ein Coverbild gibt. Dieses ist aber in insgesamt 4 verschiedenen Größen vorhanden. Die gelieferten Daten können nun in der Anwendung benutzt werden, um die Cover anzuzeigen. Seite 94 3.14 Webservice-Funktion „CheckVersion“ Funktion zur Überprüfung der Webservice Version. Diese Versionsprüfung sollte in jeden WS-Client eingebaut werden, um das einwandfreie Zusammenspiel mit dem aktuellen Webservice sicherzustellen. Merken Sie sich daher, auf Basis welcher Webservice-Version Sie Ihren WS-Client entwickelt haben und integrieren Sie bitte den Versionscheck in Ihre Anwendung. Beim Aufruf dieser Funktion kann entweder die aktuelle Version des Webservices angefragt, oder die Version des WS-Clients dahingehend überprüft werden, ob sie noch zum Webservice passt. Für diese Funktion ist keine Anmeldung erforderlich, d.h. es muss keine Session-ID mitgegeben werden. 3.14.1 Aufbau der Versionsnummer Die Versionsnummer ist wie folgt aufgebaut: w.w.w.p.p.p | | | | | | | | | | | [pcbis.build number] | | | | [pcbis subversion] | | | [pcbis version] | | [build number] | [minor version] [major version] Abbildung 3: Aufbau der Versionsnummer Die Version dieses Webservice ist zum Zeitpunkt der Erstellung dieser Dokumentation die Version „2.0“ und ganz genau die Version „2.0.17.5.1.0“ Für die Versionskontrolle sind nur die ersten 2 Ziffern wichtig, diese geben die Version des Webservice an. Die letzten drei Ziffern geben die Version der PCBIS-Anwendung an, diese kann sich unabhängig von der Version des Webservice ändern. Die „[build number]“ soll nur die Information geben, dass ein neues Release der WSSoftware vorliegt. In diesem Fall bleibt die eigentliche Version gleich. 3.14.2 Felder für die Anfrage Feld Datentyp Beschreibung String String Zu prüfende Version. Optional leerer String. Bei Übergabe einer Version mindestens die ersten beiden Stellen angegeben werden 3.14.3 Felder in der Antwort Feld Datentyp Beschreibung checkVersion String Ergebnis 0, 1 oder 2 siehe unten 3.14.4 Arbeitsweise Seite 95 Wird bei der Anfrage keine Versionsnummer übergeben, wird lediglich die aktuelle Version des Webservices zurückgeliefert. Beinhaltet die Anfrage eine Versionsnummer, wird die Information zurückgeliefert, ob Ihr WS-Client und der Webservice noch zusammenpassen. Entscheidend hierfür sind die ersten zwei Stellen der Versionsnummer. Folgende Rückgabewerte sind möglich: 0: Alles bestens, der WS-Client muss nicht angepasst werden 1: Es sollte überprüft werden, ob noch alles funktioniert und ggf. der WS-Client angepasst werden. Diese Antwort wird geliefert wenn die [major version] gleich bleibt und sich nur die [minor version] geändert hat. 2: Der WS-Client muss auf jeden Fall angepasst werden. Diese Antwort wird geliefert, wenn sich die [major version] geändert hat. 3.14.5 Beispiel 1: aktuelle Version abfragen Aufruf <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.pcbis.de/"> <soapenv:Header/> <soapenv:Body> <ws:checkVersion>2.0</ws:checkVersion> </soapenv:Body> </soapenv:Envelope> Antwort <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ns1:checkVersionResponse xmlns:ns1="http://ws.pcbis.de/">2.0.17.5.1.0</ns1:checkVersionResponse> </soapenv:Body> </soapenv:Envelope> 3.14.6 Beispiel 2: Aufruf eines alten Clients. Angenommen, Ihr bisheriger Client ruft nun diese Funktion auf und prüft seine Versionsnummer, z.B. 1.9 oder 1.10. Dann bekommt Ihr Client die Antwort „2“ die bedeutet, dass Sie einen neuen Client erstellen müssen. Aufruf <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.pcbis.de/"> <soapenv:Header/> <soapenv:Body> <ws:checkVersion>1.9</ws:checkVersion> </soapenv:Body> </soapenv:Envelope> Antwort <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ns1:checkVersionResponse xmlns:ns1="http://ws.pcbis.de/">2</ns1:checkVersionResponse> Seite 96 </soapenv:Body> </soapenv:Envelope> 3.14.7 Beispiel 2: Aufruf eines alten Webservice. Angenommen, Sie haben einen neuen Client für den Webservice 2.0 entwickelt und rufen nun versehentlich den alten Webservice auf. Dann bekommen Sie ebenfalls die Antwort, dass Ihr neuer Client mit dem alten Webservice nicht mehr kompatibel ist. Seite 97 4 Satzformate Die Titeldaten können über den Web Service (Funktion Lesen) in 2 Grund-Formaten ausgegeben werden: • NEUK • KNVXML Jedes Grund-Format kann wiederum in jeweils 4 Varianten ausgegeben werden: • xxxKurz (= Auszug der wichtigsten Felder, z.B. für eine Kurzliste) • xxxLang (= alle Datenfelder außer Zusatztexten und Autorenportraits) • xxxLangText (= alle Datenfelder inklusive Zusatztexte und Autorenportraits) • xxxDynamisch (= die Liste der Datenfelder die durch einen Aufruf der Funktion „Formatauswahl“ definiert wurde) Somit sind insgesamt folgende Formate möglich: • NEUKKurz • NEUKLang • NEUKLangText • NEUK • KNVXMLKurz • KNVXMLLang • KNVXMLLangText • KNVXML (dynamisches Format) (dynamisches Format) • 4.1 4.1.1 NEUK-Format Grundsätzlicher Aufbau Für Titel der KNV Barsortimente werden die Katalog- und BWL-Daten in Form des NEUK-Satzformats für externe Bibliographie-Datenbanken zur Verfügung gestellt. 1. Die Sätze sind von variabler Länge und enthalten eine variable Anzahl an Datenfeldern. 2. Eine Satzart wird durch eine vorangestellte vierstellige Kennung identifiziert. 3. Die Datenfelder innerhalb der Sätze sind variabel lang und werden durch eine vorangestellte dreistellige Kennung, bestehend aus einem Stern ('*') und einer zweistelligen, alphanumerischen Feldnummer markiert. 4. Die Reihenfolge der Datenfelder kann beliebig sein. 5. Die Daten enthalten nur darstellbare Zeichen im ASCII Zeichensatz, also im Prinzip den Zeichensatz einer Schreibmaschinentastatur. 6. Das Zeichen '*' ist als Bestandteil der Daten nicht zulässig, da es zur Kennzeichnung der Feldnummern, in bestimmten Fällen des Satzendes verwendet wird. 7. Bei Textfeldern werden führende und nachfolgende Leerstellen normalerweise nicht ausgegeben. Ausnahmen von dieser Regel sind extra aufgeführt. Seite 98 8. Bei numerischen Feldern werden führende Nullen oder nicht signifikante Stellen im Allgemeinen nicht ausgegeben - die numerischen Felder werden bis auf die signifikanten Stellen gekürzt. (z.B. ".5" statt "0.50", "36" statt "36.0", etc.). Ausnahmen von dieser Regel sind extra aufgeführt. 9. Als Dezimalzeichen wird immer der Punkt verwendet. 10. Da die Speicherungsform von variabel langen Sätzen abhängig vom Betriebssystem ist, gilt für den Datenaustausch, dass jeder Satz durch die Kombination CR/LF (X'0D0A') abgeschlossen wird. Darstellung des Satzformates ohne systemspezifische Komponenten: SSSS*NNXXXXX*NNXXXXX*NNXXXXX...*NNXXXXX --+-+--+-! ! ! ! ! +--- Feldinhalt (variabel lang, 0-n Stellen) ! ! ! +--------------- Feldnummer (drei Stellen, NN = Kennzahl) ! +-------------------------- Satzart (vier Stellen) Abbildung 4: Aufbau des Satzformates NEUK Beispiel: NEUK*00000987*01980220309*03E… --+------ -----+--------------------+----------------+-! ! ! ! ! ! ! +--3. Datenfeld ! ! ! ! ! +-------- 2. Datenfeld ! ! ! +-------------------- 1. Datenfeld ! +----------------------------- Satzart Abbildung 5: Beispiel des Satzformates NEUK In der vorliegenden Dokumentation werden bei den Satzbeschreibungen für die Formatangabe folgende Definitionen verwendet: • „C“ (Character) bei Textfelder • „N“ für numerische Felder • „D“ bei Datumsfeldern im Format JJJJMMTT Für die Längenangabe werden alle Stellen des Feldinhaltes gezählt - bei numerischen Feldern wird der gegebenenfalls vorhandene Dezimalpunkt mitgerechnet. Für die Angabe der Häufigkeit gibt es einen Mindest- und einen Maximalwert. Bei KannFeldern ist die Mindest-Häufigkeit 0, bei Muss-Feldern ist sie 1. Wenn es besondere Abhängigkeiten bei der Häufigkeit gibt, so wird A als Kennzeichen angegeben - die Hinweise bitte beachten. Gehört ein Titel zu einer Reihe, so werden zwei NEUK-Sätze ausgegeben. Der erste hat das Typkennzeichen (*03) „K“ (Kopf), der zweite das Typkennzeichen „B“ (Band). Ansonsten wird nur ein Satz mit Typkennzeichen „E“ (Einzelwerk) ausgegeben. 4.1.2 Formatbeschreibung Satzart : NEUK Maximale Länge : 12073 Seite 99 Mögliche Felder Feld- : Feldinhalt Format nr. Länge Häufigk. min max min max Enthalten in …Kurz …Lang …LangText 03 Typkennzeichen (E/K/B) C 1 1 1 1 - √ √ 04 Abteilung (Unterreihe) C 1 33 0 1 - √ √ 05 Bandnummerntext C 1 23 0 1 - √ √ 06 Autoren / Sachtitel C 1 120 0 3 - √ √ 07 Bündelung C 1 34 0 1 - √ √ 08 Titel C 1 120 0 3 - √ √ 09 Teilband C 1 67 0 1 - √ √ 10 Untertitel C 1 203 0 1 - √ √ 11 Mitarbeiter C 1 203 0 1 - √ √ 12 Sammlung C 1 103 0 1 - √ √ 13 Abbildungsvermerk C 1 103 0 1 - √ √ 14 Sonstiger Text C 1 50 0 1 - √ √ 17 Verlag C 1 53 0 1 √ √ √ 18 Sigelkennzeichen N 1 1 0 7 - √ √ 20 Einbandart C 1 4 0 1 - √ √ 21 Ladenpreis N 1 8 0 1 - √ √ 22 Vorbestellpreis N 1 8 0 1 - √ √ 24 Vorbestellrabatt N 1 4 0 1 - √ √ 25 Zusatztext C 1 200 0 1 - √ √ 26 Meldenummer N 2 2 0 1 √ √ √ 27 Gewicht (in Gramm) N 1 5 0 1 - √ √ 28 Fortsetzungskennzeichen C 1 1 0 1 - √ √ 29 Titelgruppe N 3 3 0 1 - √ √ 31 Reihennummer N 1 5 0 1 - √ √ 32 Bandnummer N 1 25 0 10 - √ √ 33 Mehrwertsteuerkennz. N 1 1 0 1 - √ √ 34 Freier Preis Kennz. C 1 1 0 1 √ √ √ 35 Preisart C 1 1 0 1 - √ √ 36 Sortimenterrabatt N 1 4 0 1 - √ √ 38 Subskriptionspreis in DEM N 1 8 0 3 - √ √ 39 Subskriptionsrabatt N 1 4 0 3 - √ √ 40 Staffelmenge N 1 5 0 3 - √ √ 41 Staffelrabatt N 1 4 0 3 - √ √ 42 BS Kurztitel C 1 39 0 1 √ √ √ Seite 100 Feld- Feldinhalt Format nr. Länge Häufigk. min max min max Enthalten in …Kurz …Lang …LangText 43 Verlagsverkehrsnummer N 1 7 0 1 - √ √ 44 Auslieferungsnummer N 1 7 0 1 - √ √ 45 Ausl. Ladenpreis C 2 11 0 2 - √ √ 46 Ausl. Vorbestellpreis C 2 11 0 2 - √ √ 47 Ausl. Subskriptionspreis C 2 11 0 6 - √ √ 50 Indexeintrag Verlage C 50 50 0 10 - √ √ 51 Indexeintrag Autoren C 30 30 0 15 - √ √ 52 Indexeintrag Stichwörter C 40 40 0 50 - √ √ 53 Indexeintrag Schlagwörter C 80 80 0 10 - √ √ 61 Erster Freier Text C 1 999 0 1 - - √ 62 Zweiter Freier Text C 1 999 0 1 - - √ 63 Dritter Freier Text C 1 999 0 1 - - √ 64 Vierter Freier Text C 1 999 0 1 - - √ 65 Fünfter Freier Text C 1 999 0 1 - - √ 66 Erscheinungsjahr N 4 4 0 1 √ √ √ 67 Index ReihenBandnummer N 10 10 0 1 - √ √ 68 Titelart C 3 3 0 10 - √ √ 70 Verlagsschlüssel C 11 11 0 5 √ √ √ 90 Klassif.-Titelart C 2 2 0 10 - √ √ 91 Klassif.-Gruppe C 7 7 0 10 - √ √ 92 Klassif.-Zeit-Schlüssel C 10 10 0 10 - √ √ 93 Klassif.-Länder-Schlüssel C 3 3 0 10 - √ √ 94 Klassif.-Sprach-Schlüssel C 2 2 0 10 - √ √ 95 EAN N 13 13 0 3 √ √ √ 96 Maßstab C 1 10 0 5 - √ √ 97 Altersangabe N 1 4 0 1 - √ √ 98 Warengruppe neu N 10 10 0 1 √ √ √ 99 Exemplarzahl einheit. Bünd N 1 5 0 1 - √ √ A0 Tagesdatum/Lfd. Nummer N 8 8 1 1 - √ √ A3 Erscheinungstermin C 6 6 0 1 - √ √ A4 Vorbestelldatum N 8 8 0 1 - √ √ A5 Subskriptionsdatum N 8 8 0 3 - √ √ A6 Ladenpreis EURO-D C 1 10 0 1 √ √ √ A7 Ladenpreis EURO-A C 1 10 0 1 √ √ √ A8 Vorbestellpreis EURO-D C 1 10 0 1 - √ √ Seite 101 Feld- Feldinhalt Format nr. Länge Häufigk. min max min max Enthalten in …Kurz …Lang …LangText A9 Vorbestellpreis EURO-A C 1 10 0 1 - √ √ AA Neue Auflage GTIN N 13 13 0 1 - √ √ AB Vorherige Auflage GTIN N 13 13 0 1 - √ √ AC Tagesgenauer Erscheinungstermin N 8 8 0 1 - √ √ AN NeueAuflage N 8 8 0 1 - √ √ AV VorherigeAuflage N 8 8 0 1 - √ √ B0 Subskriptionspr.EURO-D C 1 10 0 3 - √ √ B1 Subskriptionspr.EURO-A C 1 10 0 3 - √ √ B2 Titelnummer N 8 8 0 2 √ √ √ B5 Dokumentnummer 13stellig N 13 13 1 1 √ √ √ B6 Dokumentnummer Kopf 13-stellig N 13 13 0 1 - √ √ C0 Ebook: ISBN/EAN der Printausgabe C 1 80 0 1 - √ √ C1 eBook: Dateigrö0e C 1 80 0 1 - √ √ C2 eBook: Dateiformat C 1 80 0 1 - √ √ C3 eBook: Typ C 1 80 0 1 - √ √ C4 eBook: Rechte C 1 80 0 1 - √ √ C5 eBook: Nutzungsbedingungen C 1 80 0 1 - √ √ C6 eBook: Nutzungseinschränkungen C 1 80 0 1 - √ √ C7 NotForSale C 2 2 0 340 - √ √ C8 ForSale C 2 2 0 340 - √ √ CK GrundPreisEurA C 1 10 0 1 - √ √ CL GrundPreisEurD C 1 10 0 1 - √ √ CM GrundPreisCHF C 1 10 0 1 - √ √ CN PreisGrundmenge C 1 10 0 1 - √ √ CO PreisGesamtmenge C 1 10 0 1 - √ √ CP MasseinheitGrundPreis C 1 20 0 1 - √ √ E1 Lieferzeit von N 1 3 0 1 - √ √ E2 Lieferzeit bis N 1 3 0 1 - √ √ EZ Warennummer C 1 80 0 1 - √ √ F0 Ursprungsland C 1 80 0 1 - √ √ F8 Breite N 1 5 0 1 - √ √ F9 Höhe N 1 5 0 1 - √ √ FA Tiefe N 1 5 0 1 - √ √ M1 MultimediaInfo C 1 1 0 1 √ √ √ Seite 102 Feld- Feldinhalt Format nr. Länge Häufigk. min max min max Enthalten in …Kurz …Lang …LangText M2 MMUrl C 1 256 0 N - √ √ M3 MMDatenbank C 1 32 0 N - √ √ M4 MMTyp C 1 16 0 N - √ √ M5 MMVariante C 1 16 0 N - √ √ M6 MMRang C 1 2 0 N - √ √ SR Titelkategorisierung C 1 3 0 1 √ √ √ Hinweise: • Die Felder 16 (ISBN-10-stellig) sowie A1 und A2 (alte 11-stellige Dokumentnummern) werden im Web Service ab der Version 2.0 nicht mehr geliefert. • Die Felder M2-M6 können sich wiederholen, wenn es mehrere Multimediaobjekte gibt. Ab der Version 2.0 des Webservice kamen dann folgende Felder dazu: Feld - Feldinhalt Format nr. Länge Häufigk. min max min max Enthalten in …Kurz …Lang …LangText E1 LieferzeitVon C 8 8 0 1 - √ √ E2 LieferzeitBis C 8 8 0 1 - √ √ EZ Warennummer C 80 80 0 1 - √ √ F0 Ursprungsland C 80 80 0 1 - √ √ D0 Sortimentskennzeichen C 2 2 0 1 - √ √ DA 1.Verwiesene Reihe C 1 252 0 1 - √ √ DB 2.Verwiesene Reihe C 1 252 0 1 - √ √ DC 3.Verwiesene Reihe C 1 252 0 1 - √ √ DD 4.Verwiesene Reihe C 1 252 0 1 - √ √ DE 5.Verwiesene Reihe C 1 252 0 1 - √ √ DF 6.Verwiesene Reihe C 1 252 0 1 - √ √ DG Bandnummer 1.Verwiesene Reihe C 1 67 0 1 - √ √ DH Bandnummer 2.Verwiesene Reihe C 1 67 0 1 - √ √ DI Bandnummer 3.Verwiesene Reihe C 1 67 0 1 - √ √ DJ Bandnummer 4.Verwiesene Reihe C 1 67 0 1 - √ √ DK Bandnummer 5.Verwiesene Reihe C 1 67 0 1 - √ √ DL Bandnummer C 1 67 0 1 - √ √ Seite 103 Feld - Feldinhalt nr. Format Länge min max Häufigk. min max Enthalten in …Kurz …Lang …LangText 6.Verwiesene Reihe Seite 104 4.1.3 Feldbeschreibungen • Feld "03" (Typkennzeichen) Typ des Eintrags (B = Band, E = Einzelwerk, K = Kopfeintrag). • Feld "04" (Abteilung) Text für eine Abteilung, z. B. "C.1. Biologische Psychologie". • Feld "05" (Bandnummerntext) Dieses Feld enthält eine Bandnummer im Textformat, z.B. "Bd. 321". • Feld "06" (Autoren/Sachtitel) Dieses Feld enthält entweder die Autoren des Titels (wenn ein Feld "08" vorhanden ist), oder einen Sachtitel (falls Feld "08" fehlt). Beispiel: "Bott, Dietrich; Peterson, Robin T; Whatley, A." (Autoren) oder "Botschaft der Bäume" (Sachtitel). • Feld "07" (Bündelung) Hier steht die Bündelung als freier Text, z.B. "50 Expl.". • Feld "08" (Titel) Titel des Buches, falls kein Sachtitel vorliegt. • Feld "09" (Teilband) Hier steht der Teilband als freier Text, z.B. "Tl. 2". • Feld "10" (Untertitel) Text für einen Untertitel, z.B. "Kriminalerzählungen". • Feld "11" (Mitarbeiter) Namen von Herausgebern oder Mitarbeitern, z.B. "Hrsg. v. Gregor-Dellin, Martin. Bearb. v. Thilo Hänichen". • Feld "12" (Sammlung) Dieses Feld enthält die Sammlung (Serientitel), z.B. "dtv Taschenbücher" • Feld "13" (Abbildungsvermerk) Angaben zu Auflage und Format des Buches, z.B. "2., überarb. Aufl. 84. 312 S. mit 32 Fotos. 20,5 cm". • Feld "14" (Sonstiger Text) Dieses Feld enthält weitere Informationen zum Titel, z.B. "Übertr. aus d. Franz.". • Feld "17" (Verlag) Dieses Feld enthält alle Verlagsnamen des Titels in Großbuchstaben, verkettet mit Semikolon, z.B. "PETERSEN; LITTLE, BROWN AND COMPANY". Bei manchen Namen wird zwecks Eindeutigkeit - vom Namen mit Komma getrennt - der erste Buchstabe des Ortes oder auch ein anderer Zusatz angegeben, z.B. "PAULUSVERLAG, FRIBOURGAACHEN", "STEINER (FRANZ)". Die Namen der einzelnen Verlage stehen nochmals in *50, dort auch in Groß-/Kleinschreibung. • Feld "18" (Sigelkennzeichen) Numerisches Sigelkennzeichen (1 = KNV Stgt., 2 = KNV Köln, 4 = Könemann, 5 = Umbreit, 6 = Wehling, 7 = VA). • Feld "20" (Einbandart) Dieses Feld enthält die Einbandart des Buches: Seite 105 • Feld "21" (Ladenpreis, evtl. kalkuliert) Maximal 5 Vorkomma- und 2 Nachkommastellen, getrennt durch einen Punkt (kein Komma). Nullen bei den Nachkommastellen werden nicht angegeben. Falls in Feld 34 (freier Preis) als Inhalt “2” vorkommt, enthält dieses Feld einen Abgabepreis. Wenn keine Centbeträge im Preis vorhanden sind, wird auch der Punkt nicht angegeben. Beispiele: Preis | Darstellung in *21 ----------+-------------------------------------------------14,95 | 14.95 19,80 | 19.8 50,-- | 50 119,-- | 119 21,05 | 21.05 Abbildung 6: Preisformatierung in Feld „21“ • Feld "22" (Vorbestellpreis, evtl. kalkuliert) Vorbestellpreis, selbes Format wie Ladenpreis. • Feld "23" (Vorbestelldatum) Vorbestelldatum im Format JJMMTT (numerisch). Der Wert "999999" bedeutet, dass der Vorbestellpreis nicht terminiert ist. • Feld "24" (Vorbestellrabatt) Rabatt, der dem Sortimenter auf den Vorbestellpreis gewährt wird. Maximal 2 Vorkomma- und 1 Nachkommastelle, getrennt durch einen Punkt. Beispiel: "18.5". Es gelten außerdem analog die Aussagen zu Feld "21" - Ladenpreis. • Feld "25" (Zusatztext) Zusätzliche Informationen zum Bezug, z.B. "Verpflichtung zur Abnahme aller Bände!" Außerdem kann das Feld Informationen darüber enthalten, ob der Titel auch in einer älteren bzw. neueren Auflage vorrätig ist. Gibt es zum Titel eine ältere Auflage, dann enthält die Kategorie *25 den Text: 'Vorherige Ausg. siehe T.-Nr. unmittelbar gefolgt von der KNVTitelnummer. Gibt es zum Titel eine Neuauflage, dann enthält die Kategorie *25 den Text: 'Neuausg. siehe T.-Nr.. Auch hier unmittelbar gefolgt von der KNV-Titelnummer. In beiden Fällen folgt die KNV-Titelnummer 8-stellig vorgenullt! Achtung: Vor und hinter diesen beiden Texten kann noch anderer Text in der *25 stehen. Beispiel.1: ...*25Bitte Fortsetzungsliste für Ergänzungsblätter anlegen! Neuausg. siehe T.Nr.08351006*2607*272790*281* 29000....... Beispiel.2: ...*25Bitte Fortsetzungsliste für Ergänzungsblätter anlegen! Vorherige Ausg. siehe T.-Nr.06150075*273178*28 1*29000....... Mit der Titelnummer aus der *25 kann die alte bzw. neue Auflage gefunden werden, indem man diese Nummer in der *19 des restlichen Bestandes sucht. • Feld "26" (Meldenummer) Zweistellige Meldenummer der Barsortimente KNV (numerisch). Seite 106 • Feld "27" (Gewicht) Gewicht des Buches in Gramm (numerisch, ohne führende Nullen). Beispiel: "112" = 112 g. • Feld "28" (Fortsetzungskennzeichen) Dieses Feld gibt bei Fortsetzungswerken die Art des Werkes an: 1 = Loseblatt, 2 = Strenge Pflicht • Feld "29" (Titelgruppe) Dreistellige Titelgruppe der Barsortimente KNV. Die letzte Stelle gibt an, ob der Titel ein Taschenbuch ist ("1") oder ein Hardcover (sonstige). • Feld "31" (Reihennummer) Das Feld wurde ffu. auf 5 Stellen aufgebohrt, enthält aber nach wie vor die dreistellige Datakap-Reihennummer, z.B. 100 für dtv Taschenbücher. Die Reihe wird dann vorgenullt, sieht also so aus: 00100 • Feld "32" (Bandnummer) Das Feld kann bis zu 25 Stellen lang sein und maximal 10-mal vorkommen. Es enthält aus allen möglichen Bandnummernfeldern den numerischen Teil als zusätzlichen Suchbegriff. Die ursprünglichen Felder enthalten die Bandnummer als Text, z. B. "Heft 1". Daraus wird die "1" hier als numerischer Suchbegriff abgestellt. Eine zusätzliche *32 wird aus folgenden Kategorien gebildet: Normale Bandnummer (*16), 1. und 2. Bestellnummer (*14), Teilband (*07), Abteilung (*04) und alle drei Bandnummern von Verwiesenen Reihen (*12). Sollte eine Bandnummer aus mehreren Teile zusammengesetzt sein, z.B. "Bd.1/2-4", so werden aus allen Teilen *32 erzeugt: "1", "2", "24". Natürlich nur solange, bis die maximale Anzahl von 10 erreicht ist. • Feld "33" (MwSt-Kennzeichen) Art der Mehrwertsteuer, 1 = halbe MwSt., 2 = volle MwSt. • Feld "34" (Kennzeichen "Freier Preis") Dieses Feld kennzeichnet, ob für das Buch Preisbindung besteht. "0" = gebundener Ladenpreis, “1” = empfohlener Ladenpreis, "2" = freier Preis. • Feld "35" (Preisart) KNV-Preisart (" " = Normalpreis, "2" = Mengenpreis, "3" = Abo-/Fortsetzungspreis, "4" = gemischte Staffel). • Feld "36" (Sortimenterrabatt) Rabatt, den der Sortimenter auf den Ladenpreis erhält (numerisch). Beispiel: "33.3". Maximal 2 Vorkomma- und 1 Nachkommastelle, getrennt durch einen Punkt. Es gelten außerdem analog die Aussagen zu Feld "21" - Ladenpreis. • Feld "38" (Subskriptionspreis in DEM) Subskriptionspreis zum Subskriptionsdatum Feld "37" (numerisch): Inhalt siehe Feld "21"(Ladenpreis) • Feld "39" (Subskriptionsrabatt) Rabatt, der auf den Preis aus Feld "38" gewährt wird. Maximal 2 Vorkomma- und 1 Nachkommastelle, getrennt durch einen Punkt. Es gelten außerdem analog die Aussagen zu Feld "21" Ladenpreis. • Feld "40" (Staffelmenge) Staffelmenge bei Preisart " " oder "4". Seite 107 • Feld "41" (Staffelrabatt) Rabatt, der bei Preisart " " oder "4" auf Laden-, Vorbestell- bzw. Subskriptionspreis gewährt wird. Maximal 2 Vorkomma- und 1 Nachkommastelle, getrennt durch einen Punkt. Es gelten außerdem analog die Aussagen zu Feld "21" - Ladenpreis. • Feld "42" (BS-Kurztitel) Kurztitel der Barsortimente KNV. • Feld "43" (Verlagsverkehrsnummer) Gültig ab Juli 2000: Verkehrsnummer des Verlages (numerisch, sieben Stellen) • Feld "44" (Auslieferungsnummer) Gültig ab Juli 2000: Verkehrsnummer der Auslieferung (numerisch, sieben Stellen) • Feld "45" (Ladenpreis für Ausländische Währungen) Das Feld besteht aus einem 1-stelligen Währungskennzeichen ("C" = Schweizer Franken, "A" = Österreichische Schillinge) und dem Ladenpreis (numerisch) in der entsprechenden Währung. Der Preis hat maximal 7 Vorkomma und 2 Nachkommastellen, die durch einen Punkt getrennt sind. Weitere Einzelheiten zum Inhalt siehe Feld "21" - Ladenpreis. • Feld "46" (Vorbestellpreis für Ausländische Währungen) Das Feld besteht aus einem 1-stelligen Währungskennzeichen ("C" = Schweizer Franken, "A" = Österreichische Schillinge) und dem Vorbestellpreis (numerisch) in der entsprechenden Währung, z. B. "A945" 945 Österreichische Schillinge. Der Preis hat maximal 7 Vorkomma und 2 Nachkommastellen, die durch einen Punkt getrennt sind. Weitere Einzelheiten zum Inhalt siehe Feld "21" - Ladenpreis. • Feld "47" (Subskriptionspreis für Ausländische Währungen) Das Feld besteht aus einem 1-stelligen Währungskennzeichen ("C" = Schweizer Franken, "A" = Österreichische Schillinge) und dem Subskriptionspreis (numerisch) in der entsprechenden Währung. Der Preis hat maximal 7 Vorkomma und 2 Nachkommastellen, die durch einen Punkt getrennt sind. Weitere Einzelheiten zum Inhalt siehe Feld "21" - Ladenpreis. • Feld "50" (Indexeintrag Verlage) Registereintrag für Verlage, enthält den Verlag in Groß-/ Kleinschreibung (Displayform). Es wird keine Sortform mehr mitgeliefert! Der Verlag wird zudem noch permutiert, d.h. wenn der Name aus mehreren Worten besteht, wird jedes Wort einmal an den Anfang gestellt: "Gräfe u. Unzer, M." wird auch als "Unzer, M. # Gräfe u." mitgegeben. Das Nummernzeichen zeigt an, wo der Eintrag eigentlich beginnt. • Feld "51" (Indexeintrag Autoren) Registereintrag für Autoren. Enthält nur noch 30 Stellen in Groß-/ Kleinschreibung (Displayform), keine Sortform mehr. • Feld "52" (Indexeintrag Stichwörter) Registereintrag für Stichwörter: 40 Bytes in Groß-/Kleinschreibung (Displayform), keine Sortform mehr. Im alten Format finden sich hier nicht nur die Stichwörter zu allen Titeln, sondern auch Bestellnummern. Diese sind in diesem Format als numerische *32-Kategorien vorhanden und werden nicht mehr als *52 mitgegeben. • Feld "53" (Indexeintrag Schlagwörter) Registereintrag für Schlagwörter: 80 Stellen Klarschrift (Displayform), keine Sortform mehr Anmerkung zu den Indexeinträgen: Die Indexeinträge dienen als Suchkriterien in einer Bibliographier-Datenbank. Sie bestehen nur aus Displayformen, die Sortformen werden vom Zielsystem selbst erstellt. Seite 108 • Feld "61" (Freier Text Nr. 1) Erster freier Text eines Dokuments. • Feld "62" (Freier Text Nr. 2) Zweiter freier Text eines Dokuments. • Feld "63" (Freier Text Nr. 3) Dritter freier Text eines Dokuments. • Feld "64" (Freier Text Nr. 4) Vierter freier Text eines Dokuments. • Feld "65" (Freier Text Nr. 5) Fünfter freier Text eines Dokuments. • Feld "66" (Erscheinungsjahr) Enthält das Jahr, in dem das Buch erstmalig erschien. Rein numerisch. • Feld "67" (Index Reihen-Bandnummer) Das Feld enthält das zusammengesetzte Feld aus der 5-stelligen Reihen- und der 5-stelligen Bandnummer. Es dient als 10-stelliges numerisches Feld für Index-Zugriffe. • Feld "68" (Allgemeines Selektionsmerkmal) Enthält die Titelart. Die Titelart steht zusätzlich in Kategorie 90, dort korrekt 2 Stellen lang. • Feld "70" (Verlagsschlüssel) Das 11-stellige alphanumerische Feld enthält die Verlagsschlüssel. Es existiert nur in Datenträgern der Erstausstattung, nicht aber im Änderungsdienst (weder NEUK noch AENK). • Feld "90" (Klassif.-Titelart) Das maximal 2-stellige alphanumerische Feld enthält die Klassifikation Titelart. • Feld "91" (Klassif.-Haupt-/Untergruppe) Das 7-stellige alphanumerische Feld enthält die Klassifikation Haupt-/Untergruppe in der Form nnn/nnn • Feld "92" (Klassif.-Zeit-Schlüssel) Das 10-stellige alphanumerische Feld enthält die Klassifikation Zeit-Schlüssel. • Feld "93" (Klassif.-Länder-Schlüssel) Das 3-stellige alphanumerische Feld enthält die Klassifikation Länder-Schlüssel. • Feld "94" (Klassif.-Sprach-Schlüssel) Das 2-stellige alphanumerische Feld enthält die Klassifikation Sprach-Schlüssel. • Feld "95" (EAN/ISBN13) Das 13-stellige numerische Feld enthält die EAN, bzw. die ISBN13. • Feld "96" (Maßstab) Der Maßstab steht als freies Textfeld in *14. Die numerischen Werte aus diesem Textfeld werden als Suchbegriffe extra hier in *96 übergeben. Wenn z.B. im Textfeld steht: "Maßst. 1 : 20 000, mit Bushaltestellen.", dann steht in *96 nur der Wert 20000. Es gibt fünf mögliche *96, da es Bücher mit Karten in verschiedenen Maßstäben gibt (Atlas mit Stadt-, Länderkarten etc.) • Feld "97" (Altersangabe) In dem 4-stelligen Feld ist eine Altersangabe in Jahren von / bis je 2-stellig möglich. Seite 109 • Feld "98" (Warengruppe neu) In dem 5-stelligen Feld ist die neue Warengruppe enthalten. Diese setzt sich aus dem 1-stelligen Index, der eigentlichen 3-stelligen Warengruppe und der Stelle zur freien Belegung zusammen. Sie wird allerdings in der Länge 10 übergeben, die letzten 5 Stellen sind ffu und enthalten Blanks !!. • Feld "99" (Exemplarzahl) Exemplarzahl bei einheitlicher Bündelung. Das bedeutet, der Gesamtpreis geteilt durch diese Zahl ergibt den tatsächlichen Ladenpreis. Es gibt auch gemischte Bündelungen, bei denen Titel mit unterschiedlichen Preisen enthalten sind. In diesem Fall ist dieses Feld nicht gefüllt, da eine Division des Gesamtpreises keinen Sinn machen würde. Es ist auch dann nicht gefüllt, wenn es sich um eine einheitliche Bündelung handelt, im Gesamtpreis aber schon ein Nachlass enthalten ist. Auch dann ergäbe die Division einen falschen Wert. • Feld "A0" (Tagesdatum) Dieses Feld enthält bei Einzelzugängen das Erstellungsdatum in der Form JJJJMMTT, beim Komplettbestand eine laufende Nummer des Satzes. • Feld "A3" (Erscheinungstermin) Dieses Feld enthält einen sechsstelligen Erscheinungstermin, der sich auf eine Neuerscheinung bzw. Neuauflage bezieht und folgendermaßen verschlüsselt ist: - Die letzten 4 Stellen enthalten das Jahr - Wenn die ersten zwei Stellen numerisch sind, enthalten sie den Monat ("01" - "12") - Wenn die erste Stelle ein Schrägstrich ("/") ist, enthält die zweite das Quartal (1, 2, 3, 4) - Wenn die ersten beiden Stellen nicht numerisch sind, enthalten sie die Jahreszeit (Fr, So, He, Wi) - Wenn die ersten drei Stellen den Text "UNB" enthalten, ist der Erscheinungstermin noch unbekannt. In dem Fall enthalten die letzten drei Stellen Blank. Dieses Feld sollte nicht mehr benutzt werden. Es wird ersetzt durch das genauere Feld „AC“ (TagesgenauerErscheinungstermin) (s.u.) und wird nur noch wegen der Kompatibilität zu älteren Version geführt. • Feld "A4" (Vorbestelldatum) Vorbestelldatum im Format JJJJMMTT (numerisch). Der Wert "99999999" bedeutet, dass der Vorbestellpreis nicht terminiert ist. • Feld "A5" (Subskriptionsdatum) Bei Preisart " " und "4" enthält dieses Feld ein Subskriptionsdatum in der Form JJJJMMTT (numerisch). Der Wert "99999999" kennzeichnet eine unbefristete Subskription. Werte bis 1000 enthalten eine Subskriptionsmenge. • Feld "A6" (Ladenpreis EURO-D) EURO-Ladenpreis für Deutschland. Im Gegensatz zum normalen Ladenpreis gibt es hier 7 statt 5 Vorkommastellen. Sie werden von den maximal 2 Nachkommastellen mit Punkt getrennt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" • Feld "A7" (Ladenpreis EURO-A) EURO-Ladenpreis für Österreich. Maximal 7 Vorkomma- und 2 Nachkomma-Stellen, getrennt durch Punkt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" • Feld "A8" (Vorbestellpreis EURO-D) EURO-Vorbestellpreis für Deutschland. Maximal 7 Vorkomma- und 2 Nachkomma-Stellen, getrennt durch Punkt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" Seite 110 • Feld "A9" (Vorbestellpreis EURO-A) EURO-Vorbestellpreis für Österreich. Maximal 7 Vorkomma- und 2 Nachkomma-Stellen, getrennt durch Punkt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" • Feld "AA" (NeueAuflageGtin) Dieses Feld beinhaltet die GTIN (i.d.R. ISBN13/EAN) der nächsten Auflage des Titels • Feld "AB" (VorherigeAuflageGtin) Dieses Feld beinhaltet die GTIN (i.d.R. ISBN13/EAN) der vorherigen Auflage des Titels • Feld "AC" (TagesgenauerErscheinungstermin) Tagesgenauer Erscheinungstermin im Format JJJJMMTT. Es ersetzt das Feld "A3" (Erscheinungstermin). • Feld "AN" (NeueAuflage) Dieses Feld beinhaltet die Titelnummer der nächsten Auflage des Titels • Feld "AV" (VorherigeAuflage) Dieses Feld beinhaltet die Titelnummer der vorherigen Auflage des Titels • Feld "B0" (Subskriptionspreis EURO-D) EURO-Subskriptionspreis für Deutschland. Maximal 7 Vorkomma- und 2 Nachkomma-Stellen, getrennt durch Punkt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" • Feld "B1" (Subskriptionspreis EURO-A) EURO-Subskriptionspreis für Österreich. Maximal 7 Vorkomma- und 2 Nachkomma-Stellen, getrennt durch Punkt. Zum Inhalt siehe Beschreibung bei Feld "21 - Ladenpreis" • Feld "B2" (Titelnummer 8-stellig) BS-Titelnummer (KNV-Titel) 8-stellig mit gegebenenfalls führenden Nullen. Wenn zweimal das Feld Titelnummer B2 angegeben wird, so liegt hier ein Überbrücker vor. Die erste Titelnummer ist die neue, die zweite Titelnummer die alte. • Feld "B5" (Dokumentnummer vollständig 13-stellig Vollständige Dokumentnummer des Satzes. (Im Gegensatz zum Feld A1 wo nur die verkürzte 11-stellige Darstellung enthalten ist) • Feld "B6" (Dokumentnummer Kopf vollständig 13-stellig Bei Bänden enthält dieses Feld die vollständige Dokumentnummer des dazugehörigen Kopfes. (Im Gegensatz zum Feld A2 wo nur die verkürzte 11-stellige Darstellung enthalten ist) • Feld "C0" (eBook: ISBN/EAN der Printausgabe Dieses Feld enthält bei einem eBook die ISBN oder EAN der zugehörigen Print-Ausgabe, falls diese existiert. • Feld "C1" (eBook: Dateigröße) Dieses Feld enthält bei einem eBook die Größe der Download-Datei. • Feld "C2" (eBook: Dateiformat) Dieses Feld enthält bei einem eBook das Format der Download-Datei. • Feld "C3" (eBook: Typ) Dieses Feld enthält bei einem eBook den Typ der Download-Datei. • Feld "C4" (eBook: Rechte) Dieses Feld enthält bei einem eBook die Kennzeichnung für das „Digital Rights ment“ (DRM). Folgende Werte sind möglich: Seite 111 - „00“ : kein DRM - „01“ : Adobe DRM (benötigt Adobe Digital Editions) - „02“ : Digitales Wasserzeichen - „03“ : Adobe DRM (benötigt Adobe Digital Editions) • Feld "C5" (eBook: Nutzungsbedingungen) Dieses Feld enthält bei einem eBook die Kennzeichnung für die Nutzungsbedingungen. • Feld "C6" (eBook: Nutzungseinschränkungen) Dieses Feld enthält bei einem eBook die Kennzeichnung für die Nutzungseinschränkungen. • Feld "C7" (NotForSale) Liste von Länderkennzeichen. In diesen Ländern darf dieser Titel nicht verkauft werden • Feld "C8" (ForSale) Liste von Länderkennzeichen. In diesen Ländern darf dieser Titel verkauft werden • Feld "CK" (GrundPreisEurA) Grundmengenpreis in Euro für österreichische Mandanten, der Preis wird mit 3 Nachkommastellen angegeben • Feld "CL" (GrundPreisEurD) Grundmengenpreis in Euro für deutsche Mandanten, der Preis wird mit 3 Nachkommastellen angegeben • Feld "CM" (GrundPreisCHF) Grundmengenpreis für Schweizer Mandanten, der Preis wird mit 3 Nachkommastellen angegeben • Feld "CN" (PreisGrundmenge) Die „Grundmenge“ für die der Grundmengenpreis (entsprechend dem Land D,A,CH) des Mandanten gilt. • Feld "CO" (PreisGesamtmenge) Die tatsächliche Menge die der Artikel enthält so dass draus mit Hilfe der Grundmenge und des Grundmengenpreises der tatsächliche Anzeigepreis errechnet werden kann. • Feld "CP" (MasseinheitGrundPreis) Maßeinheit für die Mengenangaben in den Feldern „CN“ und „CO“ • Feld "D0" (Sortimentskennzeichen) Zweistelliges Sortimentskennzeichen („AB“ = Nonbook, „AC“ = Hörbuch, „AD“ = Film, „AE“ = Software, „AG“ = ePublikation, „AI“ = Kalender, „AJ“ = Landkarte/Globus, „AM“ = Papeterie/PBS, „AF“ = Tonträger, „AK“ = Musik, „AL“ = Noten, „AH“ = Games, „AN“ = Spiel, „AO“ = Spielzeug, „HC“ = Hardcover, „TB“ = Taschenbuch, „SB“ = Schulbuch) • Felder "DA“ – „DF“ (VerwieseneReihe1 – VerwieseneReihe6) Bis zu sechs verwiesene Reihen • Felder "DG“ – „DL“ (BandnrVerwieseneReihe1 – BandnrVerwieseneReihe6) Bandnummern zu den verwiesenen Reihen (Felder „DA“ – „DF“) • Feld "E1" (LieferzeitVon) Minimale Lieferzeit bei Besorgungstiteln Seite 112 • Feld "E2" (LieferzeitBis) Maximale Lieferzeit bei Besorgungstiteln • Feld "EZ" (Warennummer) Zolltarifnummer des Titels • Feld "F0" (Ursprungsland) Ursprungsland des Titels • Feld "F8" (Breite) Breite des Titels in mm • Feld "F9" (Hoehe) Höhe des Titels in mm • Feld "FA" (Tiefe) Tiefe des Titels in mm • Feld "M1" (MultimediaInformationen) Dieses Feld enthält ein Flag, dass es zu diesem Titel noch Daten in der Multimediadatenbank gibt. Diese Daten können entweder mit der extra Funktion „GetMultimediaData“ oder mit einem dynamischen Leseformat gelesen werden Feld "M2" (MMUrl) Dieses Feld enthält einen Link auf ein Multimediaobjekt. • Feld "M3" (MMDatenbank) Dieses Feld enthält den Verweis zu welcher Datenbank das Objekt gehört. • Feld "M4" (MMTyp) Dieses Feld enthält den Typ des Objektes. Die gebräuchlichsten Werte sind HBILD : Coverbild IBILD: Innenabbildung Eine vollständige Liste finden Sie in Kapitel • Feld "M5" (MMVariante) Dieses Feld enthält die Größenvariante des Objektes. Der Standardwert ist „normal“, darüber hinaus gibt es noch die Größen „mini“, „zoom“ und „pcbis“ • Feld "M6" (MMRang) Bei gleichartigen Objekten liefert dieses Feld eine interne Nummer für die Unterscheidung. Der Rang liegt zwischen 01 und 99 Hinweis: Die Felder M2-M6 können sich wiederholen, wenn es mehrere Multimediaobjekte gibt. Jeweils eine Gruppe aufeinanderfolgender Felder M2 bis M6 gehören dann immer zusammen. • Feld "SR" (Titelkategorisierung 3-stellig) KNV-Titelkategorisierung, Werte „001“ bis „006“. Entspricht der Gängigkeit des Titels. 4.1.4 Beispiele NEUK*00000987*01980220309*03E*06Chirurgie der hinteren Schädelgrube*11 Hrsg. v. Lanksch*131998. 350 S. 24 cm*661998*15FR8*163887564960*17EINH ORN-PRESSE VERL., R.*181*182*184*197431910*20Geb*21128*22105*23980630*2433*2621*29000*30133 00*331*340*35 *3633*42Chirurgie der hinteren Schädelgrube*4311693*45A934*46A767*9000*9401*9816940 *A000000987*A119980220309*A3FR1998*A419980630*50Einhorn-Presse Verl., R. *50Presse Verl., R. # Einhorn *50Verl., R. # Einhorn-Presse *51Lanksch Seite 113 *52Chirurgie *52Schädelgrube *52der *52hinteren *53Kopfchirurgie *70388756 *68 00 NEUK*00006462*01980050002*02280810084*03B*05Bd.721*06Wer ist wer in der Bibel?*10Personenlexikon zum Buch der Bücher*131996*661996*163417207215*181*182*184*185*186*197385872*20Kt*2124.9 *27334*29001*3031200*3100160*670016000721*3200721*32721*331*340*35 *3630*37000520*37990510*3820*3823.9*3930*3931*405*4010*4015*4127*4128*412 9*42Brockh.TB.0721 Wer ist wer in d.Bibel?*4310811*45A182*45C24.9*47A146*47A174*47C20.9*47C23.9*9017*9401*9 825420 *A000006462*A119980050002*A219280810084*A520000520*A519990510*50Brockhaus , Haan *52Bibel *52Buch *52Bücher *52Personenlexikon *52Wer *52Taschenbücher *52Brockhaus *53Biblische Gestalten *53Bibel; Lexika/Nachschlagewerke *703417 *68 17*61"Wer ist wer in der Bibel?" bietet umfassende Informationen zu allenPersonen der Bibel, nennt den geschichtlichen Zusammenhang, in dem sie auftreten und beschreibt ihre Taten und Aussagen. Ein Suchergebnis, bei dem der erste Satz im Format „NEUKLangText“ gelesen wurde. Der eigentliche Inhalt des Datensatzes befindet sich im Antwortfeld <ArtikelDaten>…………..</ArtikelDaten> <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Suchergebnis> <Handle>KNVANFRAGE</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>562</Treffer> </Ergebnis> <TrefferGesamt>562</TrefferGesamt> <AusgefuehrteSuche>FIND (((TI="Potter")))</AusgefuehrteSuche> </Suchergebnis> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> <Format>NEUK</Format> <ArtikelDaten>NEUK*00130606*03E*06LEGO Harry Potter, Lexikon der Minifiguren, m. Minifigur*10Alle Figuren, Zauberwesen und mehr!*132012. 144 S. über 500 farbige Abbildungen 235 mm*14von 6-99 J.*163831021821*17DORLING KINDERSLEY*181*182*184*185*20GEB*2116.95*2621*29000*331*340*3635*42LEGO Harry Potter, Lexikon der Minifigu*4315897*4416884*45C24.5*50Dorling Kindersley *50Kindersley # Dorling *52LEGO *52Harry *52Potter *52Lexikon *52der *52Minifiguren *52m *52Minifigur *52Alle *52Figuren *52Zauberwesen *52und *52mehr *53LEGO-Figuren *61§06§<span class="TextSchwarz">ACHTUNG! Für Kinder unter 3 Jahren nicht geeignet. <br>Erstickungsgefahr durch verschluckbare Klein- Seite 114 teile.</span>§15§<span class="TextSchwarz">LEGO(R) Harry Potter(TM) Fans und Sammler aufgepasst!<br>Die LEGO(R) Harry Potter(TM) Minifigur in einem eleganten roten Hemd ist nur in diesem Buch erhältlich! Doch das LEGO(R) Harry Potter(TM) Lexikon der Minifiguren bietet noch viel mehr: Von Harry selbst, über Luna Lovegood bis Dobby werden über 200 Minifiguren mit überlebensgroßen Fotos, Details und allen wichtigen Infos vorgestellt. Jeder Charakter des LEGO(R) Harry Potter(TM) Universums wird auf einer vollen Seite gezeigt. Außerdem gibt es viele Figuren in mehreren Varianten, die alle im Lexikon vorkommen - besonders interessant sind die seltenen, limitierten oder ungewöhnlichen Varianten der Minifiguren. Die wichtigsten Infos zu jedem Charakter im Universum des kleinen Zauberers werden in einer "Datenbank" präsentiert: Fans erfahren hier spannende Fakten wie die Namen des LEGO Sets, in dem die Minifigur erschienen ist, Erscheinungsjahr, Zubehörteile und Anzahl der Varianten.<br>Ein absolut unverzichtbares Nachschlagewerk für alle LEGO(R) Harry Potter(TM) Fans! <br>Ab 6 Jahren.</span>*662012*68 17*68 25*68 53*7038310 *9017*9025*9053*9401*959783831021826*970699*9812950 *A020130606*A3092012*A616.95*A717.5*B233399028*SR005*M1M*M2http://multime dia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=ibild&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=normal&rang=01*M3KNV*M4IBILD*M5n ormal*M601*M2http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=ibild&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=normal&rang=02*M3KNV*M4IBILD*M5n ormal*M602*M2http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=mini&rang=01*M3KNV*M4HBILD*M5min i*M601*M2http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=normal&rang=01*M3KNV*M4HBILD*M5n ormal*M601*M2http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=zoom&rang=01*M3KNV*M4HBILD*M5zoo m*M601*M2http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJHOMCEJPA&variante=pcbis&rang=01*M3KNV*M4HBILD*M5pc bis*M601*B52012050700841</ArtikelDaten> </Record> </Datensaetze> </Daten> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 115 4.2 KNVXML-Format 4.2.1 Formatbeschreibung Im KNVXML-Format werden die Titelsätze im XML-Format zurückgegeben. Zu jedem Titel gibt es ein Struktur-Tag „Titel“ mit einem Attribut „DB“, das den Namen der Datenbank enthält, aus der der Titel stammt. Diese Struktur hat die Unterfelder „Einzelwerk“, „Kopf“ und „Band“. Gehört der Titel zu einer Reihe, so wird zuerst ein „Kopf“ und dann ein „Band“ ausgegeben, ansonsten ist nur „Einzelwerk“ belegt. Die Unterfelder von „Einzelwerk“, „Kopf“ oder „Band“ entsprechen inhaltlich dem NEUK*Format. Im Unterschied hierzu werden die einzelnen Felder jedoch in XML-Tags aufgeteilt und ausgegeben. Die *-Feldnummer des NEUK-Formats wird dabei als Attribut „ID“ angegeben. Inhaltlich vgl. Feldbeschreibung zu NEUK. Tagname Attribut (entspricht Enthalten in …Kurz …Lang …LangText NEUK-Feldnr.) Typknz 03 - √ √ Abt 04 - √ √ Bdnrtext 05 - √ √ AutorSachtitel 06 - √ √ Buendl 07 - √ √ Titel 08 - √ √ Tlband 09 - √ √ Utitel 10 - √ √ Mitarb 11 - √ √ Sammlg 12 - √ √ Abb 13 - √ √ SonstTxt 14 - √ √ Verlag 17 √ √ √ Sigel 18 - √ √ Einband 20 - √ √ Ldpreis 21 - √ √ Vbstpreis 22 - √ √ Vbstrabatt 24 - √ √ Zustext 25 - √ √ Mnr 26 √ √ √ Gewicht 27 - √ √ Fortsetz 28 - √ √ TG 29 - √ √ Reihennr 31 - √ √ Bdnr 32 - √ √ Seite 116 Tagname Attribut (entspricht Enthalten in …Kurz …Lang …LangText NEUK-Feldnr.) Mwstknz 33 - √ √ FPrKnz 34 √ √ √ Preisart 35 - √ √ Sortrabatt 36 - √ √ Subspreis 38 - √ √ Subsrabatt 39 - √ √ Stflmenge 40 - √ √ Stflrabatt 41 - √ √ Kurztitel 42 √ √ √ VlgVknr 43 - √ √ AuslNr 44 - √ √ AuslLdpreis 45C - √ √ AuslVbstpreis 46 - √ √ AuslSubspreis 47 - √ √ IndexVerlag 50 - √ √ IndexAutor 51 - √ √ IndexStichw 52 - √ √ IndexSchlagw 53 - √ √ Text1 61 - - √ Text2 62 - - √ Text3 63 - - √ Text4 64 - - √ Text5 65 - - √ Erschjahr 66 √ √ √ IndexRBNr 67 - √ √ Titelart 68 - √ √ Vlgsnr 70 √ √ √ KlassTitelart 90 - √ √ KlassGruppe 91 - √ √ Zeitschl 92 - √ √ Laenderschl 93 - √ √ Sprachschl 94 - √ √ EAN 95 √ √ √ Massstab 96 - √ √ Seite 117 Tagname Attribut (entspricht Enthalten in …Kurz …Lang …LangText NEUK-Feldnr.) Alter 97 - √ √ WG 98 √ √ √ BuendlNum 99 - √ √ Datum A0 - √ √ Erschtermin A3 - √ √ Vorbstdatum A4 - √ √ Subsdatum A5 - √ √ PreisEurD A6 √ √ √ PreisEurA A7 √ √ √ VorbstpreisEurD A8 - √ √ VorbstpreisEurA A9 - √ √ NeueAuflageGtin AA - √ √ VorherigeAuflageGtin AB - √ √ TagesgenauerErscheinungstermin AC - √ √ NeueAuflage AN - √ √ VorherigeAuflage AV - √ √ SubsPreisEurD B0 - √ √ SubsPreisEurA B1 - √ √ Titelnr B2 √ √ √ Doknr13 B5 √ √ √ Doknr13Kopf B6 - √ √ PrintISBN C0 - √ √ DateiGroesse C1 - √ √ DateiFormat C2 - √ √ ebookTyp C3 - √ √ DRMFlags C4 - √ √ Nutzungsbedingungen C5 - √ √ Nutzungseinschraenkungen C6 - √ √ NotForSale C7 - √ √ ForSale C8 - √ √ GrundPreisEurA CK - √ √ GrundPreisEurD CL - √ √ GrundPreisCHF CM - √ √ PreisGrundmenge CN - √ √ Seite 118 Tagname Attribut (entspricht Enthalten in …Kurz …Lang …LangText NEUK-Feldnr.) PreisGesamtmenge CO - √ √ MasseinheitGrundPreis CP - √ √ Sortimentskennzeichen D0 - √ √ VerwieseneReihe1 DA - √ √ VerwieseneReihe2 DB - √ √ VerwieseneReihe3 DC - √ √ VerwieseneReihe4 DD - √ √ VerwieseneReihe5 DE - √ √ VerwieseneReihe6 DF - √ √ BandnrVerwieseneReihe1 DG - √ √ BandnrVerwieseneReihe2 DH - √ √ BandnrVerwieseneReihe3 DI - √ √ BandnrVerwieseneReihe4 DJ - √ √ BandnrVerwieseneReihe5 DK - √ √ BandnrVerwieseneReihe6 DL - √ √ Lieferfrist von E1 - √ √ Lieferfrist bis E2 - √ √ Warennummer EZ - √ √ Ursprungsland F0 - √ √ Breite F8 - √ √ Hoehe F9 - √ √ Tiefe FA - √ √ MultimediaInfo M1 √ √ √ MMUrl M2 - √ √ MMDatenbank M3 - √ √ MMTyp M4 - √ √ MMVariante M5 - √ √ MMRang M6 - √ √ Titelkategorisierung SR √ √ √ Hinweise: • Die Felder 16 (ISBN-10-stellig) sowie A1 und A1 (alte 11-stellige Dokumentnummern) werden im WebService ab der Version 2.0 nicht mehr geliefert. Seite 119 • 4.2.2 Die Felder M2-M6 können sich wiederholen, wenn es mehrere Multimediaobjekte gibt. Eine Gruppe zusammengehörender Felder ist dann immer unter einem XMLTag „MULTIMEDIA“ zusammengefasst. Beispiel Die gleiche Leseantwort wie oben, aber das Format KNVXMLLangText anstelle von NEUKLangText. Der eigentliche Inhalt des Datensatzes befindet sich im Antwortfeld <ArtikelDaten><![CDATA[………]]></ArtikelDaten> <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> <SessionID>KNVWS1@[email protected]@de</SessionID> <WSVersion>2.0.0.4.8.0</WSVersion> <Suchergebnis> <Handle>KNVANFRAGE</Handle> <Ergebnis> <DB>KNV</DB> <Treffer>562</Treffer> </Ergebnis> <TrefferGesamt>562</TrefferGesamt> <AusgefuehrteSuche>FIND (((TI="Potter")))</AusgefuehrteSuche> </Suchergebnis> <Daten> <Handle>KNVANFRAGE</Handle> <SatzVon>1</SatzVon> <SatzBis>1</SatzBis> <WeitereVorhanden>true</WeitereVorhanden> <Datensaetze> <Record index="1"> <Datenbank>KNV</Datenbank> <Format>KNVXML</Format> <DatensatzNummer>3600</DatensatzNummer> <ArtikelDaten><![CDATA[<TITEL index="1" DB="KNV"> <EINZELWERK> <Typknz ID="03">E</Typknz> <AutorSachtitel ID="06">LEGO Harry Potter, Lexikon der Minifiguren, m. Minifigur</AutorSachtitel> <Utitel ID="10">Alle Figuren, Zauberwesen und mehr!</Utitel> <Abb ID="13">2012. 144 S. über 500 farbige Abbildungen 235 mm</Abb> <SonstTxt ID="14">von 6-99 J.</SonstTxt> <ISBN ID="16">3831021821</ISBN> <Verlag ID="17">DORLING KINDERSLEY</Verlag> <Sigel ID="18">1</Sigel> <Sigel ID="18">2</Sigel> <Sigel ID="18">4</Sigel> <Sigel ID="18">5</Sigel> <Einband ID="20">GEB</Einband> <Ldpreis ID="21">16.95</Ldpreis> <Mnr ID="26">21</Mnr> <TG ID="29">000</TG> <Mwstknz ID="33">1</Mwstknz> <FPrKnz ID="34">0</FPrKnz> <Sortrabatt ID="36">35</Sortrabatt> <Kurztitel ID="42">LEGO Harry Potter, Lexikon der Minifigu</Kurztitel> <VlgVknr ID="43">15897</VlgVknr> <AuslNr ID="44">16884</AuslNr> <AuslLdpreis ID="45">C24.5</AuslLdpreis> Seite 120 <IndexVerlag ID="50">Dorling Kindersley </IndexVerlag> <IndexVerlag ID="50">Kindersley # Dorling </IndexVerlag> <IndexStichw ID="52">LEGO </IndexStichw> <IndexStichw ID="52">Harry </IndexStichw> <IndexStichw ID="52">Potter </IndexStichw> <IndexStichw ID="52">Lexikon </IndexStichw> <IndexStichw ID="52">der </IndexStichw> <IndexStichw ID="52">Minifiguren </IndexStichw> <IndexStichw ID="52">m </IndexStichw> <IndexStichw ID="52">Minifigur </IndexStichw> <IndexStichw ID="52">Alle </IndexStichw> <IndexStichw ID="52">Figuren </IndexStichw> <IndexStichw ID="52">Zauberwesen </IndexStichw> <IndexStichw ID="52">und </IndexStichw> <IndexStichw ID="52">mehr </IndexStichw> <IndexSchlagw ID="53">LEGO-Figuren </IndexSchlagw> <Text1 ID="61">º06º<span class="TextSchwarz">ACHTUNG! Für Kinder unter 3 Jahren nicht geeignet. <br>Erstickungsgefahr durch verschluckbare Kleinteile.</span>º15º<span class="TextSchwarz">LEGO(R) Harry Potter(TM) Fans und Sammler aufgepasst!<br>Die LEGO(R) Harry Potter(TM) Minifigur in einem eleganten roten Hemd ist nur in diesem Buch erhältlich! Doch das LEGO(R) Harry Potter(TM) Lexikon der Minifiguren bietet noch viel mehr: Von Harry selbst, über Luna Lovegood bis Dobby werden über 200 Minifiguren mit überlebensgroßen Fotos, Details und allen wichtigen Infos vorgestellt. Jeder Charakter des LEGO(R) Harry Potter(TM) Universums wird auf einer vollen Seite gezeigt. Außerdem gibt es viele Figuren in mehreren Varianten, die alle im Lexikon vorkommen - besonders interessant sind die seltenen, limitierten oder ungewöhnlichen Varianten der Minifiguren. Die wichtigsten Infos zu jedem Charakter im Universum des kleinen Zauberers werden in einer "Datenbank" präsentiert: Fans erfahren hier spannende Fakten wie die Namen des LEGO Sets, in dem die Minifigur erschienen ist, Erscheinungsjahr, Zubehörteile und Anzahl der Varianten.<br>Ein absolut unverzichtbares Nachschlagewerk für alle LEGO(R) Harry Potter(TM) Fans! <br>Ab 6 Jahren.</span></Text1> <Erschjahr ID="66">2012</Erschjahr> <Titelart ID="68"> 17</Titelart> <Titelart ID="68"> 25</Titelart> <Titelart ID="68"> 53</Titelart> <Vlgsnr ID="70">38310 </Vlgsnr> <KlassTitelart ID="90">17</KlassTitelart> <KlassTitelart ID="90">25</KlassTitelart> <KlassTitelart ID="90">53</KlassTitelart> <Sprachschl ID="94">01</Sprachschl> <EAN ID="95">9783831021826</EAN> <Alter ID="97">0699</Alter> <WG ID="98">12950 </WG> <Datum ID="A0">20130606</Datum> <Erschtermin ID="A3">092012</Erschtermin> Seite 121 <PreisEurD ID="A6">16.95</PreisEurD> <PreisEurA ID="A7">17.5</PreisEurA> <Titelnr ID="B2">33399028</Titelnr> <Titelkategorie ID="SR">005</Titelkategorie> <MultimediaInfo ID="M1">M</MultimediaInfo> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=ibild&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=normal&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">IBILD</MMTyp> <MMVariante ID="M5">normal</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=ibild&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=normal&rang=02</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">IBILD</MMTyp> <MMVariante ID="M5">normal</MMVariante> <MMRang ID="M6">02</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=mini&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">mini</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=normal&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">normal</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=zoom&rang=01 </MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">zoom</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> <Doknr13 ID="B5">2012050700841</Doknr13> <MULTIMEDIA> <MMUrl ID="M2">http://multimedia.knv.de/cgibin/knvmmdb.dll?herkunft=knv&MM_IDENTNR=999wsmm&typ=cover&vknr=62352&id=3 3399028&kennwort=OGEOMJINOCEJPA&variante=pcbis&rang=01</MMUrl> <MMDatenbank ID="M3">KNV</MMDatenbank> <MMTyp ID="M4">HBILD</MMTyp> <MMVariante ID="M5">pcbis</MMVariante> <MMRang ID="M6">01</MMRang> </MULTIMEDIA> </EINZELWERK> </TITEL>]]></ArtikelDaten> </Record> </Datensaetze> </Daten> Seite 122 </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Seite 123 4.3 Besonderheiten Zusatztexte Innerhalb der freien Texte (vgl. NEUK Feld 61 ff.) werden verschiedene Steuersequenzen zur inhaltlichen und optischen Gestaltung der Texte verwendet. *-Kategorie für Text, anschließend 4 Stellen: Paragraph-Texttyp-Paragraph. Bsp.: *61§06§ Kurztext dt. *61§04§ Inhaltsverz. engl. Entgegen der sonstigen Verwendung im NEUK-Format wird im Web Service nicht hex-15 als §-Zeichen verwendet, sondern das §-Zeichen der Tastatur. Texttypen: Kategorie Textart 01 Autorenportrait Deutsch 02 Autorenportrait Englisch 03 Inhaltsverzeichnis Deutsch 04 Inhaltsverzeichnis Englisch 05 Inhaltsverzeichnis Französisch 06 Kurztext Deutsch 07 Kurztext Englisch 08 Kurztext Französisch 09 Leseprobe Deutsch 10 Leseprobe Englisch 11 Leseprobe Französisch 12 Rezension Deutsch 13 Rezension Englisch 14 Rezension Französisch 15 Text (Klappentext o.ä.) Deutsch 16 Text (Klappentext o.ä.) Englisch Abbildung 7: Liste der Text-Kategorien Steuerzeichen innerhalb des Texts: Folgende Tags kommen vor: Farbwechsel: <span class="TextSchwarz">...</span> <span class="TextBlau">...</span> <span class="TextRot">..</span> Texteinzug: Seite 124 Möglich sind 1 bis 9 Also z.B. <br> Absatz: <br> Seite 125 5 Fehlerbehandlung 5.1 Fehlerkategorien Bei der Benutzung des Webservice können verschiedene Fehler auftreten. Diese können in zwei grundlegende Kategorien eingeteilt werden. 5.1.1 Syntaxfehler bei der Benutzung Dies sind Fehler beim Aufruf, die der Definition der WSDL widersprechen. Hierzu gehören: - fehlende Werte in Feldern, in denen ein Wert erwartet wird - Ungültige XML-Feldnamen - Platzierung von XML-Feldern an der falschen Position eines Aufrufes Diese Art von Fehler werden bereits vom Parser des Webservice erkannt und beantwortet, ohne dass der Request an die Anwendung weitergegeben wird. In diesem Fall wird eine SOAP-Ausnahme (Exception) erzeugt und direkt an den Client zurückgesendet. Abhängig vom SOAP-Endpoint, den Ihr Client benutzt, hat die SOAP-Exception eine unterschiedliche Struktur. 5.1.1.1 SOAP-Exception bei Verwendung des Soap11-Endpoints Wenn Sie in der WSDL das SOAP 1.1 Binding verwenden, hat die SOAP-Exception folgende Struktur: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>….</faultcode> <faultstring> …..</faultstring> <detail>….</detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> 5.1.1.2 SOAP-Exception bei Verwendung des Soap12-Endpoints Wenn sie in der WSDL das SOAP 1.2 Binding verwenden, hat die SOAP-Exception folgende Struktur: <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <soapenv:Fault> <soapenv:Code> <soapenv:Value>….</soapenv:Value> </soapenv:Code> <soapenv:Reason> <soapenv:Text xml:lang="en-US">…</soapenv:Text> </soapenv:Reason> <soapenv:Detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Seite 126 5.1.1.3 Beispiel 1: Benutzung eines unbekannten Feldes <LokinInfo> beim Aufruf liefert <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server</faultcode> <faultstring>org.apache.axis2.databinding.ADBException: Unexpected subelement LokinInfo</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Bzw. <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <soapenv:Fault> <soapenv:Code> <soapenv:Value>soapenv:Receiver</soapenv:Value> </soapenv:Code> <soapenv:Reason> <soapenv:Text xml:lang="enUS">org.apache.axis2.databinding.ADBException: Unexpected subelement LokinInfo</soapenv:Text> </soapenv:Reason> <soapenv:Detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> 5.1.1.4 Beispiel 2 Das eigentlich korrekte Feld <Suchen> befindet sich im Aufruf an einer falschen Position (z.B. nach dem Feld <Lesen> ): <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server</faultcode> <faultstring>org.apache.axis2.databinding.ADBException: Unexpected subelement Suchen</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Bzw. <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <soapenv:Fault> <soapenv:Code> <soapenv:Value>soapenv:Receiver</soapenv:Value> </soapenv:Code> <soapenv:Reason> <soapenv:Text xml:lang="enUS">org.apache.axis2.databinding.ADBException: Unexpected subelement Suchen</soapenv:Text> </soapenv:Reason> <soapenv:Detail/> </soapenv:Fault> Seite 127 </soapenv:Body> </soapenv:Envelope> Bei den restlichen Beispielen in diesem Kapitel werden immer die SOAP 1.1 – Varianten in den Beispielen verwendet. 5.1.2 Fehler in der Anwendung Hierzu gehören alle Fehlermeldungen, die von der Webservice-Anwendung selbst geliefert werden. Diese Fehler können auf verschiedenen Ebenen auftreten: • Im Webservice selbst (z.B. durch falsche Aufrufparameter). In diesem Fall ist der Inhalt eines Feldes, welches nur bestimmte Werte annehmen kann, falsch. Im alten Webservice 1.10 waren auch diese Werte in der WSDL definiert, so dass bereits vom Parser ein Syntaxfehler zurückgemeldet wurde. Im Webservice 2.0 werden diese Werte erst im Aufruf geprüft und im Fehlerfall eine verständliche Fehlermeldung generiert. • Im zugrunde liegenden Applikationsserver (Tomcat), z.B. fehlende Konfigurationsdateien • Fehler bei der Abarbeitung einer Funktion im Webservice • Im TLD-Anwendungsserver (z.B. nicht erreichbar) Auch diese Fehler werden als SOAP-Exception zurückgeliefert. Die Exception enthält im Feld <detail> weitere Informationen, die den Fehler genau beschreiben. 5.1.3 Fehler in einer Anwendungsfunktion Einige Funktionen liefern noch eigene Fehlermeldungen, die gesondert behandelt werden. • Spezielle Reponse-Codes der Funktion OLA • Spezielle Reponse-Codes der Funktion EbookBestellung Lesen sie hierzu die zugehörigen Abschnitte im folgenden Kapitel nach Seite 128 5.2 Fehlermeldung Die Fehlerstruktur enthält innerhalb des Detail-Feldes der SOAP-Exception folgende Felder, die allerdings nicht immer komplett belegt sein müssen: Soap 1.1 Soap 1.2 Beschreibung faultcode soapenv:Code Immer belegt mit „soapenv:Sender“ faultstring soapenv:Reason Klartext mit Fehlermeldung detail soapenv:Detail Detaillierte Fehlermeldung bestehend aus TLDFehler 5.2.1 Struktur Details der Fehlermeldung errcode Fehlernummer errmsg Fehlerbeschreibung (dieser Text wird immer auch als „faultstring“ ausgegeben) interrcode Interne Fehlernummer (optional) interrmsg Interner Fehlertext (optional) addinfo Zusatzinformationen (optional) errlocation Fehlerstelle (optional) Beispiel 1 Benutzer- Fehler, kein Passwort angegeben: <soapenv:Envelope> <soapenv:Body> <soapenv:Fault xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode>soapenv:Sender</faultcode> <faultstring>Fehler beim Aufruf des Login</faultstring> <detail> <TLDFehler> <errcode>19900</errcode> <errmsg>Fehler beim Aufruf des Login</errmsg> <interrcode>2</interrcode> <interrmsg>Fehlende Benutzereingaben</interrmsg> <addinfo/> <errlocation>Login</errlocation> </TLDFehler> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Bzw: <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <soapenv:Fault> <soapenv:Code> <soapenv:Value>soapenv:Sender</soapenv:Value> </soapenv:Code> <soapenv:Reason> <soapenv:Text xml:lang="en-US">Fehler beim Aufruf des Login</soapenv:Text> Seite 129 </soapenv:Reason> <soapenv:Detail> <TLDFehler> <errcode>19900</errcode> <errmsg>Fehler beim Aufruf des Login</errmsg> <interrcode>2</interrcode> <interrmsg>Fehlende Benutzereingaben</interrmsg> <addinfo/> <errlocation>Login</errlocation> </TLDFehler> </soapenv:Detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> 5.2.2 Beispiel 2 Benutzer-Fehler, bei der Suche wird als Suchart der ungültige Wert “linksungenau” angegeben: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Sender</faultcode> <faultstring>Fehler in der Definition der Suchanfrage</faultstring> <detail> <TLDFehler> <errcode>19901</errcode> <errmsg>Fehler in der Definition der Suchanfrage</errmsg> <interrcode>5</interrcode> <interrmsg>Einer der angegebenen Werte fuer 'Suchart' ist nicht erlaubt: LinksUngenau</interrmsg> <addinfo/> <errlocation>Suche</errlocation> </TLDFehler> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Bzw. <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soapenvelope"> <soapenv:Body> <soapenv:Fault> <soapenv:Code> <soapenv:Value>soapenv:Sender</soapenv:Value> </soapenv:Code> <soapenv:Reason> <soapenv:Text xml:lang="en-US">Fehler in der Definition der Suchanfrage</soapenv:Text> </soapenv:Reason> <soapenv:Detail> <TLDFehler> <errcode>19901</errcode> <errmsg>Fehler in der Definition der Suchanfrage</errmsg> <interrcode>5</interrcode> <interrmsg>Einer der angegebenen Werte fuer 'Suchart' ist nicht erlaubt: LinksUngenau</interrmsg> <addinfo/> <errlocation>Suche</errlocation> </TLDFehler> </soapenv:Detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Seite 130 5.3 Liste der Fehlercodes 5.3.1 Fehlercodes des Webservice Der Webservice erzeugt zurzeit die folgenden Fehlercodes, zur besseren Übersicht wird folgende Systematik angewendet: • 100xx Kommunikationsprobleme mit dem TLD-Anwendungsserver • 199xx Parameterfehler beim Aufruf der Webservice-Funktion • 200xx Fehler beim Aufruf der Funktion oder bei der Auswertung des Ergebnisses Wobei dann in jeder Fehlergruppe die gleiche Nummer „xx“ für die einzelnen WSFunktionen verwendet wird. Einige Fehlercodes liefern ggf. noch eine Zusatznummer • 5.3.1.1 Code 198nn sonstige Fehlermeldungen Liste der WS-Fehlercodes 100xx Beschreibung 10000 TLD-Server nicht erreichbar (Login/Logout) 10001 TLD-Server nicht erreichbar (Suche/Sortierung) 10002 TLD-Server nicht erreichbar (Lesen) 10003 TLD-Server nicht erreichbar (Register) 10004 TLD-Server nicht erreichbar (OLA) 10005 TLD-Server nicht erreichbar (Filterliste lesen) 10006 TLD-Server nicht erreichbar (Formatauswahl) 10007 TLD-Server nicht erreichbar (Multimediainfo) 10008 TLD-Server nicht erreichbar (Zusatzfunktion Multimediadaten) 10009 TLD-Server nicht erreichbar (Ebook Bestellung) 10010 TLD-Server nicht erreichbar (Suchvorschläge) 10011 TLD-Server nicht erreichbar (Zusatzfunktion Verlagsadresse lesen) 10012 TLD-Server nicht erreichbar (Zusatzfunktion API-Informationen lesen) Abbildung 8: Liste der Fehlercodes 100xx 5.3.1.2 Liste der WS-Fehlercodes 199xx Bei den Fehlermeldungen dieser Gruppe wird meist noch eine Zusatzinfo mitgeliefert Code Zusatzcode Beschreibung 19900 1 Login / Fehlende VKN 19900 2 Login / Fehlende Benutzerangaben 19901 0 Suchen / Ungültiges Element 19901 1 Suchen / Ungültiges Format für einen Preis 19901 2 Suchen / Eine Titelnummer kann nur „genau“ gesucht werden 19901 3 Suchen / KNV-Suche, Standardsuche und SuchString können nicht Seite 131 gleichzeitig benutzt werden 19901 4 Es wurde keine gültige Sprache angegeben #wert# 19901 5 Einer der angegebenen Werte für Suchart ist falsch 19901 6 Suche unvollständig, Es muss wenigstens eine Suchangabe oder ein SuchFilter angegeben werden 19901 7 Ungültiger Wert für eine Einschränkung, siehe Handbuch 19901 8 Ungültiger Wert für Sortierfeld, siehe Handbuch 19901 9 Ungültiger Wert für Sortierrichtung, siehe Handbuch 19901 10 Es wurde keine Datenbank angegeben 19901 11 Es wurde keine gültige Datenbank angegeben 19902 1 Lesen / Zu viele Records angefordert 19902 2 Lesen / Unbekanntes Format 19903 1 Register / unbekannter Datenbankname 19904 1 OLA / Fehlende Daten 19904 2 OLA / Formatangabe falsch 19904 3 OLA /Wert für Abholfach muss numerisch sein 19904 4 OLA / Wert für AbholEAN muss numerisch sein 19904 5 OLA / Warengruppe muss numerisch 2-5 Stellen haben 19904 6 Unbekannte OLA-Funktion 19909 1 Ebook-Order / Fehlende Daten 19909 2 Ebook-Order / Formatangabe falsch 19912 1 Zusatzfunktion / Fehlender Parameter Abbildung 9: Liste der Fehlercodes 199xx 5.3.1.3 Liste der WS-Fehlercodes 200xx Dieser Fehler werden geliefert wenn das Ergebnis eines WS-Aufrufes nicht verarbeitet werden kann oder nicht die erwarteten Informationen enthält. Code Zusatzcode Beschreibung 20000 1 Login fehlerhaft bzw. geliefertes XML unvollständig 20000 2 Logout fehlerhaft bzw. geliefertes XML unvollständig 20001 1 KNVSuche fehlerhaft bzw. geliefertes XML unvollständig 20001 2 Standardsuche fehlerhaft bzw. geliefertes XML unvollständig 20001 3 Sortierung fehlerhaft bzw. geliefertes XML unvollständig 20002 1 Lesen fehlerhaft bzw. geliefertes XML unvollständig 20002 2 Zusatzdaten lesen fehlerhaft bzw. geliefertes XML unvollständig 20003 Register fehlerhaft bzw. geliefertes XML unvollständig 20004 OLA fehlerhaft bzw. geliefertes XML unvollständig 20005 Filterliste lesen fehlerhaft bzw. geliefertes XML unvollständig Seite 132 20006 Formatauswahl fehlerhaft bzw. geliefertes XML unvollständig 20007 MultimediaInfo fehlerhaft bzw. geliefertes XML unvollständig 20008 Zusatzfunktion Multimediadaten fehlerhaft bzw. geliefertes XML unvollständig 20009 Ebook-Bestellung fehlerhaft bzw. geliefertes XML unvollständig 20010 Suchvorschläge fehlerhaft bzw. geliefertes XML unvollständig 20011 Zusatzfunktion Verlagsadresse lesen fehlerhaft bzw. geliefertes XML unvollständig 20012 Zusatzfunktion API-Informationen fehlerhaft bzw. geliefertes XML unvollständig Abbildung 10: Liste der Fehlercodes 200xx 5.3.1.4 Sonstige Fehlercodes 198xx Hierbei handelt es sich um Fehlermeldungen die keiner bestimmten Funktion zuzuordnen sind. Code Zusatzcode 19800 Beschreibung Webservice kann nicht gestartet werden. Diese Fehlermeldung findet sich nur im Protokoll des Anwendungsservers Tomcat, sie kann natürlich nicht durch den Webservice geliefert werden 19801 1 Weder Logindaten noch Sessionkennung angegeben. Es kann daher keine laufende Sitzung identifiziert und keine neue Sitzung gestartet werden 19801 2 Mehrdeutige Identifizierungsdaten Entweder eine SessionID oder Logininformationen angeben, jedoch nicht beides gleichzeitig 19802 Sonstige Java-Exception aufgetreten. 19803 Die SessionID ist ungültig oder falsch aufgebaut Abbildung 11: Liste der Fehlercodes 198xx 5.3.2 Fehlermeldungen der OLA In der Liste der Fehlercodes 199xx (s.o.) gibt es den Fehler 19904, der zurückgeben wird, wenn ein OLA-Request formal nicht korrekt ist (wenn z.B. ein Aufrufparameter wie die Bestellnummer fehlt). Die zusätzliche Information, um welchen Fehler es sich konkret handelt, wird in diesem Fall im Zusatzcode (<interrcode>) ausgegeben. Ist ein OLA-Request formal korrekt, wird dieser vom Webservice verarbeitet. Treten bei der Verarbeitung aber Fehler auf, werden diese in anderer Weise zurückgemeldet, als dies oben beschrieben ist. Da innerhalb eines OLA-Requests mehrere OLA-Anfragen/Bestellungen abgesetzt werden können, kann es vorkommen, dass die eine Einzelanfrage/Bestellung des Requests erfolgreich, eine andere aber fehlerhaft ist und zurückgewiesen wird. Aus diesem Grund wird in einem solchen Fall nicht die oben beschriebene Fehlermimik verwendet, die ja einen Fehler für den Gesamtrequest zurückmeldet, sondern es erfolgt eine Rückmeldung separat für jede Einzelabfrage/-bestellung. Tritt bei einer Einzelposition ein Fehler auf, wird dies innerhalb der Rückgabestruktur <OLAResponseRecord> der Einzelposition auf folgende Weise gemeldet: Seite 133 - <StatusPosition>FAILED</StatusPosition> - <Fehlernummer>190xx</Fehlernummer> - <Fehlertext>…(siehe Tabelle unten) …</Fehlertext> Folgende Fehlernummern und Fehlermeldungen des Nummernkreises 190xx können bei den OLA-Aufrufen bei Fehlern dieser Art zurückkommen: Fehlernummer Beschreibung 19003 Benutzerfehler 19004 Passwortfehler 19005 Hostfehler 19006 Falsche ACT 19007 Verkehrsnummer fehlt 19008 Bestellnummer fehlt 19009 Menge fehlt 19010 Kommunikationsfehler 19011 Antwortfehler 19012 Antwortunterbrechung 19013 Timeout 19014 Busy 19015 No carrier 19016 Beeendigungsfehler 19017 Schreibfehler 19018 OLA-Konfiguration fehlt 19031 Bei einer OLA-Anfrage darf die Menge maximal 99 betragen 19032 Fehlende Referenznummer 19033 Fehlendes Bestelldatum 19034 Menge darf bei einer Onlinebestellung maximal 30000 betragen 19040 Fehler bei der TCPIP Initialisierung 19041 Fehler beim TCPIP Connect 19050 Referenznummer konnte nicht generiert werden 19060 Keine Vormerkung gefunden 19061 Storno nicht erlaubt 19062 Abbildung 12: OLA Fehlermeldungen Beispiel: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns1:wscallResponse xmlns:ns1="http://ws.pcbis.de/"> Seite 134 <SessionID>KNVWS1@default@06366A396C3B3C3E46515B5E48784344454647496C6C714C4D4 E4F5051525354555657716D615B605D@de</SessionID> <WSVersion>2.0.17.5.1.0</WSVersion> <OLAResponse> <Art>Bestellung</Art> <Datenformat>XML</Datenformat> <OLAResponseRecord> <StatusPosition>FAILED</StatusPosition> <Bestellnummer> <Titelnummer>13149951</Titelnummer> </Bestellnummer> <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>0</Lieferbaremenge> <Referenz>310005875</Referenz> <Fehlernummer>19018</Fehlernummer> <Fehlertext>OLA-Konfiguration fehlt</Fehlertext> </OLAResponseRecord> <OLAResponseRecord> <StatusPosition>FAILED</StatusPosition> <Bestellnummer> <Titelnummer>13149951</Titelnummer> </Bestellnummer> <Bestellmenge>2</Bestellmenge> <Lieferbaremenge>0</Lieferbaremenge> <Referenz>310005875</Referenz> <Fehlernummer>19018</Fehlernummer> <Fehlertext>OLA-Konfiguration fehlt</Fehlertext> </OLAResponseRecord> </OLAResponse> </ns1:wscallResponse> </soapenv:Body> </soapenv:Envelope> Dies bedeutet: Der OLA-Aufruf selbst war korrekt und konnte vom Webservice verarbeitet werden. Allerdings konnte die OLA-Funktion beide Bestell-Positionen des Requests nicht verarbeiten, weil die OLA-Zugangsdaten nicht korrekt eingerichtet waren. Dieser Fehler wurde für jede Einzelposition separat zurückgemeldet. 5.3.3 Fehlermeldungen der EBookBestellung Das Feld ErrorMessage in der Response kann die Werte der folgenden Übersicht beinhalten. ErrorMessage Error Details RETRY001 - Retry with wrong Item CUST001 - Login failed CUST002 - Credit Hold ITEM001 - Item not found ITEM002 - Item no stock title ITEM003 - distribution prohibited by law ITEM004 - not yet published, in preparation Erscheinungsdatum Jahreszeit/Jahr Seite 135 ITEM004 - not yet published, in preparation Erstverkaufstag YYYY/MM/DD ITEM005 - Item has unknown status DCS001 - Invalid Format Code DCS002 - The requested format is not available for sale DCS003 - System Error DCS004 - Unknown System Error DCS005 - Http Client-Side Error http Status Code DCS006 - Http Server-Side Error http Status Code DCS007 -No Country Code Supplied Länderkennzeichen fehlt DCS008 - No account on this Content System DCS009 - Invalid Country Code (ISO 3166) 5.3.4 Andere Fehlermeldungen Darüber hinaus können auch Fehlercodes direkt von den Modulen der PCBIS-Anwendung und des Servers geliefert werden, die Wichtigsten werden in der folgenden Liste aufgezählt: Fehlernummer Beschreibung 17117 TLD-Server: Ihre Session ist nicht mehr gültig, bzw. abgelaufen. Sie müssen ein (erneutes) Login ausführen -528 PCBIS: Die Session ist zwar bekannt es wurde aber kein Login durchgeführt . -511 PCBIS: Zu viele erfolglose Login-Versuche, Login ist gesperrt -505 Die Anmeldedaten sind falsch Abbildung 13: Fehlernummern der PCBIS-Anwendung Seite 136 A. ANHANG A.1 Aufrufparameter Für einige Aufrufparameter können nur bestimmte Werte angegeben werden, sonst bekommen Sie eine Fehlermeldung. Aktuell sind dies: Parameter Liste der möglichen Werte Datenbank KNV, KNVBG, Gardners, BakerTaylor Suchfeld Stichwort, WG, Titelart, Laenderschl, EAN, Titelkategorisierung, StichwortPhonetisch, Sprachschl, Reihe, Doknr, BandBestellNummer, Titel, Autor, Schlagwort, Autorteile, Titelnr, AllgemeineSuche, ISMN, Band, Massstab, Einband, Verlag, Alter, WGNeu, Preis, AutorPhonetisch, Erschjahr, ISBN Suchart Genau, RechtsUngenau Verknuepfung UND, ODER, UND NICHT Einschraenkung Novitaet, HC, NurBuch, NurLieferbar, TB Sortierfeld Titel, ISBN, Autor, Verlag, Preis, Meldenummer, Sortiment, Starrating Sortierrichtung Vor (Aufsteigend, Ascending), Zurück (Absteigend, Descending) Format Siehe Kapitel 4 Satzformate Formatfeld Siehe Kapitel 4 Satzformate MMTyp HBILD, IBILD MMVariante mini, normal, zoom, pcbis RegisterFeld Stichwort, WG, Titelart, Laenderschl, EAN, Titelkategorisierung, StichwortPhonetisch, Sprachschl, Reihe, Doknr, BandBestellNummer, Titel, Autor, Schlagwort, Autorteile, Titelnr, ISMN, Band, Massstab, Einband, Verlag, Alter, WGNeu, Preis, AutorPhonetisch, Erschjahr, ISBN Registerrichtung Vor (Aufsteigend, Ascending), Zurück (Absteigend, Descending) Sprache de, en OLA-Art Abfrage, Bestellung, Vormerkstorno OLA-Datenformat XML, CDATA EBO-Laendercode Abbildung 14: Liste erlaubter Parameterwerte A.2 Format für (Teil)SuchString Dieser Abschnitt beschreibt das Format der Suchanfragen, wie sie in den Feldern SuchString (s. 3.4.2.5) bzw. TeilSuchstring (s. 3.4.2.3.3) angegeben werden müssen: Jeder (Teil)Suchstring ist eine Anfrage oder mehrere miteinander verknüpfte Teilanfragen. Eine (Teil)Anfrage besteht aus einem Suchfeld, einem Vergleichsoperator und einem Suchwert. Für die Suchfelder müssen zweistellige Kürzel verwendet werden. Folgende Suchfelder können benutzt werden: Seite 137 • AB (Alter) • AT (Autor in der Form „Nachname, Vorname“, wenn man z.B. nach einem Autor suchen will, den man über die Register-Funktion ermittelt hat) • AU (Autorteile - Suche nach einem Wort des Namens (z.B. Nachname)) • PA (AutorPhonetisch (wie Autorteile, es werden aber auch ähnliche Namen gefunden)) • DB (Band) • BN (BandBestellNummer) • ID (Doknr) • NO (EAN) • EO (Einband) • PY (Erschjahr ) • SB (ISBN) • MN (ISMN) • MS (Massstab) • DR (Reihe) • SS (Sprachschl) • LS (Laenderschl) • CT (Schlagwort) • TI (Stichwort) • SU (StichwortPhonetisch (wie Stichwort, es werden aber auch ähnliche Stichwörter gefunden)) • TA (Titel (gesamter Titel)) • TS (Titelart) • ZO (Titelkategorisierung) • KN (Titelnr) • PU (Verlag) • WA (Warengruppe alt) • GN (Warengruppe neu) Als Vergleichsoperatoren sind erlaubt: • EQ für „gleich“ • LT für „kleiner“ • LE für „kleiner gleich“ • GT für „größer“ • GE für „größer gleich“ • BT „zwischen“ (beim Operator „BETWEEN“ werden zwei Werte angegeben) Seite 138 Die Werte werden in Anführungszeichen angegeben. Bei dem Gleichheitsoperator (EQ, bzw. =) kann am Ende des Wertes auch ein * angegeben werden. Dann werden alle Titel gefunden, die mit dem übergebenen Wert beginnen (rechtsungenaue Suche). Mehrere Teilanfragen können zu einer neuen Anfrage verknüpft werden. Dabei können folgende Verknüpfungsoperatoren benutzt werden: • AND für eine UND-Verknüpfung • OR für eine ODER-Verknüpfung • AND NOT für eine UND-NICHT-Verknüpfung • Teilanfragen können außerdem in runde Klammern eingeschlossen werden „(…)“ • Die Reihenfolge bei der Auswertung ist Klammerung vor AND vor AND NOT vor OR. Beispiele für (Teil)SuchString: Stichwort „Potter“: TI EQ "Potter" Alter zwischen 10 und 12: AB BT "10" "12" Erscheinungsjahr 2012 oder später: PY GE "2012" Autorteile „Rowling“ und Stichwort „Potter“: AU EQ "Rowling" AND TI EQ "Potter" Autorteile „Rowling“ und (Stichwort „Stein“ oder (Stichwort beginnt mit „Feuer“ aber es kommt nicht gleichzeitig das Stichwort „fire“ vor)): AU EQ "Rowling" AND (TI EQ "Stein" OR TI EQ "Feuer*" AND NOT TI EQ "fire") A.3 Format für Empfehlungen und Varianten Empfehlungen und Varianten werden ähnlich wie die eigentlichen Titeldaten geliefert: Wenn als Format KNVXML geliefert werden soll, werden die Listen der gelieferten Empfehlungen und Varianten mit CDATA geklammert und in einem einzigen Feld <Varianten> bzw. <Empfehlungen> geliefert: <Empfehlungen><![CDATA[<EMPFEHLUNGEN> <RECORD> XML-Titel1 </RECORD> <RECORD> XML-Titel2 </RECORD> <RECORD> XML-Titel3 </RECORD> </EMPFEHLUNGEN>]]></Empfehlungen> bzw. <Varianten><![CDATA[<VARIANTEN> <RECORD> XML-Titel1 </RECORD> <RECORD> XML-Titel2 </RECORD> <RECORD> XML-Titel3 </RECORD> ]]></Varianten> Wenn als Format NEUK geliefert werden soll, werden die NEUK-Sätze als Zeichenketten (Strings) in einzelnen <Varianten> bzw. <Empfehlungen> Feldern geliefert: <Empfehlungen>NEUK-Titel1</Empfehlungen> <Empfehlungen>NEUK-Titel2</Empfehlungen> <Empfehlungen>NEUK-Titel3</Empfehlungen> bzw. Seite 139 <Varianten>NEUK-Titel1</Varianten> <Varianten>NEUK-Titel2</Varianten> <Varianten>NEUK-Titel3</Varianten> Das Rückgabeformat entspricht immer dem, das auch für die Titeldaten angefordert wurde (NEUK oder KNVXML), beinhaltet aber eine reduzierte, nicht wählbare Anzahl von Feldern. Folgende Felder werden in den Empfehlungen und Variante zurückgegeben: • TITEL (NEUK *08) • AUTOR (NEUK *06) • VERLAG (NEUK *17) • ISBN13 (NEUK *95) • TITELNR (NEUK *B2) • EAN (NEUK *95) • MELDENR (NEUK *26) • SORTIMENT (Code entsprechend Anhang A.4, nur bei KNVXML) Beispiel im KNVXML-Format: <Varianten><![CDATA[<VARIANTEN> <RECORD> <AUTOR>Rowling, Joanne K.</AUTOR> <SORTIMENT>01</SORTIMENT> <ISBN13>978-1-4088-1278-5</ISBN13> <VERLAG>Bloomsbury Trade</VERLAG> <TITEL>Harry Potter and the Chamber of Secrets, Signature Edition 'A' Format</TITEL> <TITELNR>25421366</TITELNR> </RECORD> <RECORD> <AUTOR>Rowling, Joanne K.</AUTOR> <SORTIMENT>01</SORTIMENT> <ISBN13>978-0-7475-5819-4</ISBN13> <VERLAG>Bloomsbury Trade</VERLAG> <TITEL>Harry Potter and the Philosopher's Stone</TITEL> <TITELNR>10175174</TITELNR> </RECORD> ….. <RECORD> <AUTOR>Rowling, Joanne K.</AUTOR> <SORTIMENT>01</SORTIMENT> <ISBN13>978-0-7475-7376-0</ISBN13> <VERLAG>Bloomsbury Trade</VERLAG> <TITEL>Harry Potter and the Prisoner of Azkaban, Celebratory edition</TITEL> <TITELNR>13498824</TITELNR> </RECORD> </VARIANTEN>]]></Varianten> <Empfehlungen><![CDATA[<EMPFEHLUNGEN> <RECORD> <AUTOR>Hunter, Erin</AUTOR> <SORTIMENT>01</SORTIMENT> <ISBN13>978-3-407-81146-2</ISBN13> <VERLAG>Beltz</VERLAG> <MELDENR>21</MELDENR> <TITEL>Warrior Cats - Die Macht der drei. Lange Schatten</TITEL> Seite 140 <TITELNR>38520757</TITELNR> </RECORD> <RECORD> <AUTOR>Hunter, Erin</AUTOR> <SORTIMENT>01</SORTIMENT> <ISBN13>978-3-407-81148-6</ISBN13> <VERLAG>Beltz</VERLAG> <MELDENR>21</MELDENR> <TITEL>Warrior Cats - Die Macht der drei. Sonnenaufgang</TITEL> <TITELNR>38520768</TITELNR> </RECORD> … <RECORD> <AUTOR>Riordan, Rick</AUTOR> <SORTIMENT>07</SORTIMENT> <ISBN13>978-3-646-90084-2</ISBN13> <VERLAG>Carlsen</VERLAG> <TITEL>Percy Jackson - Die letzte Göttin</TITEL> <TITELNR>30600611</TITELNR> </RECORD> </EMPFEHLUNGEN>]]></Empfehlungen> Beispiel im NEUK-Format: <Varianten>NEUK*06Rowling, Joanne K.*95978-1-4088-1278-5*17Bloomsbury Trade*08Harry Potter and the Chamber of Secrets, Signature Edition 'A' Format*B225421366</Varianten> <Varianten>NEUK*06Rowling, Joanne K.*95978-1-4088-1284-6*17Bloomsbury Trade*08Harry Potter and the Philosophers Stone, Signature Edition 'A' Format*B225421388</Varianten> … <Varianten>NEUK*06Rowling, Joanne K.*95978-0-7475-7376-0*17Bloomsbury Trade*08Harry Potter and the Prisoner of Azkaban, Celebratory edition*B213498824</Varianten> <Empfehlungen>NEUK*06Hunter, Erin*95978-3-407-81146-2*17Beltz*08Warrior Cats - Die Macht der drei. Lange Schatten*B238520757*2621</Empfehlungen> <Empfehlungen>NEUK*06Hunter, Erin*95978-3-407-81148-6*17Beltz*08Warrior Cats - Die Macht der drei. Sonnenaufgang*B238520768*2621</Empfehlungen> … <Empfehlungen>NEUK*06Riordan, Rick*95978-3-646-90084-2*17Carlsen*08Percy Jackson - Die letzte Göttin*B230600611</Empfehlungen> A.4 Sortimentcodes Sortimente werden nicht im Klartext angegeben, sondern mit numerischen Codes. Folgende Codes werden verwendet: 01 = Hardcover 02 = Bürobedarf 03 = Taschenbuch 07 = E-Book 10 = Film 11 = Hörbuch 12 = Kalender 13 = Karte 14 = Musik 15 = Nonbook 16 = Schulbuch 17 = Software Seite 141 18 = Spielware 99 = Sonstiges A.5 Clustersystematik Die Anzeige von Cluster erfolgt nach folgender Systematik: 1: = Warengruppen 1:01 = Bücher 1:02 = Hörbücher 1:03 = Software 1:04 = Video/DVD 1:05 = Spiele/Extras 1:06 = International 1:07 = Kalender 1:??00 = Sonstiges 1:??01 = Belletristik 1:??0101 = Romane 1:??0102 = Krimis 1:??0103 = SF/Fantasy 1:??0104 = Märchen/Sagen 1:??0105 = Lyrik/Dramatik 1:??0106 = Biogr./Briefe 1:??0107 = Fremdspr. Lit. 1:??0108 = Humor/Comics 1:??0109 = Geschenkbücher 1:??02 = Kinder/Jugend 1:??0201 = Bilderbücher 1:??0202 = Sachbilderb. 1:??0203 = Gesch./Lieder 1:??0204 = Erstlesealter 1:??0205 = Romane/Erzähl. 1:??0206 = Märchen/Sagen 1:??0207 = Tiergeschicht. 1:??0208 = Sachbücher 1:??0209 = Spielen/Lernen 1:??03 = Reise 1:??0301 = Reiseführer 1:??0302 = Aktivreisen 1:??0303 = Hotel/Rest.Fü 1:??0304 = Karten, Atlant. 1:??0305 = BildbÄnde 1:??0306 = Reiseberichte 1:??0308 = Globen 1:??0309 = Kartenzubehör 1:??04 = Sachbuch/Ratgeber 1:??0401 = Nachschlagen 1:??0402 = Hobby/Natur 1:??0403 = Technik 1:??0404 = Sport 1:??0405 = Essen/Trinken 1:??0406 = Gesund/schön 1:??0407 = Esoter./Anthr. Seite 142 1:??0408 = Ratgeber 1:??0409 = Sonstiges 1:??05 = Geisteswiss. 1:??0501 = Geisteswiss. allg. 1:??0502 = Philosophie 1:??0503 = Psychologie 1:??0504 = Religion 1:??0505 = Geschichte 1:??0506 = Sprachwiss. 1:??0507 = Literaturwiss. 1:??0508 = Kunst 1:??0509 = Musik 1:??06 = Naturwiss./Technik 1:??0601 = Naturwiss. allg. 1:??0602 = Mathematik 1:??0603 = Informatik/EDV 1:??0604 = Physik/Astron. 1:??0605 = Chemie 1:??0606 = Geowiss. 1:??0607 = Biologie 1:??0608 = Technik 1:??0609 = Medizin/Pharm. 1:??07 = Sozialwiss./Recht/Wirtsch. 1:??0701 = Sozialwiss. allg. 1:??0702 = Pädagogik 1:??0703 = Medien/Komm. 1:??0704 = Politik, Gesellschaft, Arbeit 1:??0705 = Völkerkunde 1:??0706 = Umwelt/Landw. 1:??0707 = Recht 1:??0708 = Wirtschaft 1:??08 = Schule/Lernen 1:??0801 = SchulbÜcher 1:??0802 = Unterrichtsm. 1:??0803 = Berufsschule 1:??0804 = Lernhilfen/Abi 1:??0805 = Lekt./Interpr. 1:??0806 = Erwbild./VHS 1:??0807 = Deutsch lernen 1:??0808 = Lernsoftware 1:??0809 = Sonstiges 1:??09 = Freibereich 1:??0909 = Modernes Antiquariat 1:0510 = Non-Books 1:0511 = Spiele 1:0513 = Audio-CD/Cassette 1:06DE = Deutsch 1:06EN = Englisch 1:06ES = Spanisch 1:06FR = Französisch 1:06IT = Italienisch 1:06NL = NiederlÄndisch 1:06PT = Portugiesisch Seite 143 1:06LA = Latein 1:06RU = Russisch 1:06TR = TÜrkisch 1:06JA = Japanisch 1:06NN = Sonstige 2:SO = Sortiment 2:SO:01 = Hardcover 2:SO:02 = Bürobedarf 2:SO:03 = Taschenbuch 2:SO:07 = E-Book 2:SO:10 = Film 2:SO:11 = Hörbuch 2:SO:12 = Kalender 2:SO:13 = Karte 2:SO:14 = Musik 2:SO:15 = Nonbook 2:SO:16 = Schulbuch 2:SO:17 = Software 2:SO:18 = Spielware 2:SO:99 = Sonstiges 2:EO = Einband 2:EO:BL = Blätter 2:EO:BLU = Blu-ray Disc 2:EO:CASS = Cassette 2:EO:CD = CD-ROM,Audio-CD 2:EO:DISK = Diskette 2:EO:DVD = DVD 2:EO:GEB = Gebunden 2:EO:GEH = Geheftet 2:EO:GLOB = Globus 2:EO:HDD = HD-DVD 2:EO:HL = Halbleinen 2:EO:HLD = Halbleder 2:EO:HW = Hardware 2:EO:KAL = Kalender 2:EO:KST = Kunststoff 2:EO:KSTO = Kunststoff-Ordner 2:EO:KT = Kartoniert/Broschiert 2:EO:KTE = Karte/Landkarte 2:EO:LD = Leder 2:EO:LN = Leinen 2:EO:LNK = Leinen kaschiert 2:EO:LNO = Leinen-Ordner 2:EO:LP = Langspielplatte 2:EO:MPP = Mappe 2:EO:NON = Nonbook 2:EO:O = Originaleinband 2:EO:ORDN = Ordner 2:EO:PCK = Package,Bundle 2:EO:POS = Poster 2:EO:PP = Pappband 2:EO:SPL = Spiel 2:EO:TEX = Textilien Seite 144 2:EO:UMD = UMD-Video 2:EO:UNB = noch unbekannt 2:EO:VID = Videocassette 2:MX = Lieferbarkeit 2:MX:00 = Sofort lieferbar 2:MX:01 = Lieferbar 2:MX99 = nicht lieferbar 2:SS = Sprache 2:SS:00 = Undefiniert 2:SS:01 = Deutsch 2:SS:02 = Englisch 2:SS:03 = Niederländisch/Flämisch 2:SS:05 = Dänisch 2:SS:06 = Norwegisch 2:SS:07 = Schwedisch 2:SS:08 = Isländisch 2:SS:09 = Andere Germanische 2:SS:10 = Französisch 2:SS:12 = Italienisch 2:SS:13 = Katalanisch 2:SS:14 = Spanisch 2:SS:16 = Portugiesisch 2:SS:17 = Rumänisch 2:SS:18 = Latein 2:SS:19 = Andere Romanische 2:SS:20 = Griechisch 2:SS:22 = Altgriechisch 2:SS:30 = Russisch 2:SS:31 = Bulgarisch 2:SS:32 = Serbisch/Kroatisch 2:SS:34 = Polnisch 2:SS:36 = Tschechisch 2:SS:37 = Slowakisch 2:SS:38 = Sorbisch 2:SS:39 = Andere Slawische 2:SS:41 = Finnisch 2:SS:42 = Ungarisch 2:SS:43 = Baltisch 2:SS:45 = Keltisch 2:SS:49 = Andere europäische 2:SS:50 = Hebräisch 2:SS:52 = Arabisch 2:SS:59 = Andere hamitosemitische 2:SS:60 = Türkisch 2:SS:62 = Iranische Sprachen 2:SS:65 = Japanisch 2:SS:66 = Chinesisch 2:SS:67 = Indoarische Sprachen 2:SS:69 = Sonstige asiatische 2:SS:90 = Afrikanische Sprachen 2:SS:94 = Indianersprachen 2:SS:97 = Australische/Ozeanische 2:SS:99 = Esperanto Seite 145 2:ZO = Star-Rating 2:ZO:001 = 1 Stern 2:ZO:002 = 2 Sterne 2:ZO:003 = 3 Sterne 2:ZO:004 = 4 Sterne 2:ZO:005 = 5 Sterne 2:ZO:006 = 6 Sterne 2:ZQ = Zielgruppe 2:ZQ:<Name der Zielgruppe> = Benannte Zielgruppe 2:PY = Erscheinungsjahr 2:PY:<Jahr> = entsprechendes Erscheinungsjahr 2:NS = Neuheit 2:NS:010 = letzte 10 Tage 2:NS:030 = letzte 30 Tage 2:NS:090 = letzte 3 Monate 2:NS:180 = letzte 6 Monate 2:NS:365 = letzte 12 Monate 2:NS:366 = Älter als 12 Monate 3: = Fundstellen 3:Titel = Fundstelle Stichwort 3:Autor = Fundstelle Autor 3:Thema = Fundstelle Thema 3:Verlag = Fundstelle Verlag 3:Zusatztext = Fundstelle Zusatztext Gibt es in in den Clustern Zielgruppe oder Erscheinungsjahr mehr als 30 verschiedene Werte, werden die Treffermengen im letzten Werteblock unter der Bezeichnung „weitere“ aggregiert. Bei einer KNV-Suche nach „Potter“ beispielsweise erhält man im Cluster Erscheinungsjahr auch folgendes: <Werte> <Code>2:PY:1989</Code> <AnzeigeName>weitere</AnzeigeName> <Treffer>60</Treffer> <Ebene>1</Ebene> <WeitereEbeneVorhanden>false</WeitereEbeneVorhanden> <lfdNummer>30</lfdNummer> </Werte> Schränkt man eine Suche aber nach 2:PY:1989 ein, dann bekommt man nicht die 60, sondern nur 7 Treffer, also nur die mit Erscheinungsjahr 1989 und nicht auch noch alle älteren. Seite 146 A.6 Testzugang Während der Entwicklungs- und Testphase Ihrer Anwendung bitten wir Sie, nicht das Produktionssystem zu nutzen. Es steht hierfür ein eigenes Testsystem zur Verfügung. Hier können Sie auch eine E-Book Bestellung für eine definierte ISBN testen. Die Adresse sowie die Zugangsdaten können per E-Mail an [email protected] erfragt werden. Seite 147
© Copyright 2024 ExpyDoc