<< Clic para mostrar Tabla de Contenidos >> 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
}
}
Last Updated 1/26/2022 4:09:42 PM