Grazie per l'interessamento David!
Questo è il codice del mio script
<blockcode>
function main()
{
var spaceName="Sites/trilogis/documentLibrary";
var rootSpaceName=companyhome.childByNamePath(spaceName + "/Offerte");
if(rootSpaceName == null)
{
spaceName = companyhome.childByNamePath("Sites/trilogis/documentLibrary");
rootSpaceName = spaceName.createFolder("Offerte");
}
var childList = space.children;
var count = childList.length;
if(count == 0)
{
return;
}
else
{
for(i = 0; i < count; i++)
{
var child = childList;
if(child.isDocument)
{
var childDate = child.properties["tr:date"];
if(childDate == null)
{
var date = new Date();
var childYear = date.getFullYear();
}
else
{
var childYear = childDate.getFullYear();
}
var newSpaceYear = rootSpaceName.childByNamePath("/" + childYear);
if(newSpaceYear == null)
{
newSpaceYear = rootSpaceName.createFolder(childYear);
}
var childClient = child.properties["tr:name_cli"];
if(childClient == null)
{
childClient = "Default Client";
}
var newSpaceClient = newSpaceYear.childByNamePath("/" + childClient);
if(newSpaceClient == null)
{
newSpaceClient = newSpaceYear.createFolder(childClient);
}
child.move(newSpaceClient);
}
}
}
return;
}
main();
</blockcode>
Quello che sto cercando di ottenere è che, in qualsiasi punto del repository io carichi un file di un determinato tipo, venga effettuata una ricerca in un path stabilito ("Sites/trilogis/documentLibrary") per verificare l'esistenza di un path adeguato per lo store del file. Nel caso tale path non esista, viene creato e poi viene spostato il file al suo interno. Se effettuo il caricamento del file nella root, lo script funziona. Se eseguo lo script in qualche sotto cartella, vengono generati errori casuali e se si prova successivamente a caricare file nella root, lo script non funziona più. I due principali errori sono "l'impossibilità di creare la cartella perchè il nome è già stato utilizzato" (ma nello script è previsto un controllo per ovviare alla creazione di duplicati) o lo script non viene eseguito perchè il contenuto caricato non viene riconosciuto come documento (isDocument risulta false). Premetto che ho assegnato la regola sulla root, applicandola a tutte le sotto cartelle, che tale script venga eseguito ogni qual volta vengano aggiornati i dati di un documento di un dato tipo.