====== Integrazione con Alfresco ======
===== Introduzione =====
L'integrazione con Alfresco avviene mediante l'interfaccia AlfCity, una Servlet Java che si occupa del dialogo verso il motore di Alfresco e riespone dei servizi REST.
La classe, oltre ai metodi relativi ai client, ha anche i seguenti:
* **//getErrCode//**: codice di errore (0=nessun errore; <>0 = errore)
* **//getMessage//**: messaggio di risposta
* **//getHttpStatus//**: stato http della chiamata
===== Parametri di configurazione del modulo =====
* **//host//**: Nome host
* **//path//**: Percorso servlet
===== Elenco dei servizi =====
==== contentByUUID ====
Restituisce contenuto documento in funzione dell'UUID.\\
Parametri in ingresso:
* **//uuid//**: chiave del documento su Alfresco
Valore di ritorno: Se esito positivo, binary che corrisponde all'UUID specificato; altrimenti null
==== countQuery ====
Conta documenti in Alfresco, in funzione dei criteri di ricerca impostati.\\
Parametri in ingresso:
* **//docType//**: tipo di documento
* **//codEnte//**: Codice Ente (Corrisponde alla cartella di Alfresco)
* **//codAoo//**: Codice AOO (Corrisponde alla cartella di Alfresco)
* **//aspects//**: array degli aspetti ricercati
* **//props//**: array delle proprietà (chiave->valore) da ricercare
* **//fullText//**: stringa per ricerca full text
Valore di ritorno: Numero di elementi che soddisfano i criteri di ricerca
==== countQueryAll ====
Conta documenti in Alfresco, in funzione dei criteri di ricerca impostati (ricerca libera).\\
Parametri in ingresso:
* **//docType//**: tipo di documento
* **//codEnte//**: Codice Ente (Corrisponde alla cartella di Alfresco)
* **//codAoo//**: Codice AOO (Corrisponde alla cartella di Alfresco)
* **//aspects//**: array degli aspetti ricercati
* **//props//**: array delle proprietà (chiave->valore) da ricercare
* **//fullText//**: stringa per ricerca su tutti i metadati e full text
Valore di ritorno: Numero di elementi che soddisfano i criteri di ricerca
==== deleteDocumentByUUID ====
Cancella documento in funzione dell'UUID specificato\\
Parametri in ingresso:
* **//uuid//**: chiave del documento su Alfresco
Valore di ritorno: -
==== initEnv ====
//Attualmente non gestito.//
==== insertDocument ====
Inserimento di un documento in Alfresco con metadati.\\
Parametri in ingresso:
* **//docType//**: tipo di documento
* **//place//**: percorso Alfresco dove memorizzare il documento
* **//fileName//**: nome file
* **//mimeType//**: mime type (Es.: application/xml)
* **//content//**: contenuto del file
* **//aspects//**: array degli aspetti presenti sul documento
* **//props//**: array delle proprietà del documento
Valore di ritorno: Se esito positivo, UUID del documento aggiunto; altrimenti stringa vuota
==== placeByUUID ====
Restituisce percorso logico del documento in Alfresco, in funzione della chiave unica specificata.\\
Parametri in ingresso:
* **//uuid//**: chiave del documento su Alfresco
Valore di ritorno: Se esito positivo, percorso logico che corrisponde all'UUID specificato; altrimenti stringa vuota.
==== query ====
Ricerca documenti in Alfresco.\\
Parametri in ingresso:
* **//docType//**: tipo di documento
* **//codEnte//**: Codice Ente (Corrisponde alla cartella di Alfresco)
* **//codAoo//**: Codice AOO (Corrisponde alla cartella di Alfresco)
* **//aspects//**: array degli aspetti ricercati
* **//props//**: array delle proprietà (chiave->valore) da ricercare
* **//fullText//**: stringa per ricerca full text
* **//page//**: Pagina inizio ricerca (0=prima pagina)
* **//blockSize//**: Dimensione blocco (0=carica tutto)
Valore di ritorno: Se esito positivo, array dei risultati che soddisfano i criteri di ricerca; altrimenti array vuoto
==== queryAll ====
Ricerca libera di documenti in Alfresco.\\
Parametri in ingresso:
* **//docType//**: tipo di documento
* **//codEnte//**: Codice Ente (Corrisponde alla cartella di Alfresco)
* **//codAoo//**: Codice AOO (Corrisponde alla cartella di Alfresco)
* **//aspects//**: array degli aspetti ricercati
* **//props//**: array delle proprietà (chiave->valore) da ricercare
* **//fullText//**: stringa per ricerca full text. Se valorizzata, cerca in tutti i metadati.
* **//page//**: Pagina inizio ricerca (0=prima pagina)
* **//blockSize//**: Dimensione blocco (0=carica tutto)
Valore di ritorno: Se esito positivo, array dei risultati che soddisfano i criteri di ricerca; altrimenti array vuoto
==== queryByUUID ====
Ricerca documento in Alfresco per chiave.\\
Parametri in ingresso:
* **//uuid//**: chiave del documento su Alfresco
Valore di ritorno: Se esito positivo, documento che corrisponde all'UUID specificato; altrimenti array vuoto
==== saveCustomModel ====
//Attualmente non gestito.//
==== updateDocumentContent ====
//(Metodo deprecato)//\\
Aggiornamento metadati Alfresco.\\
Parametri in ingresso:
* **//uuid//**: UUID documento
* **//content//**: Contenuto del file
* **//fileName//**: Nome file
* **//mimeType//**: mime type (Es.: application/xml)
Valore di ritorno: -
==== updateDocumentMetadata ====
Aggiornamento metadati Alfresco.\\
Parametri in ingresso:
* **//uuid//**: UUID documento
* **//docType//**: tipo di documento
* **//aspects//**: array degli aspetti presenti sul documento
* **//props//**: array delle proprietà del documento
Valore di ritorno: -
==== version ====
Restituisce versione libreria.\\
Parametri in ingresso: -\\
Valore di ritorno: Array con i seguenti campi:
* **//ESITO//**: 0=Nessun errore; >0 = Errore
* **//MESSAGGIO//**: Se esito positivo, versione libreria; altrimenti, messaggio di errore
===== Esempi di utilizzo =====
==== Ricerca ====
$alfcityClient = new itaAlfcityClient();
$aspects = array();
$props = array(
'stato_flusso' => 1,
);
$result = $alfcityClient->query(DOC_TYPE, COD_ENTE, COD_AOO, $aspects, $props);
if ($alfcityClient->getErrCode() == 0 && $alfcityClient->getHttpStatus() == 200) {
Out::msgInfo("dump", print_r($result, true));
} else {
Out::msgStop("Errore", $alfcityClient->getErrCode() . ' - ' . $alfcityClient->getMessage());
}
==== Inserimento ====
$alfcityClient = new itaAlfcityClient();
$fileName = 'prova.pdf';
$mimeType = 'application/pdf';
$contentString = file_get_contents('C:/Test/prova.pdf');
file_put_contents('C:\\temp\\documento.pdf', $contentString);
$aspects = array(
'asp_prot' => 0,
'asp_fasc' => 0,
'asp_com' => 1,
);
$props = array(
'com_ente' => 'Ente Test',
'com_aoo' => 'Aoo Test',
'com_area_cityware' => 'A',
'com_modulo_cityware' => 'PI',
'com_codice_ipa' => 'Ipa Test',
'com_descrizione' => 'Documento inserito da itaEngine',
'com_organigramma_corrente' => '1.2 Ufficio Protocollo',
'com_ruolo_corrente' => 'Responsabile Protocollo',
'com_utente_login' => 'MROSSI',
);
$result = $alfcityClient->insertDocument(DOC_TYPE, ALFRESCO_PLACE, $fileName, $mimeType, $contentString, $aspects, $props);
if ($alfcityClient->getErrCode() == 0 && $alfcityClient->getHttpStatus() == 200) {
Out::msgInfo("dump", print_r($result, true));
} else {
Out::msgStop("Errore", $alfcityClient->getErrCode() . ' - ' . $alfcityClient->getMessage());
}
{{counter}} visualizzazioni.