SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Liferay	
  Web	
  Services	
  
Come	
  importare	
  utenti	
  da	
  un	
  foglio	
  Excel	
  
	
  
Lavorando	
   in	
   contesti	
   d'integrazione,	
   capita	
   spesso	
   e	
   volentieri	
   di	
   dover	
  
compiere	
   operazioni	
   d'integrazione	
   dati	
   sfruttando	
   tecnologie	
   che	
   ruotano	
  
nell'intorno	
  dei	
  Servizi	
  Web.	
  	
  
L'articolo	
   prende	
   spunto	
   da	
   un	
   recente	
   caso	
   d'integrazione	
   che	
   vede	
  
coinvolto	
  un	
  sistema	
  di	
  ERP1	
  (Enterprise	
  Resource	
  Planning)	
  e	
  il	
  nostro	
  Liferay.	
  
L'integrazione	
   prevede	
   l'importazione	
   dei	
   "Clienti"	
   dall'ERP	
   a	
   Liferay,	
   e	
   su	
  
quest'ultimo	
  possiamo	
  identificare	
  i	
  clienti	
  come	
  utenti.	
  
Per	
   la	
   stesura	
   dell'articolo	
   ho	
   eliminato	
   di	
   proposito	
   il	
   primo	
   e	
   secondo	
  
elemento	
   dell'integrazione,	
   rispettivamente,	
   l'ERP	
   e	
   l'ESB2	
  (Enterprise	
   Service	
  
Bus).	
   L'ERP	
   la	
   sorgente	
   dati	
   e	
   l'ESB	
   "orchestratore"	
   dei	
   Servizi	
   Web.	
   L'azione	
  
d'eliminazione	
   è	
   giustificata	
   dal	
   fatto	
   che	
   vorrei	
   focalizzare	
   l'attenzione	
   sui	
  
Servizi	
  Web	
  di	
  Liferay,	
  per	
  cui	
  il	
  nostro	
  schema	
  di	
  riferimento	
  è	
  quello	
  mostrato	
  
nella	
  figura	
  a	
  seguire.	
  
	
  

Figura	
  1	
  Macro	
  processo	
  d’importazione	
  utenti	
  da	
  foglio	
  Excel.	
  

	
  

Come	
  da	
  Figura	
  1,	
  la	
  fonte	
  dei	
  dati	
  è	
  un	
  foglio	
  Excel	
  da	
  cui	
  leggere	
  i	
  record	
  
da	
  importare	
  su	
  Liferay	
  come	
  utenti.	
  Il	
  record	
  ha	
  una	
  struttura	
  del	
  tipo	
  indicata	
  a	
  
seguire:	
  
• Title	
  
• Screen	
  Name	
  
• Email	
  
• First	
  Name	
  
• Middle	
  Name	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  Enterprise	
   Resource	
   Planning	
   (letteralmente	
   "pianificazione	
   delle	
   risorse	
   d'impresa",	
   spesso	
   abbreviato	
   in	
   ERP)	
   è	
   un	
  
sistema	
   di	
   gestione,	
   chiamato	
   in	
   informatica	
   sistema	
   informativo,	
   che	
   integra	
   tutti	
   i	
   processi	
   di	
   business	
   rilevanti	
   di	
  
2	
  Un	
   Enterprise	
   Service	
   Bus	
   gestione	
  magazzino,	
  contabilità	
  etc.)	
   che	
   fornisce	
   servizi	
   di	
   supporto	
   ad	
   architetture	
   SOA	
  
un'azienda	
  (vendite,	
  acquisti,	
   (ESB)	
   è	
   un'infrastruttura	
   software	
  
complesse.	
  Un	
  ESB	
  si	
  basa	
  su	
  sistemi	
  disparati,	
  interconnessi	
  con	
  tecnologie	
  eterogenee,	
  e	
  fornisce	
  in	
  maniera	
  consistente	
  
servizi	
   di	
   orchestration,	
   sicurezza,	
   messaggistica,	
   routing	
   intelligente	
   e	
   trasformazioni,	
   agendo	
   come	
   una	
   dorsale	
  
attraverso	
  la	
  quale	
  viaggiano	
  servizi	
  software	
  e	
  componenti	
  applicativi.	
  
1

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

1	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

	
  

•
•
•
•
•
•
•
•
•

Last	
  Name	
  
Gender	
  
Birthday	
  (deve	
  essere	
  di	
  tipo	
  data)	
  
Job	
  Title	
  
Site	
  Name	
  (lista	
  dei	
  site	
  separati	
  da	
  virgola)	
  
Role	
  Name	
  (lista	
  dei	
  ruoli	
  separati	
  da	
  virgola)	
  
Language	
  (codifica	
  della	
  lingua:	
  esempio	
  it_IT,	
  en_EN)	
  
Time	
  Zone	
  (codifica	
  del	
  Time	
  Zone:	
  esempio:	
  UTC)	
  
AccountId	
  (identificativo	
  del	
  sistema	
  sorgente)	
  	
  

La	
   struttura	
   del	
   record	
   ha	
   tre	
   attributi	
   che	
   ritengo	
   rilevanti,	
   il	
   Site	
   Name,	
  
Role	
   Name	
   e	
   AccountId.	
   Il	
   Site	
   Name	
   contiene	
   la	
   lista	
   dei	
   site (Liferay Inc., 2013)	
  
(può	
  essere	
  anche	
  una	
  lista	
  vuota)	
  a	
  cui	
  il	
  nuovo	
  utente	
  deve	
  essere	
  associato,	
  il	
  
Role	
   Name	
   contiene	
   la	
   lista	
   di	
   ruoli	
   (Liferay Inc., 2013)	
   (può	
   essere	
   anche	
   una	
  
lista	
   vuota)	
   da	
   assegnare	
   al	
   nuovo	
   utente,	
   l'AccountId	
   contiene	
   l'identificativo	
  
univoco	
  del	
  record	
  sul	
  sistema	
  che	
  ha	
  fornito	
  i	
  dati.	
  L'AccountId,	
  lato	
  Liferay	
  è	
  un	
  
attributo	
  di	
  tipo	
  custom	
  (Liferay Inc., 2013)	
  sull'entità	
  utente.	
  
I	
  diagrammi	
  come	
  sempre	
  aiutano	
  la	
  comprensione	
  e	
  i	
  flow	
  chart	
  fanno	
  al	
  
caso	
  nostro.	
  I	
  diagrammi	
  a	
  seguire	
  mostrano	
  il	
  processo	
  d'importazione	
  nella	
  sua	
  
globalità.	
  
	
  

Figura	
  2	
  Processo	
  d'importazione	
  utenti	
  da	
  Excel	
  a	
  Liferay.	
  

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

	
  

2	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Figura	
  3	
  Processo	
  di	
  lettura	
  e	
  verifica	
  dati	
  da	
  importare.	
  

Figura	
  4	
  Processo	
  che	
  esegue	
  l'import	
  effettivo	
  su	
  Liferay	
  tramite	
  chiamate	
  ai	
  WS.	
  

	
  

	
  

	
  

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

3	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Per	
  l'operazione	
  d'importazione	
  degli	
  utenti	
  da	
  file	
  Excel	
  a	
  Liferay,	
  faremo	
  
uso	
   dell'API 3 	
  (Application	
   Programming	
   Interface)	
   di	
   Liferay	
   e	
   in	
   particolar	
  
modo	
   dei	
   servizi	
   SOAP4	
  (Simple	
   Object	
   Access	
   Protocol)	
   su	
   HTTP.	
   Per	
   chi	
   non	
  
fosse	
   avvezzo	
   con	
   quest'area	
   di	
   Liferay	
   consiglio	
   di	
   leggere	
   nell'ordine	
   i	
   seguenti	
  
documenti:	
  
• Liferay	
  APIs	
  (Liferay Inc., 2013)	
  
• Service	
  Security	
  Layers	
  (Liferay Inc., 2013)	
  
• SOAP	
  Web	
  Services	
  (Liferay Inc., 2013)	
  
	
  
Per	
  l'obiettivo	
  prefissato,	
  i	
  servizi	
  di	
  nostro	
  interesse	
  sono:	
  
• Portal_UserService:	
  Servizio	
  utilizzato	
  per	
  inserire	
  il	
  nuovo	
  l'utente;	
  
• Portal_CompanyService:	
  Servizio	
  utilizzato	
  per	
  ricavare	
  la	
  company	
  id;	
  
• Portal_GroupService:	
  Servizio	
  utilizzato	
  per	
  verificare	
  l'esistenza	
  del	
  site;	
  
• Portal_RoleService:	
  Servizio	
  utilizzato	
  per	
  verificare	
  l'esistenza	
  del	
  ruolo.	
  
	
  
E'	
   possibile	
   vedere	
   tutti	
   gli	
   end-­‐point	
   dei	
   servizi	
   puntando	
   il	
   proprio	
   browser	
  
all'indirizzo	
  http://[hostname|FQDN]:[port]/api/secure/axis	
  
	
  

Figura	
  5	
  Liferay	
  API	
  utilizzate	
  e	
  dettaglio	
  delle	
  operazioni	
  chiamate.	
  

	
  

	
  

Fino	
   a	
   questo	
   punto	
   abbiamo	
   avuto	
   modo	
   di	
   spiegare	
   (a	
   parole)	
   come	
   sia	
  
possibile	
  portare	
  a	
  termine	
  con	
  semplicità	
  operazioni	
  d'integrazione	
  sfruttando	
  i	
  
servizi	
  web	
  esposti	
  da	
  Liferay.	
  Spostando	
  l'attenzione	
  sul	
  pratico,	
  implementare	
  
quanto	
  esposto	
  fino	
  a	
  questo	
  momento,	
  è	
  molto	
  semplice	
  utilizzando	
  i	
  seguenti	
  
elementi	
  software:	
  
• Apache	
  POI:	
  Utilizzato	
  per	
  leggere	
  la	
  lista	
  degli	
  utenti	
  da	
  importare	
  da	
  un	
  
foglio	
  Excel	
  (The Apache Software Foundation, 2013);	
  
• Liferay	
  Portal	
  Client	
  (v.	
  6.1.1):	
  Utilizzato	
  per	
  interagire	
  con	
  i	
  servizi	
  SOAP	
  
esposti	
  da	
  Liferay.	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  Con	
  Application	
  Programming	
  Interface	
  (in	
  acronimo	
  API,	
  in	
  italiano	
  Interfaccia	
  di	
  Programmazione	
  di	
  un'Applicazione),	
  
in	
  informatica,	
  si	
  indica	
  ogni	
  insieme	
  di	
  procedure	
  disponibili	
  al	
  programmatore,	
  di	
  solito	
  raggruppate	
  a	
  formare	
  un	
  set	
  di	
  
strumenti	
  specifici	
  per	
  l'espletamento	
  di	
  un	
  determinato	
  compito	
  all'interno	
  di	
  un	
  certo	
  programma.	
  
4	
  In	
   informatica	
   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.	
  La	
  parola	
  object	
  manifesta	
  che	
  
l'uso	
  del	
  protocollo	
  dovrebbe	
  effettuarsi	
  secondo	
  il	
  paradigma	
  della	
  programmazione	
  orientata	
  agli	
  oggetti.	
  
3

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

4	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  
	
  

Ogni	
   record	
   letto	
   dal	
   foglio	
   Excel	
   rappresenta	
   il	
   nuovo	
   utente	
   che	
   in	
   fase	
  
d'importazione	
   sarà	
   mappato	
   su	
   un	
   oggetto	
   del	
   tipo	
   visibile	
   in	
   Figura	
   6.	
   Quest’	
  
oggetto	
  farà	
  poi	
  parte	
  di	
  una	
  lista	
  di	
  oggetti	
  dello	
  stesso	
  tipo,	
  l'insieme	
  di	
  questi	
  
oggetti	
  saranno	
  poi	
  inseriti	
  effettivamente	
  su	
  Liferay.	
  
	
  

	
  

Figura	
  6	
  Modello	
  che	
  rappresenta	
  l'utente	
  letto	
  dal	
  file	
  Excel	
  e	
  che	
  sarà	
  poi	
  inserito	
  su	
  Liferay.	
  

	
  

Fino	
   a	
   questo	
   momento	
   è	
   stata	
   trattata	
   una	
   soluzione	
   al	
   “problema	
  
d’importazione”,	
   da	
   questo	
   punto	
   in	
   avanti	
   vedremo	
   invece	
   l’aspetto	
   pratico.	
   Il	
  
progetto	
  d’esempio	
  che	
  implementa	
  la	
  nostra	
  soluzione	
  d’importazione	
  utenti	
  è	
  
disponibile	
  in	
  forma	
  pubblica	
  sul	
  repository	
  (GitHub5)	
  ImportUsersLiferayViaWS	
  
(Musarra, 2013).	
   Il	
   progetto	
   è	
   basato	
   su	
   Maven6	
  e	
   testato	
   sulla	
   versione	
   6.1	
   di	
  
Liferay	
   Community	
   Edition	
   (che	
   potrebbe	
   comunque	
   funzionare	
   anche	
  
sull’edizione	
  Enterprise).	
  
	
  
I	
  task	
  eseguiti	
  dal	
  programma	
  d’importazione	
  sono	
  i	
  seguenti:	
  
• Login	
  su	
  Liferay	
  con	
  utenza	
  di	
  tipo	
  amministrativo;	
  
• Recupero	
  della	
  CompanyId	
  su	
  base	
  virtual	
  host;	
  
• Lettura	
  del	
  file	
  Excel	
  e	
  per	
  ogni	
  riga	
  che	
  identifica	
  l’utente:	
  
o Verifica	
   formale	
   di	
   alcuni	
   campi	
   (esempio:	
   Screen	
   Name	
   e	
   Email	
  
non	
  possono	
  essere	
  vuoti);	
  
o Verifica	
  dell’esistenza	
  del	
  ruolo	
  specificato	
  da	
  assegnare	
  all’utente;	
  
o Verifica	
  dell’esistenza	
  del	
  site	
  o	
  gruppo	
  a	
  cui	
  assegnare	
  l’utente;	
  
• Creazione	
  degli	
  utenti	
  non	
  scartati.	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  GitHub	
  è	
  un	
  servizio	
  web	
  di	
  hosting	
  per	
  lo	
  sviluppo	
  di	
  progetti	
  software	
  (e	
  non	
  solo)	
  che	
  usa	
  il	
  sistema	
  di	
  controllo	
  di	
  
versione	
  Git.	
  GitHub	
  offre	
  diversi	
  piani	
  per	
  repository	
  privati	
  a	
  pagamento	
  ma	
  anche	
  piani	
  gratuiti	
  molto	
  utilizzati	
  per	
  lo	
  
sviluppo	
  di	
  progetti	
  open-­‐source.	
  
6	
  In	
   informatica	
   Maven	
   è	
   un	
   software	
   usato	
   principalmente	
   per	
   la	
   gestione	
   di	
   progetti	
   Java	
   e	
   build	
   automation.	
   Per	
  
funzionalità	
  è	
  similare	
  ad	
  Apache	
  Ant,	
  ma	
  basato	
  su	
  concetti	
  differenti.	
  
5

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

5	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

A	
   questo	
   punto	
   vediamo	
   quali	
   sono	
   i	
   passi	
   necessari	
   per	
   eseguire	
   con	
  
successo	
  la	
  prima	
  importazione	
  di	
  test:	
  
• Clonazione	
  del	
  repository	
  del	
  progetto;	
  
• Build	
  del	
  progetto	
  via	
  Maven;	
  
• Esecuzione	
  del	
  programma	
  d’importazione.	
  
	
  
Dopo	
   la	
   compilazione	
   del	
   progetto	
   (vedi	
   Listato	
   1)	
   il	
   programma	
  
d’importazione	
  sarà	
  reso	
  disponibile	
  all’interno	
  della	
  directory	
  target,	
  figlia	
  della	
  
directory	
   ImportUsersLiferayViaWS.	
   Gli	
   “eseguibili”	
   java	
   generati	
   a	
   fronte	
   della	
  
compilazione	
  sono	
  due:	
  
• import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐SNAPSHOT.jar	
  
• import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐SNAPSHOT-­‐jar-­‐with-­‐
dependencies.jar	
  
	
  
Il	
  primo	
  jar	
  non	
  contiene	
  le	
  dipendenze	
  (axis,	
  sax,	
  etc…)	
  mentre	
  il	
  secondo	
  
contiene	
  tutte	
  le	
  dipendenze	
  necessarie	
  a	
  runtime,	
  quest’ultimo	
  è	
  ovviamente	
  di	
  
dimensioni	
  più	
  grandi	
  ma	
  sicuramente	
  più	
  comodo	
  da	
  utilizzare.	
  	
  
Il	
   primo	
   e	
   il	
   secondo	
   listato	
   mostrano	
   esattamente	
   l’esecuzione	
   dei	
   passi	
  
visti	
  in	
  precedenza	
  (CBE7).	
  
	
  
$	
  git	
  clone	
  git://github.com/amusarra/ImportUsersLiferayViaWS.git	
  
$	
  cd	
  ImportUsersLiferayViaWS	
  
$	
  mvn	
  package

	
  

Listato	
  1	
  Clonazione	
  del	
  repository	
  e	
  compilazione	
  del	
  progetto.	
  
$	
  java	
  -­‐Dusername=admin	
  -­‐Dpassword=admin	
  -­‐jar	
  -­‐
DfileToImport=src/main/resources/users_for_import_liferay.xlsx	
  target/import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐
SNAPSHOT-­‐jar-­‐with-­‐dependencies.jar	
  

Listato	
  2	
  Esecuzione	
  del	
  programma	
  d'importazione.	
  

Quanto	
   mostrato	
   nel	
   Listato	
   3	
   evidenzia	
   l’avanzamento	
   (dei	
   vari	
   task)	
   del	
  
programma	
  d’importazione.	
  
	
  
2013-­‐11-­‐14	
  13:48:13,892	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Try	
  lookup	
  User	
  Service	
  by	
  End	
  Point:	
  
http://admin:admin@localhost:8080/api/secure/axis/Portal_UserService...	
  
2013-­‐11-­‐14	
  13:48:14,343	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Try	
  lookup	
  Company	
  Service	
  by	
  End	
  Point:	
  
http://admin:admin@localhost:8080/api/secure/axis/Portal_CompanyService...	
  
2013-­‐11-­‐14	
  13:48:14,581	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Company	
  ID	
  1	
  
2013-­‐11-­‐14	
  13:48:14,582	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Get	
  UserID...	
  
2013-­‐11-­‐14	
  13:48:14,619	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  UserId	
  for	
  user	
  named	
  admin	
  is	
  10382	
  
2013-­‐11-­‐14	
  13:48:15,517	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Add	
  user	
  object	
  UserToImport	
  
[accountId=7477234f-­‐34f7-­‐76bf-­‐b	
  
2013-­‐11-­‐14	
  13:48:15,533	
  [main]	
  WARN	
  ImportUsersToLiferay	
  -­‐	
  The	
  username	
  attribute	
  can	
  not	
  be	
  null	
  for	
  rowId	
  
5	
  
2013-­‐11-­‐14	
  13:48:15,534	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  User	
  ready	
  for	
  import	
  to	
  liferay	
  is	
  4	
  
2013-­‐11-­‐14	
  13:48:15,534	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Starting	
  import	
  users...	
  
2013-­‐11-­‐14	
  13:48:15,557	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  User	
  cmontagno	
  added	
  on	
  liferay.	
  
2013-­‐11-­‐14	
  13:48:15,558	
  [main]	
  INFO	
  ImportUsersToLiferay	
  -­‐	
  Import	
  users	
  to	
  liferay	
  completed	
  successfully

Listato	
  3	
  Log	
  che	
  mostra	
  l'attività	
  del	
  programma	
  d'importazione.	
  

	
  

Il	
   programma	
   d’importazione	
   per	
   impostazione	
   predefinita	
   (senza	
  
specificare	
   nessun	
   parametro)	
   tenta	
   di	
   connettersi	
   ai	
   Web	
   Services	
   della	
   propria	
  
installazione	
   locale	
   di	
   Liferay.	
   I	
   parametri	
   (a	
   linea	
   di	
   comando)	
   supportati	
   sono	
   i	
  
seguenti:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
7

	
  Cloning,	
  Building	
  and	
  Execution	
  

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

6	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  
•
•
•
•
•
•

-­‐DliferayAddressProtocol:	
  Imposta	
  il	
  protocollo	
  http	
  o	
  https	
  (valore	
  
predefinito:	
  http);	
  
-­‐DliferayAddressPort:	
  Imposta	
  la	
  porta	
  TCP	
  	
  (valore	
  predefinito:	
  8080);	
  
-­‐DliferayAddressFQDN:	
  Imposta	
  il	
  nome	
  host	
  o	
  FQDN	
  (valore	
  
predefinito:	
  localhost);	
  
-­‐Dusername:	
  Imposta	
  la	
  username	
  dell’utente	
  di	
  tipo	
  amministrativo	
  
(valore	
  predefinito:	
  test);	
  
-­‐Dpassword:	
  Imposta	
  la	
  password	
  (valore	
  predefinito:	
  test);	
  
-­‐DfileToImport:	
  Imposta	
  il	
  path	
  completo	
  del	
  file	
  Excel	
  contenente	
  la	
  
lista	
  degli	
  utenti.	
  

	
  

I	
   primi	
   tre	
   parametri	
   di	
   configurazione	
   devono	
   essere	
   specificati	
   insieme,	
  
in	
   caso	
   contrario	
   nessuno	
   dei	
   tre	
   sarà	
   tenuto	
   in	
   considerazione.	
   All’avvio	
   del	
  
programma	
  d’importazione	
  è	
  possibile	
  cadere	
  in	
  alcuni	
  comuni	
  errori	
  “fatali”	
  che	
  
fermano	
   l’esecuzione	
   del	
   programma.	
   Gli	
   errori	
   sono	
   mostrati	
   in	
   console	
   e	
   in	
  
genere	
  sono:	
  
• org.apache.axis.AxisFault(401)Unauthorized:	
  Accade	
  perché	
  le	
  
credenziali	
  di	
  accesso	
  a	
  Liferay	
  non	
  sono	
  corrette;	
  
• org.apache.axis.AxisFault(403)Forbidden:	
  Accade	
  perché	
  che	
  le	
  
impostazioni	
  dei	
  Web	
  Services	
  di	
  Liferay	
  non	
  sono	
  corrette;	
  
• org.apache.axis.AxisFault;	
  nested	
  exception	
  is:	
  
java.net.ConnectException:	
  Connection	
  refused:	
  Accade	
  perché	
  le	
  
impostazioni	
  di	
  connessione	
  non	
  sono	
  corrette,	
  per	
  questo	
  è	
  consigliabile	
  
accertare	
  che	
  i	
  servizi	
  di	
  Liferay	
  siano	
  operativi	
  e	
  per	
  ultimo	
  che	
  le	
  
macchine	
  (client	
  e	
  server)	
  siano	
  nelle	
  condizioni	
  di	
  poter	
  comunicare;	
  
• No	
  such	
  file	
  or	
  directory:	
  Accade	
  perché	
  	
  il	
  path	
  del	
  file	
  Excel	
  non	
  è	
  
corretto	
  o	
  accessibile	
  dal	
  programma	
  d’importazione.	
  
	
  
L’esecuzione	
   del	
   programma	
   d’importazione	
   vista	
   in	
   precedenza,	
   utilizza	
  
un	
   file	
   Excel	
   di	
   esempio	
   presente	
   all’interno	
   del	
   progetto.	
   Utilizzando	
   quindi	
   il	
  
file	
  Excel	
  di	
  esempio	
  per	
  un	
  vostro	
  test	
  d’importazione,	
  dovreste	
  ritrovare	
  sulla	
  
vostra	
  istanza	
  di	
  Liferay,	
  quattro	
  nuovi	
  utenti.	
  Nelle	
  figure	
  a	
  seguire	
  è	
  mostrato	
  
tramite	
   screenshot 8 	
  il	
   risultato	
   dell’importazione	
   utilizzando	
   il	
   file	
   Excel	
   di	
  
esempio.	
  
	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  Il	
  termine	
  inglese	
  screenshot	
  (da	
  screen,	
  schermo,	
  e	
  shot,	
  scatto	
  fotografico),	
  in	
  italiano	
  schermata,	
  indica	
  ciò	
  che	
  viene	
  
visualizzato	
  in	
  un	
  determinato	
  istante	
  sullo	
  schermo	
  di	
  un	
  monitor,	
  di	
  un	
  televisore	
  o	
  di	
  un	
  qualunque	
  dispositivo	
  video.	
  
8

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

7	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Figura	
  7	
  Lista	
  dei	
  nuovi	
  utenti	
  importati.	
  

	
  

	
  

Figura	
  8	
  Dettaglio	
  di	
  uno	
  degli	
  utenti	
  importati.	
  

Figura	
  9	
  Site	
  associati	
  all’utente.	
  

Figura	
  10	
  Ruoli	
  assegnati	
  all’utente.	
  

	
  

	
  

	
  

Ogni	
  utente	
  importato	
  è	
  taggato	
  con	
  il	
  tag	
  “imported	
  users”	
  (vedi	
  Figura	
  11).	
  
Applicare	
  un	
  tag	
  faciliterà	
  poi	
  la	
  ricerca	
  degli	
  stessi	
  (vedi	
  Figura	
  13).	
  In	
  Figura	
  12	
  
è	
  mostrato	
  il	
  valore	
  applicato	
  al	
  campo	
  personalizzato	
  AccountId	
  proveniente	
  dal	
  
foglio	
  Excel.	
  
01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

8	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Figura	
  11	
  Tag	
  assegnato	
  all’utente	
  importato.	
  

Figura	
  12	
  Campo	
  personalizzato	
  importato.	
  

	
  

	
  

	
  

Figura	
  13	
  Ricerca	
  utenti	
  importati	
  by	
  tag.	
  

	
  

Abbiamo	
  avuto	
  modo	
  di	
  vedere	
  come	
  sia	
  prezioso	
  il	
  vantaggio	
  che	
  si	
  ottiene	
  
con	
   la	
   possibilità	
   di	
   poter	
   interagire	
   con	
   ogni	
   funzionalità	
   ed	
   entità	
   del	
   portale	
  
esposta	
   tramite	
   API	
   locali	
   e	
   remote.	
   Il	
   progetto	
   che	
   implementa	
   la	
   soluzione	
  
discussa	
   nel	
   corso	
   della	
   prima	
   parte	
   dell’articolo	
   potrebbe	
   essere	
   la	
   base	
   di	
  
partenza	
  per	
  il	
  vostro	
  progetto	
  d’importazione.	
  
	
  
	
  
01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

9	
  
	
  
Antonio	
  Musarra's	
  Blog	
  

Document Revision:1.0

The	
  ideal	
  solution	
  for	
  a	
  problem	
  

Blog:	
  http://www.dontesta.it	
  
LinkedIn:	
  http://it.linkedin.com/in/amusarra	
  	
  
Mail:	
  antonio.musarra@gmail.com	
  

	
  

Bibliography	
  

Liferay	
  Inc.	
  (2013).	
  Creating	
  sites	
  and	
  managing	
  pages.	
  Tratto	
  da	
  Liferay	
  Portal	
  
6.1	
  -­‐	
  User	
  Guide:	
  http://www.liferay.com/it/documentation/liferay-­‐
portal/6.1/user-­‐guide/-­‐/ai/managing-­‐pages-­‐in-­‐liferay-­‐portal	
  
	
  
Liferay	
  Inc.	
  (2013).	
  Custom	
  Fields.	
  Tratto	
  da	
  Liferay	
  Portal	
  6.1	
  -­‐	
  User	
  Guide:	
  
http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/user-­‐guide/-­‐
/ai/lp-­‐6-­‐1-­‐ugen12-­‐custom-­‐fields-­‐0	
  
	
  
Liferay	
  Inc.	
  (2013).	
  Liferay	
  APIs.	
  Tratto	
  da	
  Liferay	
  Portal	
  6.1	
  -­‐	
  Developers	
  Guide:	
  
http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/development/-­‐
/ai/liferay-­‐ap-­‐1	
  
	
  
Liferay	
  Inc.	
  (2013).	
  Roles	
  and	
  permissions.	
  Tratto	
  da	
  Liferay	
  Portal	
  6.1	
  -­‐	
  User	
  
Guide:	
  http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/user-­‐
guide/-­‐/ai/lp-­‐6-­‐1-­‐ugen15-­‐roles-­‐and-­‐permissions-­‐0	
  
	
  
Liferay	
  Inc.	
  (2013).	
  Service	
  Security	
  Layers.	
  Tratto	
  da	
  Liferay	
  Portal	
  6.1	
  -­‐	
  
Developers	
  Guide:	
  http://www.liferay.com/it/documentation/liferay-­‐
portal/6.1/development/-­‐/ai/service-­‐security-­‐layers	
  
	
  
Liferay	
  Inc.	
  (2013).	
  SOAP	
  Web	
  Services.	
  Tratto	
  da	
  Liferay	
  Portal	
  6.1	
  -­‐	
  Developers	
  
Guide:	
  http://www.liferay.com/it/documentation/liferay-­‐
portal/6.1/development/-­‐/ai/soap-­‐web-­‐services	
  
	
  
Musarra,	
  A.	
  (2013,	
  Nov.	
  14).	
  Import	
  users	
  from	
  excel	
  into	
  Liferay	
  Portal	
  by	
  Web	
  
Services	
  SOAP.	
  Tratto	
  da	
  Antonio	
  Musarra's	
  GitHub	
  Repositories:	
  
https://github.com/amusarra/ImportUsersLiferayViaWS/tree/master	
  
	
  
The	
  Apache	
  Software	
  Foundation.	
  (2013).	
  Apache	
  POI	
  -­‐	
  the	
  Java	
  API	
  for	
  Microsoft	
  
Documents.	
  Tratto	
  da	
  The	
  Apache	
  POI	
  Project.	
  
	
  
	
  

01/01/14	
  
This	
  document	
  is	
  issued	
  with	
  license	
  Creative	
  Commons	
  Attribution-­‐NonCommercial-­‐ShareAlike	
  

	
  

10	
  
	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Antonio Musarra
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRMAntonio Musarra
 
Running Kettle Job by API
Running Kettle Job by APIRunning Kettle Job by API
Running Kettle Job by APIAntonio Musarra
 
Configure Kettle debug session
Configure Kettle debug sessionConfigure Kettle debug session
Configure Kettle debug sessionAntonio Musarra
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriAlessandro Nadalin
 

Was ist angesagt? (10)

Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0
 
Costruire un client Java per SugarCRM
Costruire un client Java per SugarCRMCostruire un client Java per SugarCRM
Costruire un client Java per SugarCRM
 
Running Kettle Job by API
Running Kettle Job by APIRunning Kettle Job by API
Running Kettle Job by API
 
Configure Kettle debug session
Configure Kettle debug sessionConfigure Kettle debug session
Configure Kettle debug session
 
J-SugarCRM UserSync 1.0
J-SugarCRM UserSync 1.0J-SugarCRM UserSync 1.0
J-SugarCRM UserSync 1.0
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 

Andere mochten auch

Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideAntonio Musarra
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)Antonio Musarra
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Antonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Antonio Musarra
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 

Andere mochten auch (12)

Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 
J-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuideJ-SugarCRM UserSync TechnicalGuide
J-SugarCRM UserSync TechnicalGuide
 
HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)HOW TO SAML Password Management (Note)
HOW TO SAML Password Management (Note)
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Introduzione al Web 2.0
Introduzione al Web 2.0Introduzione al Web 2.0
Introduzione al Web 2.0
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 

Ähnlich wie Liferay Web Services - Come importare utenti da un foglio Excel

Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseAlberto Lagna
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applicationsmarcocasario
 
Biznology presentazione azienda
Biznology presentazione aziendaBiznology presentazione azienda
Biznology presentazione aziendaAlberto Lagna
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...it Consult
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveEmanuele Della Valle
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Quickr , utilizzarlo "ovunque"!
Quickr , utilizzarlo "ovunque"!Quickr , utilizzarlo "ovunque"!
Quickr , utilizzarlo "ovunque"!Vittorio Foschi
 
Soluzioni ot per digicamere giugno 2010
Soluzioni ot per digicamere giugno 2010Soluzioni ot per digicamere giugno 2010
Soluzioni ot per digicamere giugno 2010Giuseppe Bottasini
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1Decatec
 
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Codemotion
 
Come utilizzare il bot framework
Come utilizzare il bot frameworkCome utilizzare il bot framework
Come utilizzare il bot frameworkAlessio Iafrate
 
Windows Workflow Foundation 4
Windows Workflow Foundation 4Windows Workflow Foundation 4
Windows Workflow Foundation 4Felice Pescatore
 
La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013Massimo Chirivì
 
Smau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSmau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSMAU
 
Octobus enterprise management system
Octobus enterprise management systemOctobus enterprise management system
Octobus enterprise management systemFoedus
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 

Ähnlich wie Liferay Web Services - Come importare utenti da un foglio Excel (20)

Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Presentazione
PresentazionePresentazione
Presentazione
 
Biznology presentazione azienda
Biznology presentazione aziendaBiznology presentazione azienda
Biznology presentazione azienda
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
 
Con04 glossario
Con04 glossarioCon04 glossario
Con04 glossario
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Quickr , utilizzarlo "ovunque"!
Quickr , utilizzarlo "ovunque"!Quickr , utilizzarlo "ovunque"!
Quickr , utilizzarlo "ovunque"!
 
Soluzioni ot per digicamere giugno 2010
Soluzioni ot per digicamere giugno 2010Soluzioni ot per digicamere giugno 2010
Soluzioni ot per digicamere giugno 2010
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1
 
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
Alessio Iafrate - Utilizziamo il Bot Framework per realizzare il nostro primo...
 
Come utilizzare il bot framework
Come utilizzare il bot frameworkCome utilizzare il bot framework
Come utilizzare il bot framework
 
Windows Workflow Foundation 4
Windows Workflow Foundation 4Windows Workflow Foundation 4
Windows Workflow Foundation 4
 
DDive - QuickR utilizzarlo ovunque
DDive - QuickR utilizzarlo ovunqueDDive - QuickR utilizzarlo ovunque
DDive - QuickR utilizzarlo ovunque
 
SOA wonderful World
SOA wonderful WorldSOA wonderful World
SOA wonderful World
 
La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013
 
Smau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSmau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo Chirivì
 
Octobus enterprise management system
Octobus enterprise management systemOctobus enterprise management system
Octobus enterprise management system
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 

Mehr von Antonio Musarra

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 

Mehr von Antonio Musarra (7)

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 

Liferay Web Services - Come importare utenti da un foglio Excel

  • 1. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Liferay  Web  Services   Come  importare  utenti  da  un  foglio  Excel     Lavorando   in   contesti   d'integrazione,   capita   spesso   e   volentieri   di   dover   compiere   operazioni   d'integrazione   dati   sfruttando   tecnologie   che   ruotano   nell'intorno  dei  Servizi  Web.     L'articolo   prende   spunto   da   un   recente   caso   d'integrazione   che   vede   coinvolto  un  sistema  di  ERP1  (Enterprise  Resource  Planning)  e  il  nostro  Liferay.   L'integrazione   prevede   l'importazione   dei   "Clienti"   dall'ERP   a   Liferay,   e   su   quest'ultimo  possiamo  identificare  i  clienti  come  utenti.   Per   la   stesura   dell'articolo   ho   eliminato   di   proposito   il   primo   e   secondo   elemento   dell'integrazione,   rispettivamente,   l'ERP   e   l'ESB2  (Enterprise   Service   Bus).   L'ERP   la   sorgente   dati   e   l'ESB   "orchestratore"   dei   Servizi   Web.   L'azione   d'eliminazione   è   giustificata   dal   fatto   che   vorrei   focalizzare   l'attenzione   sui   Servizi  Web  di  Liferay,  per  cui  il  nostro  schema  di  riferimento  è  quello  mostrato   nella  figura  a  seguire.     Figura  1  Macro  processo  d’importazione  utenti  da  foglio  Excel.     Come  da  Figura  1,  la  fonte  dei  dati  è  un  foglio  Excel  da  cui  leggere  i  record   da  importare  su  Liferay  come  utenti.  Il  record  ha  una  struttura  del  tipo  indicata  a   seguire:   • Title   • Screen  Name   • Email   • First  Name   • Middle  Name                                                                                                                    Enterprise   Resource   Planning   (letteralmente   "pianificazione   delle   risorse   d'impresa",   spesso   abbreviato   in   ERP)   è   un   sistema   di   gestione,   chiamato   in   informatica   sistema   informativo,   che   integra   tutti   i   processi   di   business   rilevanti   di   2  Un   Enterprise   Service   Bus   gestione  magazzino,  contabilità  etc.)   che   fornisce   servizi   di   supporto   ad   architetture   SOA   un'azienda  (vendite,  acquisti,   (ESB)   è   un'infrastruttura   software   complesse.  Un  ESB  si  basa  su  sistemi  disparati,  interconnessi  con  tecnologie  eterogenee,  e  fornisce  in  maniera  consistente   servizi   di   orchestration,   sicurezza,   messaggistica,   routing   intelligente   e   trasformazioni,   agendo   come   una   dorsale   attraverso  la  quale  viaggiano  servizi  software  e  componenti  applicativi.   1 01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     1    
  • 2. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com       • • • • • • • • • Last  Name   Gender   Birthday  (deve  essere  di  tipo  data)   Job  Title   Site  Name  (lista  dei  site  separati  da  virgola)   Role  Name  (lista  dei  ruoli  separati  da  virgola)   Language  (codifica  della  lingua:  esempio  it_IT,  en_EN)   Time  Zone  (codifica  del  Time  Zone:  esempio:  UTC)   AccountId  (identificativo  del  sistema  sorgente)     La   struttura   del   record   ha   tre   attributi   che   ritengo   rilevanti,   il   Site   Name,   Role   Name   e   AccountId.   Il   Site   Name   contiene   la   lista   dei   site (Liferay Inc., 2013)   (può  essere  anche  una  lista  vuota)  a  cui  il  nuovo  utente  deve  essere  associato,  il   Role   Name   contiene   la   lista   di   ruoli   (Liferay Inc., 2013)   (può   essere   anche   una   lista   vuota)   da   assegnare   al   nuovo   utente,   l'AccountId   contiene   l'identificativo   univoco  del  record  sul  sistema  che  ha  fornito  i  dati.  L'AccountId,  lato  Liferay  è  un   attributo  di  tipo  custom  (Liferay Inc., 2013)  sull'entità  utente.   I  diagrammi  come  sempre  aiutano  la  comprensione  e  i  flow  chart  fanno  al   caso  nostro.  I  diagrammi  a  seguire  mostrano  il  processo  d'importazione  nella  sua   globalità.     Figura  2  Processo  d'importazione  utenti  da  Excel  a  Liferay.   01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike       2    
  • 3. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Figura  3  Processo  di  lettura  e  verifica  dati  da  importare.   Figura  4  Processo  che  esegue  l'import  effettivo  su  Liferay  tramite  chiamate  ai  WS.         01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     3    
  • 4. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Per  l'operazione  d'importazione  degli  utenti  da  file  Excel  a  Liferay,  faremo   uso   dell'API 3  (Application   Programming   Interface)   di   Liferay   e   in   particolar   modo   dei   servizi   SOAP4  (Simple   Object   Access   Protocol)   su   HTTP.   Per   chi   non   fosse   avvezzo   con   quest'area   di   Liferay   consiglio   di   leggere   nell'ordine   i   seguenti   documenti:   • Liferay  APIs  (Liferay Inc., 2013)   • Service  Security  Layers  (Liferay Inc., 2013)   • SOAP  Web  Services  (Liferay Inc., 2013)     Per  l'obiettivo  prefissato,  i  servizi  di  nostro  interesse  sono:   • Portal_UserService:  Servizio  utilizzato  per  inserire  il  nuovo  l'utente;   • Portal_CompanyService:  Servizio  utilizzato  per  ricavare  la  company  id;   • Portal_GroupService:  Servizio  utilizzato  per  verificare  l'esistenza  del  site;   • Portal_RoleService:  Servizio  utilizzato  per  verificare  l'esistenza  del  ruolo.     E'   possibile   vedere   tutti   gli   end-­‐point   dei   servizi   puntando   il   proprio   browser   all'indirizzo  http://[hostname|FQDN]:[port]/api/secure/axis     Figura  5  Liferay  API  utilizzate  e  dettaglio  delle  operazioni  chiamate.       Fino   a   questo   punto   abbiamo   avuto   modo   di   spiegare   (a   parole)   come   sia   possibile  portare  a  termine  con  semplicità  operazioni  d'integrazione  sfruttando  i   servizi  web  esposti  da  Liferay.  Spostando  l'attenzione  sul  pratico,  implementare   quanto  esposto  fino  a  questo  momento,  è  molto  semplice  utilizzando  i  seguenti   elementi  software:   • Apache  POI:  Utilizzato  per  leggere  la  lista  degli  utenti  da  importare  da  un   foglio  Excel  (The Apache Software Foundation, 2013);   • Liferay  Portal  Client  (v.  6.1.1):  Utilizzato  per  interagire  con  i  servizi  SOAP   esposti  da  Liferay.                                                                                                                    Con  Application  Programming  Interface  (in  acronimo  API,  in  italiano  Interfaccia  di  Programmazione  di  un'Applicazione),   in  informatica,  si  indica  ogni  insieme  di  procedure  disponibili  al  programmatore,  di  solito  raggruppate  a  formare  un  set  di   strumenti  specifici  per  l'espletamento  di  un  determinato  compito  all'interno  di  un  certo  programma.   4  In   informatica   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.  La  parola  object  manifesta  che   l'uso  del  protocollo  dovrebbe  effettuarsi  secondo  il  paradigma  della  programmazione  orientata  agli  oggetti.   3 01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     4    
  • 5. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com       Ogni   record   letto   dal   foglio   Excel   rappresenta   il   nuovo   utente   che   in   fase   d'importazione   sarà   mappato   su   un   oggetto   del   tipo   visibile   in   Figura   6.   Quest’   oggetto  farà  poi  parte  di  una  lista  di  oggetti  dello  stesso  tipo,  l'insieme  di  questi   oggetti  saranno  poi  inseriti  effettivamente  su  Liferay.       Figura  6  Modello  che  rappresenta  l'utente  letto  dal  file  Excel  e  che  sarà  poi  inserito  su  Liferay.     Fino   a   questo   momento   è   stata   trattata   una   soluzione   al   “problema   d’importazione”,   da   questo   punto   in   avanti   vedremo   invece   l’aspetto   pratico.   Il   progetto  d’esempio  che  implementa  la  nostra  soluzione  d’importazione  utenti  è   disponibile  in  forma  pubblica  sul  repository  (GitHub5)  ImportUsersLiferayViaWS   (Musarra, 2013).   Il   progetto   è   basato   su   Maven6  e   testato   sulla   versione   6.1   di   Liferay   Community   Edition   (che   potrebbe   comunque   funzionare   anche   sull’edizione  Enterprise).     I  task  eseguiti  dal  programma  d’importazione  sono  i  seguenti:   • Login  su  Liferay  con  utenza  di  tipo  amministrativo;   • Recupero  della  CompanyId  su  base  virtual  host;   • Lettura  del  file  Excel  e  per  ogni  riga  che  identifica  l’utente:   o Verifica   formale   di   alcuni   campi   (esempio:   Screen   Name   e   Email   non  possono  essere  vuoti);   o Verifica  dell’esistenza  del  ruolo  specificato  da  assegnare  all’utente;   o Verifica  dell’esistenza  del  site  o  gruppo  a  cui  assegnare  l’utente;   • Creazione  degli  utenti  non  scartati.                                                                                                                      GitHub  è  un  servizio  web  di  hosting  per  lo  sviluppo  di  progetti  software  (e  non  solo)  che  usa  il  sistema  di  controllo  di   versione  Git.  GitHub  offre  diversi  piani  per  repository  privati  a  pagamento  ma  anche  piani  gratuiti  molto  utilizzati  per  lo   sviluppo  di  progetti  open-­‐source.   6  In   informatica   Maven   è   un   software   usato   principalmente   per   la   gestione   di   progetti   Java   e   build   automation.   Per   funzionalità  è  similare  ad  Apache  Ant,  ma  basato  su  concetti  differenti.   5 01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     5    
  • 6. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     A   questo   punto   vediamo   quali   sono   i   passi   necessari   per   eseguire   con   successo  la  prima  importazione  di  test:   • Clonazione  del  repository  del  progetto;   • Build  del  progetto  via  Maven;   • Esecuzione  del  programma  d’importazione.     Dopo   la   compilazione   del   progetto   (vedi   Listato   1)   il   programma   d’importazione  sarà  reso  disponibile  all’interno  della  directory  target,  figlia  della   directory   ImportUsersLiferayViaWS.   Gli   “eseguibili”   java   generati   a   fronte   della   compilazione  sono  due:   • import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐SNAPSHOT.jar   • import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐SNAPSHOT-­‐jar-­‐with-­‐ dependencies.jar     Il  primo  jar  non  contiene  le  dipendenze  (axis,  sax,  etc…)  mentre  il  secondo   contiene  tutte  le  dipendenze  necessarie  a  runtime,  quest’ultimo  è  ovviamente  di   dimensioni  più  grandi  ma  sicuramente  più  comodo  da  utilizzare.     Il   primo   e   il   secondo   listato   mostrano   esattamente   l’esecuzione   dei   passi   visti  in  precedenza  (CBE7).     $  git  clone  git://github.com/amusarra/ImportUsersLiferayViaWS.git   $  cd  ImportUsersLiferayViaWS   $  mvn  package   Listato  1  Clonazione  del  repository  e  compilazione  del  progetto.   $  java  -­‐Dusername=admin  -­‐Dpassword=admin  -­‐jar  -­‐ DfileToImport=src/main/resources/users_for_import_liferay.xlsx  target/import-­‐users-­‐liferay-­‐via-­‐ws-­‐0.0.1-­‐ SNAPSHOT-­‐jar-­‐with-­‐dependencies.jar   Listato  2  Esecuzione  del  programma  d'importazione.   Quanto   mostrato   nel   Listato   3   evidenzia   l’avanzamento   (dei   vari   task)   del   programma  d’importazione.     2013-­‐11-­‐14  13:48:13,892  [main]  INFO  ImportUsersToLiferay  -­‐  Try  lookup  User  Service  by  End  Point:   http://admin:admin@localhost:8080/api/secure/axis/Portal_UserService...   2013-­‐11-­‐14  13:48:14,343  [main]  INFO  ImportUsersToLiferay  -­‐  Try  lookup  Company  Service  by  End  Point:   http://admin:admin@localhost:8080/api/secure/axis/Portal_CompanyService...   2013-­‐11-­‐14  13:48:14,581  [main]  INFO  ImportUsersToLiferay  -­‐  Company  ID  1   2013-­‐11-­‐14  13:48:14,582  [main]  INFO  ImportUsersToLiferay  -­‐  Get  UserID...   2013-­‐11-­‐14  13:48:14,619  [main]  INFO  ImportUsersToLiferay  -­‐  UserId  for  user  named  admin  is  10382   2013-­‐11-­‐14  13:48:15,517  [main]  INFO  ImportUsersToLiferay  -­‐  Add  user  object  UserToImport   [accountId=7477234f-­‐34f7-­‐76bf-­‐b   2013-­‐11-­‐14  13:48:15,533  [main]  WARN  ImportUsersToLiferay  -­‐  The  username  attribute  can  not  be  null  for  rowId   5   2013-­‐11-­‐14  13:48:15,534  [main]  INFO  ImportUsersToLiferay  -­‐  User  ready  for  import  to  liferay  is  4   2013-­‐11-­‐14  13:48:15,534  [main]  INFO  ImportUsersToLiferay  -­‐  Starting  import  users...   2013-­‐11-­‐14  13:48:15,557  [main]  INFO  ImportUsersToLiferay  -­‐  User  cmontagno  added  on  liferay.   2013-­‐11-­‐14  13:48:15,558  [main]  INFO  ImportUsersToLiferay  -­‐  Import  users  to  liferay  completed  successfully Listato  3  Log  che  mostra  l'attività  del  programma  d'importazione.     Il   programma   d’importazione   per   impostazione   predefinita   (senza   specificare   nessun   parametro)   tenta   di   connettersi   ai   Web   Services   della   propria   installazione   locale   di   Liferay.   I   parametri   (a   linea   di   comando)   supportati   sono   i   seguenti:                                                                                                                   7  Cloning,  Building  and  Execution   01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     6    
  • 7. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     • • • • • • -­‐DliferayAddressProtocol:  Imposta  il  protocollo  http  o  https  (valore   predefinito:  http);   -­‐DliferayAddressPort:  Imposta  la  porta  TCP    (valore  predefinito:  8080);   -­‐DliferayAddressFQDN:  Imposta  il  nome  host  o  FQDN  (valore   predefinito:  localhost);   -­‐Dusername:  Imposta  la  username  dell’utente  di  tipo  amministrativo   (valore  predefinito:  test);   -­‐Dpassword:  Imposta  la  password  (valore  predefinito:  test);   -­‐DfileToImport:  Imposta  il  path  completo  del  file  Excel  contenente  la   lista  degli  utenti.     I   primi   tre   parametri   di   configurazione   devono   essere   specificati   insieme,   in   caso   contrario   nessuno   dei   tre   sarà   tenuto   in   considerazione.   All’avvio   del   programma  d’importazione  è  possibile  cadere  in  alcuni  comuni  errori  “fatali”  che   fermano   l’esecuzione   del   programma.   Gli   errori   sono   mostrati   in   console   e   in   genere  sono:   • org.apache.axis.AxisFault(401)Unauthorized:  Accade  perché  le   credenziali  di  accesso  a  Liferay  non  sono  corrette;   • org.apache.axis.AxisFault(403)Forbidden:  Accade  perché  che  le   impostazioni  dei  Web  Services  di  Liferay  non  sono  corrette;   • org.apache.axis.AxisFault;  nested  exception  is:   java.net.ConnectException:  Connection  refused:  Accade  perché  le   impostazioni  di  connessione  non  sono  corrette,  per  questo  è  consigliabile   accertare  che  i  servizi  di  Liferay  siano  operativi  e  per  ultimo  che  le   macchine  (client  e  server)  siano  nelle  condizioni  di  poter  comunicare;   • No  such  file  or  directory:  Accade  perché    il  path  del  file  Excel  non  è   corretto  o  accessibile  dal  programma  d’importazione.     L’esecuzione   del   programma   d’importazione   vista   in   precedenza,   utilizza   un   file   Excel   di   esempio   presente   all’interno   del   progetto.   Utilizzando   quindi   il   file  Excel  di  esempio  per  un  vostro  test  d’importazione,  dovreste  ritrovare  sulla   vostra  istanza  di  Liferay,  quattro  nuovi  utenti.  Nelle  figure  a  seguire  è  mostrato   tramite   screenshot 8  il   risultato   dell’importazione   utilizzando   il   file   Excel   di   esempio.                                                                                                                      Il  termine  inglese  screenshot  (da  screen,  schermo,  e  shot,  scatto  fotografico),  in  italiano  schermata,  indica  ciò  che  viene   visualizzato  in  un  determinato  istante  sullo  schermo  di  un  monitor,  di  un  televisore  o  di  un  qualunque  dispositivo  video.   8 01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     7    
  • 8. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Figura  7  Lista  dei  nuovi  utenti  importati.       Figura  8  Dettaglio  di  uno  degli  utenti  importati.   Figura  9  Site  associati  all’utente.   Figura  10  Ruoli  assegnati  all’utente.         Ogni  utente  importato  è  taggato  con  il  tag  “imported  users”  (vedi  Figura  11).   Applicare  un  tag  faciliterà  poi  la  ricerca  degli  stessi  (vedi  Figura  13).  In  Figura  12   è  mostrato  il  valore  applicato  al  campo  personalizzato  AccountId  proveniente  dal   foglio  Excel.   01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     8    
  • 9. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Figura  11  Tag  assegnato  all’utente  importato.   Figura  12  Campo  personalizzato  importato.         Figura  13  Ricerca  utenti  importati  by  tag.     Abbiamo  avuto  modo  di  vedere  come  sia  prezioso  il  vantaggio  che  si  ottiene   con   la   possibilità   di   poter   interagire   con   ogni   funzionalità   ed   entità   del   portale   esposta   tramite   API   locali   e   remote.   Il   progetto   che   implementa   la   soluzione   discussa   nel   corso   della   prima   parte   dell’articolo   potrebbe   essere   la   base   di   partenza  per  il  vostro  progetto  d’importazione.       01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     9    
  • 10. Antonio  Musarra's  Blog   Document Revision:1.0 The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it   LinkedIn:  http://it.linkedin.com/in/amusarra     Mail:  antonio.musarra@gmail.com     Bibliography   Liferay  Inc.  (2013).  Creating  sites  and  managing  pages.  Tratto  da  Liferay  Portal   6.1  -­‐  User  Guide:  http://www.liferay.com/it/documentation/liferay-­‐ portal/6.1/user-­‐guide/-­‐/ai/managing-­‐pages-­‐in-­‐liferay-­‐portal     Liferay  Inc.  (2013).  Custom  Fields.  Tratto  da  Liferay  Portal  6.1  -­‐  User  Guide:   http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/user-­‐guide/-­‐ /ai/lp-­‐6-­‐1-­‐ugen12-­‐custom-­‐fields-­‐0     Liferay  Inc.  (2013).  Liferay  APIs.  Tratto  da  Liferay  Portal  6.1  -­‐  Developers  Guide:   http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/development/-­‐ /ai/liferay-­‐ap-­‐1     Liferay  Inc.  (2013).  Roles  and  permissions.  Tratto  da  Liferay  Portal  6.1  -­‐  User   Guide:  http://www.liferay.com/it/documentation/liferay-­‐portal/6.1/user-­‐ guide/-­‐/ai/lp-­‐6-­‐1-­‐ugen15-­‐roles-­‐and-­‐permissions-­‐0     Liferay  Inc.  (2013).  Service  Security  Layers.  Tratto  da  Liferay  Portal  6.1  -­‐   Developers  Guide:  http://www.liferay.com/it/documentation/liferay-­‐ portal/6.1/development/-­‐/ai/service-­‐security-­‐layers     Liferay  Inc.  (2013).  SOAP  Web  Services.  Tratto  da  Liferay  Portal  6.1  -­‐  Developers   Guide:  http://www.liferay.com/it/documentation/liferay-­‐ portal/6.1/development/-­‐/ai/soap-­‐web-­‐services     Musarra,  A.  (2013,  Nov.  14).  Import  users  from  excel  into  Liferay  Portal  by  Web   Services  SOAP.  Tratto  da  Antonio  Musarra's  GitHub  Repositories:   https://github.com/amusarra/ImportUsersLiferayViaWS/tree/master     The  Apache  Software  Foundation.  (2013).  Apache  POI  -­‐  the  Java  API  for  Microsoft   Documents.  Tratto  da  The  Apache  POI  Project.       01/01/14   This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike     10