cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco 5.0.a Creare tipi personalizzati

shadowman78
Champ in-the-making
Champ in-the-making
Sono nuovo di Alfresco quindi non so bene come funzioni.
Ho caricato un file nell'applicazione Share e l'ho visualizzato. Alla destra del file visualizzato c'è una colonna con varie opzioni (download, modifica proprietà, ecc.) tra cui "Cambia tipo". Il mio problema è che il successivo menù "Cambia tipo" non contiene nessuna voce. Come posso popolare quel menù con alcuni miei tipi "personalizzati" che vorrei definire in qualche modo?
7 REPLIES 7

davidciamberlan
Elite Collaborator
Elite Collaborator
Ciao,

per ottenere quello che chiedi devi innanzitutto creare un nuovo custom type, poi devi customizzare l'interfaccia di share per visualizzarlo correttamente. Tieni conto che il tipo di documento viene "fissato" all'atto della creazione del nodo. Successivamente lo puoi sostituire con un tipo che sia più specifico di quello originario ma non lo puoi cambiare con un'altro diverso.

Se stai muovendo i primi passi con alfresco, ti consiglio di seguire la guida di Jeff Potts: Working With Custom Content Types in Alfresco.

In essa vengono affrontati tutti gli argomenti relativi ai tipi di alfresco. Quello che ti serve è nelle parti 1 e 2.

Se hai altri dubbi (ri)scrivi qui sul forum!

Ciao David,
grazie per la risposta. Avevo già seguito il tutorial che mi hai consigliato ma non mi è molto utile. Ho seguito anche altri tutorial e documentazione varia ma non riesco a fare quello che vorrei. Forse in Alfresco è impossibile.
Io vorrei catalogare alcuni documenti ed associare ad essi dei metadata che però dipendono dal "tipo" di documento. Faccio un esempio. Supponi che io abbia 200 documenti da catalogare: cento fatture (tipo "fattura") e cento contratti (tipo "contratto"). Al tipo "fattura" corrispondono, per esempio, i metadata Numero, Data Emissione, Totale, mentre al tipo "contratto" corrispondono i metadata Data, Tipo Contratto. Quando carico una fattura nel repository, vorrei poter modificare i relativi metadata (il suo Numero, la sua Data Emissione ed il suo Totale).

Ho visto che quando visualizzo un file del repository, una foto nel mio caso, alla sua destra c'è un menù con molte voci, tra cui "modifica proprietà" (oltre che "cambia tipo"). Se modifico le proprietà della foto (scegliendo appunto quest'ultima opzione), mi compare un form che mi chiede alcuni "metadata" come "Larghezza immagine", "Altezza immagine", "Tempo di esposizione" e tanti altri. E' possibile "creare" un form ad hoc per i documenti di tipo "fattura" (o "contratto")? Ovviamente non ci sarà più "altezza immagine" o "tempo di esposizione" ma, ad esempio, "Data Emissione" e "Numero Fattura". In questo modo potrei catalogare i miei documenti in maniera abbastanza semplice, o magari esiste in Alfresco un qualche sistema migliore per arrivare allo stesso obiettivo?

Ciao,

scusa ma non capisco bene… nel tutorial che ti ho suggerito è spiegato come puoi fare quello che chiedi.

Provo a riassumerti in poche parole i passaggi che dovresti seguire per ottenere quanto ti aspetti (prendo spunto dall'esempio che hai fatto tu).
Spiegaci meglio quale parte non ti è chiara così possiamo darti un aiuto più mirato.

1) definisci due nuovi custom type: fattura e contratto. Per ciascuno dei due specifica i metadati che ti servono. Questo è spiegato nella parte 1 del tutorial di Jeff Potts.

2) configua Share in modo che ti permetta di scegliere i nuovi tipi all'atto della creazione dei contenuti e che ti mostri i loro metadati quando vai nella cheda di dettaglio dei documenti. Questo è spiegato nella parte 2.

In questo modo quando crei un documento puoi scegliere di attribuirgli il tipo fattura (o contratto) e quando aprirai la scheda di dettaglio avrai automaticamente il form con le properties personalizzate.

Tutto dovrebbe essere fattibile modificando dei file xml.

Facci sapere

shadowman78
Champ in-the-making
Champ in-the-making
Ciao,
grazie per la risposta.

Provo a dare qualche dettaglio in più.
La prima parte del tutorial va bene e tutto sembra funzionare: quando effettuo il test (quello con "mvn install") alla fine di questa, ottengo il messaggio di successo sperato (come indicato nel tutorial).

Poi passo alla seconda parte. Ad un certo punto mi chiede di fare gli "integration test". Leggo
"3. Run:
mvn integration-test -Pamp-to-war
This will start up an Alfresco server with your repo tier AMP and it will leave it running."

Dopo un po' questo server, effettivamente, sembra avviarsi.

Passo al secondo "integration test" (quello che avvia un'istanza di Share). Qui sorge il problema. Infatti quando Share si collega al server Alfresco (o almeno così pare), quest'ultimo solleva una java.lang.OutOfMemoryError ("Exception in thread "RMI RenewClean-[127.0.0.1:50501,org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory@0]" java.lang.OutOfMemoryError: PermGen space").
A questo punto Share, non potendosi collegare al server Alfresco (che nel frattempo è de facto morto sollevando l'eccezione), manda un messaggio di time-out ("Error status 408 Read timed out") e tutto finisce qui.


Il tutorial, comunque, sembra fare al caso mio. Io in più vorrei creare più applicazioni Share, ognuna delle quali "vede" tipi diversi. Per esempio, continuando l'esempio del post precedente, vorrei una Share1 (contenuta nel file share1.war, per esempio) che vede solo le fatture; poi una Share2 (in share2.war) che vede solo i contratti e così via. Questo non è esplicitamente indicato nel tutorial, ma intuisco che si possa fare. Leggo:
"The location of the share-config-custom.xml file is a little counter-intuitive. Ultimately, we want that file to be placed under META-INF in a JAR file that will go into the Share web application's WEB-INF/lib. Putting the file in a JAR keeps it from overwriting other modules that may also be providing their own share-config-custom.xml".

Quindi, ho pensato, se creo diversi JAR, ognuno contenente un diverso share-config-custom.xml, e li metto nella cartella "WEB-INF/lib" di diversi Share (uno in "share1/WEB-INF/lib", uno in "share2/WEB-INF/lib" e così via), posso ottenere il risultato di assegnare un "campo di visibilità" diverso a ciascuno Share. O mi sbaglio?

Ciao,

l'errore sul PermGen lo risolvi settando opportunamente la variabile d'ambiente JAVA_OPTS.
Per un ambiente di sviluppo potrebbe andar bene un settaggio del genere:

JAVA_OPTS=-Xms256M -Xmx1G -XX:MaxPermSize=256M

Riguardo la duplicazione delle istanze di Share… non ne vedo il motivo (e tra l'altro non sono sicuro nemmeno che possa funzionare).

In Alfresco puoi ottenere esattamente lo stesso risultato configurando correttamente i permessi per gli utenti e per i gruppi.
Potresti procedere in diversi modi. Te ne propongo un paio che mi vengono in mente.

Crei due siti privati separati, uno per le fatture e uno per contratti. Poi inviti gli utenti che devono gestire le fatture solo al primo sito e quelli che usano i contratti solo al secondo sito.

Oppure

Crei un solo sito privato con due sezioni Fatture e Contratti. Poi crei due gruppi di utenti (gruppo_fatture e gruppo_contratti… nomi dati a caso). Abiliti il primo gruppo ad accedere solo alla cartella Fatture e il secondo solo alla cartella Contratti.

In questo modo tieni separati i due ambiti ma utilizzi una sola istanza di Alfresco (e share).

Scrivi se hai altri dubbi.

Ciao,
prima di leggere la tua risposta avevo risolto il problema sul PermGen, solo che ho utilizzato MAVEN_OPTS invece di JAVA_OPTS. Adesso, comunque, non ottengo più quell'errore, e va bene. Noto però una cosa, che avveniva anche prima della modifica/creazione della variabile d'ambiente, cioè l'estrema lentezza nell'avvio del server: quando punto il browser su http://localhost:8081/share, infatti, devo aspettare almeno due ore (!!) prima di vedere qualcosa. Il che, naturalmente, mi sta rendendo il lavoro proibitivo, per non dire impossibile. Dipende dalla mia macchina o succede anche ad altri? Sto lavorando su Linux, come al solito, e sul Tomcat.

Quanto al resto, ti ringrazio per il suggerimento: così è certamente più semplice ed anche più logico. Adesso devo chiedere ai miei "capi" se posso procedere come mi suggerisci, intanto io provo per i fatti miei.

openpj
Elite Collaborator
Elite Collaborator
Mi sembra che tu abbia dei problemi nel tuo ambiente, a me Alfresco parte nel giro di al massimo un minuto.