Domanda

sto scrivendo un OpenCMIS based, che estrae alcuni dati da Alfresco 3.3.

Funziona bene con standard proprietà CMIS quali cmis:name o cmis:contentStreamMimeType; tuttavia, non possono accedere Alfresco especific proprietà, che sono presenti sul feed CMIS AtomPub come "estensioni Alfresco":

<cmisra:object>
  <cmis:properties>
    <cmis:propertyString propertyDefinitionId="cmis:name" displayName="Name" queryName="cmis:name">
      <cmis:value>test document</cmis:value>
    </cmis:propertyString>
    <cmis:propertyString propertyDefinitionId="cmis:contentStreamMimeType" displayName="Content Stream MIME Type" queryName="cmis:contentStreamMimeType">
      <cmis:value>text/html</cmis:value>
    </cmis:propertyString>
    ...
    <alf:aspects>
      ...
      <alf:properties>
        <cmis:propertyString propertyDefinitionId="cm:description" displayName="Description" queryName="cm:description">
          <cmis:value>This is just a test document</cmis:value>
        </cmis:propertyString>
      </alf:properties>
    </alf:aspects>
  </cmis:properties>
</cmisra:object>

C'è un modo in cui posso ottenere il valore di cm:descripcion, con OpenCMIS?

La mia ipotesi è che ho bisogno di utilizzare l'interfaccia DocumentType invece di Document, e poi chiamare il suo metodo getExtensions(). Ma io non so come ottenere un'istanza di DocumentType.

Qualsiasi aiuto sarebbe molto apprezzato.

Saluti


Modifica ospitarci la risposta di Florian già funzionato per me, ho appena capito che posso ottenere valori di queste proprietà con CMIS SQL, troppo:

select d.*, t.*, a.*
from   cmis:document d
join   cm:titled t on d.cmis:objectid = t.cmis:objectid
join   cm:author a on d.cmis:objectid = a.cmis:objectid
where  t.cm:description like ...
È stato utile?

Soluzione

Ho paura le OpenCMIS di alto livello API non può accedere a tutte le estensioni ancora. E 'sulla nostra lista di cose da fare. Per il momento, è necessario utilizzare l'API di basso livello. Qualcosa del genere dovrebbe funzionare:

ObjectData doc = session.getBinding().getObjectService().getObject(...);
org.w3c.dom.Node domNode = (org.w3c.dom.Node) doc.getProperties().getExtensions().get(0); // <alf:aspects>
domNode.getFirstChild() ... 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top