Ejercicio: Conectarse a servicios REST externos

Completado

Escenario

Desea conectarse a un servicio REST externo desde Dynamics 365 Business Central.

Tareas

  • Crear una página sin una tabla de origen.

  • Conectarse a un servicio REST externo.

  • Mostrar la información del servicio REST en la página.

Pasos

  1. Inicie Visual Studio Code.

  2. Seleccione Ver > Extensiones (Ctrl+Mayús+X).

  3. Introduzca Lenguaje AL en el cuadro de búsqueda Buscar extensiones en Marketplace.

  4. Seleccione el botón verde Instalar.

  5. Cree un nuevo proyecto de extensión AL. Seleccione Ver > Paleta de comandos (Ctrl+Mayús+P).

  6. Introduzca AL: Go! en el cuadro de búsqueda y seleccione el comando de la lista.

  7. Acepte la ruta sugerida (o introduzca otra).

  8. Seleccione la versión más reciente como la plataforma de destino.

  9. Seleccione Espacio aislado de nube de Microsoft como punto de conexión del desarrollo.

  10. Descargue los símbolos de la aplicación. Seleccione Ver > Paleta de comandos (Ctrl+Mayús+P).

  11. Introduzca AL: Descargar símbolos en el cuadro de búsqueda y seleccione el comando de la lista.

  12. Si se le solicita, proporcione sus credenciales de la organización (cuenta de Microsoft 365/cuenta de Microsoft Entra ID).

  13. Abra el archivo app.json y cambie la configuración nombre a Probar aplicación de REST. Cambie la configuración del editor a Cronus International Ltd.

  14. Elimine el archivo HelloWorld.al.

  15. Cree un nuevo archivo con el nombre UserInfoCard.Page.al.

  16. Introduzca tpage y luego pulse la tecla Tab.

  17. Cambie el Id. a 50100 y el nombre a Tarjeta de información de usuario.

  18. Compruebe que la propiedad PageType esté establecida en Tarjeta y que la propiedad SourceTable se haya eliminado.

  19. Cree la propiedad Título y luego introduzca Tarjeta de información del usuario.

  20. Para establecer UsageCategory introduzca Documentos.

  21. Agregue las siguientes variables globales:

    Nombre Tipo de datos
    Id. Entero
    Nombre Texto
    Correo electrónico Texto
    Teléfono Texto
    NombreEmpresa Texto
  22. Elimine la sección Acciones y la variable global myInt.

  23. Agregue un contenedor ContentArea. Compruebe que se haya creado un área del subtipo Contenido en la sección de diseño. Si no, cree un área del tipo Contenido.

  24. Agregue una ficha desplegable. Compruebe que exista un grupo en ContentArea; si no, cree un grupo nuevo. Cambie el nombre del grupo a General. Cree la propiedad Caption e introduzca General.

  25. Agregue un campo para cada variable global. Establezca la propiedad Editable en false, excepto el campo Id..

  26. Cree un procedimiento local con el nombre GetUserInfo.

  27. Cree las siguientes variables locales:

    Nombre Tipo de datos
    Cliente HttpClient
    ResponseMessage HttpResponseMessage
    Token JsonToken
    Objeto JsonObject
    JsonText Texto
    Dirección URL Texto
  28. Escriba código para obtener información de un usuario específico.

    procedure GetUserInfo()
    var
        Client: HttpClient;
        ResponseMessage: HttpResponseMessage;
        Token: JsonToken;
        Object: JsonObject;
        JsonText: Text;
        Url: Text;
    begin
        Url := 'https://jsonplaceholder.typicode.com/users/' + Format(Id);
        if not client.Get(Url, responseMessage) then
            Error('The call to the web service failed.');
        if not ResponseMessage.IsSuccessStatusCode then
            Error('The web service returned an error message:\\' +
                    'Status code: %1\' +
                    'Description: %2', 
                    ResponseMessage.HttpStatusCode,
                    ResponseMessage.ReasonPhrase);
        ResponseMessage.Content.ReadAs(JsonText);
    
        if not Object.ReadFrom(JsonText) then
            Error('Invalid response, expected a JSON object');
    
        Object.Get('name', Token);
        Name := Token.AsValue().AsText();
        Object.Get('phone', Token);
        Phone := Token.AsValue().AsText();
        Object.Get('email', Token);
        Email := Token.AsValue().AsText();
        Object.Get('company', Token);
        Token.AsObject.Get('name', Token);
        CompanyName := Token.AsValue().AsText();
    end;
    
    
  29. Cree un desencadenador OnValidate para el campo Id.. Llame al procedimiento GetUserInfo desde el desencadenador OnValidate.

  30. Abra el archivo launch.json en la carpeta .vscode. Establezca la configuración startupObjectId en 50100 y la configuración startupObjectType en Página.

  31. Publique su extensión en el espacio aislado. Seleccione Ver > Paleta de comandos (Ctrl+Mayús+P).

  32. Introduzca AL: Publicar en el cuadro de búsqueda (o pulse la tecla de método abreviado F5) y luego seleccione el comando de la lista.

  33. Compruebe que se inicia la aplicación Dynamics 365 Business Central y que aparece la página Tarjeta de información de usuario. Agregue un número del 1 al 10 en el campo Id.. El servicio REST debería devolver un resultado.