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.
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.
- 2. Cree un objeto DBConnInfo que especifique, en este caso, que se conectará a la base de datos de la aplicación.
Tenga en cuenta que puede conectarse a más que solo la base de datos de la aplicación.
- 3. Luego cree un objeto string para contener su consulta SQL.
- 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.
- 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.
Aquí está la función completa.
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.
