<< Clic para mostrar Tabla de Contenidos >> 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.
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.
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).
Para copiar los documentos desde el atributo tipo archivo a la colección, usted puede utilizar la siguiente expresión:
//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).
Last Updated 1/26/2022 4:10:51 PM