2016-07-20 2 views
1

Ich finde es wirklich schwierig, nützliche Dokumentation zu diesem Thema zu finden. Grundsätzlich habe ich zwei benutzerdefinierte Typen "Concept" und "ConceptScheme" in meinem Alfresco-Content-Modell definiert. Konzeptschema hat eine Assoziation zu vielen Kindkonzepten. So:Wie Kindervereinigungen in Alfresco-Webskripte hinzufügen

 <type name="ancoat:conceptScheme"> 
      <title>Concept Scheme</title> 
      <parent>ancoat:ddiObject</parent> 
      <associations> 
       <child-association name="ancoat:categories"> 
        <source> 
         <mandatory>true</mandatory> 
         <many>false</many> 
        </source> 
        <target> 
         <class>ancoat:concept</class> 
         <mandatory>false</mandatory> 
         <many>true</many> 
        </target> 
        <duplicate>false</duplicate> 
        <propagateTimestamps>true</propagateTimestamps> 
       </child-association> 
      </associations> 
      <mandatory-aspects> 
       <aspect>ancoat:describedObject</aspect> 
      </mandatory-aspects> 
     </type> 

Ich habe zwei Webskripte, eine für die Erstellung des Konzept-Knoten, und eine der Konzept-Schema. Ich möchte nun ein Webscript erstellen, das auf jedes dieser Objekte Bezug nimmt und eine Verbindung zwischen ihnen herstellt.

Wie mache ich das? Ich habe die Funktion Node.createAssociation gefunden, kann aber keine Beispiele dafür finden.

+1

Sie Sie eine Java-Backend WebScript wollen oder JavaScript ein? – Akah

+0

Persönlich macht es mir nichts aus. Ich dachte, dass ich einfach Javascript für die leichteren Aufgaben wie dieses und Java für die komplizierteren Aufgaben machen würde. Aber es ist ziemlich trivial, mit welchem ​​Backend ich an dieser Stelle fortfahre. – Andy

Antwort

1

Ich würde dir den Java-Weg dann beantworten.

Lassen Sie uns sagen, dass der Namespace ist http://ancoat.com/model/content/1.0 für die ancoat Präfix diese Assoziation haben:

public static final QName ANCOAT_CATEGORIES_ASSOC = QName.createQName("http://ancoat.com/model/content/1.0", 
      categories); 

Dann können Sie einen Knoten zu anderen mit dem Knoten Service verbinden:

getNodeService().setAssociations(pNode, ANCOAT_CATEGORIES_ASSOC, targets); 

Wo pNode ist Knoten und targets eine Liste auf Knoten, mit denen Sie die Zuordnung vornehmen möchten.

Jetzt, mit einem Kind Verband, könnte es eine bessere Möglichkeit, die addChild Methode zu verwenden:

getNodeService().addChild(parentRefs, childRef, assocTypeQName, qname)