SugarCRM SOAP API: Enable Users Notify

<

p style="text-align:justify;">Le SOAP[1] API[2] messe a disposizione da SugarCRM[3] consentono l’integrazione e l’estensione di altre applicazioni. Non ho nessuna intenzione di trattare i Web Services[4] di SugarCRM, ho invece il desiderio di mostrare come risolvere un problema sollevato da qualche utente del forum di SugarCRM.
La versione di riferimento è la 5.2 di SugarCRM, la versione 5.5 mantiene sempre le stesse Web Services API che sono state razionalizzate e implementate con un nuovo framework.

SugarCRM consente l’invio di notifiche (attraverso l’utilizzo di email) al soggetto cui sono assegnati i record (esempio: Lead, Contatti, Account, etc…), funzionalità che trovo abbastanza utile, peccato che non funzioni nel caso di assegnazioni effettuate attraverso le SOAP API.

Per fare in modo che le notifiche siano inviate anche nel caso in cui le assegnazioni siano compiute attraverso le SOAP API, occorrono appena tre righe di codice da inserire sul file che implementa l’operazione Set Entry[5].

Lo SugarBean[6] implementa un metodo che prende il nome di save, la sua firma prevede un parametro di tipo booleano, questo parametro indica se inviare una notifica all’assegnatario dell’oggetto (nuovo o esistente).

Ritornando alle tre righe di codice, al Listato 1 è mostrata la modifica che occorre apportare al file SoapSugarUsers.php[7] che contiene l’operazione Set Entry.

Listato 1 Modifica dell’operazione Set Entry delle SOAP API

/**
* Update or create a single SugarBean.
* @param String $session -- Session ID returned by a previous call to login.
* @param String $module_name -- The name of the module to return records from.
* @param Array $name_value_list -- The keys of the array are the SugarBean attributes
* @return Array 'id' -- the ID of the bean that was written to (-1 on error)
* 'error' -- The SOAP error if any.
*/
function set_entry($session,$module_name, $name_value_list) {
global $beanList, $beanFiles;

$admin = new Administration();

$admin->retrieveSettings();

$seed->save($admin->settings['notify_on']);
}

Il codice evidenziato al Listato 1 legge dalla configurazione di SugarCRM se le notifiche sono abilitate, il valore è poi passato al metodo save del relativo bean.


[1] SOAP (inizialmente acronimo di Simple Object Access Protocol) è un protocollo leggero per lo scambio di messaggi tra componenti software, tipicamente nella forma di componentistica software. Per maggiori informazioni vedi http://it.wikipedia.org/wiki/SOAP

[2] Le Application Programming Interface API (Interfaccia di Programmazione di un'Applicazione), sono ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per un determinato compito. Per maggiori informazioni vedi http://it.wikipedia.org/wiki/Application_programming_interface

[3] Implementazione Open Source di un sistema di CRM (Customer relationship management). Per maggiori informazioni vedi http://www.sugarcrm.com

[4] Web Service (servizio web) è un sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete. Per maggiori informazioni vedi http://it.wikipedia.org/wiki/Web_service

[5] Documentazione Web Service API di SugarCRM (versione 5.2) http://developers.sugarcrm.com/docs/OS/5.2/-docs-Developer_Guides-Developer_Guide_5.2-DevGuide%205.2.1.33.html

[6] SugarBean Overview http://www.sugarcrm.com/wiki/index.php?title=SugarBean#SugarBean_Overview

[7] Il file si trova in [$rootdir]/soap

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

You may also like...