04-20-2010 02:27 AM
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.04-20-2010 01:32 PM
//crear la estructura por defecto para cada usuario nuevo
private bool gfCrearSubcarpetaAnno(Alfresco.RepositoryWebService.Reference pReference, string NombreEmpleado)
{
if (pReference != null)//comprobamos que el parentreference no es nulo
{
Alfresco.RepositoryWebService.ParentReference parentReference = new Alfresco.RepositoryWebService.ParentReference();
parentReference.store = shell.spacesStore;
try
{
parentReference.uuid = pReference.uuid;
//creamos la ruta codificada
parentReference.associationType = Constants.ASSOC_CONTAINS;
parentReference.childName = Constants.createQNameString(Constants.NAMESPACE_CONTENT_MODEL, DateTime.Now.Year.ToString());
Alfresco.RepositoryWebService.NamedValue[] properties = new Alfresco.RepositoryWebService.NamedValue[3];
// Creamos la lista de propiedades
Alfresco.RepositoryWebService.NamedValue nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_NAME;
nameProperty.value = DateTime.Now.Year.ToString();
nameProperty.isMultiValue = false;
properties[0] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_TITLE;
nameProperty.value = DateTime.Now.Year.ToString();
nameProperty.isMultiValue = false;
properties[1] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_DESCRIPTION;
nameProperty.value = "Documentos del año " + DateTime.Now.Year.ToString();
nameProperty.isMultiValue = false;
properties[2] = nameProperty;
// Creamos el objeto CMLCreate
CMLCreate create = new CMLCreate();
create.parent = parentReference;
create.id = "1";
create.type = Constants.TYPE_FOLDER;
create.property = properties;
// Creamos y ejecutamos la sentencia
CML cml = new CML();
cml.create = new CMLCreate[] { create };
UpdateResult[] updateResult = shell.repoService.update(cml);
return true;
}
//error al crear espacio
catch (Exception ex)
{
return false;
}
}
}
Espero que te sirva .. y si tienes dudas pregunta sin miedo .. te echaré una mano en lo que pueda :wink:.04-21-2010 03:26 AM
04-21-2010 04:01 AM
public bool gfModificarRegistro(cRegistro registro)
{
Cursor.Current = Cursors.WaitCursor;
MensajeBarraEstado("Actualizando los metadatos del Registro " + registro.nombre);
try
{
Alfresco.RepositoryWebService.Reference reference = new Alfresco.RepositoryWebService.Reference();
reference.store = spacesStore; //la definicion del store la explico mas abajo
reference.uuid = registro.id;
Alfresco.RepositoryWebService.Predicate predicate = new Alfresco.RepositoryWebService.Predicate();
predicate.Items = new Object[]{reference};
Alfresco.RepositoryWebService.NamedValue[] properties = new Alfresco.RepositoryWebService.NamedValue[6];
// Create the properties list
Alfresco.RepositoryWebService.NamedValue nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_REF1;
nameProperty.value = registro.ref1;//referencia 1
nameProperty.isMultiValue = false;
properties[0] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_REF2;
nameProperty.value = registro.ref2;//referencia 2
nameProperty.isMultiValue = false;
properties[1] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_REF3;
nameProperty.value = registro.ref3;//referencia 3
nameProperty.isMultiValue = false;
properties[2] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_REF4;
nameProperty.value = registro.ref4;//referencia 4
nameProperty.isMultiValue = false;
properties[3] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_FECHADOC;
nameProperty.value = formatFecha(Convert.ToDateTime(registro.fechadoc));//fecha de documento
nameProperty.isMultiValue = false;
properties[4] = nameProperty;
nameProperty = new Alfresco.RepositoryWebService.NamedValue();
nameProperty.name = Constants.PROP_ENT_FECHAREG;
nameProperty.value = formatFecha(Convert.ToDateTime(registro.fechareg));//fecha de registro
nameProperty.isMultiValue = false;
properties[5] = nameProperty;
// Create the CML update object
CMLUpdate update = new CMLUpdate();
update.where = predicate;
update.where_id = registro.id;
update.property = properties;
// Create and execute the cml statement
CML cml = new CML();
cml.update = new CMLUpdate[] { update };
UpdateResult[] updateResult = this.repoService.update(cml);
Cursor.Current = Cursors.Default;
if (updateResult.Length > 0)
{
MensajeBarraEstado("Registro " + registro.nombre + " actualizado correctamente…");
return true;
}
else//si no se obtienen datos de actualizacion
{
MessageBox.Show("El registro " + registro.nombre + " no se ha podido actualizar …", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
catch (Exception ex)
{
MessageBox.Show("El registro " + registro.nombre + " no se ha podido actualizar …\r\n(" + ex.Message + ")", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
La definición de spaceStore global es la siguiente : //inicializamos el Store sobre el que realizaremos operaciones
this.spacesStore = new Alfresco.RepositoryWebService.Store();
this.spacesStore.scheme = Alfresco.RepositoryWebService.StoreEnum.workspace;
this.spacesStore.address = "SpacesStore";
En caso que no te funcione lo podemos ver.04-21-2010 04:30 AM
04-21-2010 04:58 AM
05-17-2012 03:14 PM
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.