norpa GmbH
norpa GmbH

Einfache Integration mit PHP

Erweitern Sie Ihre Webanwendung mit wenigen, einfachen Zeilen PHP-Code um weitreichende Funktionen zur integrierten Verwaltung, Ablage und Archivierung von Dokumenten und Dateien. Fokusieren Sie ihre eigene Entwicklung auf die individuellen Aspekte und den Workflow. docuplex bietet Ihnen eine ausgereifte Lösung zum Verwalten von Dateien mit elementaren DMS-Funktionalitäten, ohne dass Sie für deren Implementierung sorgen müssten.

Durch die Verwendung der XML-/HTTP-Kommunikation ist docuplex ideal für die Verwendung in Web-Projekten geeignet und stellt eine sinnvolle, flexible Erweiterungsmöglichkeit für z.B. Content-Managementsysteme (CMS), Projektmanagementsoftware (PMS) oder webbasierte Warenwirtschaftssysteme (ERP) dar.

Mit PHP haben Sie die Möglichkeit, einen von uns bereitgestellten docuplex-Connector zu verwenden, oder das XML-Handling sowie die HTTP-Kommunikation selber zu implementieren. Im Folgenden finden Sie für beide Varianten ein Beispiel.

PHP mit Connector

  1. <?php
  2.  
  3. require('doa.php');
  4.  
  5. $doa = new doaClient($server_address, $username, $password);
  6.  
  7. $doa->getResponseType = doaResponseAsArray;
  8.  
  9. $arr = $doa->doRequest('docuplex', 'FileHandling', 'browseFolder',
  10. '<file client="bau gmbh" repository="Buchhaltung" name="/Umsatzsteuer"/>');
  11.  
  12. ?>

Zunächst wird der Connector mittels require eingebunden.
Dann wird ein Connector-Objekt erstellt, dem Serveradresse sowie Benutzername und Kennwort im Constructor übergeben werden.
In Zeile 5 wird der gewünschte Typ für die Rückgabe eingestellt. Möglich sind Rückgaben als Array oder als XML-Dokument. Schliesslich wird der eigentliche Methodenaufruf für die docuplex-Anfrage ausgeführt und die dafür relevanten Paramter an die Methode übergeben. Das Ergebnis der Anfrage steht dann im Array $arr.

PHP ohne Connector

Das folgende Beispiel demonstriert die docuplex Integration ohne Verwendung des norpa Connectors.
Hierbei ist es dann erforderlich, die HTTP-Kommunikation mittels cURL-Funktionen zu implementieren und ein eigenes XML-Handling zum Beispiel mittels DOMDocument oder simpleXML zu realisieren.

  1. <?php
  2.  
  3. /* XML Request erstellen */
  4. $xmlstr = <<<XML
  5. <?xml version="1.0" encoding="UTF-8"?>
  6. <serviceRequest>
  7.   <requestHead>
  8.   <module>docuplex</module>
  9.   <service>FileHandling</service>
  10.   <method>browseFolder</method>
  11.   <clientID>client337</clientID>
  12.   <requester>username</requester>
  13.   <password>202cb962ac64b034b70</password>
  14.   <requestTimestamp>2011-03-07 08:41:24</requestTimestamp>
  15.   </requestHead>
  16.   <requestBody>
  17.   <params>
  18.   <file client="bau gmbh"
  19.   repository="Buchhaltung"
  20.   name="/Umsatzsteuer"/>
  21.   </params>
  22.   </requestBody>
  23. </serviceRequest>
  24. XML;
  25.  
  26.  
  27.  
  28. /* HTTP-Request für cURL vorbereiten */
  29. $http = "MIME-Version: 1.0 \n";
  30. $http .= "Content-type: text/xml; charset=UTF-8 \n";
  31. $http .= "Accept: text/xml \n";
  32. $http .= "Content-length: ". strlen($xmlRequest) ." \n";
  33. $http .= "Cache-Control: no-cache \n";
  34. $http .= "Connection: close \n\n";
  35. $http .= $xmlstr. " \n";
  36.  
  37.  
  38.  
  39. /* Request per cURL absetzen */
  40. $ch = curl_init('https://servername/docuplex/ServiceController?perform');
  41. if( $ch ) {
  42.  
  43. // cURL Einstellungen setzen
  44. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  45. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  46. curl_setopt($ch, CURLOPT_HTTPHEADER, $http);
  47. $result = curl_exec($ch);
  48.  
  49. $errno = curl_errno($ch);
  50. if( $errno ) {
  51. die('cURL Request failed');
  52. }
  53.  
  54. curl_close($ch);
  55. }
  56.  
  57. print "Ergebnis der Anfrage:<br/>\n";
  58. print $result;
  59.  
  60. ?>

Das obige Beispiel ist stark vereinfacht: Zunächst wird ein XML-Dokument in einem String erzeugt. Dieser String wird zusammen mit einem geeigneten http-Header via cURL an den docuplex Server geschickt. Von cURL wird als Ergebnis eine XML-Antwort in einem String zurückgeliefert, welcher auf beliebige Weise weiterverarbeitet werden kann.

Alle Beispiele sollten nicht im produktiven Einsatz verwendet werden, da keinerlei Fehlerbehandlung implementiert ist.

*Pflichtfelder

No Abbrechen