Alfresco 4.2 azzerare contatore campo ID (protocollo)

cancel
Showing results for 
Search instead for 
Did you mean: 
angelo83
Member II

Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao ragazzi…
Su un sito Alfresco che gestisce la protocollazione, di cui mi sto personalmente occupando, già implementato su un cliente tempo addietro non riesco a resettare il contatore del protocollo.
Mi spiego meglio..
Chi l'ha ideato, ha messo una regola che al momento in cui si inserisce un file/documento all'interno di una cartella, al documento viene assegnato un numero ID autoincrementante a titolo di protocollo.
Dato che sto testando il sistema, ho provato ad inserire dei documenti e adesso l'ultimo numero ID autoincrementante che è stato assegnato dal sistema al mio documento è il 65.
Come posso azzerare questo contatore per fare in modo che riparta dal n. 1?
Grazie mille a tutti in anticipo per l'aiuto Smiley Happy Smiley Happy
7 Replies
davidciamberlan
Alfresco Employee

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao,

dovresti darci qualche dettaglio in più…
Com'è fatta questa regola? Richiama qualche script custom? Se sì, analizzando il codice dovresti poter capire come viene calcolato in esso il numero di protocollo successivo e da dove viene preso l'ultimo numero inserito (da un qualche metadato o da DB, ad esempio).

Tienici al corrente!



angelo83
Member II

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

ciao…
Il file in questione è chiamato increase-counter.js
Te lo posto:

/*
Nell'aspetto DocID del site corrente è memorizzato il progressivo per la protocollazione
Lo script legge l'aspetto DocID del site, lo incrementa nel site e lo scrive nell'aspetto DocID
del documento.
*/
var siteName = document.siteShortName;
var siteParent = companyhome.childByNamePath("Sites/" + siteName);
var docID = 1;
if (siteParent.properties["idt-sdSmiley Very HappyocID"] != "undefined") {
    var docID = parseInt( siteParent.properties["idt-sdSmiley Very HappyocID"] );
}
// Aggiunto "" per convertire integer in string se no nell'aspetto viene inserito 1.0
siteParent.properties["idt-sdSmiley Very HappyocID"] = "" + (docID + 1);
siteParent.save();

document.properties["idt-sdSmiley Very HappyocID"] = "" + docID;
document.save();

Non sono riuscito a trovare il campo dove andare a reperire questo valore per poterlo azzerare.
Puoi aiutarmi?

Grazie mille in anticipo Smiley Happy Smiley Happy
davidciamberlan
Alfresco Employee

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao,

da quello che leggo, nel nodo radice del tuo sito (Company home/Sites/nome_del_tuo_sito) dovresti trovare una proprietà di nome DocID che contiene il progressivo da resettare (dal commendo si capisce che è contenuta in un aspetto).

Se non riesci a visualizzarla probabilmente è perchè non è resa visibile nei file di configurazione.

Visto però che hai il codice già fatto, potresti sfruttarlo a tuo favore… ovvero creare un tuo script che resetta il counter (il codice NON è testato quindi fai prima qualche prova!)



var siteParent = companyhome.childByNamePath("Sites/nome_del_tuo_sito");
siteParent.properties["idt-sd:DocID"] = "0";
siteParent.save();



Se hai bisogno di ulteriori chiarimenti scrivi pure qui sul forum!
angelo83
Member II

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao..
Ma il codice che hai inserito in quale file lo devo incollare?
Devo mandarlo in pasto ad Alfresco solo la prima volta per l'azzeramento?
Dopo l'azzeramento del codice posso rimuoverlo?

Grazie mille in anticipo per l'aiuto Smiley Happy Smiley Happy
davidciamberlan
Alfresco Employee

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao,

un modo quick and dirty per farlo è creare un nuovo file di tipo "java script" nella cartella Dizionario dei dati/script nel quale inserirai il tuo codice.

Potrai poi eseguire quello script connettendoti con il client Alfresco, scegliendo un nodo qualsiasi e dal menu "actions" sulla destra scegliendo "run action" quindi "execute script". Nel menu a tendina dovresti trovare il tuo nuovo script che potrai quindi eseguire al volo.
Quando hai finito puoi rimuoverlo se necessario.

Attenzione però a usare questo metodo con giudizio e soprattutto solo in ambienti dove sai di non poter fare danni!
Inoltre ti metto in guardia che l'id potrebbe essere usato in altre parti di alfresco (ad esempio behaviour, rules, ecc) per cui resettandolo potresti avere side-effects impredicibili…
davidciamberlan
Alfresco Employee

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao,

un modo quick and dirty per farlo è creare un nuovo file di tipo "java script" nella cartella "Dizionario dei dati/script" nel quale inserirai il tuo codice.

Potrai poi eseguire quello script connettendoti con il client Alfresco, scegliendo un nodo qualsiasi e dal menu "actions" sulla destra scegliendo "run action" quindi "execute script". Nel menu a tendina dovresti trovare il tuo nuovo script che potrai quindi eseguire al volo.
Quando hai finito puoi rimuoverlo se necessario.

Attenzione però a usare questo metodo con giudizio e soprattutto solo in ambienti dove sai di non poter fare danni!
Inoltre ti metto in guardia che l'id potrebbe essere usato in altre parti di alfresco (ad esempio behaviour, rules, ecc) per cui resettandolo potresti avere side-effects impredicibili…
angelo83
Member II

Re: Alfresco 4.2 azzerare contatore campo ID (protocollo)

Ciao…
Ho risolto molto ma molto più semplicemente e, guarda caso, era davvero davvero banale.
Sono andato su Repository > Sites e, in corrispondenza del sito del cliente, sono andato su "Modifica proprietà" e mi è uscita la schermata "ID Protocollo" con il valore da impostare per il campo ID protocollo.

Cmq grazie mille a tutti per la vs disponibilità Smiley Happy Smiley Happy