Problema con objeto predicado con .net

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

Problema con objeto predicado con .net

Hola,

estoy trabajando en una integración con Alfresco desde una aplicación de escritorio con tecnología .net, en concreto c#

En general el desarrollo está marchando bien pero tengo un problema con operaciones en las que uso un predicado para el objeto cml. Monto todos los objetos, predicado, cml y al llamar a update me devuelve una excepción y no sé cómo atacarla.

Os pongo un ejemplo de un método que he preparado para cambiarle un nombre a una carpeta utilizando un ejemplo de está página

http://wiki.alfresco.com/wiki/IngresTutorial_Alfresco_Web_Service_API_for_Java#Move_a_space

Mi código sería:

ConvertirAPadre: crea un objeto ParentReference de la referencia destino (carpeta en la que queremos dejar el nuevo directorio)

private void MoverDirectorio(Reference directorio, Reference destino, string nombreNuevo, string nombreViejo)
        {
            ParentReference padreDestino = ConvertirAPadre(destino);
            padreDestino.childName = Constantes.crearQNameString(Constantes.NAMESPACE_CONTENT_MODEL, Constantes.normaliza(nombreNuevo));

            CMLMove cmlMover = new CMLMove();
            cmlMover.childName = Constantes.crearQNameString(Constantes.NAMESPACE_CONTENT_MODEL, nombreViejo);
            cmlMover.associationType = Constantes.ASSOC_CONTAINS;
            cmlMover.to = padreDestino;
            Predicate pred = new Predicate();
            pred.Items = new Reference[]{directorio};
            cmlMover.where = pred;
            //move.setWhere(new Predicate(new Reference[] {space},STORE,null));

            NamedValue nvalue = new NamedValue();
            nvalue.name = Constantes.PROP_NAME;
            nvalue.value = nombreNuevo;

            CMLUpdate cmlActualizar = new CMLUpdate();
            cmlActualizar.property = new NamedValue[] { nvalue };
            cmlActualizar.where = pred;
            //cmlActualizar.where_id = this.contenedorCarpetas.address;

            //update.setWhere(new Predicate(new Reference[]{space},STORE,null));

            CML cml  = new CML();
            cml.move = new CMLMove[]{cmlMover};
            cml.update = new CMLUpdate[]{cmlActualizar};
          
          //Execute the CML move and Update statement
            try
            {
             servicioRepository.update(cml);
            }
            catch (Exception e2)
            {   
             throw e2;
            }   
        }
En el ejemplo de la página construyen el objeto predicado pasándole un store general, pero el constructor del predicado no tiene parámetros, así que no sé cómo hacerlo.

Además, ¿hay algún sito de dónde pueda sacar código en c# de ejemplo?

Gracias por vuestra ayuda
1 Reply
venzia
Senior Member

Re: Problema con objeto predicado con .net

Hola jclaveria, vamos a iniciar un solo post .. si te parece partimos del otro que lo veo mejor clasificado en ese apartado http://forums.alfresco.com/es/viewtopic.php?f=12&t=2570
Gracias,