====== XML-RPC: Zugriff auf Adressbuch ====== * Name des Service: **hibiscus.xmlrpc.address** ===== Schlüssel-Namen ===== ^ Bezeichnung ^ Beschreibung ^ | name | Name des Konto-Inhabers | | kontonummer | Kontonummer | | blz | Bankleitzahl | | kommentar | Kommentar (Freitext) | | bic | BIC-Nummer (EU-BLZ) | | iban | IBAN-Nummer (EU-Kontonummer) | | kategorie | Kategorie (Freitext) | ===== Verfügbare Funktionen ===== ==== Liste der Schlüsselnamen ermitteln ==== public Map createParams() throws RemoteException; * Name der Funktion: **createParams** * Liste der Parameter * Rückgabe-Wert: **struct** Ein leeres Struct, welches lediglich die o.g. Schlüssel, jedoch noch keine Werte enthält. Das Struct kann als Vorlage für neue Adressen verwendet werden ==== Lesen von Adressen ==== public List> find(String query) throws RemoteException; * Name der Funktion: **find** * Liste der Parameter - **String** Suchbegriff * Rückgabe-Wert: **array** (Liste mit "struct"-Elementen)\\ Liste der gefundenen Adressen. Jedes Element der Liste enthält eine Adresse in Form eines Struct mit den o.g. Schlüsseln === Code-Beispiele === == Java == import java.util.Map; Object[] list = (Object[]) client.execute("hibiscus.xmlrpc.address.find",new String[]{"mustermann"}); for (Object o:list) { Map address = (Map) o; System.out.println("Name: " + address.get("name")); System.out.println("Kto : " + address.get("kontonummer")); System.out.println("BLZ : " + address.get("blz")); } == PHP == $msg = new xmlrpcmsg("hibiscus.xmlrpc.address.find",array(new xmlrpcval("mustermann","string"))); $response = $client->send($msg); $value = $response->value(); for ($i=0;$i<$value->arraySize();$i++) { $address = $value->arrayMem($i); print("Name: ".$address->structMem("name")->scalarVal()."\n"); print("Kto : ".$address->structMem("kontonummer")->scalarVal()."\n"); print("BLZ : ".$address->structMem("blz")->scalarVal()."\n"); } ==== Anlegen von Adressen ==== public String create(Map address) throws RemoteException; * Name der Funktion: **create** * Liste der Parameter - **struct** Struct mit den Eigenschaften der Adresse. Als Schlüssel sind die o.g. Schlüssel-Namen zu verwenden. * Rückgabe-Wert * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception === Code-Beispiele === == Java == import java.util.Map; import java.util.HashMap; Map address = new HashMap(); address.put("name","Max Mustermann"); address.put("kontonummer","1234567890"); address.put("blz","12345678"); Object result = client.execute("hibiscus.xmlrpc.address.create",new Object[]{address}); System.out.println(result); == PHP == $address = new xmlrpcval( array( "name" => new xmlrpcval("Max Mustermann","string"), "kontonummer" => new xmlrpcval("1234567890","string"), "blz" => new xmlrpcval("12345678","string") ),"struct"); $msg = new xmlrpcmsg("hibiscus.xmlrpc.address.create",array($address)); $response = $client->send($msg); print($response->value()->scalarval()); ==== Ändern von Adressen ==== public String update(Map address) throws RemoteException; * Name der Funktion: **update** * Liste der Parameter - **struct** Struct mit den Eigenschaften der Adresse. Als Schlüssel sind die o.g. Schlüssel-Namen zu verwenden. Das Struct **muss** einen Schlüssel mit dem Namen "id" enthalten, welcher als Wert die ID der zu ändernden Adresse enthält. * Rückgabe-Wert * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception === Code-Beispiele === == Java == import java.util.Map; import java.util.HashMap; Map address = new HashMap(); address.put("id","13"); address.put("name","Max Mustermann"); address.put("kontonummer","1234567890"); address.put("blz","12345678"); Object result = client.execute("hibiscus.xmlrpc.address.update",new Object[]{address}); System.out.println(result); == PHP == $address = new xmlrpcval( array( "id" => new xmlrpcval("13","string"), "name" => new xmlrpcval("Max Mustermann","string"), "kontonummer" => new xmlrpcval("1234567890","string"), "blz" => new xmlrpcval("12345678","string") ),"struct"); $msg = new xmlrpcmsg("hibiscus.xmlrpc.address.update",array($address)); $response = $client->send($msg); print($response->value()->scalarval()); ==== Löschen von Adressen ==== public String delete(String id) throws RemoteException; * Name der Funktion: **delete** * Liste der Parameter - **String** ID der zu löschenden Adresse * Rückgabe-Wert * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext * bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception === Code-Beispiele === == Java == Object result = client.execute("hibiscus.xmlrpc.address.delete",new Object[]{"13"}); System.out.println(result); == PHP == $msg = new xmlrpcmsg("hibiscus.xmlrpc.address.delete",array(new xmlrpcval("13","string"))); $response = $client->send($msg); print($response->value()->scalarval());