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...

Cos'è il progetto CIE/CNS Apache Docker - Developers Italia

In questo video https://youtu.be/TcAzn1POhsM introdurrò il progetto CIE/CNS Apache Docker di Developers Italia (https://developers.italia.it/it/cie/#resourcecontent-3) nato circa due anni fa.

L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS.

Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all'interno della TS-CNS o della CIE. La particolarità del sistema implementato (attraverso questo container) è quella di consentire l'autenticazione tramite:

  • La TS-CNS (Tessera Sanitaria - Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  • La CIE (Carta d'Identità Elettronica), rilasciata dal comune di residenza.

Nella versione 2.0.0 il progetto è stato aggiornato per essere uniforme alle linee guida di Bootstrap Italia. A seguire alcune risorse che possono essere utili.

  • Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  • CIE Carta d'Identità Elettronica (https://developers.italia.it/it/cie/)
  • Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaforme/carta-nazionale-servizi)
  • Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  • Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  • Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)