Beiträge von Floh

    Ok, keine Ahnung warum. Aber wenn ich Greyhound etwas Frage finde ich zu 95% kurz darauf die Lösung.


    Über die Filtereinstellung ContactRef kann man Aufgaben nach Kontakten filtern.


    Problem gelöst :)

    Bin gerade auf was anderes gestoßen. Ich vermute mal, dass es nicht möglich ist, aber vielleicht hat ja jemand eine Idee.


    Ich versuche die Aufgaben von Greyhound für bestimmte Kontakte abzuholen. Ziel ist es dem Kunden eine Webseite zur Verfügung zu stellen, auf der dieser alle Aufgaben mit seinem Status sehen kann.


    Mit der GetList Methode von der RpcItemsLib muss ich einen Filter definieren. Mit dem Filter kann ich jedoch nicht nach Kontakten filtern. Ich hab lediglich die Möglichkeit nach Min- MaxClassified, oder geg. Falls nach dem Subject zu filtern. Alle anderen Filter machen hier denke ich kein Sinn und erwähne sie dementsprechend nicht. An dieser Stelle mal der Link zum Filter und dessen Eigenschaften (Link ).


    Abgesehen davon, dass ich mit Benutzerdefinierten Feldern arbeite, oder mit Regeln, die mir die Aufgaben so modifizieren damit ich sie über den Filter finden kann, gibt es keine Möglichkeit.


    Hat sonst jemand eine Idee, wie man ohne Benutzerdefinierte Felder und Regeln an Aufgaben nach definiertem Kontakt kommt?

    Hi, dieses Thema hat mir selbst schon sehr viel geholfen. Ich möchte an dieser Stelle einhaken und fragen, ob es möglich ist mit Greyhound die neu erstellten E-Mails auch sofort zu versenden, oder müsste man da über eine Regel arbeiten?

    Hi,


    ich versuche derzeit alle Aufgaben eines Kunden über die XML-RPC Schnittstelle aufzurufen. Mein erster Schritt war jetzt erst einmal alle Aufgaben abzuholen und mir später um den Filter gedanken zu machen. Jedenfalls bekomme ich über XML-RPC nicht die Aufgaben, welche ich auch im Greyhound sehe.


    Hier mal ein Bild von den Aufgaben:
    [Blockierte Grafik: http://cloud.screenpresso.com/sL5se/2014-07-29_08h20_50.png]


    Ich bekomme hier 10 Aufgaben angezeigt, sonst sind die übrigen Filter und Gruppen auf "Alle" eingestellt.
    Über die Schnittstelle erhalte ich jedoch 38 Elemente, welche auch nichts mit den oben gezeigten Aufgaben gemeinsam haben.
    Ich erhalte eher Elemente wie "Fax empfangen von +49 123 456 789"


    Mein Code zum Abholen der Aufgaben ist folgender:


    Ich habe fast die Vermutung, dass

    PHP
    1. rpc_itemslib::ikTask

    , nicht den Aufgaben in Greyhound entspricht?

    Hi,


    ich würde gerne über die RPC Schnittstelle, alle Kontakte abholen die vorhanden sind. Dabei interessiert mich nur das Subject und die Werte im Benutzerdefinierten Feld. Ich hab bereits ne Abfrage gebaut, aber bekomme da leider immer ["UserValues"]=> NULL.


    Wisst ihr wie ich an die UserValues rankomme? Wir haben bei uns in Greyhound bei den Kontakten ein extra Feld, dass heißt "Letztes Update im CRM", diesen Wert würde ich gerne mit auslesen.


    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.

    Hi,


    ich hab folgeden Fehler, dass wenn ich RPCItems.Put ausführen will diesen Fehler hier erhalte:Invalid from address (the address is empty).


    Das Array aus dem ich den Inhalt für die einzelnen Felder auslese ist aber befüllt.


    Finde ich recht verwirrent. Gibts ne möglichkeit das xml auszuspucken, so wie es an GH gesendet wird?

    Fehler gefunden ^^


    Der Fehler war, dass ich die experimentelle php Funktion (xmlrpc_encode) die arbeit hab machen lassen, aber diese hat das XML nicht so zusammengebaut, wie GH es gerne hätte.

    Hi,


    ich arbeite derzeit wieder an dem Script für GH über die XML-RPC Schnittstelle, aber ich bekomme leider jedes Mal die Meldung Got error 500, hab aber echt keine Ahnung womit das zusammenhängen könnte.


    Ich habe hier mal nen Teil vom SourceCode angehängt.



    Abfragen wie "RpcItems.GetUserFieldList" funktionieren und ich erhalte auch ein Resultat, also scheint die Verbindung zumindest zu stehen.

    Hallo,


    ich würde gerne wenn ich per XML-RPC neue Kontakte hinzufüge gleich bestimmte ComLinks als bevorzugt setzten. Aktuell hab ich das hier:


    Ich bekomme leider diese Meldung: Fatal error: Call to undefined function newxmlrpcval() in ... (hier wird die erste Zeile mit 'Preferred' angesteuert)


    Mach ich da irgendwas falsch, oder geht das einfach nicht?

    Hi, ich arbeite im Moment mit RpcItems.New. Vor einiger Zeit hat das ganze wunderbar geklappt nur wenn ich jetzt das Script ausführen will bekomme ich die Meldung:
    "You must assign a valid topic."


    Kann man das nicht einfach ignorieren, sodass das Item zu No-Topic hinzugefügt wird?
    Ich hatte auch schon versucht irgendein TopicName und TopicPath anzugeben und hatte gehofft, dass es automatisch eine TopicRef zugewiesen bekommt. Dem ist leider nicht so.

    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

    Hi, ich gehe davon aus, dass man mit RpcItems.Put ein Item überschreiben kann, lieg ich damit richtig?


    Einfach 'ID' => new xmlrpcval(<hier die gewünschte ID>,'i4'), und weiteren Inhalt, den man wünscht zu schreiben und beim ausführen erhält das durch die ID angesteuerte Item dann die im XML_RPC übermittelten Werte und Eigenschaften?


    In der Doku steht leider überhaupt nicht was Put macht, sondern nur das es eine Methode der Klasse.... naja ihr kenn ja den Text.