====== 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()); }