miércoles, 12 de marzo de 2014

Búsqueda y Lectura de Documentos desde DOTCMIS

Búsqueda


Para realizar una búsqueda de archivos en Alfresco, debemos hacer uso de CMIS Query Language; lo que nos permitirá realizar consultas, como si de una base de datos se tratase.

Por ejemplo:
SELECT
d.cmis:name, d.cmis:objectId, d.cmis:baseTypeId, d.cmis:objectTypeId, d.cmis:createdBy,
d.cmis:lastModifiedBy, d.cmis:lastModificationDate, d.cmis:contentStreamMimeType,
d.cmis:contentStreamFileName,d.cmis:contentStreamId,d.cmis:contentStreamLength,
FROM cmis:document as d
El código quedaría de este modo:
string query = @"
SELECT
d.cmis:name, d.cmis:objectId, d.cmis:baseTypeId, d.cmis:objectTypeId, d.cmis:createdBy,
d.cmis:lastModifiedBy, d.cmis:lastModificationDate, d.cmis:contentStreamMimeType,
d.cmis:contentStreamFileName,d.cmis:contentStreamId,d.cmis:contentStreamLength,
FROM cmis:document as d ";

IItemEnumerable<IQueryResult> result = session.Query(query, false);
Pueden probar las consultas utilizando la herramienta CMIS Workbench y para mayor información pueden revisar esta información.



Lectura

Lo primero que debemos hacer es crear un objeto de la clase CMISDocument, del siguiente modo:
CMISDocument cmisIntegrationResponse = new CMISDocument();
Luego obtenemos el objeto (en este caso el documento) que deseamos, utilizando el método GetObject
ICmisObject icmisObject = session.GetObject(ObjectIdDoc);
Posteriormente, obtenemos el IContentStream de dicho objeto
DotCMIS.Data.IContentStream contentStream = session.GetContentStream(icmisObject);
El objeto IContentStream contendrá el nombre, la extensión y por supuesto el Stream; datos que podemos guardar en alguna objeto del tipo de una clase creada por nosotros; para mejor manejo.
cmisIntegrationResponse.ContentStreamFileName = contentStream.FileName.ToString();
cmisIntegrationResponse.ContentStreamMimeType = contentStream.MimeType.ToString();
cmisIntegrationResponse.Stream = contentStream.Stream;

return cmisIntegrationResponse;

No hay comentarios.:

Publicar un comentario