Consultas: CMIS-Alfresco

cancel
Showing results for 
Search instead for 
Did you mean: 
nalvarez_colesc
Active Member II

Consultas: CMIS-Alfresco

Buenos días !!!!!! Disculpen una vez mas las molestias. Necesito de sus conocimientos para avanzar un poco mas en el manejo de la consola de nodos de Alfresco. La idea básicamente es poder obtener documentos mediante consultas de CMIS (solo para análisis de datos y estadísticas).

Paso a mostrarles un poco de que viene la consulta:

                Accedo a la consola de alfresco,  consulto por todos los documentos del modelo personalizado (para que vean que necesito en cuestión) y tome cualquier documento a modo de ejemplo: 

Ahora, lo que necesito es poder consultar al campo: sys:node-uuid , para esto intente ejecutar la siguiente consulta:

SELECT * FROM colescba:documento WHERE sys:node-uuid = '4d69106d-10a7-4f23-ab2d-87fc7613aa8e'

La misma me da error de sintaxis, la verdad que no logro entender el por que, ya que la misma me funciona correctamente con otros campos, como por ejemplo: 

SELECT * FROM colescba:documento WHERE colescba:Fecha_modificacion > TIMESTAMP '2018-10-01T00:00:00.000Z'

Me interesaría mucho entender mucho mas como funciona la lógica de las consultas de CMIS y/o solr4 ya que para mi trabajo diario lo veo muy provechoso.

Desde ya muchas gracias por su tiempo y disculpen la molestia.

1 Reply
angelborroy
Alfresco Employee

Re: Consultas: CMIS-Alfresco

Deberías estudiar el material de Jeff Potts:

CMIS Resource Center | ECM Architect 

https://ecmarchitect.com/images/articles/cmis/cmis-article.pdf 

Working With Custom Content Types in Alfresco | ECMArchitect | Alfresco Developer Tutorials 

También tienes ejemplos prácticos en la propia página de Apache Chemistry:

Query Examples - Apache Chemistry Samples 

Para este caso concreto hay varios comentarios.

Los tipos y aspectos son tratados como tablas. Si quieres recuperar un campo de un aspecto o tipo, debes incluirlo como "tabla". De acuerdo a esto, la consulta que quieres hacer sería algo así:

SELECT * FROM sys:referenceable WHERE sys:node-uuid='5bd6e7e0-bdd3-44eb-a42b-7e195f6fe830'

Ya que "sys:node-uuid" pertenece al aspecto "sys:referenceable". 

El problema es que el aspecto "sys:referenceable" está marcado como "no queriable", así que la norma general no es válida.

Para hacer esta consulta deberás tirar de los mapeos estándar de CMIS y reformularla así.

SELECT * FROM cmis:document WHERE cmis:objectId='5bd6e7e0-bdd3-44eb-a42b-7e195f6fe830'
Hyland Developer Evangelist