Resueltas

¿Cómo ingresar datos de Excel a Bizagi?

Estimados,

Tengo un .dll que recibe el path de un archivo .xlsx subido al Portal de Trabajo y retorna el archivo en formato XML. ¿Cómo puedo obtener el path del archivo dinámicamente? Teniendo el XML del .xlsx asignado a una variable en una expresión en Bizagi, ¿cómo ingreso esta información a una o varias entidades?

Gracias.

PD: Ya revisé http://help.bizagi.com/bpmsuite/es/index.html?como_obtener_la_ruta_del_archi.htm y http://help.bizagi.com/bpmsuite/es/index.html?read_and_write_from_excel.htm pero no me ha servido para obtener toda la información necesaria.

Mejor respuesta
photo

Estimados Usuarios,

De acuerdo a lo que solicita, observamos que puede crear un componente, el cual, permitirá que lea el archivo excel desde una regla en Bizagi y de esta forma devolver los valores como un arreglo y así mediante xpaths guardalos en el modelo de datos de Bizagi.

Los siguientes artículos le ayudarán a solucionarlo:

Saludos

Comentarios (6)

photo
1

Estimada Sofia,

¿Dónde se guardan los archivos cargados?

Cuando se adjunta un documento al caso, ésta es guardada en una de las carpetas creadas en Bizagi para organizar los documentos. Estas carpetas son creadas por defecto en el directorio docs, el cual es encontrado en la carpeta del servidor de la aplicación web, cuya ruta de acceso por defecto sería:

C:\Bizagi\Projects\ApplicationName\WebApplication\Docs

ApplicationName: Nombre de la aplicación web del proyecto.

Para mayor información: http://help.bizagi.com/bpmsuite/es/index.html?informacion_del_atributo_tipo_.htm

Al usar en regla, debe seguir el siguiente código:

//Tomar el arreglo de los archivos

var OriginalFile = Me.getXPath("BusinessOpportunity.Documents");

//Navegue a través del arreglo

for(var i=0; i < OriginalFile.size(); i++)

{

//Obtenga el archivo original

var FileCopy = OriginalFile.get(i);

var Name = FileCopy.getXPath("FileName");

var Data = FileCopy.getXPath("Data");

}

En Name se encuentra el nombre del archivo y data el contenido

Puede seguir el paso a paso de su expresión a través de traces: http://help.bizagi.com/bpmsuite/es/index.html?validar_mi_regla_de_negocio.htm

Saludos

photo
1

Estimado Juan, gracias por la respuesta. Al parecer me expresé mal ya que lo que necesito es la ruta del archivo, no su XPath. Si bien la ruta base es:

C:\Bizagi\Projects\ApplicationName\WebApplication\Docs

luego viene lo siguiente:

…\IdEntity\WholePart\SurrogateKey\IdAttribute\

Es esto último lo que necesito obtener dinámicamente. En el link que expuse en mi primer comentario hablan de realizar una query a las tablas ENTITY y ATTRIB. ¿Cómo se realiza esto?

En cuanto al archivo en formato XML, no se indicó como guardar la información en alguna entidad. Me refiero a hacer un mapeo de la información para ingresarlo a Bizagi según el modelo de datos. En el segundo link que expuse, mencionan lo siguiente:

// Cargue el XML creado anteriormente en la Entidad Destino (EntityName)

var transformation = CHelper.getXSL("EntityName", "TrasformationName");

var xmlTransformed = CEntityXmlHelper.transformXmlAsString(xmlData.InnerXml,transformation);

CEntityXmlHelper.fromXmlToEntityWithScopes(Me,xmlTransformed);

No comprendo qué debería ir en TrasformationName. Cómo hago el mapeo de la información del XML al modelo de datos?

A modo de prueba, estoy trabajando con un sumador (adjunto imagen de modelo de datos y un archivo .xlsx). Favor de orientarme a cómo se podría realizar lo anterior para mi ejemplo.

876645534ec3167287d52a30be2d9a3d

Saludos cordiales.

Archivos: Book1.xlsx
photo
1

Hola Juan,

Tengo la misma duda que Sofía.

Estoy intentando cargar un archivo xlsx basado en lo siguiente http://help.bizagi.com/bpmsuite/es/index.html?read_and_write_from_excel.htm

Pero en el punto 3.1, no se que hacer con "TrasformationName"

// Cargue el XML creado anteriormente en la Entidad Destino (EntityName)

var transformation = CHelper.getXSL("EntityName", "TrasformationName");

var xmlTransformed = CEntityXmlHelper.transformXmlAsString(xmlData.InnerXml,transformation);

CEntityXmlHelper.fromXmlToEntityWithScopes(Me,xmlTransformed);

Saludos y quedo atento a tus comentarios

photo
1

Estimadas usuarios,

Hemos escalado la pregunta a nuestra área de producto. Tan pronto tengamos noticias, se las notificaremos.

Saludos

photo
1

Estimados Usuarios,

De acuerdo a lo que solicita, observamos que puede crear un componente, el cual, permitirá que lea el archivo excel desde una regla en Bizagi y de esta forma devolver los valores como un arreglo y así mediante xpaths guardalos en el modelo de datos de Bizagi.

Los siguientes artículos le ayudarán a solucionarlo:

Saludos

photo
1

Estimados.

Les comparto que es posible la carga de información de excel hacia bizagi, pero sin necesidad de saber la ruta del archivo cargado.

Solo es necesario obtener el arreglo de bytes del archivo que almacena bizagi.

Ejemplo de como leer un archivo excel desde byte array.

https://stackoverflow.com/questions/22717271/trying-to-read-an-excel-file-with-epplus-works-on-the-server-but-not-through-a

Para ello definitivamente deben crear un componente que lea ese arreglo de bytes y lo convierta en un dataset.

Luego, dentro de las expresiones de bizagi pueden recorrer el dataset y guardar su contenido en una entidad.

Incluso, una vez obtenido el dataset pueden validar que el archivo de excel tenga las columnas que van a procesar.

Anexo una imagen de cómo se ve el código desde la expresión en Bizagi.

Recomiendo que el archivo no lo guarden en la base de datos, esto para evitar confusion al momento de buscar el archivo que recien cargaron. Es por ello que deben eliminarlo al terminar de procesarlo.

Espero les sea de ayuda.

Saludos.