Actualizar metadata ECM

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio >

Actualizar metadata ECM

Introducción

Por defecto, un documento adjunto mediante la funcionalidad del control Archivos ECM le permitirá editar la metadata (de manera manual).

Sin embargo y cuando se utiliza la integración ECM, hay escenarios en los que se puede necesitar mapear la información de negocio del caso a la metadata del documento (la cual será indexada en el ECM).

 

Para actualizar la metadata, haga uso de la siguiente función:

 

CHelper.UpdateECMMetadata(Me, data, xPath)

 

Los siguientes atributos son necesarios:

Me: este parámetro es fijo.

data: estructura de la metadata.

xPath: corresponde al atributo de tipo archivo del modelo de datos.

 

 

Ejemplo

Los ejemplos a continuación, ilustran los métodos a utilizarse cuando se desea usar una regla para mapear automáticamente la metadata.

 

Archivo cargado

En este ejemplo, mapeamos la información del caso hacia la metadata: Título y Descripción.

Nuestro archivo ECM está contenido en el atributo MiEntidadDeProceso.MiAtributoTipoArchivo.

 

var xPath = "MiEntidadDeProceso.MiAtributoTipoArchivo"; //este XPath corresponde al atributo de tipo archivo del modelo de datos

var metadataHash = new Hashtable(); //crea una estructura temporal para almacenar la metadata

 
metadataHash.Add("Titulo", <MiEntidadDeProceso.AtributoConNombre>);

metadataHash.Add("Descripción", <MiEntidadDeProceso.AtributoConDescripcion>);

//realice esto para cada dato de la metadata

 
var tmpFileAttribute = Me.getXPath(xPath); //obtiene toda la información del atributo de tipo archivo
for(var i=0; i < tmpFileAttribute.size(); i++) //se itera, dado que un atributo de tipo archivo puede contener más de 1 documento

{

 var tmpFile = tmpFileAttribute.get(i); //obtiene el documento para cada registro

 var idFileUpload = tmpFile.getXPath("id"); //obtiene el id del documento

 var completeXpath = xPath + "[id=" + idFileUpload + "]";  //constuye el XPath completo para referenciar cada documento

 CHelper.UpdateECMMetadata(Me, metadataHash, completeXpath); //método para mapear la metadata

}

 

Archivos en una tabla

En este ejemplo,nuestra regla se ejecuta en una forma donde hay una tabla, pero se mapea la metadata para los archivos adjuntos que están como columnas de la tabla (dentro de la misma).

Esto significa que mapeamos el Título y la Descripción (metadata), la cual es información que ya está contenida en el caso.

Lo realizamos para archivos ECM que están dentro de una colección: MyProcessEntity.MyCollection.MyFileAttribute.

 

var xPath = "MyFileAttribute"; //este XPath corresponde al atributo de tipo archivo del modelo de datos
var xPathContext = "MyProcessEntity.MyCollection"; //este XPath corresponde al contexto de la tabla

var metadataHash = new Hashtable(); //crea una estructura temporal para almacenar la metadata

 

metadataHash.Add("Title", <MyProcessEntity.CustomerNameAttribute>);
metadataHash.Add("Description", <MyProcessEntity.SomeDescriptionAttribute>);

//realice esto para cada dato de la metadata

 

var List = Me.getXPath(xPathContext); //obtiene la información de la tabla
var Array = CHelper.GetValueAsCollection(List);

 
for (var j=0; j < Array.size(); j++) //se itera dado que se realiza para cada registro de la tabla
{
 var tmpRecord = Array.get(j); //obtiene el registro
 var FileAttrib = tmpRecord.getXPath(xPath); //obtiene la información del atributo tipo archivo

 var idRecord = tmpRecord.getXPath("id"); //obtiene el id de ese registro

 
 for(var i=0; i < FileAttrib.size(); i++) //se itera, dado que un atributo de tipo archivo puede contener más de 1 documento

 {

         var SubFile = FileAttrib.get(i);  //obtiene el documento

         var idFileUpload = SubFile.getXPath("id");  //obtiene el id del documento

         var completeXpath = xPathContext + "[id=" + idRecord + "]." + xPath + "[id=" + idFileUpload + "]"; //constuye el XPath completo para referenciar cada documento

         CHelper.UpdateECMMetadata(Me, metadataHash, completeXpath); //method to map metadata

 }

}