Esercizio - Connessione a servizi REST esterni

Completato

Scenario

Si desidera connettersi a un servizio REST esterno tramite Dynamics 365 Business Central.

Attività

  • Creazione di una pagina senza una tabella di origine.

  • Connessione a un servizio REST esterno.

  • Visualizzazione delle informazioni del servizio REST sulla pagina.

Passaggi

  1. Avviare Visual Studio Code.

  2. Selezionare Visualizza > Estensioni (CTRL+MAIUSC+X).

  3. Immettere AL Language nella casella di ricerca Cerca le estensioni nel Marketplace.

  4. Selezionare il pulsante verde Installa.

  5. Creare un nuovo progetto di estensione AL. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).

  6. Immettere AL: Go! nella casella di ricerca e selezionare il comando dall'elenco.

  7. Accettare il percorso suggerito (o immettere un altro percorso).

  8. Selezionare la versione più recente come piattaforma di destinazione.

  9. Selezionare Microsoft cloud sandbox come endpoint di sviluppo.

  10. Scaricare i simboli dell'applicazione. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).

  11. Immettere AL: Download symbols nella casella di ricerca e selezionare il comando dall'elenco.

  12. Se richiesto, fornire le credenziali dell'organizzazione (account Microsoft 365 o account Microsoft Entra ID).

  13. Aprire il file app.json e modificare l'impostazione Nome in Test REST Application. Modificare l'impostazione editore in Cronus International Ltd.

  14. Rimuovere il file HelloWorld.al.

  15. Creare un file nuovo con il nome UserInfoCard.Page.al.

  16. Immettere tpage e premere il tasto TAB.

  17. Modificare l'ID in 50100 e il nome in User information Card.

  18. Verificare che la proprietà PageType sia impostata su Card e la proprietà SourceTable venga rimossa.

  19. Creare la proprietà Caption, quindi immettere User information Card.

  20. Impostare UsageCategory immettendo Documents.

  21. Aggiungere le seguenti variabili globali:

    Nome Tipo di dati
    ID Integer
    Name Text
    Email Text
    Phone Text
    CompanyName Text
  22. Rimuovere la sezione delle azioni e la variabile globale myInt.

  23. Aggiungere un contenitore ContentArea. Verificare che sia stata creata un'area del sottotipo Content nella sezione del layout. In caso contrario, creare un'area del tipo Content.

  24. Aggiungere una Scheda dettaglio. Verificare che esista un gruppo nella ContentArea; in caso contrario, creare un nuovo gruppo. Cambiare il nome del gruppo in General. Creare la proprietà Caption e immettere General.

  25. Aggiungere un campo per ogni variabile globale. Impostare la proprietà Editable su false, tranne per il campo ID.

  26. Creare una procedura locale con il nome GetUserInfo.

  27. Creare le seguenti variabili locali:

    Nome Tipo di dati
    Client HttpClient
    ResponseMessage HttpResponseMessage
    Token JsonToken
    Object JsonObject
    JsonText Text
    Url Text
  28. Scrivere del codice per ottenere informazioni riguardo a un utente specifico.

    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(ErrorInfo.Create('The call to the web service failed.'));
        if not ResponseMessage.IsSuccessStatusCode then
            Error(ErrorInfo.Create('The web service returned an error message:\\' +
                'Status code: ' + Format(ResponseMessage.HttpStatusCode()) +
                'Description: ' + ResponseMessage.ReasonPhrase()));   
    
        ResponseMessage.Content.ReadAs(JsonText);
    
        if not Object.ReadFrom(JsonText) then
            Error(ErrorInfo.Create('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. Creare un trigger OnValidate per il campo ID. Chiamare la procedura GetUserInfo dall'interno del trigger OnValidate.

  30. Aprire il file launch.json nella cartella .vscode. Impostare startupObjectId su 50100 e startupObjectType su Page.

  31. Pubblicare l'estensione nella sandbox. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).

  32. Immettere AL: Publish nella casella di ricerca (o premere il tasto di scelta rapida F5) e selezionare il comando dall'elenco.

  33. Verificare che l'applicazione Dynamics 365 Business Central si avvii e che venga visualizzata la pagina User information Card. Aggiungere un numero da 1 a 10 nel campo ID. Il servizio REST dovrebbe restituire un risultato.