Esercizio - Connessione a servizi REST esterni
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
Avviare Visual Studio Code.
Selezionare Visualizza > Estensioni (CTRL+MAIUSC+X).
Immettere AL Language nella casella di ricerca Cerca le estensioni nel Marketplace.
Selezionare il pulsante verde Installa.
Creare un nuovo progetto di estensione AL. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).
Immettere AL: Go! nella casella di ricerca e selezionare il comando dall'elenco.
Accettare il percorso suggerito (o immettere un altro percorso).
Selezionare la versione più recente come piattaforma di destinazione.
Selezionare Microsoft cloud sandbox come endpoint di sviluppo.
Scaricare i simboli dell'applicazione. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).
Immettere AL: Download symbols nella casella di ricerca e selezionare il comando dall'elenco.
Se richiesto, fornire le credenziali dell'organizzazione (account Microsoft 365 o account Microsoft Entra ID).
Aprire il file app.json e modificare l'impostazione Nome in Test REST Application. Modificare l'impostazione editore in Cronus International Ltd.
Rimuovere il file HelloWorld.al.
Creare un file nuovo con il nome UserInfoCard.Page.al.
Immettere tpage e premere il tasto TAB.
Modificare l'ID in 50100 e il nome in User information Card.
Verificare che la proprietà PageType sia impostata su Card e la proprietà SourceTable venga rimossa.
Creare la proprietà Caption, quindi immettere User information Card.
Impostare UsageCategory immettendo Documents.
Aggiungere le seguenti variabili globali:
Nome Tipo di dati ID Integer Name Text Email Text Phone Text CompanyName Text Rimuovere la sezione delle azioni e la variabile globale myInt.
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.
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.
Aggiungere un campo per ogni variabile globale. Impostare la proprietà Editable su false, tranne per il campo ID.
Creare una procedura locale con il nome GetUserInfo.
Creare le seguenti variabili locali:
Nome Tipo di dati Client HttpClient ResponseMessage HttpResponseMessage Token JsonToken Object JsonObject JsonText Text Url Text 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;Creare un trigger OnValidate per il campo ID. Chiamare la procedura GetUserInfo dall'interno del trigger OnValidate.
Aprire il file launch.json nella cartella .vscode. Impostare startupObjectId su 50100 e startupObjectType su Page.
Pubblicare l'estensione nella sandbox. Selezionare Visualizza > Riquadro comandi... (CTRL+MAIUSC+P).
Immettere AL: Publish nella casella di ricerca (o premere il tasto di scelta rapida F5) e selezionare il comando dall'elenco.
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.