Copiar el contenido de un archivo a una colección

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio > Manejo de archivos con expresiones >

Copiar el contenido de un archivo a una colección

Es posible copiar el contenido de una atributo de tipo archivo a otro del mismo tipo contenido en una colección.

 

Imagine un proceso donde se cargan documentos a lo largo del proceso. El proceso mantiene un registro de los archivos cargados; una colección almacena los archivos, la fecha de subida y los usuarios que los subieron, como se muestra en la siguiente imagen.

 

 

AdvancedFilesManagement19

 

Se utiliza un único atributo de tipo archivo para cargar los documentos en cada una de las actividades del proceso, de manera que cada vez que se finaliza una actividad, su contenido es copiado en un atributo de la colección e inicializado para poder ser utilizado en la siguiente actividad.

 

 

AdvancedFilesManagement20

 

 

 

El modelo de datos muestra el atributo de tipo archivo utilizado para cargar los documentos (ActivityDocument) y la colección que mantiene los registros (Documents). Observe que esta posee otro atributo de tipo archivo para almacenar los documentos (DocumentFile).

 

 

AdvanceFilesManagement15

 

 

Para copiar los documentos desde el atributo tipo archivo a la colección, usted puede utilizar la siguiente expresión:

 

 

AdvancedFilesManagement21

 

//Cree un nuevo registro en la colección

var NewDocument= Me.addRelation("Process.Documents")

//Agregue la infomación adicional al nuevo registro (fecha de subida y usuario)

NewDocument.setXPath("UploadDate", DateTime.Now)

NewDocument.setXPath("Uploadedby", Me.Case.WorkingCredential.UserId)

 

//Obtenga los datos del atributo tipo archivo utilizado para subir el documento

var OriginalFile = Me.getXPath("Process.ActivityDocument");

 

//Navegue el arreglo de archivos

for(var i=0; i < OriginalFile.size(); i++)

{

//Obtenga los datos del archivo

      var FiletoCopy = OriginalFile.get(i);

      var Name = FiletoCopy.getXPath("FileName");

      var Data = FiletoCopy.getXPath("Data");

//Copie el archivo en el atributo tipo archivo de la colección

      var NewFile = NewDocument.addRelation("DocumentFile");

      NewFile.setXPath("FileName", Name);

      NewFile.setXPath("Data", Data);

}

//Inicialice el atributo tipo archivo.

Me.deleteAllCollectionItems("Process.ActivityDocument");

 

La expresión anterior crea un nuevo registro en la colección destino utilizando el método addRelation. Luego obtiene el arreglo de archivos almacenados en el atributo ActivityDocument y navega a través de este para obtener el nombre y datos del archivo a copiar.

Finalmente la información anterior es copiada en el atributo de la colección (DocumentFile). Observe que Me.addRelation cambia en la primera variable a aquella que contiene la relación a la colección. (NewDocument.addRelation).