1. Überblick
Kapitel hinzufügen

Die RPC-Schnittstelle von MyBib eDoc ermöglicht entfernten Clients vordefinierte Funktionsaufrufe an MyBib eDoc zu übergeben und die Anbindung von MyBib eDoc als Client an andere Systeme zu übermitteln. Sie ist als Client-Server-Architektur konzipiert, bei der der Client eine Funktion aufruft und synchron auf die Antwort von MyBib eDoc wartet.

Beispiele sind die Anbindung von BCS-2 als MyBib-Scan-Client oder die Anbindung von
Lukida des GBV an MyBib eDoc zur direkten Übermittlung einer Bestellung vom OPAC
einer Bibliothek aus.

Als Methode wurde XML-RPC gewählt, da die Implementierung ohne großen Aufwand
in unterschiedlichen Programmiersprachen und Systemplattformen möglich ist. Als
Transportschicht kommt http/https zum Einsatz, während die Übergabewerte als XML-Struktur übergeben werden.

Grundsätzlich erfolgt jede Interaktion über ein explizites Login an den im Hintergrund laufenden XMLRPC-Server von MyBib eDoc, an den sich anschließend der Aufruf der eigentlichen Funktion anschließt. Nach Beendigung der Funktion steht ein Logout, das die generierte Session mit dem MyBib eDoc-Server wieder beendet.

Der Ablauf des Funktionsaufrufs erfolgt also in vier Stufen

  1. Login am Server mit Übergabe der Login-Daten, die vorher in den Peer-Einstellungen von MyBib eDoc hinterlegt wurden.
  2. Im Erfolgsfall wird vom Server eine Session-ID zurückgegeben. Diese Session-ID ist ein Parameter jedes weiteren Funktionsaufrufs.
  3. Abfolge von einem oder mehreren Funktionsaufrufen
  4. Logout von der Session

1.1 Anbindung
Abschnitt hinzufügen

Voraussetzung zur Nutzung der XMLRPC-Schnittstelle ist, dass der Client vorher in MyBib eDoc als Peer des Typs Auftragskonnektor erfasst wurde. Dabei werden eine eindeutige Kennung, ein Passwort und das Transferziel für den Funktionsaufruf eingetragen. Anschließend muss sich der Client am MyBib eDoc-Server registrieren. Dabei muss der Client neben dem bereits hinterlegten Nutzerdaten einen eigenen Identifier übergeben, der ebenfalls in den Clientdaten hinterlegt und bei jeden Funktionsaufruf mit übergeYben werden muss. Beim ersten erfolgreichen Funktionsaufruf wird zusätzlich eine Logdatei für den Client auf dem MyBib eDoc-Server angelegt, in der alle Transaktionen protokolliert werden. Dies ist vor allem für eine eventuell notwendige Fehlersuche hilfreich.

1.2 Generelle Struktur des Rückgabewertes
Abschnitt hinzufügen

Der zurückgegebene Ergebniswert ist immer eine namenlose Struktur im XML-Format, deren erstes „member“ ein boolescher Wert namens „status“ ist.

Im Falle von TRUE war die Funktion erfolgreich, bei FALSE ist das zweite Member eine Unterstruktur mit Fehlinformationen.

Diese Struktur heißt immer ERROR_struct und hat zwei Members im String-Format: „technical“: technische Fehlermeldung (Zeichenkette), die den Fehler charakterisiert. „message“: Langtext in der aktiven Sprache: zum Anzeigen für den Benutzer.

Beispiel für eine erfolgreich abgearbeitete Funktion:

<methodResponse>
 <params>
  <param>
  <value>
   <struct>
    <member>
     <name>status</name>
      <value>
       <boolean>1</boolean>
      </value>
    </member>
    <member>
     <name>session_struct</name>
      <value>
       <struct>
        <member>
         <name>session_id</name>
          <value>
           <string>6ba44968ffe10422b8799a3d5405a190</string>
          </value>
        </member>
       </struct>
      </value>
    </member>
   </struct>
  </value>
  </param>
 </params>
</methodResponse>

Beispiel für einen Fehler:

<methodResponse>
 <params>
  <param>
  <value>
   <struct>
    <member>
     <name>status</name>
     <value>
      <boolean>0</boolean>
     </value>
    </member>
    <member>
     <name>ERROR_struct</name>
     <value>
      <struct>
       <member>
        <name>technical</name>
        <value>
         <string>ERR_XMLRPC_VAL_LOG_KEYS</string>
        </value>
       </member>
       <member>
        <name>message</name>
        <value>
         <string>Der Server konnte in der Clientverwaltung
keinen g&amp;uuml;ltigen, bzw. aktiven Eintrag die Client-Lizenznummer XY-12345678-22 und der Client-Mac-Adresse XY-12345678-22 zum einloggen
finden. Bitte kontaktieren Sie Ihren System-Administrator zum freischalten,
bzw. aktivieren Ihres Clients.</string>
        </value>
       </member>
      </struct>
     </value>
    </member>
   </struct>
  </value>
  </param>
 </params>
</methodResponse>