El primer comienzo en Business Central AL es muy difícil para muchos. No importa si usted viene de la pista de Navision o es un recién llegado: Los obstáculos son increíblemente más altos que en los tiempos nativos.
Esto no se debe necesariamente a que Business Central sea tan complicado de programar. Más bien se debe a que las versiones anteriores de Navision eran increíblemente fáciles de programar. Si realmente ha desarrollado en Navision 3.5x (DOS) o Navision hasta la versión 2009R2, todo lo que viene después es innecesario y terriblemente complicado. Y lo es. Como efecto secundario "agradable", hay que señalar que incluso el más pequeño desarrollo/adaptación lleva ahora al menos el doble de tiempo en comparación con las versiones hasta 2009R2. Si se añade un diseño de informe justo por encima de "lista", uno debería contar más bien con un factor de 3-5 desde su experiencia. Lo que se hacía en segundos en las navisions nativas (insertar una columna o un campo, hacer clic rápidamente para crear un informe) ahora lleva 10 minutos en un entorno de desarrollo ya configurado. En cuanto se trata de documentos (cabeceras/filas, cambios de página), se convierte rápidamente en horas y días.
Sólo configurar el entorno de desarrollo ya lleva fácilmente una hora en los primeros intentos.
Términos de búsqueda adicionales: Getting started with Navision / Business Central 2020, Start Programming with Navision / Business Central AL 2020, Introduction to VisualStudio Code for NAVISION / BUSINESS CENTRAL 2020, Setting up Visuals Studio Code for Navision / Business Central Extensions.
Configuración de la máquina virtual
Si sólo se mantiene un Navision, por ejemplo el productivo de la propia empresa, este paso no es necesario.
Se acabaron los tiempos en los que 5 Navisions diferentes funcionaban sin problemas en un mismo ordenador. Toda la configuración siguiente debe coincidir exactamente (!) con el Navision o Business Central instalado, preferiblemente incluso el nivel de parche (CU = Cumulative Update). Mi recomendación, especialmente para programadores y desarrolladores: Una VM por instalación, por ejemplo, una VM para una versión demo, una VM para la versión de cliente 2019 Second Wave Cu2 etc.
Configure un HyperV con 4 núcleos y 4096 MB Ram, al menos 50 GB de disco duro.
No necesito documentar la configuración de Windows 10 o Windows Server aquí, no es crítico. Simplemente "una vez como siempre". Recomiendo una cuenta sin conexión, desactivar todas las características ofrecidas durante la configuración, incluyendo Cortana, eliminando directamente la barra de búsqueda, correo, Microsoft Store de la barra de tareas.
Inmediatamente después de la primera configuración, por favor compruebe si su Windows ha empaquetado la partición de recuperación DETRÁS de la partición de datos:
Borrar la partición de recuperación
Para poder seguir ampliando la partición de datos, la división de Windows con la partición de recuperación detrás de la partición de datos es extremadamente molesta. Por ejemplo, no se puede simplemente ampliar la unidad para restaurar una copia de seguridad de la base de datos y luego simplemente reducirla de nuevo. En una Vm, sin embargo, puedes muy bien prescindir de la partición de recuperación.
Cambie al primer soporte de datos con select disk 0 (¡sólo hay uno en la máquina virtual!).
4. Muestra las particiones con list volume .
Usando los tamaños, puedes encontrar rápidamente los volúmenes (particiones) a borrar, aquí Volumen 2 y Volumen 3.
Cambie al primer volumen (partición) a eliminar con select volume 2 y elimínelo con delete partition override. Repita este paso si es necesario.
Ahora puede ampliar y reducir la partición de datos como de costumbre y así adaptar también el disco duro virtual asociado a las necesidades reales.
Si utiliza Oracle Vm Virtual Box, no puede ampliar el disco duro virtual gráficamente. Aquí, el disco duro se gestiona generalmente en la línea de comandos. Entonces, amplíelo con, por ejemplo c:\“Programm files\oracle\VBoxManage“ modifyhd „volume.vdi“ –resize 60000.
Windows ya no arranca con la virtualización
Desde Windows 2004 / 2020H2 parece haber una incompatibilidad con Intel Virtualisation. Al menos yo tuve la desagradable experiencia de que después de un reinicio completamente normal del ordenador -sin ninguna actualización/cambio conocido- mi Lenovo Thinkpad P73 sólo me saludaba con pantallas azules de la muerte (BSOD). La mayoría de las veces recibía el mensaje de error IRQL NOT LESS OR EQUAL, más raramente Kernel Security Check Failure. Desenchufar la estación de acoplamiento USB-C, quitar la RAM, quitar otros discos del sistema, activar un punto de restauración, incluso reinstalar una copia de seguridad de datos creada mediante un script personalizado de WIMage no trajo ningún cambio. En algunos casos, Windows se colgaba directamente al arrancar: El círculo giratorio de puntos bajo el logotipo de Windows se detenía de repente y, al cabo de poco tiempo, el ordenador se reiniciaba por completo.
Lo único que ayudó en mi máquina fue desactivar el soporte de virtualización de Intel.
En la Bios (UEFI): Seguridad/Virtualización, establezca las dos opciones "Tecnología de virtualización Intel" y "Función Intel VT-d" en Desactivado.
«Protección de memoria DMA» debe estar desactivado en la máquina Lenovo de todos modos cuando se utiliza una estación de acoplamiento USB-C, de lo contrario tendrá aún más problemas. No está mal para una estación de trabajo profesional del fabricante de la marca Lenovo, ¿eh? Pero entonces, por supuesto, HyperV ya no funcionará. Mi única solución: Desinstalar HyperV & Sandbox en Windows y seguir trabajando con Oracle VM Virtual Box.
Con vboxmanage clonehd "Source.VHDX" "Destination.VDI" -format VHD, se puede extraer un disco duro VDI de un archivo VHDX. El VHDX puede entonces ser borrado. ¡vboxmanage también puede ser usado para inicializar una VM completa! Esto hace que OracleVM Virtualbox vboxmanage sea más potente que HyperV... pero no tan elegantemente integrado como HyperV.
Configurar Navision y Business Central como entorno de demostración/desarrollo
Si ya dispone de un sistema productivo, este paso no es necesario. Realice la configuración sólo en un ordenador que no desee utilizar de forma productiva para un 2º Navision, por ejemplo, Test & Productive. Aquí recomiendo el uso de dos VMs.
Con estas instrucciones se puede instalar un SecondWave 2020 fuera de la caja. Las versiones anteriores con C/AL Side by Side se pueden encontrar muy compacto aquí.
Con estas instrucciones creará aquí también una versión de demostración de Business Central (Navision). Sin embargo, el objetivo es crear un entorno completo para programadores/desarrolladores/consultores de Business Central / Navision.
Asigne el derecho a iniciar sesión como servicio a su cuenta de administrador local:
2. Inicie la instalación desde el CD de Business Central, acepte las condiciones de la licencia y seleccione "Opciones avanzadas de instalación":
3. Seleccione Personalizado. Atención: No vaya a "Cargar configuración".
4. Realice los siguientes ajustes:
Service failed to start. Verify that you have sufficient privileges to start system services
Sí... "normalmente" una configuración funciona directamente out of the box. Y si tienes un sistema Windows básico y fresco, funcionará como el anterior. Membresías de dominio, restricciones de ejecución, antivirus... Hay tantas cosas que pueden hacerte la vida imposible 🙂 .
Si recibe el mensaje de error "No se pudo iniciar el servicio Microsoft Dynamics 365 Business Central Server (BusinessCentral 140) (MicrosoftDynamicsNavServer$BusinessCentral140). Verifique que dispone de privilegios suficientes para iniciar los servicios del sistema (donde 140 será siempre el número de versión instalada), las cosas se ponen un poco complicadas
Es posible que los puertos que haya especificado para Navision (por ejemplo, dejando los puertos estándar como están, lo cual es bueno) ya estén ocupados.
Intenta lo siguiente:
Inicie un comando prompt con derechos de administrador, introduzca allí
netsh http show urlacl
Obtendrá entonces una lista más larga de dichas entradas:
URL reservada : https://*:5358/
Usuario: PREFINED\\User
Escuchar: Sí
Delegar: No
Usuario: NT-AUTHORITY\Local Service
Escuchar: Sí
Delegar: No
SDDL: D:(A;;GX;;;BU)(A;;GX;;;LS)
Si encuentra allí una entrada con el número 7047,7048,7049 o los valores que usted mismo asignó durante la configuración, borre esta reserva, en el ejemplo anterior
netsh http delete urlacl url= https://*:5358/
A continuación, compruebe si se ha instalado Navision Service Tier. En caso afirmativo, elimínelo mediante la consola de configuración. A continuación, instale un nuevo NST.
Otro método para conseguir que Navision / Business Central se ejecute a pesar del mensaje de error "No se pudo iniciar el servicio Microsoft Dynamics 365 Business Central Server (BusinessCentral 150) (MicrosoftDynamicsNavServer$BusinessCentral150). Compruebe que dispone de privilegios suficientes para iniciar los servicios del sistema para ejecutar es engañar al instalador. Si pulsa "Cancelar" durante la instalación cuando aparezca este mensaje de error (y no aparecerá en ninguna otra parte), Navision o Business Central volverán a desinstalar el servicio.
Por favor intenta lo siguiente:
No pulse Reintentar (no hace nada) ni Cancelar (desinstala todo).
Vaya a Servicios del Sistema, debería ver el servicio Navision aquí:
En este caso, ya has hecho el 99% del trabajo... Sólo que la configuración no quiere reconocer este logro.
En la configuración del servicio, cambie el nombre de inicio de sesión al servicio mencionado al principio e intente iniciar el servicio.
En este punto, también puede cambiar la configuración con Microsoft Dynamics 365 Business Central Server Console ya instalada, lo que antes no era posible (debido a la falta de una carpeta de servicio).
Probablemente el ServiceStart seguirá sin funcionar, pero ahora tienes las herramientas que necesitas por ahora.
Ahora viene lo más insólito: ¡disparar el montaje sin darle la posibilidad de retroceso!
Esto no suele ser posible con el administrador de tareas (pero puedes intentarlo). La mayoría de las veces, la configuración reconoce el comando del sistema Cerrar y hace su rollback de nuevo: Todo se ha ido.
Inicie el administrador de tareas en su lugar, necesitamos el PID de la configuración:
Ahora inicie una línea de comandos con derechos de administrador, e introduzca:
taskkill /PID 1644 /T /F (acaba de encontrar el 1644 en el administrador de tareas, también puede encontrarlo con tasklist en la línea de comandos. Es posible que haya capturado un proceso hijo de la instalación, en cuyo caso Taskkill le dirá: Error: El proceso con PID XXXX (proceso subordinado de YYYY) no pudo ser terminado.
A continuación, repita de nuevo el taskkill con YYYY. Esto puede ser necesario de forma recursiva.
Si no consigues nada de esta manera, desenchufa la máquina virtual o apágala del todo. En ningún caso pulses "Cancelar".
Después de reiniciar, puedes observar el nivel de servicio de Navision a través del visor de eventos y ver por qué está eructando. Es casi seguro que seguirá sin funcionar después de esta cura de caballo... pero al menos ahora puedes simplemente observarlo y gestionarlo.
No se deje irritar por un estado continuo "en proceso de arranque". Pulse F5 en la pantalla de servicio, el intento de arranque siempre tarda sólo unos segundos (normalmente <30).
Después de que el ordenador se haya reiniciado completamente, simplemente reinicie el servicio una vez y luego compruebe la pantalla de eventos.
Seguramente encontrará allí los consejos realmente válidos sobre lo que debe hacer.
The connection to SQL server could not be established : Vaya a la Consola de Administración y compruebe la configuración del servidor. Por supuesto, compruebe también si el servidor SQL con la base de datos (de demostración) se está ejecutando.
Nota: También puede instalar un servicio de servidor Navision con ServiceControll (SC):
sc \\Computername create MicrosoftDynamicsNAVServer$NAVision binpath= „Programmverzeichnis\140\Service\Microsoft.Dynamics.Nav.Server.exe $NAVision“ DisplayName= „Microsoft Dynamics NAV Server 140“ start= auto type= own depend= NetTcpPortSharing Pero recomiendo configurarlo a través de Setup.exe. Una vez que has llegado al punto en que tienes que usar mie..., la instalación está tan jodida que probablemente no podrás hacerla funcionar de todos modos. También puede ayudar simplemente respirar hondo, reiniciar el ordenador desde cero y empezar de nuevo.
Login failed for user ‚NavServer‘. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only
Este suele ser el caso cuando se cambia el servicio del servidor Navision / Business Central de la autenticación de Windows (por ejemplo, servicios de red) a la autenticación del servidor SQL, o viceversa.
Razón: La configuración de Navision instala el SQL Express sólo con Windows. Por lo tanto, puede crear tantos SQL_Users en el servidor SQL como desee: el SQL seguirá sin permitir la conexión con Navision.
Utilizando el MS SQL SMS, haga clic con el botón derecho en el servidor, Propiedades, Seguridad, Activar modo mixto.
¡No busque en la pantalla de eventos! Sólo encontrará esta nota en el SQL_Log.
Consejo extra: Coloca al menos estos programas en tu barra de tareas lo antes posible:
Si ya dispone de un servidor SQL para alojar la base de datos Navision, también puede especificarlo en este paso.
Tras unos minutos, la instalación le informará de que se ha realizado correctamente. Ahora tiene Business Central, un servidor SQL, la arquitectura de 3 niveles y un enlace instalados en su ordenador.
Dependiendo de la versión de Windows que esté utilizando, necesitará un navegador que pueda mostrar Navision o Business Central correctamente. Aquí puede elegir entre Google Chrome (funcionó muy bien con Navision desde el principio, mi recomendación), Edge (sólo funciona con Business Central después de que Microsoft renunciara a su propio motor y tomara el de Chromium), Firefox (funciona "bastante bien", pero es la segunda opción en este contexto). Internet Explorer sólo está disponible si prefieres echarte Tabasco y zumo de lima en los ojos. Pero sirve perfectamente para instalar Chrome :-).
Configurar el servidor Business Central
Para poder cargar automáticamente los símbolos y el código base (Base Application) con VSC (Visual Studio Code), es necesario liberar Business Central y Navision DiensteServer para el entorno de desarrollo. Inicie la administración de Business Central, cambie a la instancia deseada (en esta demostración es la BC160), Desarrollo
Configuración VS-Code
Se acabaron los tiempos de un entorno de desarrollo integrado, también "low-code" o "programación fácil". Mientras que en el pasado se podía crear una estructura de datos completa (aunque sin reenvío de borrado, desgraciadamente Navision/Microsoft nunca lo consiguieron) incluyendo un informe de documento con estructura de cabecera/línea completamente sin una línea de código de programa, hoy en día ni siquiera se puede cambiar un sí/no editable sin algo parecido a código de programa.
Le recomiendo vivamente que no utilice "Docker" a menos que ya tenga experiencia en este tema ("Docker" en Windows con Business Central o Navision). En este caso, seguro que no necesita mis instrucciones. Utilice más bien el concepto de máquinas virtuales tal y como se ha descrito anteriormente, especialmente para los principiantes.
- Descargue, instale y ejecute Visual Studio Code desde aquí (También puede buscar Visual Studio Code en el Browser).
Recomendación: Activar todas las opciones.
2. Instale el entorno AL "AL Language" (tardará unos segundos).
3. Active el entorno actual de Navision y Business Central.
Con Shift+Ctrl+P llamas al comando process (o lo que signifique la P) e inicias tu primer objeto Navision con al:go. No puede cargar el entorno AL antes de eso.
Consejo: Ejecute una vez el fragmento de AL:Go y anote (sí, con lápiz y tal) las consultas que aparezcan, junto con las respuestas. Si es necesario, completa las respuestas. A continuación, descarta este primer proyecto, introduce todas las respuestas que falten en tu nota y vuelve a empezar.
Sie brauchen: Projektname (gewöhnen Sie sich schnell ein zentrales Verzeichnis an!), TargetPlattform (ihr Server), evtl. Benutzername, Benutzerkennwort, Servername
Adaptar launch.json y app.json
Edite inmediatamente el archivo launch.json resultante.
Añade "schemaUpdateMode„:“ForceSync":
(Consejo: En este punto, el AutoCompleteWizzard ya debe aparecer después de introducir sche !)
Añada "port":7049 (véase más arriba Development port)
Cambia la autentificación a Windows
Edita el app.json, añade "target„: „onPrem":
Nota: Por supuesto, para un desarrollo regular también hay que ajustar muchos de los otros parámetros, pero ese es otro tema muy amplio. Aquí sólo se trata de crear una sensación inicial de felicidad.
Nota 2: ¿Por qué OnPrem? Sólo así podrá seguir integrando objetos .Net (DotNet) en Business Central o Navision, y hacerlo de una forma tan profesional que podrá disfrutarlo realmente en el nuevo Navision. Lo contrario es cierto: En todos los demás objetivos, especialmente en la nube, simplemente no hay más .Net (DotNet). Fin. Fuera. Punto y final. Se acabó. Sin "Pero" y sin "¡Necesito...!".
OK Ok ok... Sobre Blazor va de nuevo, pero eso tampoco es el tema para una introducción aquí.
Cargar símbolos
Ahora puede / debe cargar los símbolos (todas las referencias internas, comandos, funciones, nombres de tablas, campos...): CTRL+Mayús+P, AL:Descargar Símbolos
Tras unos segundos, aparece el mensaje de que los símbolos se han descargado correctamente. El mensaje desaparece, la alegría permanece: La aplicación HelloWorld registrada por el asistente de repente compila sin errores:
Bienvenido a su nuevo entorno de desarrollo Navision / Business Central (entorno de programación).
Gestión de licencias Fin.flf
Microsoft también recomienda utilizar el cliente de desarrollo de Navision en 2020 para ver y actualizar la licencia. Por supuesto, esto es sólo una broma... espero. Porque esto ya no se suministra en absoluto desde Navision & Business Central 2019 second Wave. Usted tiene que utilizar el Powershell para eso.
Inicie el Powershell de administración de Business Central y Navision como Admin:
Mostrar la información de la licencia actual
Escribe "export-navs" y pulsa la tecla TAB, luego la barra espaciadora y el nombre de la instancia + enter. Así, en nuestro ejemplo
Export-NAVServerLicenseInformation bc160
Navision o Business Central le muestra la información de licencia almacenada en esta licencia:
Importar un nuevo archivo de licencia
En el mismo Shell, escriba Import-NAVS y pulse TAB. Si no se muestra inmediatamente el comando correcto, utilice TAB en el Powershell (como en la programación por lotes anterior para los nombres de archivo) para recorrer los comandos:
Import-NAVServerLicense BC160 -LicenseData ([Byte[]]$(Get-Content -Path „c:\temp\fin.flf“ -Encoding Byte)) -Database NavDatabase
Nota: BC160 es su instancia, "c:\temp\fin.flf" es la ruta y el nombre del archivo de su licencia. Atención. Business Central y Navision o el Powershell ya comprueban si la licencia es adecuada para su sistema. Si no es así, se emitirá la notificación correspondiente. Pero el archivo de licencia se importará igualmente. Por lo tanto, antes de importar un nuevo archivo de licencia, compruebe siempre que tiene el archivo de licencia anterior como archivo. De este modo, en caso de error, podrá volver al estado anterior simplemente reimportando el FIN.FLF en funcionamiento.
Report Builder was unable to paste successfully
Das gehört jetzt nicht so direkt in Einstieg in AL, sondern eher in Einstieg in RDLC oder in den Report Builder… aber das wird hier zu heftig. Daher nur der kleine Ausschnitt zu diesem echt nervigen Thema vom Microsoft SQL Report Builder, wenn man ein Feld kopieren möchte. Grundsätzlich ist dies ein Bug, not a feature, aber es gibt einen schnellen Workaround.
Szenario: Man will ein Feld im Report Builder (Egal ob der SQL Report Builder, welcher bei jedem Navision/Business Central dabei ist) oder der richtige Visual Studio (nicht: Visual Studio Code!) kopieren, und bekommt diese Fehlermeldung:
Die Ursache ist klar ein Programmfehler, aber aus unserer Sicht ist das hier das Problem: Der „Value“ einer Textbox, zu finden über die Textbox, rechte Maustaste, Text Box Properties, Value, die Formel Schaltfläche, oder, kürzer, Textbox, rechte Maustaste, Expression. Auf beiden Wegen kommt man zu der Expression, welche vom Report Builder als „Custom Code“ erkannt oder bezeichnet wird:
Alles, was wir hier machen müssen, ist in der Expression der Textbox VOR dem Kopieren einen Kommentar anhängen. Echt! Willkommen bei Microsoft.
Die Expression sieht danach z.B. so aus:
Nun kann diese Textbox im Report Builder ohne die Fehlermeldung „Report Builder was unable to paste successfully“ kopiert werden bis zum Sankt Nimmerleinstag.
Im Internet kursiert auch der Tipp, statt des Abostroph (‚) einen Doppel-Slash (//Comment oder was auch immer) zu benutzen. Das funktioniert auch, muss aber nach dem Einfügen wieder entfernt werden, sonst gibt es in Navision die unschöne Fehlermeldung
Microsoft Dynamics NAV Development Environment
Fehler beim Überprüfen von RDL-Inhalt:
Der Value-Ausdruck für das textrun-Objekt ‚FooderMiddle4.Paragraphs[0].TextRuns[0]‘ enthält einen Fehler: [BC30201] Ausdruck erwartet.
Wenn man statt dem //Comment ein ‚Comment benutzt, kann dieser Text einfach drin stehen bleiben. Und gerade bei der recht dämlichen Weise, wie Microsoft Zeilenelemente mit SetData und GetData für den Kopf und den Fuß überträgt, kann man diesen Kommentar ja auch gleich dafür verwenden, etwas sinnvolles (z.B. ‚Rechnungsnummer) zu verwenden.