cancel
Showing results for 
Search instead for 
Did you mean: 

Ejemplo de como iterar los nodos en la Busqueda -CMIS

juanvzla
Champ in-the-making
Champ in-the-making
Tengo dudas de como iterar para extraer la informacion de un documento mediante CMIS

este es el codigo:

<code>
   
   public void searchDoc(String docName, String folderName){
      
      
    try {
      
          String queryString = "Select * from cmis:document where cmis:name = '" + docName + "'  ";
         ItemIterable<QueryResult> results = autenticar.getSession().query(queryString, false);

         System.out.println(" size"+results.getTotalNumItems());
         
         int index=0;
         for (QueryResult result : results) { 
            
            List<PropertyData<?>> properties = result.getProperties();      
              
            
               for (PropertyData<?> property : properties)
               {
                  
                  System.out.println(index + ": " + property.getQueryName() + " => " + property.getValues().toString());
               
               }
            
            
            
            
          index++;   
         }
         
      
      
       } catch (Exception e) {
      // TODO: handle exception
      }
   
      
      
      
   }

Como puedo extraer de cada row sus datos (personalizados)???

<code>
4 REPLIES 4

americanolinhar
Champ on-the-rise
Champ on-the-rise
Maybe it can help:


   private static void performMetadataExport(Session session, ItemIterable<QueryResult> results){
      
      try {
         

            for (QueryResult result : results){
               String[] valueList = new String[8];
               
               valueList[0] = (String)result.getPropertyValueByQueryName("cmis:name");
               valueList[1] = (String)result.getPropertyValueByQueryName("cmis:createdBy");
               valueList[2] = (String)result.getPropertyValueByQueryName("cmis:lastModifiedBy");
               valueList[3] = (String)result.getPropertyValueByQueryName("cmis:objectId");
               valueList[4] = (String)result.getPropertyValueByQueryName("cmis:versionLabel");
               //valueList[5] = (String)result.getPropertyValueByQueryName("cmis:objectTypeId");
               //valueList[6] = (String)result.getPropertyValueByQueryName("cmis:parentTypeId ");
      
                  
               

            }
            LOGGER.info("CmisMetadataExport: Exported: " + results.getTotalNumItems() + " items.");
   
            
         }
         catch(Exception e){
            LOGGER.error(e.toString());
         }   
         LOGGER.info("CmisMetadataExport: Export Complete.");
   }

Hola mi modelo esta definido por tipo y el tipo tiene un aspecto ejemplo:


<code>


  <type name = "rg:test">
     <title>Tipo test</title>
     <parent>cm:content</parent>         
     <properties>
          <property name="rg:numTest">
       
              <title>Número test</title>
              <type>d:text</type>          
              <mandatory>false</mandatory>
         
          </property>
     </properties>
        <mandatory-aspects>
            <aspect>rg:aspectoRelacionRegitroCivil</aspect>
      </mandatory-aspects>
   
   </type>


<aspects>
    <aspect name="rg:aspectoTest">
         <title> Metadatos relacional </title>      
         <properties>
             <property name="rg:campo1">
                    <title>campo 1</title>
                    <type>d:text</type>
                    <mandatory>false</mandatory>
             </property>
           <property name="rg:campo2">
                    <title>campo 2</title>
                    <type>d:text</type>
                    <mandatory>false</mandatory>
             </property>
         
         </properties>
      </aspect>
   </aspects>

Este es el metodo que me imprime los datos nativos de alfresco

  String queryString = "Select * from cmis:document where cmis:name = '" + docName + "'  ";
  ItemIterable<QueryResult> results = autenticar.getSession().query(queryString, false);
  for (QueryResult result : results) {
   String name = result.getPropertyValueByQueryName("cmis:name");
   String id =result.getPropertyValueByQueryName("cmisSmiley SurprisedbjectId");
   String author =   result.getPropertyValueByQueryName("cmisSmiley SurprisedbjectId");
   List<String> tags =     result.getPropertyMultivalueByQueryName("rg:campo1");

      
Deseo imprimir los metadatos personalizados que le cree a mi tipo(aspecto y metadatos que estan dentro de mi tipo como lo hago??

    Tendra algo que ver en el select??
Actualmente le indico que busque esto:  "Select * from cmis:document where cmis:name = '" + docName + "'  ";

Con esto quiero decirle que me busque el documentos y me muestre toda su metadata(nativa y personalizada) que tenga el nombre xxxx


            
         
<code>

angelborroy
Community Manager Community Manager
Community Manager
Puedes hacer una query directa sobre los tipos y aspectos:
<CODE>select * from rg:test</CODE>
<CODE>select * from rg:aspectoTest</CODE>
Hyland Developer Evangelist

juanvzla
Champ in-the-making
Champ in-the-making
Si muchas gracias , casualmente luego de algunas pruebas note que se podia.

Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.