cancel
Showing results for 
Search instead for 
Did you mean: 

Script modification date de creation à la volée

calamarz
Champ in-the-making
Champ in-the-making
Bonjour,

Voila j'ai actuellement un script qui permet la création d'une arborescence d'espace en fonction du nom du fichier, il se trouve que ce nom contient la date du document en l'occurrence une facture je souhaite donc lors de l'import en plus de la création des dossiers, attribuer au document une la date de création Alfresco  correspondant à la date de la facture. (pour permettre aussi une recherche avancée par date 🙂 ).

Je ne trouve pas la fonction permettant cette manipulation…

Si vous avez une idée

Merci
11 REPLIES 11

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour,

Si vous souhaitez le faire en JavaScript, il suffit de modifier les propriétés du nœud.

Ça devrait donner qqch dans cet esprit :
node.properties["cm:modified"] = new Date(année, mois, jour);
node.properties["cm:created"] = new Date(année, mois, jour);
node.save();

calamarz
Champ in-the-making
Champ in-the-making
Merci pour cette réponse mais il doit y a voir une chose que je ne comprends pas en effet je souhaite définir la date de création et de modification d'un PDF mais le problème c'est qu'avec l'import ce document voit ses dates de création et modification réinitialisées à la date de l'import.

J'ai ajouté dans mon code ceci avec des valeurs en dur en sachant que j'ai en variable la date de création du document

// Modification des dates
nodeCompteClient.properties["cm:created"] = new Date("2002", "06", "15");
nodeCompteClient.save();

ou avec mes variables:
var createanneedocument = nomDocument.substring(19,23);
var createmoisdocument = nomDocument.substring(23,25);
var createjourdocument = nomDocument.substring(25,27);
….
// Modification des dates
nodeCompteClient.properties["cm:created"] = new Date(createanneedocument, createmoisdocument, createjourdocument);
nodeCompteClient.save();

Mais rien dans les deux cas mon document conserve sa date d'import…

bertrandf
Champ on-the-rise
Champ on-the-rise
Question bête, vous êtes sûr de modifier les propriétés du bon noeud ?

Je pense que votre demande fait suite à ce sujet : http://forums.alfresco.com/fr/viewtopic.php?f=25&t=3211&p=14463#p14473
Si vous êtes dans votre règle, le nœud courant (votre fichier PDF), c'est "document".

Je dirais donc qu'il faudrait travailler sur le nœud 'document' et non sur le nœud 'nodeCompteClient', mais après il est possible que je me trompe.

var createanneedocument = nomDocument.substring(19,23);
var createmoisdocument = nomDocument.substring(23,25);
var createjourdocument = nomDocument.substring(25,27);
….
// Modification des dates
document.properties["cm:created"] = new Date(createanneedocument, createmoisdocument, createjourdocument);
document.save();

calamarz
Champ in-the-making
Champ in-the-making
Oui c'est en effet la suite de ce post, bon je viens de faire l'essai avec le nœud courant "document" mais je n'obtiens pas de modifications de la date de creation du pdf, en intervertissant l'ordre des commandes (le move à la fin) je n'ai plus de resultat, je vais regarder du cote de la syntaxe, mais deja un grand merci pour la piste !!!

document.properties["cm:created"] = new Date("2002", "06", "08");
document.save();
document.move(nodeCompteClient);

Je continu…

rivarola
Champ on-the-rise
Champ on-the-rise
Bonjour,

Les propriétés cm:created et cm:modified sont des propriétés système (marquées "protected" dans le modèle de données). Vous êtes sûrs qu'on peut les modifier par script ?

bertrandf
Champ on-the-rise
Champ on-the-rise
Non je n'ai aucune certitude.
Désolé si j'ai dit des bêtises (oui en effet, ca ne doit pas être possible de modifier ces métadonnées dans un script, même avec un 'run as system' ca ne semble pas fonctionner).

Désolé pour la mauvaise piste et merci à Philippe DE RIVAROLA pour l'info.

rguinot
Confirmed Champ
Confirmed Champ
ce jira pourra vous intéresser : http://issues.alfresco.com/jira/browse/ALF-2565

a partir de la 3.3SP3 / 3.4 community, on devrait pouvoir écrire qqch comme :

behaviourFilter.disableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
nodeService.setProperty(….)

lorsque l'on code via la foundation API.

rivarola
Champ on-the-rise
Champ on-the-rise
Merci pour cette précision. Effectivement, ce sera possible en Java, mais quid du JavaScript ?

calamarz
Champ in-the-making
Champ in-the-making
Merci pour les informations même si cela ne m'arrange pas… Est-il possible alors sur Alfresco via javascript de creer des champs aspects personnalisés afin d'y mettre la date du document, car il me semble que la recherche avancée est modifiable.

Merci