Seite wählen

SugarCRM erweitern

von | Jul 9, 2009 | Development

Im CRM Bereich setzen wir seit vielen Jahre SugarCRM ein und sind damit bisher sehr gut gefahren. Durch die Integration anderer Systeme wie z.B. Starface zum telefonieren oder der Anbindung an unser Ticketsystem zur Ermittlung der Kunden ergeben sich aus der zentralen Bestandsverwaltung viele Vorteile.
Seit der Version 5 verfügt SugarCRM über einen eingebauten Modulebuilder, der auch ohne Programmierung die Erzeugung individueller Module für Sugar erlaubt und deren Erweiterung vereinfacht. Wie im Studio, dass zur Anpassung der bestehenden Standardmodule gedacht ist, sind Felder mit verschiedenen Datentypen erzeugbar und lassen sich anschließend visuell in das vorhandene Layout integrieren. So lassen sich für individuelle Daten sehr einfach Masken zur Datenpflege erzeugen und die entsprechenden Inhalte auch mit anderen Modulen verbinden.
Spannend wird es wenn die entsprechenden Informationen nach Speicherung im Webinterface weiterverarbeitet, berechnet  oder Folgeaktionen eingeleitet werden müssen. SugarCRM Professional verfügt hier zwar über Workflows, der Funktionsumfang ist jedoch in den aktuellen Versionen noch ziemlich eingeschränkt.
Dafür kennt Sugar hier entsprechende Hooks welche sich im Abhängig vom betroffenen Modul und der durchgeführten Aktion aktivieren lassen. Die Erweiterung kann so ohne Veränderung der Originaldaten erfolgen und garantiert einen reibungslosen Update auf kommende Versionen.
Zuerst muss sich der Benutzer klar werden, in welchem Modul und nach welcher Aktion ein entsprechender Hook ausgeführt werden soll und hierfür einen Eintrag in der Datei logic_hooks.php erstellen, welche sich in <sugarcrm-root>/custom/modules befindet.
Ein Beispiel:
[code lang=“php“]$hook_array[‚after_save‘][] = Array(1, ‚create_ticket‘, ‚custom/modules/Accounts/create_ticket_hook.php‘,’create_ticket‘, ‚create_ticket‘);[/code]
Wichtig ist das Keywort „after_save“. Dies gibt an, dass die entsprechende Aktion nach erfolgter Speicherung, also abgeschlossenem Insert in der Datebank erfolgen soll. Im Developer Wiki sind die verfügbaren Aktionen und deren Verfügbarkeit detailliert beschrieben.
Durch den Eintrag dieses Hooks in dem angesprochenen File, wird nach Speicherung in beliebigem Modul die entsprechende PHP-Datei aufgerufen. Innerhalb dieser Datei ist dann die entsprechende Logik zu implementieren.
Ein Beispiel:
[code lang=“php“]debug(&quot;create ticket after account creation.&quot;);
//check for Account module
if($bean-&gt;module_dir == &quot;Account&quot;) {
…. excecute business logic here to create ticket
you can use $bean-&gt;fetched_row[accoutname] for example to receive the given values
}
}
?&gt;[/code]
Wichtig ist die Prüfung auf das entsprechende Modul, da ansonsten jegliche Speicherung die Ausführung dieser Aktion zur Folge hat. Nach Speicherung und aktivierter Einstellung in der hook-Datei ist der entsprechende Code sofort aktiv. Bei Problemen kann der im Beispiel gelistete LoggerManager für Debuggingaufgaben genutzt werden, welcher jedoch ggf. die Anpassung des Loglevels in den Einstellungen voraussetzt, da dieser in der Regel nur Fatale-Fehler protokolliert.
In der SugarCRM Developer Zone findet man weitere Beispiele für die Implementierung dieser Logic Hooks und kann von der großen Community profitieren.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

2 Kommentare

  1. suther

    Welches Ticketsystem nutzt Ihr? Könnt Ihr da eins empfehlen für die Zusammenarbeit mit Sugar?
    Ich würde gerne ein Helpdesk-/Ticketsystem einsetzen, das Kundenanfragen Kanalisiert, und übersichtlich verwaltbar macht.
    Redmine wäre klasse für Projektverwaltung, aber ist meines Wissens nach nicht so optimal für „normale“ Kundenanfragen.
    Wichtig wäre mir auch, dass es sich gut in Sugar integriert.

    Antworten
  2. Bernd Erk

    Wir nutzen den Request Tracker und haben damit sehr gute Erfahrungen gemacht. Wir haben dort viele Funktionen aus Fremdsystemen über Standardadapter angebunden und können bspw. Tickets automatisch Kunden zuschlüsseln.

    Antworten

Trackbacks/Pingbacks

  1. Inhaltsverzeichnis Juli 2009 - Weekly, Twitter, Nagios, Updates, Benachrichtigungen, Development, Serie, Martin - NETWAYS Blog - [...] Twitter Weekly Updates for 2009-07-12 Schorsch und Eric erzählen Installierte Pakete sichern SugarCRM erweitern Umfrage zur Monitoring Conference (OSMC)…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Development

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...

check_prometheus ist jetzt öffentlich verfügbar!

Monitoring ist komplex, das wissen wir hier bei NETWAYS leider zu gut. Deswegen laufen in der Infrastruktur auch mal gerne mehrere Tools für die Überwachung. Zwei gern gesehene Kandidaten sind dabei Icinga und Prometheus. Icinga und Prometheus erfüllen...