Búsqueda en secuencia y devolución de valor único de tabla de base de datos OneStream
Cómo buscar y devolver un solo valor desde un campo en una tabla de base de datos de aplicación. Este es el caso de uso de BRApi.Database.LookupRowFieldValue usando un objeto DBWhere.
Hay situaciones en las que necesita buscar un valor desde una tabla de la base de datos de aplicación y devolver ese valor a su Business Rule. Podría crear una conexión a base de datos, escribir una consulta SQL, pasar la consulta por un lector y luego recorrer el resultado. Ese enfoque funciona, pero puede ser más de lo necesario cuando solo busca un único valor.
Sin embargo, hay otra forma, usando BRApi.Database.LookupRowFieldValue con un objeto DBWhere. Existen buenos argumentos para ambos enfoques. Personalmente uso LookupRowFieldValue cuando quiero una forma rápida, limpia y reutilizable de devolver un solo valor sin escribir una consulta SQL completa.
La función BRApi.Database.LookupRowFieldValue recibe 6 parámetros: si como SessionInfo, dbLocation como String, tableName como String, dbWheres como List(Of DbWhere), fieldToReturn como String y defaultValue como String.
Aquí puede ver la tabla desde la que recuperaré un valor. En este ejemplo se devolverá el NewMemberName donde el OldMemberName sea igual a “69000”.
1. Cree su objeto dbWheres, que es una lista de objetos DbWhere. Pienso en los objetos DbWhere como el equivalente a la cláusula where de una consulta SQL, ya que cumplen la misma función.
En el ejemplo siguiente primero creo mi DbWhere. Puede crear múltiples objetos DbWhere y agregarlos al objeto objDBWheres, que es una lista de DbWhere. El DbWhere recibe 3 parámetros: el nombre del campo sobre el que se aplicará la condición, el operador y el valor de comparación.
El DbOperator tiene muchas acciones distintas que puede seleccionar, algunas de las cuales pueden verse en la captura de pantalla de abajo.
Ahora que ya tiene el objDBWheres, que es una lista de objetos DbWhere, puede usarlo dentro de la llamada API BRApi.Database.LookupRowFieldValue.
2. Agregue su llamada a la función BRApi.Database.LookupRowFieldValue.
LookupRowFieldValue recibe 6 parámetros, incluido su objeto DbWheres. Debe pasarle la ubicación de base de datos, en este caso la base de datos de la aplicación, el nombre de la tabla donde buscar, su objeto objDBWheres y el campo cuyo valor desea devolver.
Aquí está el código completo, incluyendo en este caso una escritura al error log con fines de demostración.
Para fines demostrativos tengo esto dentro de una extensibility rule que llamo desde un Data Management Step. Cuando lo ejecuto, el valor devuelto aparece en el error log.
He comprobado que estas 4 líneas de código son una forma rápida, sencilla y reutilizable de buscar un valor dentro de una tabla de la base de datos de aplicación.
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.
