Copiar el contenido de un archivo de un atributo a otro

<< Click to Display Table of Contents >>

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

Copiar el contenido de un archivo de un atributo a otro

Atributo de tipo Archivo

Es posible copiar el contenido de un atributo tipo archivo a otro atributo del mismo tipo. Recuerde que un atributo tipo archivo puede contener varios archivos.

En el siguiente ejemplo, los archivos adjuntos en el atributo Documents serán copiados en el atributo DocumentsBackup para crear una copia de seguridad de los archivos subidos durante el proceso. Estos atributos están en la entidad de proceso (llamado Business Opportunity).

 

AdvanceFilesManagement5

 

La expresión lucirá de la siguiente manera:

 

AdvanceFilesManagement4

 

//Tomar el arreglo de los archivos

var OriginalFile = Me.getXPath("BusinessOpportunity.Documents");

//Navegue a través del arreglo

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

{

//Obtenga el archivo original

      var FileCopy = OriginalFile.get(i);

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

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

//Copie el archivo en la copia

      var NewFile = Me.addRelation("BusinessOpportunity.DocumentsBackup");

      NewFile.setXPath("FileName", Name);

      NewFile.setXPath("Data", Data);

 

}

 

note_pin

Recuerda que el orden de los atributos del XPath es necesario para el funcionamiento de la expresión. FileName debe ser establecido antes que Data.

 

La siguiente expresión contiene el arreglo de archivos guardados en el atributo de tipo archivo Documents. Luego navegue a través del arreglo para obtener el nombre y la información del archivo original. Finalmente cada archivo (nombre y su contenido) es copiado en el atributo DocumentsBackup.

 

Atributo de tipo Imagen

En el caso de que los atributos mencionados anteriormente sean imágenes y no archivos, considere el siguiente ejemplo que usa imágenes, no archivos:

 

AdvanceFilesManagement_new1

 

La expresión lucirá de la siguiente manera:

 

AdvanceFilesManagement_new2

 

//Get original file data

 var Name = Me.getXPath("BusinessOpportunity.ContractImage.FileName");

 var Data = Me.getXPath("BusinessOpportunity.ContractImage.Data");

//Copy original file in the destination file

 Me.setXPath("BusinessOpportunity.ContractImageBackup.fileName", Name);

 Me.setXPath("BusinessOpportunity.ContractImageBackup.Data", Data);

 

 

La expresión anterior obtiene los datos de la imagen guardada en el atributo ContractImage. Entonces el nombre y los datos son copiados al atributo ContractImageBackup.