Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La experiencia de desarrollador unificada para aplicaciones financieras y operativas le permite escribir código en su computadora de desarrollo local y ejecutarlo dentro de un servicio en la nube. Existe una separación de funcionalidad entre estos dos niveles (local y en la nube).
- Nivel de desarrollo: contiene los metadatos de finanzas y operaciones y cualquier código fuente X++ en su computadora de desarrollo local
- Nivel de ejecución: sitio alojado en la nube que almacena los datos comerciales y ejecuta código X++
En este artículo se muestra cómo:
- Escribir y compilar una clase X++ ejecutable
- Implementar la clase en el tiempo de ejecución de la nube
- Depurar el código X++ implementado
Comencemos desarrollando una clase X++ ejecutable para usarla como ejemplo. La única tarea de la clase es registrar un mensaje en el Infolog. Lo importante aquí no es lo que hace la clase ejecutable, sino cómo la compilamos, ejecutamos y depuramos. Si desea obtener más información sobre el lenguaje X++, consulte la referencia de programación.
Importante
Puede obtener más información viendo la presentación y las demostraciones de la serie Dynamics 365 FastTrack Tech Talk
Requisitos previos
Debería tener acceso a un entorno de desarrollador unificado, las herramientas de extensiones de Visual Studio instaladas y configuradas en su máquina de desarrollador y conectadas al mismo entorno. Es importante mantener los cambios de metadatos en su máquina de desarrollador implementados en el entorno conectado. Más información : Instalar y configurar herramientas de desarrollo
Crear un modelo
Empezamos por crear un modelo en Visual Studio.
Inicie Visual Studio y elija Continuar sin codigo.
Elija la opción del menú Extensiones>Dynamics 365>Gestión de modelos>Crear modelo.... Si no ve esta opción de menú, no tiene la extensión requerida de Visual Studio instalada.
Ingrese un nombre de modelo de "MyTestModel" cuando se lo solicite el formulario, proporcionando información relevante para el resto de la información requerida.
En el siguiente paso del formulario, elija Crear nuevo paquete.
Elija todos los modelos referenciados. Solo necesita especificar dependencias en los paquetes Application Platform y Application Foundation en este ejemplo trivial.
Seleccione Próximo varias veces hasta que se haya creado el paquete.
Agregar y compilar la clase X++ ejecutable
Crear un proyecto y una clase X++ en Visual Studio siguiendo estos pasos.
- Crear un proyecto en Visual Studio que contiene la clase ejecutable. El nombre de la clase no es importante aquí. Para este ejercicio, mantenga el nombre predeterminado que es FinanceOperations3.
- Agregue una clase ejecutable al proyecto en Explorador de soluciones haciendo clic derecho en el proyecto y eligiendo Agregar>Nuevo elemento.
- Seleccione una Clase ejecutable en el menú Código en Elementos de Dynamics 365 y llámelo "MyRunnableClass". Visual Studio abre una ventana con la plantilla para una clase ejecutable que proporciona un método
mainestático que se llama mientras se ejecuta la clase ejecutable. - Agregue el siguiente código X++ al método
main. Dado que aquí solo proporcionamos una implementación de token, agregue una llamada para registrar un mensaje de cadena en el registro de información:
internal final class MyRunnableClass
{
public static void main(Args _args)
{
Info('Hello World from the Server Side');
}
}
Compile la clase para asegurarse de no haber introducido ningún error en este código. La compilación se realiza seleccionando Construir en el menú contextual del proyecto.
Implementar la clase
Todo el trabajo que hemos realizado hasta ahora se ha realizado del lado del cliente. El compilador X++ y las herramientas relacionadas se instalan localmente, junto con los metadatos que definen la aplicación que estás desarrollando. En Visual Studio, puede usar el elemento de menú Configurar metadatos para administrar la configuración con la que está trabajando.
Ahora ha llegado el momento de ejecutar el código y, para ejecutarlo, debe implementar el código en el nivel del servidor (nube). Para esta operación, utilice el elemento de menú en Extensión>Dynamics 365>Implementar>Implementar modelos en un entorno en línea. El cuadro de diálogo que aparece le permite seleccionar los paquetes que desea implementar. En este caso, debe seleccionar "MyTestModel". Puede encontrar fácilmente ese modelo utilizando el campo de búsqueda en la parte superior de la lista de paquetes. En la parte inferior del cuadro de diálogo, vea los paquetes a los que se hace referencia. Dado que estos paquetes son parte del código que envía Microsoft, no es necesario implementarlos porque ya están instalados en el nivel del servidor.
En este punto, está accediendo a punto de conexión en la nube, por lo que, a menos que ya haya iniciado sesión, es probable que necesite autenticarse y conectarse al entorno. Utilice sus credenciales de Microsoft Dataverse para conectarse a Dataverse y seleccione la solución con la que trabajar. Después de una breve espera, se completará la autenticación.
Importante
Hay diferentes formas de implementar los cambios en el entorno de desarrollo unificado.
Implemente el modelo completo a través del cuadro de diálogo de Dynamics 365>Implementar>Implementar modelos.... Puede optar por sincronizar la base de datos si así lo desea.
Como parte de una compilación completa, implemente el modelo completo. Esta implementación se inicia mediante el cuadro de diálogo Dynamics 365>Compilar modelos si la opción para Implementar en el entorno en línea conectado está activada. La herramienta sincronizará o no la base de datos según la configuración para sincronizar base de datos en la misma pestaña Opciones.
Como parte de una compilación incremental desde el Explorador de soluciones, configurar Implementar cambios en el entorno en línea en verdadero solo implementará los cambios desde la última implementación exitosa o aquellos realizados como parte de esta compilación. Respetará la configuración del proyecto para Sincronizar base de datos.
Haga clic derecho en un proyecto y elija Implementar modelo para proyecto.... Esto solo implementará los cambios desde la última implementación exitosa, pero no sincronizará la base de datos del módulo.
Sincronice la base de datos para todos los modelos sin implementar nada nuevo a través de Dynamics 365>Sincronizar base de datos....
Puede seguir el progreso de la implementación navegando al menú desplegable "FinOps Cloud Runtime" en la ventana de salida de Visual Studio. Una vez que se complete la implementación, podrá ver la información de registro siguiendo el enlace que se muestra en la ventana de resultados.
Depurar el código implementado
Una vez que haya compilado el código del proyecto y lo haya subido a la nube punto de conexión, el binario estará listo para ejecutarse. Para verificar que todo está bien con el código de clase compilado, depúrelo.
En Visual Studio, configure las opciones de depuración para cargar los símbolos para su paquete y también para los paquetes ApplicationPlatform y ApplicationFoundation.
Para configurar las opciones, comience abriendo las opciones del menú Extensiones y vaya a la pestaña de depuración. La página Depuración muestra opciones para cargar símbolos. Asegúrese de indicar que desea cargar los elementos de su solución y también los paquetes ApplicationFoundation y ApplicationPlatform.
Establezca un punto de interrupción en la línea donde llamamos al método
Infoy luego presione la flecha verde en la barra de herramientas, o use el método abreviado de teclado F5, para comenzar a depurar.Se abre una ventana del navegador con una URL que designa la clase ejecutable. Después de un rato, el navegador carga el formulario que muestra que el corredor de clases está activo y está ejecutando la clase MyRunnableClass. A continuación, el depurador carga los símbolos de su proyecto y la ejecución se detiene en el punto de interrupción.
Presione F5 para continuar la ejecución y luego vea que el panel Registro de información en Visual Studio muestra el mensaje que ingresamos en el Registro de información usando la llamada al método
Info.Actualice la ventana del navegador, que recarga la URL.
Verá que el punto de interrupción se carga inmediatamente. El depurador todavía se está ejecutando y el mensaje de salida aparece por segunda vez en el registro de información sin reiniciar el depurador. Esta técnica es especialmente útil al ejecutar formularios. Siempre puede actualizar el navegador y el formulario se cargará nuevamente sin ningún retraso causado por la carga de los símbolos.
Probemos eso ahora. En lugar de volver a escribir tediosamente nuestro propio formulario, utilice un formulario que ya exista. Comience usando el formulario SysUserSetup que le permite configurar la coloración (tema) utilizada para representar los formularios. Cambiaremos la URL para abrir el formulario SysUserSetup en lugar de ejecutar la clase cambiando el elemento de menú (mi), esa parte que designa el elemento del menú para iniciar el corredor de clases. La URL terminará con algo similar a esto:
https://<environment>?prt=initial&debug=vs&activityid=\<unchanged>&cmp=DAT&mi=SysUserSetup
Ahora verá el formulario que le permite elegir los colores.
Ahora establezcamos un punto de interrupción en el formulario.
- Abre el Explorador de aplicaciones desde el menú Ver.
- Introduzca la cadena
SysUserSetup type:"form"en la barra de búsqueda en la ventana del Explorador de aplicaciones. - Seleccione el formulario y seleccione Ver código para abrir el editor con el código fuente de este formulario.
- De esa forma, establezca un punto de interrupción en el método
selectionChangeen el control ThemeChooser. Este código se activa cuando el usuario selecciona un nuevo tema de color. - En la ventana del navegador, seleccione uno de los cuadrados de colores, digamos el rojo. Llegarás al punto de ruptura.
- Continúe la ejecución pulsando F10 o F5. Se golpea otro cuadrado de color y se activa nuevamente el punto de interrupción.
- Puede observar a los locales, establecer nuevos puntos de interrupción y realizar diversas tareas de depuración.
Importante
Si desea adjuntar el depurador al proceso AOS en ejecución en el entorno unificado, utilice Dynamics 365>Iniciar el depurador.
Para desconectar el depurador del tiempo de ejecución sin reiniciar el AOS, use Separar en lugar de detener.
Use Application Insights para monitorear y diagnosticar la aplicación que se ejecuta en el entorno de desarrollo unificado. Obtenga más información sobre la observabilidad: Supervisión y telemetría usando Application Insights
Resumen
A modo de resumen, aquí hay un resumen y los puntos que se deben aprender de este ejercicio.
Empezamos usando Visual Studio para crear una clase ejecutable simple. Después de la compilación, el paquete debía enviarse a la nube punto de conexión para su ejecución. El código X++ solo se puede ejecutar en la nube, por lo que realizamos una operación de implementación. Una vez que se completó la implementación, ejecutamos el código estableciendo un punto de interrupción y ejecutando el depurador. Luego iniciamos un formulario desde el navegador y notamos que los puntos de interrupción se alcanzaban correctamente cuando se usaba el formulario, y no tuvimos que reiniciar el depurador para que eso sucediera. De hecho, el depurador se puede iniciar usando la opción Iniciar depurador en el menú Extensión. Luego puede ingresar una URL en el navegador, ejecutar el escenario para depurar y se alcanzarán los puntos de interrupción.
Consulte también
Experiencia de desarrollo unificada para finanzas y operaciones | Charla técnica Dynamics 365 FastTrack
Pruebas unitarias en la experiencia unificada del desarrollador
Crear y administrar entornos en el Power Platform Centro de administración
Administrar aplicaciones Dynamics 365