Obtener la ruta del archivo cargado en Bizagi

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio > Manejo de archivos con expresiones >

Obtener la ruta del archivo cargado en Bizagi

Introducción

Este artículo describe cómo obtener la ruta física de los adjuntos de Bizagi.

Tenga presente que los adjuntos de Bizagi son aquellos documentos o cualquier tipo de archivo en general, que se ha subido a la información de los casos, sea por medio de la interfaz de usuario o por medio de la API de Bizagi (p.e, la API de reglas o de servicios web SOAP).

Específicamente, los adjuntos consideran todos los archivos que sean de tipo archivo o imagen en el modelo de datos de sus procesos Bizagi.

Para mayor información sobre archivos o imágenes, consulte los tipos de atributos.

 

note_pin

Esta información no aplica para Bizagi PaaS.

Recuerde que con Bizagi PaaS, un equipo de expertos es designado en Bizagi, encargado de todos los aspectos de infraestructura y los servicios por debajo, como por ejemplo las tareas de TI relacionadas al aprovisionamiento, mantenimiento y afinamiento, o soporte técnico. Esto incluye contar con toda la infraestructura y servicios monitoreados 7x24.

Esto a su vez implica que no podrá acceder directamente a rutas de almancenamiento, o usar cualquier otro tratamiento similar que se base en la ubicación física de archivos.

Usted podrá trabajar con la información de adjuntos desde los Conectores de Bizagi o dentro de expresiones de negocio.

 

¿Cuándo es esto útil?

Comúnmente usted no necesitará preocuparse por la ruta exacta de los adjuntos en Bizagi.

Bizagi maneja los adjuntos de manera consistente en todos sus componentes, incluyendo las interfaces de usuario, y los diferentes momentos (sea cuando se almacenan o cuando se visualizan después).

Sin embargo, podrán surgir situaciones de negocio donde se quiera procesar la información dentro de un archivo adjunto (leerla o actualizarla).

Cuando este es el caso, usted podrá ubicar el archivo en la ruta física para su uso dentro de reglas de negocio de Bizagi (y por ejemplo, usar las capacidades de la librería de componentes).

 

note_pin

Este enfoque aplica cuando se almacenan los archivos en un servidor de archivos (no cuando se usa la integración ECM donde se utiliza un repositorio de SharePoint, Alfresco, o similar).

 

Lo anterior también aplica cuando ese archivo ya ha sido persistido físicamente por Bizagi.

Esto significa que cuando un archivo es subido por primera vez en una tarea, dentro de esa misma tarea aún no podrá accederse el archivo físicamente ya que se encuentra dentro de la información temporal de esa tarea (scope).

Este archivo será persistido físicamente después de que la transacción de la tarea se haya completado (un commit).

Para mayor información sobre este concepto en Bizagi, consulte Scopes.

 

 

Fórmula para la ruta física

La siguiente fórmula hace referencia a la estructura de sub carpetas dinámica que se usa dentro de la carpeta principal configurada por el parámetro llamado Upload Path, como se describe en la Configuración avanzada del Entorno.

La estructura de las sub carpetas se organiza como se describe a continuación:

 

…\IdEntity\WholePart\SurrogateKey\IdAttribute\

 

Recuerde que por defecto, la ruta base como se representa por %BA_DEFAULT_UPLOADPATH%, es ubicada como C:\Bizagi\Projects\[Su_proyecto]\Docs\.

Para esta fórmula, considere:

 

IdEntity: Es el Id de la entidad en la cual se encuentra el atributo tipo archivo. Esta información es dinámica, por lo que la información se conoce en tiempo de ejecución ya que cada caso del proceso tendrá un valor diferente. Para conocer el id de la entidad es necesario utilizar la siguiente expresión:

 

CEntityManager.GetEntity("NombreEntidad").Id

 

SurrogateKey: Es el valor de la llave de la instancia de la entidad, donde se encuentra el atributo de tipo archivo. Para conocer este valor, es necesario obtener la entidad deseada y realizar checkout del .SurrogateKeyValue.

Esta información es dinámica, por lo que la información se conoce en tiempo de ejecución ya que cada caso del proceso tendrá un valor diferente.

 

WholePart: Se define como el número completo de dividir SurrogateKeyValue por 1000. También se puede obtener realizando el siguiente cálculo:

  WholePart = (SurrogateKey - (SurrogateKey Module 1000)) / 1000

  De nuevo, esta información es dinámica y se deriva de SurrogateKeyValue.

 

IdAttribute: Es el id del atributo tipo archivo que contiene el archivo cargado. Esta información es dinámica, por lo que la información se conoce en tiempo de ejecución ya que cada caso del proceso tendrá un valor diferente. Para conocer el id del atributo, se puede hacer uso de la siguiente expresión:

 

CEntityManager.GetEntity("NombreEntidad").Attributes["NombreAtributo"].Id

 

note_pin

Se recomienda que haga uso de CEntityManager.GetEntity("NombreEntidad") en lugar de Me.getXPath("entity-list('NombreEntidad,'Filtro') para garantizar el correcto funcionamiento de su expresión.

 

Ejemplo

Un archivo es cargado en la entidad Products (id número 10043 con CEntityManager.GetEntity("Products").Id).

El nombre del atributo en Products que guarda el archivo se llama Document (id número 10010 con CEntityManager.GetEntity("Products").Attributes["Document"].Id).

Por lo tanto, para este ejemplo, la ruta física se calcula como se enseña a continuación:

 

IdEntity: 10043.

IdAttribute: 10010.

SurrogateKey: 205 (obtenido del caso creado)

Whole part: 0 (Whole part = (205 - 205) / 1000)

 

Asumiendo que la ruta base configurada en Bizagi Studio para el proyecto es: C:\BizAgi\Projects\Project01\Docs\.

Entonces la ruta completa para acceder al archivo será: C:\BizAgi\Projects\Project01\Docs\10043\0\205\10010\.

 

Si el archivo cargado se llama OctoberBalances.xls, esto quiere decir que el archivo estará disponible en: C:\BizAgi\Projects\Project01\Docs\10043\0\205\10010\OctoberBalances.xls.

 

note_pin

Para conocer cómo obtener el nombre de archivo (fileName) dinámicamente, utilice una expresión getXPath similar a la descrita en la sección Cargar archivos utilizando expresiones.