Un CRM dentro un CMS v1.0
Upcoming SlideShare
Loading in...5
×
 

Un CRM dentro un CMS v1.0

on

  • 869 views

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

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.

Statistics

Views

Total Views
869
Views on SlideShare
868
Embed Views
1

Actions

Likes
1
Downloads
11
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Un CRM dentro un CMS v1.0 Un CRM dentro un CMS v1.0 Document Transcript

  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com    Un  CRM  dentro  un  CMS   Certamente  il  titolo  dell’articolo   può  sembrare  un  po’  bizzarro  ma  non  ho  trovato   titolo   migliore.   Avrei   potuto   dare   un   titolo   del   tipo   “Integrazione   tra  CRM….”   che   a   mio   avviso   per   il   tipo   di   soluzione   descritta   nel   corso   di  quest’articolo,  non  si  configura  una  vera  integrazione.         Inizierei  specificando  meglio  i  soggetti  del  titolo  attribuendogli  un  nome.  I  protagonisti   sono,   SugarCRM   che   implementa   per   l’appunto   un   sistema   di  Customer   Relationship   Management   (abbreviato   in   CRM)   e   Liferay   che   invece  implementa  un  sistema  di  Content  Management  System  (abbreviato  in  CMS).     Stiamo  attraversando  una  fase  dov’è  richiesta  sempre  di  più  l’integrazione  tra  i  più  disparati  sistemi  informativi  che  coprono  responsabilità  diverse,  è  come  fare  un  puzzle,  unire  insiemi  pezzi  diversi  in  modo  tale  che  la  loro  collaborazione  consenta   di   raggiugere   l’obiettivo,   cercando   di   mantenere   un’interfaccia   unica  per  interagire  con  l’intero  o  parti  del  puzzle.       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.     Raggiungere  l’obiettivo  è  davvero  semplice  con  Liferay,  non  sono  richiesti  sviluppi   ma   solamente   attività   di   configurazione   dell’iFrame   Portlet,   già  disponibile   di   serie   con   Liferay.   Quanto   mostrato   nel   corso   della   trattazione   è  applicabile   sia   all’edizione   Community   sia   all’edizione   Enterprise   di   Liferay,   la  versione  utilizza  per  quest’occasione  è  una  6.1  GA2  CE.     1. Requisiti   Affinché   la   soluzione   del   “dentro”   sia   applicabile,   è   indispensabile   che   i  seguenti  requisiti  siano  soddisfatti:     • Accesso   al   portale   Liferay   con   un   livello   d’accesso   di   tipo   amministrativo   o   con   un   ruolo   tale   da   consentire   l’aggiunta   di   applicazioni  (portlet)  e  la  possibilità  di  configurazione  delle  stesse;   • Possibilità   di   esecuzione   di   attività   di   tipo   sistemistico,   tipo   operazioni  di  start,  stop  e  modifica  delle  configurazioni;   • URL  dell’istanza  di  SugarCRM.    23/09/12  -­‐  Document  Revision:  1.0   1   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com     2. Funzionamento   Ogni  utente  del  portale,  quindi  autenticato,  potrà  accedere  direttamente  dal  portale  alla  propria  area  di  lavoro  del  CRM  senza  spostarsi  di  “browser”,  evitando  per   altro   di   ripetere   la   procedura   d’autenticazione.   Come   introdotto   in  precedenza,  questa  possibilità  è  offerta  dall’iFrame  Portlet.     L’iFrame  Portlet  permette  di  inserire  unaltra  pagina  HTML  allinterno  della  pagina   che   ospita   la   portlet.   Inoltre,   lutente   può   navigare   attraverso   la   pagina  “nascosta”  senza  perdere  il  contesto  della  pagina  del  portale.     L’iFrame   Portlet   utilizza   il   tag   HTML   iframe   introdotto   dalla   versione   4   di  HTML,  ed  è  supportata  in  tutti  i  principali  browser.  L’iFrame  Portlet  consente  di  regolare  la  dimensione  della  pagina  HTML  e  svariati  altri  attributi.     Una   caratteristica   importante   di   questa   portlet   e   fondamentale   in   questo  scenario   è   la   possibilità   di   poter   eseguire   il   processo   di   autenticazione   al   posto  nostro.  Sono  supportati  due  tipi  di  autenticazione:  Basic  e  Form,  noi  faremo  uso  del   secondo   metodo,   comunque,   la   scelta   dipende   dal   tipo   di   autenticazione  supportata  dall’applicazione  web  da  integrare.     Avrete  già  intuito  che  un  requisito  indispensabile  affinché  l’autenticazione  sia   trasparente   consiste   nell’asserzione   che   sia  username   (solitamente   l’attributo  screen  name)   sia   password   dell’utente   del   portale   coincida   con   le   rispettive   del  CRM.     3. Configurazione   Aggiunta   la   portlet   su   una   vostra   pagina,   non   resta   che   procedere   con   la  configurazione  i  cui  parametri  principali  e  valori  sono  i  seguenti:     • URL  dell’istanza  di  SugarCRM  a  cui  volete  dare  l’accesso;   • Tipo  di  autenticazione   o Tipo:  Form   o Method:  POST   • Username   o FieldName:  user_name   o Value:  @screen_name@   • Password:   o FieldName:  user_password   o Value:  @password@   • Variabili  Hidden   o module=Users;action=Authenticate     I   valori   indicati   come   @screen_name@   e   @password@   saranno   poi  sostituiti  a  runtime  con  i  valori  reali  e  in  seguito  inviati  a  SugarCRM  nel  processo  d’autenticazione,   ecco   il   motivo   per   cui   è   necessario   che   le   credenziali  23/09/12  -­‐  Document  Revision:  1.0   2   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com    coincidano;   in   caso   contrario   sarete   necessariamente   obbligati   a   eseguire  manualmente   l’autenticazione   tramite   la   form   di   SugarCRM.   In   Figura   1   è  mostrata   la   configurazione   dell’iFrame   portlet.   L’URL   specificato   fa   riferimento   a  un’istanza  di  SugarCRM  CE  6.5  ospitata  sul  cloud  Open  Shift.        Figura  1  Configurazione  iFrame  Portlet  per  SugarCRM.   Esiste   un   meccanismo   di   sicurezza   di   Liferay   tale   per   cui   le   vostre  credenziali   non   sono   memorizzate   (in   sessione,   cookie,   etc…)   per   impostazione  predefinita,   inoltre   è   possibile   fare   in   modo   che   i   soli   utenti   appartenenti   a   un  determinato   ruolo   possano   inviare   la   propria   password   a   sistemi   esterni   tramite  l’iFrame  portlet.    23/09/12  -­‐  Document  Revision:  1.0   3   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com      Figura  2  Creazione  del  ruolo  per  l’autenticazione  trasperente.   Tramite   delle   properties   di   configurazione   è   possibile   abilitare   la  memorizzazione   della   password   (in   chiaro)   in   sessione   e   specificare   inoltre   il  ruolo   da   assegnare   agli   utenti   che   devono   avere   la   possibilità   di   trasmettere   la  password  all’esterno  tramite  la  portlet  iFrame.     public static String getPassword( PortletRequest portletRequest, String password) throws PortalException, SystemException { if (!isPasswordTokenEnabled(portletRequest)) { return StringPool.BLANK; } if (Validator.isNull(password) || password.equals("@password@")) { password = PortalUtil.getUserPassword(portletRequest); if (password == null) { password = StringPool.BLANK; } } return password; }  Listato  1  Get  della  password  dalla  sessione.   Il   Listato   2   mostra   il   metodo   getPassword()   della   classe   IFrameUtil   del  package   com.liferay.portlet.iframe.util   che   recupera   la   password   utente   dalla  23/09/12  -­‐  Document  Revision:  1.0   4   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com    sessione  effettuando  prima  un  controllo  dell’associazione  ruolo/utente  tramite  il  metodo  isPasswordTokenEnabled().      Figura  3  Associazione  del  ruolo  all’utente.    #### IFrame Portlet## # # Specify a role name that a user must be associated with in order to # configure the IFrame portlet to use the @password@ token. This token is # used to post the password of users who access this portlet in order to # automatically login to the framed site. # # No role is required by default. However, it is recommended that you # specify a role in high security environments where users who configure # this portlet may attempt password theft. See LPS-5272 for more # information. # iframe.password.token.role=iFrameUserToken#### Session## # # Set this to true to store the users password in the session. # session.store.password=true  Listato  2  Configurazione  file  di  properties  portal-­‐ext.properties   La   configurazione   mostra   il   ruolo   (di   un   nome   a   vostra   scelta)   cui   gli   utenti  devono   appartenere   e   l’esplicita   istruzione   di   memorizzare   in   sessione   la  23/09/12  -­‐  Document  Revision:  1.0   5   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike      
  • Antonio  Musarras  Blog  The  ideal  solution  for  a  problem   Blog:  http://musarra.wordpress.com   Mail:  antonio.musarra@gmail.com    password   dell’utente.   L’applicazione   di   questa   configurazione   richiede  l’operazione  di  riavvio  del  portale.     A   portale   riavviato   e   portlet   configurata   in   precedenza,   basterà   accedere  con  le  vostre  credenziali  per  avere  la  vostra  area  di  lavoro  CRM  pronta  all’uso.      Figura  4  Il  CRM  dentro  il  CMS.   4. Conclusioni   In   questo   breve   articolo   abbiamo   visto   come   sia   semplice   integrare  SugarCRM   “dentro”   Liferay   sfruttando   la   potenzialità   messa   a   disposizione  dall’iFrame  portlet.  E’  senz’altro  comodo  poter  eseguire  l’autenticazione  in  modo  trasparente.  Questa  soluzione  può  essere  adottata  per  integrare  qualunque  tipo  di  applicazione  web.      23/09/12  -­‐  Document  Revision:  1.0   6   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike