Datos de búsqueda OneStream desde datos de aplicación regresan a reglas comerciales

Hay casos en los que quiero buscar datos desde una base de datos de aplicación y devolverlos a una business rule para seguir utilizándolos. Puede que quiera buscar un solo valor de campo, o puede que quiera devolver múltiples filas o múltiples campos, e incluso devolver el resultado en forma de un Data Table.

Esta función me permite pasar una consulta SQL. Si puede pasar una consulta SQL, entonces el límite prácticamente desaparece respecto a las transformaciones que puede hacer. ¿Quiere unir múltiples tablas? ¿Hacer unions? ¿Recursive joins? Todo eso puede hacerse dentro de la consulta antes de devolver los datos a su regla.

Para fines de explicación he mantenido el SQL de este ejemplo en una sola línea de código que devuelve un único resultado. Sin embargo, puede colocar cualquier SQL que necesite en la sección donde define la instrucción que será pasada a la función.

Para este ejemplo tengo una tabla dentro de la base de datos de la aplicación llamada XFC_Member_Rename que contiene 3 campos. Voy a pasarle un valor en el campo OldMemberName y devolver el resultado como un Data Table.

Tabla XFC Member Rename

En los pasos siguientes he creado este código dentro de una extensibility rule y la llamo mediante un Data Management Step, solo con fines de demostración.

  • 1. Cree el objeto Data Table que contendrá los datos devueltos, junto con la cadena que la consulta SQL usará en la cláusula where para mostrar que puede pasar parámetros a la consulta.
Crear Data Table en OneStream
  • 2. Cree un objeto DBConnInfo que especifique, en este caso, que se conectará a la base de datos de la aplicación.
Crear conexión de base de datos

Tenga en cuenta que puede conectarse a más que solo la base de datos de la aplicación.

Conexión BRApi a base de datos
  • 3. Luego cree un objeto string para contener su consulta SQL.
Consulta SQL como string
  • 4. Ahora, usando BRApi.Database.ExecuteSqlUsingReader, pase su cadena SQL y el objeto dbConn, asignando los datos devueltos a su data table previamente definida. Esta función consultará la base de datos de la aplicación y devolverá los resultados como un Data Table.
ExecuteSqlUsingReader en OneStream
  • 5. Ahora que los datos están en un data table, puede acceder a ellos en código. En el ejemplo de abajo se obtiene el valor del campo NewMemberName, se asigna a strNewMemberName y luego se escribe en el error log.
Escribir en error log

Aquí está la función completa.

Función completa en OneStream

He encontrado que la función BRApi.Database.ExecuteSqlUsingReader es muy poderosa y la he usado extensamente para consultar tablas de aplicación y otras fuentes, usando SQL para realizar transformaciones significativas antes de devolver los datos a la regla.

Contacto

MindStream Analytics

Para obtener más información sobre OneStream y cómo MindStream Analytics puede ayudarle a mejorar su planificación, reporting y analítica, complete el siguiente formulario.