<< Clic para mostrar Tabla de Contenidos >> 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
}
}
Last Updated 1/27/2022 9:25:59 AM