Dynamics 365 Business Central: modificadores de acceso.

Dynamics 365 Business Central: modificadores de acceso.

Modificadores de acceso en BC

Si eres programador y has trabajado con C# u otros lenguajes orientados a objetos, sabrás que esos lenguajes tienen modificadores de acceso. Estos modificadores son palabras clave utilizadas para especificar la accesibilidad declarada de un miembro o un tipo.

Con la versión Dynamics 365 Business Central Wave 2, esta característica aparecerá también en el lenguaje AL.

Una tabla puede tener un nivel de acceso con los siguientes niveles:

  • Public: (predeterminado)

    Se puede acceder al objeto mediante cualquier otro código en el mismo módulo y en otros módulos que lo referencian.

  • Internal:

    Se puede acceder al objeto sólo por código en el mismo módulo, pero no desde otro módulo.

Propiedad “Access”

El modificador de acceso se puede especificar estableciendo la propiedad Access” en uno de los valores anteriores.

Nivel de acceso

Con respecto a los campos, ahora también podemos declarar que un campo en una tabla o una extensión de tabla tiene un Nivel de acceso con los siguientes valores:

  • Public: (valor predeterminado)

    Se puede acceder al campo mediante cualquier otro código en la misma extensión u otra extensión que lo haga referencia.

  • Internal:

    Se puede acceder al campo solo por código en la misma extensión, pero no desde otra extensión.

  • Local:

    Sólo se puede acceder al campo por código en la misma tabla / extensión de tabla donde se define el campo.

  • Protected:

    Sólo se puede acceder al campo mediante código en la misma tabla o extensiones de tabla a esa tabla.

Como ejemplo, vamos a definir en una tabla un campo con Access = Internal (visible solo desde el código dentro de nuestra extensión):

Si intentamos acceder a este campo desde otra extensión, Visual Studio Code nos mostrará un error de inmediato.

Lo mismo ocurre si cambiamos el acceso al campo, por ejemplo, a Local (visible sólo dentro del objeto que define este campo):

Ahora, si dentro de la extensión tenemos líneas de código que hacen referencia a este campo, recibiremos un error:

Como hemos indicado antes, la propiedad Access también se puede establecer en el campo de una extensión de tabla:

¿Y con las Codeunits?

También podemos especificar la propiedad Access para una codeunit (los mismos valores que para las tablas):

Como podéis ver, Microsoft sigue añadiendo nuevas funcionalidades en cada nueva versión a su nuevo lenguaje AL.


👉 Si quieres una sesión gratuita de consultoría para saber cómo podemos ayudarte a mejorar la gestión de tu negocio, pídela a través de nuestro formulario, por teléfono o en nuestro email:

contacto@d4bsolutions.com

Artículo por Erik Soler, experto d4b desarrollador Dynamics 365.

Sobre el autor

Editorial editor

    Comments Are Closed.