AnsweredAssumed Answered

Property vs. Aspekt

Question asked by martinn on Aug 16, 2011
Latest reply on Aug 17, 2011 by thomash
Hallo,
ich benötige wieder Infos.
1. Zum einen ist mir nicht ganz deutlich geworden, was der eigentliche Unterschied zwischen Properties und Aspekts ist.
2. Ich möchte in einer Anwendung Dokumente nach Alfresco hochladen lassen. Das klappt bereits. Nun möchte ich auch die Versionierung ermöglichen. Dazu braucht man m.E. einen Aspekt. In dem Beispiel dotNet2 gibt es Beispiele wie z.B. Images hochgeladen werden. Dieses Beispiel habe ich genutzt um andere Dokumente wie z.B. Word- u. Excel Dateien, PDFs etc. hochladen zu können. Im Code sind z.B. folgende Zeilen vorhanden:

            // Create the properties list
            nameProperty = new NamedValue();
            nameProperty.name = Constants.PROP_NAME;
            nameProperty.value = strFileName;
            nameProperty.isMultiValue = false;
            //if new properties must be added, change the next line accordingly
            arrProperties = new NamedValue[4];
            arrProperties[0] = nameProperty;

            nameProperty = new NamedValue();
            nameProperty.name = Constants.PROP_TITLE;
            nameProperty.value = strFileName;
            nameProperty.isMultiValue = false;
            arrProperties[1] = nameProperty;

            nameProperty = new NamedValue();
            nameProperty.name = Constants.ASPECT_VERSIONABLE;
            nameProperty.value = strFileName;
            nameProperty.isMultiValue = false;
            arrProperties[2] = nameProperty;

            nameProperty = new NamedValue();
            nameProperty.name = Constants.ASPECT_CLASSIFIABLE;
            nameProperty.value = strFileName;
            nameProperty.isMultiValue = false;
            arrProperties[3] = nameProperty;

            // Create the CML create object
            objCreate = new CMLCreate();
            objCreate.parent = parentReference;
            objCreate.id = "1";
            objCreate.type = Constants.TYPE_CONTENT;
            objCreate.property = arrProperties;

            // Create and execute the cml statement
            objCml = new CML();
            objCml.create = new CMLCreate[] { objCreate };
            arrUpdateResult = repoService.update(objCml);

            // work around to cast Alfresco.RepositoryWebService.Reference to
            // Alfresco.ContentWebService.Reference
            Alfresco.RepositoryWebService.Reference rwsRef = arrUpdateResult[0].destination;
            Alfresco.ContentWebService.Reference newContentNode = new Alfresco.ContentWebService.Reference();
            newContentNode.path = rwsRef.path;
            newContentNode.uuid = rwsRef.uuid;
            Alfresco.ContentWebService.Store cwsStore = new Alfresco.ContentWebService.Store();
            cwsStore.address = "SpacesStore";
            spacesStore.scheme = Alfresco.RepositoryWebService.StoreEnum.workspace;
            newContentNode.store = cwsStore;
           
            // Open the file and convert to byte array
            inputStream = new FileStream(file, FileMode.Open);

            iBufferSize = (int)inputStream.Length;
            arrBytes = new byte[iBufferSize];
            inputStream.Read(arrBytes, 0, iBufferSize);

            inputStream.Close();
Wie zu sehen ist werden Properties z.B. versionable und classifiable gesetzt. Dennoch haben hoch geladene Dokumente zwar eine Versionsnummer, dennoch wird diese nicht hochgezählt wenn eine neuere Version einer Datei hoch geladen wird. Wozu also setzt man in dem Beispiel diese Properties?
3. Soll man das mit der Versionierung besser über Aspekte realisieren, die durch Regeln des übergeordneten Verzeichnisses an die Dokumente vererbt werden?

Danke für die Mühe im Voraus.

Outcomes