Concatenar documentos desde un arreglo de archivos

<< 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 > Concatenar Documentos >

Concatenar documentos desde un arreglo de archivos

Introducción

Esta sección describe cómo hacer uso de la función para concatenar documentos desde un arreglo de archivos.

 

Ejemplo

En el siguiente proceso de ejemplo, asuma que se tiene una entidad de proceso llamada OfficeSupplyRequest.

Este proceso tiene el siguiente modelo de datos:

 

ProductRequestDataModel

 

Se desea que el atributo Request Summary tenga todos los documentos que hayan sido cargados a la colección Quotations. Para lograrlo, se usará el método concatenar documentos de un arreglo de archivos.

 

note_pin

Los documentos a concatenar deben ser del mismo formato, sea PDF o Microsoft Word. De otra manera, el método no funcionará correctamente.

 

Concatenando documentos de Word

Para este caso la función sería:

 

CHelper.ConcatDocumentsFromFilesArrayToWord(filesArray)

 

El parámetro de esta función es:

filesArray: el arreglo con los datos de los archivos a ser concatenados.

 

 

Para concatenar los archivos del ejemplo, necesitará del editor de expresiones:

 

concatdoc_array_doc

 

La anterior expresión es de la siguiente manera:

var quotations = CHelper.GetValueAsCollection(<OfficeSupplyRequest.Quotations.Quotation>);
var fileList = new ArrayList();
for(var i=0; i<quotations.size(); i++){
  var quotation = quotations.get(i);
  var fileData = quotation.getXPath("Data");
  fileList.Add(fileData);
}
if(fileList.Count > 0){
  var file = CHelper.ConcatDocumentsFromFilesArrayToWord(fileList);
  var File = Me.newCollectionItem("MyProcess.ResultFile");
  File.setXPath("FileName", "AllQuotations_" + Me.Case.Id + ".docx");
  File.setXPath("Data", file);
} else {
  CHelper.ThrowValidationError("No files");
}

 

El archivo resultante tendrá como nombre AllQuotations_[CaseNumber].docx.

 

note_pin

Por favor asegúrese que la extensión del archivo concuerde con el tipo de documento que utiliza el método.

 

Concatenando documentos en PDF

Para este caso la función sería:

 

CHelper.ConcatDocumentsFromFilesArrayToPDF(filesArray)

 

El parámetro de esta función es:

filesArray: el arreglo con los datos de los archivos a ser concatenados.

 

 

Para concatenar los archivos del ejemplo, necesitará del editor de expresiones:

 

concatdoc_array_pdf

 

La anterior expresión es de la siguiente manera:

var quotations = CHelper.GetValueAsCollection(<OfficeSupplyRequest.Quotations.Quotation>);
var fileList = new ArrayList();
for(var i=0; i<quotations.size(); i++){
  var quotation = quotations.get(i);
  var fileData = quotation.getXPath("Data");
  fileList.Add(fileData);
}
if(fileList.Count > 0){
  var file = CHelper.ConcatDocumentsFromFilesArrayToPdf(fileList);
  var File = Me.newCollectionItem("MyProcess.ResultFile");
  File.setXPath("FileName", "AllQuotations_" + Me.Case.Id + ".pdf");
  File.setXPath("Data", file);
} else {
  CHelper.ThrowValidationError("No files");
}

 

 

El archivo resultante tendrá como nombre AllQuotations_[CaseNumber].pdf.

 

note_pin

Por favor asegúrese que la extensión del archivo concuerde con el tipo de documento que utiliza el método.