Mitra Global Services

Navimania – Determinar si te encuentras en BBDD real

Hola a todos!

La semana pasada uno de nuestros técnicos me pidió si tenía a mano un desarrollo que hice hace tiempo para determinar si nos encontramos en la base de datos real o en la de test.

Quería implantarlo en un cliente que lo necesitaba y no lo tenía aún.

Sabemos lo importante que es tener una base de datos donde podamos desarrollar y hacer pruebas, sin afectar al trabajo diario de nuestros clientes.

Si estás leyendo esto y no dispones de un entorno de pruebas, te recomendamos que lo prepares. Desarrollar en producción es muy peligroso y puede traer dolores de cabeza con los datos que toquemos de pruebas.

Dicho todo esto vamos a ver el código, que como veremos es muy sencillo.

Lo primero es crear una codeunit y añadir la función.

Le pasamos como parámetro el nombre de la Base de datos que como consejo lo podemos tener indicado en alguna de las tablas de configuraciones o incluso en la información de la empresa.

Este dato es imprescindible para saber cual es la BBDD y empresa real.

Tenemos que hacer que devuelva un boolean, para determinar si estamos o no en la BBDD de producción.

Vamos a las variables que necesitamos.

Necesitaremos la tabla de Session.

Esta tabla proporciona todo tipo de información de la sesión.

Como podéis ver yo estoy en la base de datos de la empresa de demo (Cronus), te dice también el usuario de la sesión, la hora en la que ha hecho login, la fecha….

Vemos varios datos que nos pueden ir bien, aunque en este caso sólo nos interesa el valor del campo “Database Name”.

Sabiendo todo esto lo que haremos ahora es encontrar esta sesión.

Buscamos por usuario porque puede darse el caso de que tengamos mas usuarios en esta tabla.

Ahora lo que haremos es validar que la base de datos informada en la tabla “Session” sea la misma que la que tenemos configurada como la real.

Por último si no es la real lo que haremos es devolver un falso para indicar que estamos en otra base de datos.

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

ES