vollständige Dokumentation zum KNV Webservice 2.0

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§&lt;span class="TextSchwarz"&gt;ACHTUNG! Für Kinder unter 3 Jahren
nicht geeignet. &lt;br&gt;Erstickungsgefahr durch verschluckbare Klein-
Seite 114
teile.&lt;/span&gt;§15§&lt;span class="TextSchwarz"&gt;LEGO(R) Harry Potter(TM) Fans und Sammler aufgepasst!&lt;br&gt;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.&lt;br&gt;Ein absolut unverzichtbares Nachschlagewerk für alle
LEGO(R) Harry Potter(TM) Fans! &lt;br&gt;Ab 6 Jahren.&lt;/span&gt;*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º&lt;span class="TextSchwarz"&gt;ACHTUNG! Für Kinder
unter 3 Jahren nicht geeignet. &lt;br&gt;Erstickungsgefahr durch verschluckbare Kleinteile.&lt;/span&gt;º15º&lt;span
class="TextSchwarz"&gt;LEGO(R) Harry Potter(TM) Fans und Sammler aufgepasst!&lt;br&gt;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.&lt;br&gt;Ein absolut unverzichtbares Nachschlagewerk für alle LEGO(R) Harry Potter(TM) Fans!
&lt;br&gt;Ab 6 Jahren.&lt;/span&gt;</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:
&nbsp;
Seite 124
Möglich sind 1 bis 9 &nbsp;
Also z.B.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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