Asignar la metadata a través de reglas

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Plantillas de Documentos > Temas avanzados de plantillas de documentos > Integración ECM > Definir el ECM en Bizagi >

Asignar la metadata a través de reglas

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).

 

Esto significa que puede optar por usar una regla de negocio que asigne esta información del caso hacia la metadata de la carpeta del repositorio.

 

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

 

 

Ejemplo 1

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

}

 

Ejemplo 2

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

 }

}