Muchas veces, cuando nos enfrentamos a un desarrollo, hay tareas repetitivas, que se agradece que sean automáticas, así nos ahorramos tiempo, y evitamos errores.
En este artículo hablaremos de un par de funcionalidades, entre las muchas que tiene una extensión, al que se refirió mi compañero Pablo Espartero en su artículo “Tips para utilizar Visual Studio Code (VSCode)”, en concreto la extensión “CRS AL Language Extension”.
¿Qué nos aporta esta extensión?
- A la hora de desarrollar extensiones, sobre todo, cuando hacemos uso del CodeCop Analyzer1, el nombre del fichero de cada objeto debe seguir una cierta nomenclatura, acorde a la usada en la Base App.
- Además en su extensión, el nombre de cada nuevo objeto de aplicación (tabla, página, unidad de código) debe contener un prefijo2 o sufijo. Esta regla se aplica a todos los objetos.
En un principio, eso parece sencillo, si se hace una vez, pero repetir lo mismo en cada objeto, incluso a la hora de añadir campos nuevos en Table Extensions o Page Extensions, puede llevarnos a errores y si a eso le añadimos la necesidad de gestionar los prefijos, pues más tiempo que hay que dedicar a estas tareas.
Incluso, ¿qué pasaría si cambio el nombre de mi objeto?, ¿tengo que ir cambiar también el nombre del fichero?, etc…
Vamos a ver lo en un ejemplo que se ve más claro:
- Creamos un proyecto AL sencillo:
- Un desarrollador lo primero que haría es crea un fichero al, en este caso lo llamo mifichero.al.
- Luego usare el snippet ttable, para crear una tabla, por ejemplo 50100 “nombre de tabla”.
- En este caso salvamos el fichero, y en principio todo va bien.
- Pero si activamos el codeAnalyzer, que sería lo normal en cualquier proyecto de Business central.
- Nada más salvar el setting, nos salta una advertencia diciendo que el nombre del fichero no es correcto, basándose en “Best Practices for AL3”.
- Efectivamente, basándonos en cómo están hecho los ficheros de la Base APP, el nombre del fichero debe tener la nomenclatura siguiente: <ObjectNameSuffix>.<FullTypeName>.al
- Evidentemente, este caso es simple, pero en una extensión de centenas de ficheros, eso puede hacernos perder mucho tiempo, eso suponiendo que nunca nos equivocamos.
- Es allí donde viene a nuestro rescate la siguiente extensión:
- No solo nos soluciona el tema del renombrado de los ficheros, sino también el tema de gestión de sufijos, independientemente del sufijo que puede tener registrado cada empresa, es buena idea que cada extensión tenga su propio sufijo4.
- Para usar esta extensión, hay que instalarla y configurarla.
- Instalamos la extensión desde visual estudio code
- La configuramos como sigue:
- Fijarse, que hemos configurado
- Cada vez que se salva o se renombre el nombre del objeto, se renombra el nombre del fichero.
- Definimos un sufijo en nuestro caso AIT
- El nombre del fichero hemos indicado que va a ser así:
- La configuración, permite mucho juego, siempre respetando las exigencias de codeAnalyzer, por ejemplo, en el caso de los objetos de extensión en este caso lo hemos configurado, para que llame el objeto, usando el sufijo, el nombre del objeto que extiende y el tipo de objeto. Veámoslo con un ejemplo que se ve más claro.
- Guardamos el setting en nuestro proyecto, y vamos a nuestro fichero de antes añadimos un espacio por ejemplo en cualquier lugar del fichero y lo quitamos, para que nos salga la opción de salvar.
- Y en cuanto salvamos la extensión, se realizan todos los cambios, que se muestran a continuación y se quita el Aviso que salía antes:
- En este caso la extensión, renombro el fichero, y añadió el sufijo al nombre del objeto.
- Es más, vamos a ver ahora como podemos añadir un archivo nuevo, de tipo TableExt.
- En este caso, creamos un fichero, y lo llamaremos solo .al, sin nada más, y con el snippets de tableExt, creamos nuestro table extensión, sin darle nombre solo el id, y la entidad que extiende
- Vemos que no tenemos nombre de fichero.
- En nombre del objeto, es el que le da el snippets por defecto.
- Y nos sale el aviso.
- Y vamos más allá, creamos un campo 50000 nuevo “mi campo nuevo”.
- Aquí donde se ve la magia de la extensión, solo con darle a botón salvar, o sea guardando el fichero, sucede esto:
- Se renombra el fichero.
- Se le da un nombre al objeto en base al objeto que extiende, allí donde juega un rol importante el sufijo, para que no haya colisión de nombres.
- Incluso los campos nuevos que extienden les pone el sufijo.
Evidentemente, la extensión tiene muchas más cosas, pero solo con lo que comentamos en este artículo, creemos, que esta extensión es una herramienta imprescindible, a la hora de desarrollar extensiones para Business Central, y que nos hace ahorrar mucho tiempo.
Desde Aitana te asesoramos y estamos a tu disposición para cualquier obstáculo que tengas con tu solución Business Central. ¡Rellena el formulario y te contactaremos para ayudarte!
Referencias:
1 CodeCop Analizer Rules.
2 Prefix & Suffix.
3 Best Practices for AL – File naming notation.
4 Cuidado con los sufijos porque el nombre de un objeto no puede superar 30 caracteres. CRS AL Language Extension
Nizar Saad
Business Applications