00 - Desarrollo en Business Central desde cero - Business Central

Breaking

sábado, 28 de mayo de 2022

00 - Desarrollo en Business Central desde cero

Comienzo con una serie de tutoriales donde veremos como empezar a desarrollar en Business Central.  Habrá contenidos aquí y contenidos en mi canal de YouTube Aprende Business Central en Español 

Las dudas que os puedan surgir, podéis ponerla en los comentarios de cualquiera de las dos plataformas.


¿Qué NO es Microsoft Dynamis 365 Business Central?

Puede parecer una tontería pero en un curso presencial que impartí hace unos años, un alumno me preguntó si podía programar un Sudoku en Navision (para los más nuevos, Business Central es la evolución de Navision).

Lo dicho, ¿qué NO es Business Central?:

- No es una plataforma de juegos: lo siento pero si lo tuyo son los videojuegos, no es para tí

- No es una página web: No se desarrollan páginas web.

- Microsoft Dynamics 365 Business Central, no es lo mismo que Microsoft Dynamics 365.  Aquí puedes encontrar la familia completa de Microsoft Dynamics 365 (https://dynamics.microsoft.com/es-es/).  Todavía hay mucha gente que confunde Business Central con Sales.


- No es una captura de datos en planta, ni un software de fichajes, ni un programa de nóminas, ...  ¿se podrían programar sobre Business Central estas aplicaciones?   Sí, pero lo recomendable es que se externalicen y las integremos con diferentes métodos que iremos viendo.

En general, todo lo que se salga de la lógica del negocio, debería de estar fuera de Business Central.  

Pero entonces, ¿que vamos a desarrollar?

Business Central es un software de gestión empresarial genérico, es decir, no está especializado en ningún sector.  La mayoría de las empresas hacen un 80% de las cosas igual:  

- La contabilidad es muy similar en todas las empresas, con características especiales que se pueden parametrizar.

- Tienen clientes a los que venden, facturan y de los que quieren cobrar

- Tienen proveedores a los que compran y deben pagarles

- Tienen productos o servicios que venden y compran

Pero hay un 20% de peculiaridades, que es donde debemos desarrollar, haciendo personalizaciones: 

- Un hotel es una empresa, pero tendrá habitaciones que gestionar por ejemplo.  

- Si una empresa quiere vender on-line, lo ideal es que se conecte a esa tienda para compartir productos, pedidos,... (desde la versión 20.1 ya disponemos de un conector standard con Shopify).

- Una gasolinera, tendrá que ser capaz de gestionar los 20 centimos que el Gobierno subvenciona, pero que de momento adelanta la empresa y que en algún momento tendrá que hacer una declaración especial para que le devuelvan ese importe.  La verdad es que los Gobiernos siempre nos han ido generando novedades que nos dan trabajo a los desarrolladores de Business Central.

Consultoría antes que desarrollo

Lo normal sería que al desarrollador le lleguen esas peculiaridades que Business Central no soporta.  Se presupone que previamente ha habido una consultoría, en la que un Consultor experimentado ha recomendado a la empresa solicitante las diferentes opciones que tiene dentro del estandar y las ventajas económicas y técnicas de no hacer personalizaciones.  Por ejemplo, si un cliente requiere almacenar los cursos de formación que van haciendo sus empleados, lo normal sería recomendarle que use las cualificaciones de empleados (estandar) en lugar de hacer una tabla nueva y una página para mostrar los datos.

La segunda recomendación es que no inventemos la rueda.  Esta es más problemática y menos usada.  Si otro partner (nacional o internacional) ha desarrollado lo que nosotros necesitamos, será mucho más barato, instalar algo que ya está probado y funcionando que desarrollarlo de nuevo.  Eso significa usar las aplicaciones disponibles en el AppSource de Business Central.  (https://appsource.microsoft.com/es-es/marketplace/apps?product=dynamics-365-business-central)

Es posible que tú la pudieras hacer incluso mejor que ellos, pero la ventaja es que ya está disponible y probada.  Tu aplicación no.

¿Que necesitamos para desarrollar en Business Central?

Una vez que hemos decidido desarrollar nuestra aplicación o nuestra personalización, necesitamos herramientas para hacerlo.  El lenguaje de programación de Business Central es AL, heredado del su antecesor C/AL (para sus versiones de Navision).  Existen diferencias, pero la esencia (tablas, páginas, reports y codeunits que veremos más adelante) son muy parecidas, por lo que aunque en este curso procuraré no enseñar NADA de C/AL, la realidad es que exite una gran cantidad de clientes que todavía trabajan con él.

Usaremos como entorno de desarrollo VSCode.  Puedes descargarlo gratuitamente desde este link https://code.visualstudio.com/


VSCode, es una plataforma de desarrollo para multiples lenguajes por lo que una vez instalado necesitaremos una extensión específica del lenguaje AL (también gratuita).  Esa extensión se llama AL Language

Para instalarla, una vez dentro de VSCode, le damos a Extensiones (1), en el buscador tecleamos AL Language (2) y nos mostrará varias extensiones (3) donde seleccionaremos AL Language de Microsoft.


Una vez seleccionada pulsar sobre Instalar.


Con esto ya disponemos del entorno.  Más adelante usaremos otras extensiones de desarrollo, pero de momento con estas es suficiente.

El siguiente paso es tener una base de datos de pruebas.  Podemos disponer de dos formas para probar nuestras aplicaciones:  Mediante Dockers o directamente on-line.

Los dockers son como "máquinas virtuales" que instalas en tu equipo con lo necesario para probar.  Aquí te dejo la documentación oficial (https://docs.microsoft.com/es-es/learn/modules/use-docker-business-central/).  Nos permite por ejemplo, probar las nuevas versiones antes de que estén disponibles en la versión on-line.

En este curso, de momento usaremos los entornos Sandbox on-line.  Para ello necesitas un Business Central en la nube (en este video de mi canal te muestro como obtener una versión de demostración o desarrollo):



Entornos en Business Central

Cuando adquirimos la licencia de Business Central, obtenemos el derecho a usar hasta cuatro entornos.  Los entornos son como instancias (o instalaciones) independientes de Business Central.  De ellos uno es de producción y los otros tres son de pruebas, o más técnicamente de tipo Sandbox


El entorno de producción es el principal y será donde operará la empresa.  Tiene un rendimiento mayor.

Los entornos Sandbox, son para pruebas y desarrollo.  Microsoft no garantiza que se puedan borrar en cualquier momento, que se actualice y que se borren extensiones,...

¿Para qué necesitamos tres?  

- Para desarrollar:  Nuestros desarrollos y personalizaciones los haremos sobre estos entornos.  Este será donde trabajaremos en este curso.

- Para probar nuevas versiones.  Podemos actualizar a la última versión y probar las nuevas funcionalidades antes de ponerlas en producción o poder testear nuestras aplicaciones desarrolladas en esa nueva versión.

- Para probar entornos de otros países.  Podemos poner un entorno con la localización Mexicana y así poder probar la funcionalidad local específica para México. 

Mi "Hello World" en Business Central

Una vez que tenemos todos disponible, ya podemos hacer nuestro "Hello World" en Business Central.

Para ello, vamos a crear nuestra primera aplicación, aunque no entendamos mucho de lo que hace.  Pero no te preocupes, lo iremos viendo todo.

Una vez abierto VSCode, pulsaremos en el menú Ver - Paleta de comandos y en la línea de comandos que nos aparece, escribiremos AL:Go!


Nos irá pidiendo una serie de cosas para configurar nuestra primera aplicación.  Lo primero es la carpeta donde guardaremos nuestra App:

Lo siguiente es la plataforma para la que vamos a desarrollar:


A la hora de escribir este blog, la más actual es la 9.0, también llamada 
Business Central 20.1.  Si te acabas de crear tu cuenta, siempre se habrá creado en la más reciente.  Si es un Business Central Cloud existente, será la última o la penúltima. En nuestro caso la 8.0 o la 9.0.   Pero recuerda que también podrías desarrollar para entornos on-premise (en local) y por tanto podrías tener cualquier versión.

Una vez decidido, nos creará nuestra estructura de archivos que veremos en el próximo post y nos preguntará si queremos desarrollar para tu propio servidor (Docker o instalación on-premise) o para el sandbox que hemos creado en la nube.  En mi caso utilizaré la nube:


Una vez elegido "Microsoft cloud sandbox", se intenta conectar a vuestro Sandbox para descargarse los objetos base.  Es decir, las tablas, páginas, ... correspondientes a nuestro Business Central estandar.  Para ello nos pedirá que copiemos un código y se abrirá una ventana del navegador:



Posteriormente, te indica que te identifiques con el usuario para abrir Business Central:



Una vez identificado, te dirá que ya puedes cerrar la pantalla, puesto que VSCode irá descargando por detrás los objetos.


Después de ejecutar automáticamente una serie de comandos en la ventana de salida, que iremos viendo próximamente os aparecerá "All reference symbols have been downloaded".  Esto significa que se han descargado los objetos base (todas las tablas, páginas, ...estandar ) de Business Central.


Si por alguna razón no se hubiesen descargado, puedes insistir ejecutando desde el menú ver - Paleta de comandos, el comando "AL: Download Symbols".

El propio VSCode habrá creado una primera PageExtension, que aunque lo veremos en detalle más adelante en el curso, realmente lo que hace es Extender o ampliar la página de Customer List (Lista de clientes).


Y como la extiende, haciendo que se muestre un mensaje 'App published: Hello world" cuando se abre la página Customer List.  Puedes modificar el contenido del mensaje como prefieras.

Ahora lo que vamos a hacer es compilar y ejecutar nuestra nueva aplicación.  Para ello pulsaremos F5 o en el menú Ejecutar -> Iniciar depuración.


Si todo ha ido bien, VSCode habrá generado un fichero App y lo publicará en vuestro Sandbox.


La Lista de clientes, es la página que se abre por defecto cuando ejecutas desde VSCode, por lo que lo primero que veréis será vuestro mensaje.   

Si ahora te vas a otra página del menú, por ejemplo a proveedores, y posteriormente vuelves a clientes, verás que vuelve a aparecer el mensaje cada vez que abras la lista de clientes.

Ya hemos preparado nuestra primera App para Business Central.  Ahora vuelve a VSCode y puedes parar la depuración, pulsando sobre el botón cuadrado que aparece en la parte superior de la pantalla:


Realmente lo que ha hecho 
VSCode automáticamente es Compilar mi código, generar el fichero con la App y publicarla en mi Sandbox:


Bueno si todo ha salido bien, habrás desarrollado tu primera App o también llamadas Extensiones, para 
Business Central.  Pero todavía queda mucho por aprender.  En el próximos post veremos los tipos de objetos que podemos encontrar, la estructura de una extensión,...

Espero tus comentarios.





No hay comentarios: