otrs-soap-python
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| otrs-soap-python [2011/09/22 12:54] – angelegt jenad | otrs-soap-python [2024/08/07 11:34] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | e | + | === Zugriff auf die OTRS-Klassen via SOAP und - natürlich Python, was sonst === |
| + | |||
| + | == Motivation == | ||
| + | |||
| + | Ich möchte gerne Tickets in OTRS mit python anlegen und auslesen. Damit kann ich einfache Support-Schnittstellen in User-Portale einbauen. | ||
| + | |||
| + | == Installation OTRS mit SOAP== | ||
| + | |||
| + | 1. OTRS ist Perl (uaaarg), bitte zunächst die Installationsanweisungen für OTRS befolgen und OTRS soweit testen. | ||
| + | |||
| + | * Perl Module installieren | ||
| + | *Perl SOAP installieren | ||
| + | * siehe unten, Bug in Soap-lite!! | ||
| + | * einige Perl-Module müssen installiert werden (Abhängigkeiten SoapLite) | ||
| + | *SOAP in OTRS freischalten (Username und Passwort in Sysconfig setzen) | ||
| + | |||
| + | 2. Ich habe OTRS-3.0.6 unter CentOS-5.6-x64 im Einsatz. Erste Versuche mit SOAPpy scheitern an dieser Fehlermeldung: | ||
| + | |||
| + | no element found at line 1, column 0, byte -1 at / | ||
| + | line 187 | ||
| + | |||
| + | das ist dieser Bug: http:// | ||
| + | |||
| + | und wird mit diesem Patch behoben: | ||
| + | |||
| + | http:// | ||
| + | |||
| + | mittlerweile habe ich auf OTRS-3.1.4 geupgraded, alle nachfolgenden Codes funktionieren mit dieser Version | ||
| + | |||
| + | == Weiter auf Client-Seite mit Python == | ||
| + | |||
| + | wir gehen davon aus, das otrs mit SOAP funktioniert | ||
| + | |||
| + | 1. OTRS kann KEIN WSDL!! Dh wir können keine Python-WSDL-Module verwenden (zB. suds), sondern brauchen die kompliziertere SOAPpy | ||
| + | |||
| + | 2. Ich habe ein WSDL-File auf dem OTRS-Server abgelegt. Darin definiere ich die Services, dann können wir in SOAPpy auf WSDL umschalten. Das WSDL-File kann hier eingesehen werden und ist eine Kopie vom OTRS User Forum (http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | == erste Tests - endlich Code == | ||
| + | |||
| + | <code python> | ||
| + | # | ||
| + | |||
| + | from SOAPpy import WSDL | ||
| + | wsdlfile=' | ||
| + | server=WSDL.Proxy(wsdlfile) | ||
| + | print server.methods.keys() | ||
| + | |||
| + | # dieses Ticket habe ich vorher in OTRS angelegt und mir die Ticketnummer kopiert: | ||
| + | TicketNr=' | ||
| + | |||
| + | tickets=server.Dispatch(' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | TicketNr, | ||
| + | ' | ||
| + | 1) | ||
| + | |||
| + | |||
| + | print tickets | ||
| + | </ | ||
| + | |||
| + | Als Ergebnis erhalte ich dieses Array: | ||
| + | |||
| + | < | ||
| + | |||
| + | das scheint ein Struct mit Typ DispatchResponse zu sein, es wird die TicketNr und die TicketID zurückgegeben, | ||
| + | |||
| + | soweit erstmal, SOAP funzt prinzipiell, | ||
| + | |||
| + | |||
| + | == ein neues Ticket anlegen == | ||
| + | |||
| + | <code python> | ||
| + | title = "My Test Ticket 2 via SOAP and Python" | ||
| + | myfrom | ||
| + | |||
| + | ticketID=server.Dispatch(' | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ) | ||
| + | |||
| + | print ticketID | ||
| + | </ | ||
| + | |||
| + | == einen Artikel zu diesem Ticket anlegen == | ||
| + | |||
| + | <code python> | ||
| + | body=" | ||
| + | |||
| + | artID=server.Dispatch(' | ||
| + | ' | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ), | ||
| + | |||
| + | ) | ||
| + | |||
| + | print artID | ||
| + | </ | ||
| + | |||
| + | die artID war aber None, keine Ahnung warum, jedenfalls habe ich jetzt ein neues Ticket im OTRS mit einem zugehörigen Record. | ||
| + | |||
| + | == nützliche Links == | ||
| + | |||
| + | http:// | ||
otrs-soap-python.1316696092.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
