AnsweredAssumed Answered

problème avec specializeType (JS)

Question asked by nancygaillard on Jan 22, 2015
Latest reply on Jan 23, 2015 by mlagneaux
Bonjour,

J'ai un ensemble de dossiers avec des documents d'un type personnalisé "facture". Je souhaiterais changer leur type en "content" et ajouter un aspect personnalisé "facture".
Etant donné que mon essai ne fonctionne pas, je souhaiterais avec votre aide juste changer le type.

INFOS :
Il s'agit d'un serveur Alfresco de test, installé sur Windows XP 32 bits, avec Alfresco Community 4.2.e


ESSAI :
J'ai créé un script comme suit :

<blockcode>

var dossierFacture = companyhome.childByNamePath("Sites/test-facture-courrier/documentLibrary/facture");

var factures = dossierFacture.children;
var r = companyhome.childByNamePath("r.txt") || companyhome.createFile("r.txt","cm:content"); //Rapport
r.content="nb factures "+factures.length;

if(factures){
   for(var i=0; i<factures.length;i++){
      var fact = factures;
      var props = [];//propriétés ajoutés avec l'aspect
      props["fac:aspFactdateFacture"] = new Date(fact.properties["fac:factdateFacture"]);
      props["fac:aspFactdateReglement"]= new Date(fact.properties["fac:afactdateReglement"]);
      props["fac:aspFactreference"]= fact.properties["fac:factreference"];
      props["fac:aspFactnbpai"]= Number(fact.properties["fac:factnbpai"]);
      props["fac:aspFactmontant"]= Number(fact.properties["fac:factmontant"]);
      props["fac:aspFactEmplacement"]= fact.properties["fac:Emplacement"] || "";
      
      r.content+="\r\n"+fact.type+"\r\n";
      
      fact.specializeType("cm:content");
      //fact.addAspect("fac:aspFacture",props);
      fact.save();
      
      r.content+=fact.type+"\r\n";
   }
}
</blockcode>

Je l'ai ajouté dans Dictionnaire de données/Scripts sous le nom de "transformer_facture_doc_asp.js"
J'ai créé un dossier dans mon site de test, et créé une règle sur ce dossier qui déclenche ce script quand n'importe quel élément entre dans le dossier.
Le script fonctionne, et j'obtiens mon rapport "r.txt" dans l'Entrepôt dans lequel se trouve le texte suivant :
<blockquote>
nb factures 3
{http://www.alfresco.org/model/content/1.0}systemfolder
{http://www.alfresco.org/model/content/1.0}systemfolder

{http://www.alfresco.org/model/pisys/1.0}facture
{http://www.alfresco.org/model/pisys/1.0}facture

{http://www.alfresco.org/model/pisys/1.0}facture
{http://www.alfresco.org/model/pisys/1.0}facture
</blockquote>

Résultat : les factures ne changent pas de type.
PS : il n'y a que 2 factures dans le dossier "facture", mais le script m'indique 3 factures???

Bref! Si vous avez une idée de ce qui ne va pas, je vous remercie d'avance pour l'aide que vous me procurerez!

Outcomes