pixi* Kundenkontakte mit Greyhound über XML_RPC synchronisieren

  • Beschreibung


    Mit diesem Script is es möglich über das XML_RPC-Protokoll von Greyhound, Kundenkontakte von pixi* in Greyhound zu übertragen und/oder zu aktualisieren.

    Was passiert im Script?


    Das ganze geschieht zunächst mit dem API-Call "pixiGetChangedCustomers", der alle geänderten oder erstellten Kontakte ab dem gewählten Zeitpunkt ausgibt. Von allen Kontakten die auf diese Weise gefunden wurden, werden die Adressdaten durch einem weiteren API-Call "pixiGetAddress" ermittelt.


    Nachdem das Script nun alle nötigen Daten hat, wird eine Suche im Greyhound gestartet, die nach den Kundennummern der vorher gefundenen Kontakten sucht.


    Sollte ein Kontakt mit einer übereinstimmenden Kundennummer gefunden worden sein, wird dieses Contact-Item mittels "RpcItems.Put" überschrieben. Sollte Greyhound keinen Kontakt mit der jeweiligen Kundenummer finden, legt er automatisch einen neuen Kontakt mit der Methode "RpcItems.New" an.


    Was nutzt das Script für Felder in Greyhound?


    Mit dem Script werden folgende Felder beschrieben: Salutation, Firstname, Lastname, Company, Postaddress, Fax, Telephone, Emailaddress und ein eigens erstelltes Benutzerfeld mit der Bezeichnung Kundennummer.


    Zur Kundennummer muss ich dazu sagen, dass vor jede Kundennummer "0000" hinzugefügt wird, da die Methode RpcItems.Get probleme hat Kundenummern zu finden, die kürzer als 4 Stellen sind.


    Was getan werden muss


    Zunächst muss man den Quellcode anpassen, sodass er natürlich den eigenen Greyhoundserver ansteuert.


    PHP
    1. define('GREYHOUND_HOST', '123.45.678.910'); // Der Hostname oder die IP-Adresse Ihres GREYHOUND
    2. define('GREYHOUND_PORT', 443); // Der Port des HTTP-Servers (81)
    3. define('GREYHOUND_USER', '*******'); // Der Name des Benutzers mit entsprechenden Rechten
    4. define('GREYHOUND_PASS', '******'); // Das Passwort des Benutzers
    5. define('GREYHOUND_SSL', true); // Ist GREYHOUND für die Verwendung von SSL konfiguriert?
    6. define('GREYHOUND_TIMEOUT', 10); // Maximale Wartezeit in Sekunden

    Zeilen 52-57


    Als nächstes müssen die Methoden, welche die Kontakte hinzufügen, oder aktualisieren, angepasst werden. Z.B. sind die Gruppenreferenznummer, Gruppenname, -pfad und das Subjekt bei jedem anders.


    PHP
    1. 'GroupRef' => new xmlrpcval(6, 'i4'), // Gruppenreferenznummer
    2. 'GroupName' => new xmlrpcval('pixi*-Support', 'string'), //Gruppenname
    3. 'GroupPath' => new xmlrpcval('pixi*-Support', 'string'), // Gruppenpfad
    4. 'Subject' => new xmlrpcval('Kundenaktualisierung mittels XML_RPC','string'),

    Zeilen 133-136 & 190-192

    Nun müssen nur noch die Logindaten für die API angepasst werden. Die Config dazu findet man im Ordner config.d -> pixiapi.inc.php

    PHP
    1. $config['pixiapi']['wsdl'] = 'https://pixiDEM:pixidem@ares.api.madgeniuses.net/pixiDEM/?wsdl'; // Pfad zur WSDL
    2. $config['pixiapi']['endpoint'] = 'https://ares.api.madgeniuses.net/pixiDEM/'; // Endpunkt, falls dieser von dem in der WSDL angegebenen abweicht
    3. $config['pixiapi']['username'] = 'pixiDEM'; // Benutzername für den API-Endpunkt
    4. $config['pixiapi']['password'] = 'pixidem'; // Passwort für den API-Endpunkt

    Zeilen 4-7

    Sobald diese Änderungen vorgenommen worden sind, kann man über den Browser ganz einfach die synchronisieren.php aufrufen und über das Eingabefeld, oder einen Klick auf den Kalender den Zeitpunkt eingeben, ab wann die letzten geänderten Kontakte aus pixi* synchronisiert werden sollen.


    Das Script dürft ihr natürlich nach belieben erweitern oder anpassen ;)

    Dateien

    • synccontacts.zip

      (201,97 kB, 319 Mal heruntergeladen, zuletzt: )


    RGB is total confusing - I mean at least #C0FFEE should be brown, right?


    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von jörn@GREYHOUND ()

  • Hallo,


    vielen Lieben Dank für das hilfreiche Skript. Ich denke es wird vielen anderen Entwicklern da draußen helfen, eine Kontaktsynchronisation für ihren eigenen GREYHOUND zu implementieren.


    Ich habe dein Thema mal in das Forum "Hilfe für Entwickler" verschoben und es in diesem und im "Anleitungs- und Dokumentationsforum" gepinnt.

  • Hallo,


    schließe mich der Frage von Martina an. Derzeit schöpfen wir nur 30% des Potentials des GH aus, weil wir niemanden haben, der uns


    a) sagt was möglich ist
    b) das für unseren Bedürfnisse implementiert


    Könnt ihr nicht mal irgendeine (oder mehrer) Agentur an Land ziehen für sowas?

  • Hi,


    ich hab's leider auch noch nicht erfolgreich hinbekommen. Beim Ausführen bekomme ich zwar folgende Meldung:


    Es wurde(n) 0 Kontakt(e) bearbeitet
    Es wurde(n) 31 Kontakt(e) hinzugefügt


    Aber im Greyhound finde ich keine neuen Kontakte. Weiß jemand Rat?


    Beste Grüße
    Lars

  • Ich muss an dieser Stelle leider sagen, dass das Script oben nicht gerade performant ist und auch noch ein paar Fehler beinhaltet. Es ist vielleicht gut sich daran zu orientieren, aber ich kann nicht garantieren dass es in diesem Zustand fehlerfrei funktioniert.


    Ich arbeite derzeit intern an einem aktualisierten Synchronistations-Script. Wenn das soweit abgeschlossen ist werde ich das Script hier auch mal runderneuern.

  • Hallo,


    ich habe das Skript vor ein paar Tagen ebenfalls angeschaut. Das Problem der mir vorliegenden Version war u.a. die fehlende Fehlerüberprüfung.


    Eine sehr gut funktionierende Alternative für den Kontakt Import ist übrigens auch der Weg über den Datenaustausch (Im-/Export von GREYHOUND). Diese Funktion steht ebenfalls über die Schnittstelle zur Verfügung. Das prozedere sieht so aus, dass im Exportsystem mit den Daten eine CSV-Datei generiert wird. Die CSV-Datei wird an einen einmalig zu konfigurierenden Import übergeben und von GREYHOUND vollautomatisch anhand des Fremdschlüssels (z.B. die externe Kundennummer) importiert und aktualisiert. Diese Funktion nutzen wir zum Beispiel für den Import der Kundendaten aus dem GCC in unseren GREYHOUND. Die generierte CSV-Datei enthält dabei jeweils immer nur die Datensätze, welche im GCC seit der letzten Generierung der CSV-Datei geändert wurden. Das Skript läuft alle zwei Minuten, wir haben also immer spätestens 2 Minuten nach Abschluss eines Vertrages die Kundendaten auch in GREYHOUND. Wenn die CSV-Datei keine Daten enthält (weil seit der letzten Generierung nichts geändert wurde) findet auch kein Abgleich mit GREYHOUND statt, weil es ja nichts zu importieren gibt.


    Ich kann das Skript allerdings höchstens zur Ansichtszwecken zur Verfügung stellen. Das System ist mit dem GCC verwoben und ist allein nicht lauffähig.

  • Hallo,


    ich habe hier mal das Skript aus unserem GCC, welches für die Kontaktsynchronisation verwendet wird. Ich möchte aber nochmal ausdrücklich hervorheben, dass das Skript nicht dafür taugt, direkt Kontakte mit pixi zu Synchroniseren. Das Beispiel zeigt die oben angesprochende Variante, die Kontakte via Import-Funktion per CSV zu importieren und zu aktualisieren. Eine Funktionen innerhalb des Skripts (writelog, die Datenbank-Klasse, etc.) zeigen auf Funktionen innerhalb des GCC, es sollte jedoch einfach sein, diese durch ähnliche Funktionen zu ersetzen.

  • Hallo zusammen,
    wir haben eine vorübergehende Möglichkeit geschaffen, mit der man per Cronjob die Kontakte von pixi in eine bestimmte Gruppe inkl. dupletten Überprüfung automatisch importieren kann.


    Wer nicht bis Ende September/Anfang Oktober warten möchte, kann sich gerne bei uns per Mail info@rhinos-media.de oder per Telefon 04163 867 788 2 melden.


    Die manuelle Konfiguration ist schon jetzt möglich liegt vom Aufwand her zwischen 1-2,5 Stunden.


    Ende September/Anfang Oktober stellen wir eine pixi App zur Verfügung in der Sie in nur wenigen Schritten Ihre Kontaktsyncronisation aus pixi heraus ganz einfach und ohne Programmier-/ Serverkenntnisse selber steuern einstellen können.


    Wenn Sie Fragen zur App oder auch schon zur manuellen Integration haben, setzen Sie sich mit uns in Verbindun.
    Gerne können wir auch beim GH-Community Day darüber sprechen. Mein Geschäftpartner Herr Szczudlo und ich werden auch als Gast vor Ort sein.

    Gruß
    Sigmar


    ---------------
    Rhinos Media UG (haftungsbeschränkt) • Issendorfer Weg 7a • 21739 Dollern
    Geschäftsführer: David Szczudlo & Sigmar Kress • Handelsregister: AG Tostedt HRB 202545


    Tel.: 04163 - 867 788 2 • Fax: 04163 - 867 788 3
    info@rhinos-media.dewww.rhinos-media.de

  • Hallo Zusammen!


    Ich bekomme das Script von Floh leider nicht ans Laufen... Es sieht bei mir so aus, wie im Anhang.

    Die App von Pixi und Rhinos Media ist leider nicht mehr im Betrieb und die neue App von Iungo kommt leider frühestens erst Ende März.

    Hat jemand zur Zeit eine funktionierende Lösung zum Synchronisieren der Pixi-Kontakte?


    Vielen Dank im Voraus & beste Grüße aus dem Münsterland :-)