Realizzare un’applicazione (semplice) HTML 5 (costruita veramente in dieci minuti) che interagisca con il sistema SugarCRM sfruttando le API REST.
Con gli strumenti adeguati abbiamo avuto modo di costatare come in questi ultimi anni in particolare sia divenuto semplice e quasi immediato realizzare applicazioni web, che interagiscono con servizi prettamente di tipo REST per attingere ai dati. L’utilizzo di framework commisurati al progetto influisce positivamente sul risparmio di tempo necessario per l’implementazione, non considerando ovviamente il tempo necessario per l’apprendimento dell’uso dello strumento.
La distribuzione Liferay di default prevede l’utilizzo del data base HSQL (Hypersonic) per la persistenza dei dati. L’utilizzo di questo tipo di data base in ambienti di produzione non è però consigliato.
Nel corso di quest’articolo vedremo Step-by-Step come configurare il data base PostgreSQL per la persistenza dei dati di Liferay. Non saranno affrontanti temi di tuning e performance riguardo questa tipologia di configurazione.
Nel corso di quest’articolo vedremo come sia possibile sfruttare il Service Builder (Liferay Inc., 2014) per creare dei servizi da esporre all’esterno non direttamente collegati all’entità gestiste dallo specifico plugin.
Quello che vogliamo ottenere è quindi un servizio personalizzato chiamato Custom Users Service disponibile pubblicamente e che sfrutti i servizi core del portale. In questo particolare scenario vogliamo fare in modo che il servizio Custom Users Service, esponga un metodo che ritorni al consumer del servizio, la lista di utenti taggati con un determinato tag (Liferay Inc., 2014).
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.Antonio Musarra
Questo corposo articolo illustra in modo pratico come utilizzare lo strumento Scheduler di SugarCRM per implementare un caso d'integrazione dove due sistemi (uno dei quali è SugarCRM) scambiano un flusso dati XML all’interno del quale viaggiano i dati degli accounts che devono essere aggiornati o inseriti sul sistema di CRM.
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
In ambienti di tipo enterprise è ormai consuetudine consegnare “chiavi in mano” l’ambiente di sviluppo per il progetto al team di sviluppo. La standardizzazione degli ambienti di sviluppo e la produzione degli stessi tramite meccanismi d’automazione, aumenta l’affidabilità e sicurezza degli ambienti oltre che rendere più veloci i cicli di sviluppo e rilascio.
Nella fase di startup di un recente progetto ho dedicato la mia attenzione alla progettazione e realizzazione dell’architettura HA per SugarCRM. Una delle fasi del progetto prevedeva l’installazione di SugarCRM su un determinato stack software in linea con quanto indicato sul documento SugarCRM Supported Platforms, quest’operazione è stata “tradotta” poi con il build di una virtual appliance adatta a ospitare l’ambiente di sviluppo per SugarCRM 7.2 (nelle versioni commerciali attuali).
Nel corso di quest’articolo vedremo quindi le caratteristiche della virtual appliance realizzata per l’ambiente di sviluppo SugarCRM e come ottenere la stessa per importarla sul vostro ambiente virtualizzazione.
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
Nel corso di quest'articolo vedremo come sia semplice e immediato utilizzare i Web Services di Liferay per importare una lista di utenti da un foglio Excel.
Esistono in giro soluzioni Open Source di ogni tipo che implementano Enterprise Service Bus (ESB), Liferay ha preferito non integrare al suo interno una delle soluzioni esistenti (il più delle volte pensanti) in favore di un proprio “piccolo message bus” che fosse in grado di far comunicare in modo semplificato i componenti del portale tramite lo scambio di messaggi. La versione 6.1 di Liferay ha migliorato di molto il Message Bus introducendo un più ricco insieme di service API che facilitano lo scambio dei messaggi tra le portlet e in generale tra i plugins.
In questo breve articolo vedremo come sia possibile e semplice utilizzare le API di Pentaho Data Integration (Kettle) per eseguire dei Job in precedenza progettati con il designer Spoon . Non sarà oggetto di trattazione dell’articolo la parte di design che riguarda sia le Trasformazioni sia i Job. L’articolo è rivolto a chi già possiede buone conoscenze di base dell’architettura e del funzionamento di Kettle.
La distribuzione Liferay di default prevede l’utilizzo del data base HSQL (Hypersonic) per la persistenza dei dati. L’utilizzo di questo tipo di data base in ambienti di produzione non è però consigliato.
Nel corso di quest’articolo vedremo Step-by-Step come configurare il data base PostgreSQL per la persistenza dei dati di Liferay. Non saranno affrontanti temi di tuning e performance riguardo questa tipologia di configurazione.
Nel corso di quest’articolo vedremo come sia possibile sfruttare il Service Builder (Liferay Inc., 2014) per creare dei servizi da esporre all’esterno non direttamente collegati all’entità gestiste dallo specifico plugin.
Quello che vogliamo ottenere è quindi un servizio personalizzato chiamato Custom Users Service disponibile pubblicamente e che sfrutti i servizi core del portale. In questo particolare scenario vogliamo fare in modo che il servizio Custom Users Service, esponga un metodo che ritorni al consumer del servizio, la lista di utenti taggati con un determinato tag (Liferay Inc., 2014).
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.Antonio Musarra
Questo corposo articolo illustra in modo pratico come utilizzare lo strumento Scheduler di SugarCRM per implementare un caso d'integrazione dove due sistemi (uno dei quali è SugarCRM) scambiano un flusso dati XML all’interno del quale viaggiano i dati degli accounts che devono essere aggiornati o inseriti sul sistema di CRM.
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
In ambienti di tipo enterprise è ormai consuetudine consegnare “chiavi in mano” l’ambiente di sviluppo per il progetto al team di sviluppo. La standardizzazione degli ambienti di sviluppo e la produzione degli stessi tramite meccanismi d’automazione, aumenta l’affidabilità e sicurezza degli ambienti oltre che rendere più veloci i cicli di sviluppo e rilascio.
Nella fase di startup di un recente progetto ho dedicato la mia attenzione alla progettazione e realizzazione dell’architettura HA per SugarCRM. Una delle fasi del progetto prevedeva l’installazione di SugarCRM su un determinato stack software in linea con quanto indicato sul documento SugarCRM Supported Platforms, quest’operazione è stata “tradotta” poi con il build di una virtual appliance adatta a ospitare l’ambiente di sviluppo per SugarCRM 7.2 (nelle versioni commerciali attuali).
Nel corso di quest’articolo vedremo quindi le caratteristiche della virtual appliance realizzata per l’ambiente di sviluppo SugarCRM e come ottenere la stessa per importarla sul vostro ambiente virtualizzazione.
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
Nel corso di quest'articolo vedremo come sia semplice e immediato utilizzare i Web Services di Liferay per importare una lista di utenti da un foglio Excel.
Esistono in giro soluzioni Open Source di ogni tipo che implementano Enterprise Service Bus (ESB), Liferay ha preferito non integrare al suo interno una delle soluzioni esistenti (il più delle volte pensanti) in favore di un proprio “piccolo message bus” che fosse in grado di far comunicare in modo semplificato i componenti del portale tramite lo scambio di messaggi. La versione 6.1 di Liferay ha migliorato di molto il Message Bus introducendo un più ricco insieme di service API che facilitano lo scambio dei messaggi tra le portlet e in generale tra i plugins.
In questo breve articolo vedremo come sia possibile e semplice utilizzare le API di Pentaho Data Integration (Kettle) per eseguire dei Job in precedenza progettati con il designer Spoon . Non sarà oggetto di trattazione dell’articolo la parte di design che riguarda sia le Trasformazioni sia i Job. L’articolo è rivolto a chi già possiede buone conoscenze di base dell’architettura e del funzionamento di Kettle.
L’articolo intende comunicare le informazioni base che riguardano gli hooks favorendo l’aspetto reale, in altre parole, far capire a cosa servono tramite l’esposizione e realizzazione di un caso di studio quanto più possibile vicino al reale. Sarà quindi presentato un caso d’integrazione che farà uso degli hooks, toccando i vari aspetti di personalizzazione. L’articolo sarà suddiviso in più episodi per evitare una “sbrodolata” d’informazione e rendere più efficace l’assimilazione di quanto esposto.
Nel corso di queste poche righe vedremo quindi come sia possibile e semplice mettere SugarCRM proprio “dentro” Liferay. Ipotizzando uno scenario dove Liferay implementa un portale operativo da cui è possibile accedere a informazioni e procedure di un’ipotetica azienda, non sarebbe una cosa fuori dal comune, consentire l’accesso al CRM direttamente dal portale senza essere obbligati a dover aprire una nuova finestra del browser evitando anche la ripetizione dell’autenticazione.
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
Non sapete come realizzare un client SOAP in OSGi Style su Liferay 7?La risposta è il framework Apache CXF installato a bundle e poi OSGi Service Pattern.
Nel corso di quest’articolo vedremo come realizzare un client Java per accedere alle informazioni registrate sul sistema di CRM, vedremo inoltre come realizzare una semplice applicazione Java che utilizzerà il client per eseguire una serie di operazioni elementari come: login, creazione di un nuovo contatto e recupero dati. Il sistema SugarCRM (SugarCRM Inc., 2004) espone all’esterno delle interfacce per l’accesso ai dati, queste interfacce supportano il protocollo SOAP e REST (SugarCRM Inc., 2010). La versione di SugarCRM cui faremo riferimento durante l’intero articolo è la 6.1 Community Edition (SugarCRM Inc., 2010).
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
Nel corso di quest’articolo vedremo come realizzare un client .NET per accedere alle informazioni registrate sul sistema di CRM e sfruttare il client come base per la realizzazione di una semplice applicazione .NET C# che sia in grado di eseguire una serie di operazioni elementari come: login, creazione di un nuovo contatto e recupero dati.
Il documento illustra la procedura d’installazione e configurazione del Plugin Joomla chiamato J‐SugarCRM UserSync, per poi continuare con una sezione dedicata alla guida utente, quest’ultima
parte illustra quali sono le capacità aggiunte a Joomla dall’installazione del
Plugin.
Le novità introdotte in TYPO3 CMS 7.3, nuova versione rilasciata il 16 giugno 2015.
A voi i commenti sulle nuove funzionalità introdotte, in attesa del rilascio LTS definitivo, che renderà questo cms ancora più veloce e stabile.
In questo breve articolo vedremo come sia possibile e semplice utilizzare le API di Pentaho Data Integration (Kettle) per eseguire dei Job in precedenza progettati con il designer Spoon . Non sarà oggetto di trattazione dell’articolo la parte di design che riguarda sia le Trasformazioni sia i Job. L’articolo è rivolto a chi già possiede buone conoscenze di base dell’architettura e del funzionamento di Kettle.
Durante lo sviluppo e test di un plugin per Spoon, che ricordo essere l’ambiente dedicato al disegno dei processi ETL di Kettle, potrebbe essere utile avviare delle sessioni di debug utili per l’individuazione di eventuali errori (bug) rilevati. In questo breve articolo vedremo come sia possibile per un plugin Kettle, avviare una sessione di debug dal nostro ambiente di sviluppo, che ipotizziamo, essere Eclipse.
Come integrare Salesforce.com nel contesto OSGi di Liferay 7. Nel corso di questa presentazione (tenuta al #LRUGItaly 2017 di Bologna) sarà illustrata una soluzione d'integrazione di Salesforce.com tramite le API SOAP nel contesto OSGi di Liferay (e non solo, vedi Apache Karaf).
Un breve talk per introdurre ad alcune funzioni native di Joomla! ( e del suo framework ) che ci permettono di riconsiderare il CMS a liverllo di sviluppo.
All’interno del ciclo di vita di un progetto software reputo importante la percentuale di tempo dedicata a redigere la documentazione di progetto, a volte, anzi direi molto di frequente la percentuale di tempo dedicata a quest’attività, è intorno allo zero.
L’articolo intende comunicare le informazioni base che riguardano gli hooks favorendo l’aspetto reale, in altre parole, far capire a cosa servono tramite l’esposizione e realizzazione di un caso di studio quanto più possibile vicino al reale. Sarà quindi presentato un caso d’integrazione che farà uso degli hooks, toccando i vari aspetti di personalizzazione. L’articolo sarà suddiviso in più episodi per evitare una “sbrodolata” d’informazione e rendere più efficace l’assimilazione di quanto esposto.
Nel corso di queste poche righe vedremo quindi come sia possibile e semplice mettere SugarCRM proprio “dentro” Liferay. Ipotizzando uno scenario dove Liferay implementa un portale operativo da cui è possibile accedere a informazioni e procedure di un’ipotetica azienda, non sarebbe una cosa fuori dal comune, consentire l’accesso al CRM direttamente dal portale senza essere obbligati a dover aprire una nuova finestra del browser evitando anche la ripetizione dell’autenticazione.
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
Non sapete come realizzare un client SOAP in OSGi Style su Liferay 7?La risposta è il framework Apache CXF installato a bundle e poi OSGi Service Pattern.
Nel corso di quest’articolo vedremo come realizzare un client Java per accedere alle informazioni registrate sul sistema di CRM, vedremo inoltre come realizzare una semplice applicazione Java che utilizzerà il client per eseguire una serie di operazioni elementari come: login, creazione di un nuovo contatto e recupero dati. Il sistema SugarCRM (SugarCRM Inc., 2004) espone all’esterno delle interfacce per l’accesso ai dati, queste interfacce supportano il protocollo SOAP e REST (SugarCRM Inc., 2010). La versione di SugarCRM cui faremo riferimento durante l’intero articolo è la 6.1 Community Edition (SugarCRM Inc., 2010).
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
Nel corso di quest’articolo vedremo come realizzare un client .NET per accedere alle informazioni registrate sul sistema di CRM e sfruttare il client come base per la realizzazione di una semplice applicazione .NET C# che sia in grado di eseguire una serie di operazioni elementari come: login, creazione di un nuovo contatto e recupero dati.
Il documento illustra la procedura d’installazione e configurazione del Plugin Joomla chiamato J‐SugarCRM UserSync, per poi continuare con una sezione dedicata alla guida utente, quest’ultima
parte illustra quali sono le capacità aggiunte a Joomla dall’installazione del
Plugin.
Le novità introdotte in TYPO3 CMS 7.3, nuova versione rilasciata il 16 giugno 2015.
A voi i commenti sulle nuove funzionalità introdotte, in attesa del rilascio LTS definitivo, che renderà questo cms ancora più veloce e stabile.
In questo breve articolo vedremo come sia possibile e semplice utilizzare le API di Pentaho Data Integration (Kettle) per eseguire dei Job in precedenza progettati con il designer Spoon . Non sarà oggetto di trattazione dell’articolo la parte di design che riguarda sia le Trasformazioni sia i Job. L’articolo è rivolto a chi già possiede buone conoscenze di base dell’architettura e del funzionamento di Kettle.
Durante lo sviluppo e test di un plugin per Spoon, che ricordo essere l’ambiente dedicato al disegno dei processi ETL di Kettle, potrebbe essere utile avviare delle sessioni di debug utili per l’individuazione di eventuali errori (bug) rilevati. In questo breve articolo vedremo come sia possibile per un plugin Kettle, avviare una sessione di debug dal nostro ambiente di sviluppo, che ipotizziamo, essere Eclipse.
Come integrare Salesforce.com nel contesto OSGi di Liferay 7. Nel corso di questa presentazione (tenuta al #LRUGItaly 2017 di Bologna) sarà illustrata una soluzione d'integrazione di Salesforce.com tramite le API SOAP nel contesto OSGi di Liferay (e non solo, vedi Apache Karaf).
Un breve talk per introdurre ad alcune funzioni native di Joomla! ( e del suo framework ) che ci permettono di riconsiderare il CMS a liverllo di sviluppo.
All’interno del ciclo di vita di un progetto software reputo importante la percentuale di tempo dedicata a redigere la documentazione di progetto, a volte, anzi direi molto di frequente la percentuale di tempo dedicata a quest’attività, è intorno allo zero.
Ti hanno sempre detto che per creare dei processi bisogna scrivere codice?! Nel corso di questa live cercherò di mostrarvi come, grazie all'utilizzo di Azure Logic Apps, potete cominciare a crearli in modalità No-Code.
Le Azure Logic App sono un servizio offerto da Microsoft e presente sul proprio cloud: tramite una serie di "blocchi" potrete definire flussi, controlli e connettori semplicemente con un click da interfaccia visuale. Non dovrete scrivere del codice (se non poco e in modalità guidata) per raggiungere il vostro obiettivo!
Non passerò il tempo della live con tutta teoria. Vi mostrerò come creare, costruire , modificare e "sbagliare" una Logic App. Poco dopo, vi mostrerò una mia Logic App che opera su OneDrive introducendo in questo modo il concetto dei connettori per accedere a sistemi diversi.
Certo, sicuramente quello che vedremo un programmatore lo può scrivere via codice. Però perché escludere la possibilità di raggiungere certi obiettivi non utilizzando la programmazione?! Questo non vuol dire che il mondo del coding e quello delle Logic Apps siano incompatibili. Possono interagire benissimo tra di loro ed essere scambiati a piacere!
Ora – se volete conoscere il No-Code su Azure – non vi resta che unirvi alla live per avere una visione alternativa (e per tutti) alla programmazione.
Slides dalle lezioni del corso di Strumenti e applicazioni del Web per il corso di laurea magistrale in Teoria e tecnologia della comunicazione - Università di Milano Bicocca - Prof.R.Polillo (a.a.2014-15) - Lezione del 18 marzo 2015
Introduction to Blazor and WebAssembly in Christmas sauce. In this session we will see how to create a small demonstration application to send Christmas greetings.
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
Vedremo come installare step-by-step TIBCO Jasper Reports Server 7.5 Community Edition su RedHat JBoss EAP 7.2, utilizzando CentOS 8.1 come sistema operativo e PostgreSQL come database server.
In questo tutorial vedremo come affrontare l'installazione di Jasper Reports Server senza l'ausilio dell'installer; questa è l'opzione solitamente adottata in ambiti enterprise.
I punti salienti di questo tutorial sono:
1. Quali sono i requisiti software
2. Quali sono i requisiti hardware
3. Download del software
4. Layout d’installazione
5. Installazione di OpenJDK 11
6. Installazione di PostgreSQL 10
7. Installazione di JBoss EAP 7.2.0
8. Configurazione & Installazione di Jasper Reports Server
9. Configurazione di JBoss EAP 7.2.0
10. Start di Jasper Reports Server
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
Nel corso di questo tutorial, vedremo come installare Liferay Portal 7.2 GA2 Community Edition su WildFly 16 con il supporto verso Oracle Database 19c.
Il supporto per WildFly 16 è stato aggiunto da Liferay 7.1 (vedi Matrice di Compatibilità -https://www.liferay.com/documents/10182/246659966/Liferay+DXP+7.1+Compatibility+Matrix.pdf/c8805b72-c693-1f26-3f2d-731ffc301366).
Il supporto per Oracle Database 19c è disponibile dalla versione 7.0 di Liferay.
Il repository GitHub liferay-portal-72-wildfly-16 (https://github.com/amusarra/liferay-portal-72-wildfly-16) contiene il layout d'installazione e i file di configurazione di Liferay e WildFly.
Nel caso in cui non abbiate un'istanza Oracle Database 19c disponibile, potreste creare la vostra da zero, per questo v'invito a leggere l'articolo How to setup Docker container Oracle Database 19c for Liferay Development Environment (http://bit.ly/2UlwRBN).
Potete guardare il video tutorial direttamente dal mio canale YouTube https://youtu.be/u4tOg5sFulY
Non esitate al lasciare i vostri feedback su questo tutorial e vi aspetto sul mio blog Antonio Musarra's Blog (https://www.dontesta.it).
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
In questo eBook sarà affrontato un argomento legato alla sicurezza che riguarda il come rendere sicure le connessioni HTTP attraverso il protocollo SSL/TLS (da ora in avanti TLS). Questo aspetto di sicurezza non è strettamente legato a Liferay, infatti non esiste nessun riferimento sulla LDN, riguarda invece l’infrastruttura dove il portale Liferay è collocato.
Il percorso che seguiremo nel corso di questo eBook per raggiungere il nostro obiettivo, sarà così organizzato:
1. Gestione dei certificati
2. Configurazione del protocollo TLS
3. Configurazione del portale Liferay (sia Apache Tomcat sia WildFly)
Come installare Liferay 7 su JBOSS EAP con il supporto Oracle DatabaseAntonio Musarra
Nel corso di questa guida vedremo come installare Liferay 7 Community Edition su JBOSS EAP 6.4 con il supporto a Oracle Database. Chi di voi mi segue sul mio blog, saprà che subito dopo l’uscita della prima GA di Liferay 7 ho aggiunto il supporto per Oracle Database rimosso dalla Community Edition da Liferay.
1. Repository liferay-7-jboss-eap-home con la struttura e file di configurazione di Liferay e JBOSS EAP 6.4.0.GA -https://github.com/amusarra/liferay-7-jboss-eap-home
2. Liferay 7 Wildfly: How to add support for Oracle DB - Antonio Musarra’s Blog YouTube Channel - https://www.youtube.com/watch?v=7fojCjko7Ac
Allo User Group Italiano su Liferay di Bologna: Overview del futuro prossimo su Liferay.
OSGi (Open Service Gateway Initiative) è una specifica che permette di costruire applicazioni modulari a componenti (i Bundle) e che introduce una programmazione Service Oriented, permettendo una separazione tra interfaccia ed implementazione molto più rigorosa di quella nativa Java. Esistono diverse implementazioni (container) di OSGi, conformi alle specifiche.
In this article I will show how to make/build/implement a Java due to access to the informations recorded on the CRM system, I will show also how to implement a simple Java application capable to use that client in order to execute some basic operations such as: login, contact creation, data retrieval. SugarCRM system (SugarCRM Inc., 2004) exposes to external systems some interface services for data access that support SOAP and REST protocols (SugarCRM Inc., 2010). SugarCRM version taken as reference here is Community Edition 6.1 (SugarCRM Inc., 2010).
During this article we will see how to make a .NET client to access the information recorded on the CRM system and use the client as the basis for the realization of a simple application .NET C# that is able to perform a series of elementary operations as: login, create a new contact and retrieve data.
The document discusses configuring an Oracle database instance on a server called "liferay-portal-db-1" for use with a Liferay portal installation. It creates a new tablespace and user for Liferay data, grants privileges to the user, and configures the Liferay database pool to connect to this Oracle database using the new user. It also shows the Oracle listener and connections being established from the Liferay front-end server.
This document provides information and configuration steps for setting up single sign-on (SSO) via SAML between SugarCRM and an identity provider. It includes details on the SAML authentication request generated by SugarCRM and the response from the identity provider. Code snippets and diagrams are included to illustrate the SSO process and configuration parameters.
Il documento illustra in modo semplice com'è stato realizzato il plugin sfruttando il framework messo a disposizione da Joomla. Sono inoltre affrontati i temi che riguardano l'integrazione con il sistema di CRM Open Source SugarCRM.
Le lettura del documento potrebbe essere fruttuosa per coloro che volessero approfondire il funzionamento dei Plugin di Joomla e l'integrazione con altri sistemi fruttando il protocollo SOAP.
SugarCRM REST API: Un’applicazione in appena dieci minuti
1. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
1
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
SugarCRM
REST
API:
Un’applicazione
in
appena
dieci
minuti
Mi
capita
abbastanza
spesso
di
navigare
e
rispondere
a
quesiti
posti
sul
portale
Stack
Overflow1.
In
una
passata
recente
sera,
mi
sono
imbattuto
su
una
questione
cui
ho
risposto
e
in
seguito
preso
spunto
per
quest’articolo.
La
domanda2
posta
su
Stack
Overflow
da
cui
ho
preso
spunto
recita
esattamente:
“I
am
trying
to
login
to
SugarCRM
using
jQuery
and
Sugar
REST
API
and
i
want
to
create
a
html
5
app
please
tell
me
how
to
authenticate
to
sugarCRM
in
my
html
file.”
Da
questa
domanda
è
nato
quasi
immediatamente
il
titolo
dell’articolo
che
sintetizza
ciò
che
poi
sarà
il
risultato
finale
dell’idea,
in
altre
parole,
realizzare
un’applicazione
(semplice)
HTML
5
(costruita
veramente
in
dieci
minuti)
che
interagisca
con
il
sistema
SugarCRM
sfruttando
le
API
REST;
in
un
certo
senso
ho
appena
espresso
un
requisito
utente.
Il
risultato
finale
della
nostra
applicazione
sarà
simile
a
quanto
indicato
nel
mockup
di
Figura
1.
Figura
1
Mockup
dell’applicazione
HTML
5
SugarCRM
REST
API
Application.
1
Stack
Overflow
è
un
sito
web
che
fa
parte
della
rete
Stack
Exchange
in
cui
si
possono
porre
domande
riguardo
a
vasti
argomenti
di
programmazione.
2
I
dettagli
sulla
domanda
SugarCRM
REST
API
and
jquery
mobile
sono
disponibili
all’URL
2
I
dettagli
sulla
domanda
SugarCRM
REST
API
and
jquery
mobile
sono
disponibili
all’URL
http://stackoverflow.com/questions/20904378/sugarcrm-‐rest-‐api-‐and-‐jquery-‐mobile
2. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
2
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
1. Da
dove
partire?
Il
titolo
del
paragrafo
è
proprio
il
classico
bel
domandone,
la
prima
domanda
che
sicuramente
tutti
pongono
a
se
stessi
nel
momento
in
cui
si
parte
con
un
progetto
nuovo.
Non
vorrei
porre
troppa
attenzione
al
codice
necessario
per
realizzare
l’applicazione,
al
contrario,
ritengo
più
importante
fare
insieme
la
lista
di
quali
sono
gli
strumenti
fondamentali
da
mettere
nella
propria
borsa
degli
attrezzi
per
l’implementazione
di
questo
requisito.
Generalmente
tra
gli
strumenti
che
consentono
di
realizzare
un
progetto
è
possibile
annoverare
i
seguenti
elementi:
• Linguaggi;
• Tecnologie;
• Framework.
Il
titolo
del
requisito
stesso
contiene
già
molti
indizi
che
ci
consentono
di
fare
uno
schema
del
genere:
• L’applicazione
deve
essere
in
HTML
5:
o HTML
5
è
linguaggio
base
per
la
realizzazione
della
struttura
per
la
nostra
applicazione;
o CSS3
è
la
base
per
lo
style
che
la
nostra
applicazione
deve
avere.
• L’applicazione
deve
interagire
con
alcuni
servizi
REST
esposti
da
SugarCRM:
o Java
Script
è
il
linguaggio
con
cui
si
scriverà
il
codice
necessario
per
interagire
con
i
servizi
REST
di
SugarCRM;
o Ajax
è
la
tecnologia
alla
base
dell’interazione
tra
la
nostra
applicazione
HTML
5
e
i
servizi
remoti
REST
di
SugarCRM.
Ci
siamo
quasi.
Lo
schema
di
dettaglio
precedente
riporta
le
chiavi
linguaggi
e
tecnologie,
all’appello
sono
però
ancora
assenti
questi
benedetti
(e
lo
sono
davvero)
framework.
Per
questi
ultimi
attrezzi
ho
deciso
mettere
dentro
due
“grandi
nomi”:
• Bootstrap:
è
possibile
affermare
che
sia
il
re
dei
framework
per
lo
sviluppo
d’interfacce
web
e
lo
standard
di
fatto
come
punto
di
partenza
per
la
realizzazione
di
template
HTML
preconfezionati,
soprattutto
in
ottica
del
Responsive
Web
Design
(RWD).
Nel
nostro
caso
frutteremo
quindi
le
basi
di
questo
framework
per
costruire
con
pochissimo
sforzo
il
layout
della
nostra
applicazione;
• jQuery:
è
il
più
popolare
framework
Java
Script
cross-‐browser
che
si
propone
come
obiettivo
quello
di
semplificare
la
programmazione
lato
client
di
applicazioni
HTML.
Nel
nostro
caso
sfrutteremo
principalmente
il
componente
Ajax
responsabile
del
colloquio
tra
la
nostra
applicazione
e
i
servizi
remoti
REST
di
SugarCRM.
3. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
3
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Molto
bene,
direi
che
la
nostra
borsa
degli
attrezzi
è
completa
da
poter
consentire
l’avvio
dell’implementazione
del
progetto.
In
Tabella
1
ho
indicato
il
riepilogo
degli
strumenti
necessari
per
l’implementazione
del
progetto.
Nome
Applicazione
SugarCRM
REST
API
Application
Tipo
Client
Side
(via
Browser
Web)
Linguaggi
HTML
5/CSS3/Java
Script
Tecnologie
Ajax,
REST
Framework
Bootstrap,
jQuery
Core,
jQuery
UI
Tabella
1
Caratteristiche
tecniche
dell’applicazione
da
realizzare.
In
linea
generale
l’utilizzo
di
strumenti
adeguati
per
la
realizzazione
di
un
progetto,
consente
il
raggiungimento
dell’obiettivo
nel
minor
tempo
possibile
aumentando
la
qualità
del
progetto
stesso
soprattutto
in
termini
di
manutenibilità.
2. Interazione
con
i
servizi
REST
I
dati
della
nostra
applicazione
d’esempio
provengono
dal
sistema
SugarCRM,
richiesti
tramite
l’interfaccia
REST
(SugarCRM)
che
SugarCRM
pubblicamente
espone.
I
requisiti
della
nostra
applicazione
riguardo
all’accesso
ai
dati
di
SugarCRM
sono
i
seguenti:
• Login
sul
sistema
SugarCRM
su
base
Username
e
Password;
• Visualizzazione
d’informazioni
circa
il
sistema
SugarCRM
cui
si
compie
la
connessione;
• Visualizzazione
di
una
serie
di
dati
riguardante
l’utente
che
ha
eseguito
l’accesso
a
SugarCRM;
• Visualizzazione
delle
attività
(calls,
task,
opportunities)
in
carico
all’utente
che
ha
eseguito
l’accesso
a
SugarCRM:
o Per
ogni
attività
deve
essere
possibile
aprire
il
dettaglio
direttamente
dall’interfaccia
di
SugarCRM
e
senza
eseguire
nuovamente
l’accesso.
Le
informazioni
estratte
da
SugarCRM
saranno
visualizzate
tramite
l’ausilio
del
modulo
UI
widgets
accordion (The jQuery Foundation., 2014).
I
dati
che
i
servizi
REST
restituisco,
sono
in
formato
JSON
(ECMA International, 2013).
Le
chiamate
alle
“operazioni”
REST
(SugarCRM)
che
l’applicazione
indirizza
a
SugarCRM
(via
Ajax)
sono
le
seguenti:
• login(user_auth,
application_name,
name_value_list)
4. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
4
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
• get_server_info()
• get_entry(session,module_name,
id,
select_fields,
link_name_to_fields_array,
track_view)
• seamless_login(session)
• get_upcoming_activities(session)
Le
figure
a
seguire
mostrano
l’applicazione
appena
realizzata
in
esecuzione,
dove
sono
evidenti
i
requisiti
implementati
definiti
in
precedenza.
L’applicazione
visualizzata
nelle
figure
che
seguono
è
in
esecuzione
su
di
un
iPad
e
come
potete
vedere
non
sono
evidenziati
problemi
di
visualizzazione,
questa
possibilità
è
gratuitamente
offerta
dal
framework
Bootstrap
grazie
al
pieno
supporto
del
Responsive
Web
Design
(RWD),
e
noi
evitiamo
di
scrivere
noiose
righe
di
codice.
L’applicazione
realizzata
è
disponibile
live
e
raggiungibile
all’indirizzo
http://amusarra.github.io/Project/SugarCRM/REST/ClientApplication/HTMLSug
arCRMRESTApplication.html
L’istanza
SugarCRM
di
riferimento
(Community
Edition
6.5
su
PostgreSQL)
a
cui
l’applicazione
si
connette
è
live
e
raggiungibile
all’indirizzo
http://sugarcrmpgsql-‐shiruslabs.rhcloud.com
Figura
2
Errore
durante
l’accesso
a
SugarCRM
(fase
di
login).
5. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
5
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
3
Accesso
a
SugarCRM
avvenuto
con
successo.
Figura
4
Visualizzazione
delle
informazioni
di
sistema
cui
si
è
connessi.
6. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
6
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
5
Visualizzazione
delle
informazioni
sull’utente
che
ha
eseguito
l’accesso.
Figura
6
Visualizzazione
delle
attività
in
carico
all’utente
che
ha
eseguito
l’accesso
a
SugarCRM.
7. Antonio
Musarra's
Blog
Document Revision:1.0-IT
The
ideal
solution
for
a
problem
Blog:
http://www.dontesta.it
LinkedIn:
http://it.linkedin.com/in/amusarra
Google+:
https://plus.google.com/+AntonioMusarra
Mail:
antonio.musarra@gmail.com
09/04/14
7
This
document
is
issued
with
license
Creative
Commons
Attribution-‐NonCommercial-‐ShareAlike
Figura
7
Accesso
alla
visualizzazione
della
scheda
di
dettaglio
da
My
Upcoming
Activities.
3. Conclusioni
Con
gli
strumenti
adeguati
abbiamo
avuto
modo
di
costatare
come
in
questi
ultimi
anni
in
particolare
sia
divenuto
semplice
e
quasi
immediato
realizzare
applicazioni
web,
che
interagiscono
con
servizi
prettamente
di
tipo
REST
per
attingere
ai
dati.
L’utilizzo
di
framework
commisurati
al
progetto
influisce
positivamente
sul
risparmio
di
tempo
necessario
per
l’implementazione,
non
considerando
ovviamente
il
tempo
necessario
per
l’apprendimento
dell’uso
dello
strumento.
La
stesura
di
quest’articolo
ha
però
richiesto
più
dieci
minuti,
tempo
sicuramente
ben
speso.
Bibliography
ECMA
International.
(2013,
October).
ECMA-‐404
The
JSON
Data
Interchange
Standard.
ECMA-‐404
The
JSON
Data
Interchange
Standard
.
SugarCRM.
(s.d.).
Method
Calls.
Tratto
da
SugarCRM
Support
Portal:
http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_D
eveloper_Guide_6.5/02_Application_Framework/Web_Services/05_Method_Calls
/
SugarCRM.
(s.d.).
Web
Services.
Tratto
da
SugarCRM
Support
Portal:
http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_D
eveloper_Guide_6.5/02_Application_Framework/Web_Services/
The
jQuery
Foundation.
(2014).
Accordion.
Tratto
da
JQuery
User
Interface
(UI):
http://jqueryui.com/accordion/