Développer des objets de requête d’API et de page d’API pour Power BI
Dans l’unité précédente, vous avez découvert comment développer des objets de page et de requête et comment exposer des objets de page et de requête en tant que services web. Power BI peut ensuite se connecter aux services web Business Central et importer les données.
Dans la mesure du possible, nous vous encourageons à utiliser des pages/requêtes d’API au lieu de services web OData. Les API chargent plus rapidement les données dans les états Power BI que les services web OData. De plus, elles sont plus flexibles, car elles vous permettent d’obtenir des données à partir de champs de table non définis dans un objet de page.
Les développeurs peuvent définir des objets de page et des objets de requête de type API. Ainsi, ils peuvent exposer les données des tables de base de données au moyen d’un service REST pris en charge par les webhooks et compatible avec OData v4. Ce type de données ne peut pas s’afficher dans l’interface utilisateur, mais est destiné à créer des services d’intégration fiables.
Business Central Online est disponible avec un ensemble d’API intégrées vous permettant d’obtenir des données pour les entités commerciales les plus courantes telles que les clients, les articles, les commandes vente, etc. Aucun travail ni aucune configuration supplémentaires ne sont requis pour utiliser ces API comme source de données pour les états Power BI. Pour en savoir plus sur ces API, consultez API Business Central v2.0.
Business Central Online prend également en charge les API personnalisées. Les développeurs d’applications de solutions Business Central peuvent créer leurs propres pages et requêtes d’API et les mettre en package dans des applications. Vous installez ensuite les applications sur votre abonné. Une fois installées, vous utilisez les pages API pour vos états Power BI, comme vous le feriez avec les API intégrées (v2.0). Pour en savoir plus sur la création d’une API en exposant des pages ou requêtes, consultez Développement d’une API personnalisée.
Les états Power BI pour Business Central Online proviennent d’un réplica de base de données secondaire en lecture seule pour des raisons de performances. Par conséquent, les développeurs AL doivent éviter de concevoir des pages d’API qui modifient la base de données pendant que les pages s’ouvrent ou chargent des enregistrements. En particulier, tenez compte du code sur les déclencheurs AL OnInit, OnOpenPage, OnFindRecord, OnNextRecord, OnAfterGetRecord et OnAfterGetCurrRecord. Dans certains cas, ces modifications de la base de données peuvent entraîner des problèmes de performance et empêcher l’état d’actualiser les données. Pour en savoir plus, consultez les articles sur les performances pour les développeurs dans le contenu sur le développement de Business Central.
Dans de rares cas, le comportement provoque une erreur lorsqu’un utilisateur tente d’obtenir des données de l’API pour un état dans Power BI Desktop. Cependant, si des modifications de la base de données sont nécessaires dans l’API personnalisée, les utilisateurs de Power BI Desktop peuvent forcer le comportement. Pour en savoir plus, consultez Création d’états Power BI permettant d’afficher des données Business Central.
Recréons maintenant la page et la requête que nous avons développées dans l’unité précédente en tant que page d’API et requête d’API.
Pour créer une page d’API basée sur la table Client, procédez comme suit :
Dans Visual Studio Code, ajoutez un nouveau fichier .al à votre projet et nommez-le CustomersAPI.Page.al.
Collez le code suivant dans le fichier CustomersAPI.Page.al :
page 50102 CustomersAPI { APIGroup = 'powerBI'; APIPublisher = 'microsoftLearn'; APIVersion = 'v1.0'; ApplicationArea = All; Caption = 'customers'; EntityName = 'customer'; EntitySetName = 'customers'; PageType = API; SourceTable = Customer; Editable = false; DataAccessIntent = ReadOnly; layout { area(content) { repeater(General) { field(no; Rec."No.") { Caption = 'No.'; } field(name; Rec.Name) { Caption = 'Name'; } field(city; Rec.City) { Caption = 'City'; } field(countryRegionCode; Rec."Country/Region Code") { Caption = 'Country/Region Code'; } } } } }
Comme vous pouvez le constater, la page d’API expose les mêmes champs que le service web de page que vous avez créé dans l’unité précédente. La différence réside dans les propriétés de l’objet de page.
Les propriétés APIVersion, APIPublisher, APIGroup, EntityName et EntitySetName affectent votre point de terminaison personnalisé :
https://api.businesscentral.dynamics.com/v1.0/<user domain name>/api/<API publisher>/<API group>/<API version>/companies(<company id>)/
Pour en savoir plus, consultez Points de terminaison d’API Business Central et Appel de l’API.
Pour créer une requête d’API basée sur la table Écriture comptable client, procédez comme suit :
Dans Visual Studio Code, ajoutez un nouveau fichier .al à votre projet et nommez-le CustomerLedgersAPI.Query.al.
Collez le code suivant dans le fichier CustomerLedgersAPI.Query.al :
query 50102 CustomerLedgersAPI { APIGroup = 'powerBI'; APIPublisher = 'microsoftLearn'; APIVersion = 'v1.0'; EntityName = 'customerLedger'; EntitySetName = 'customerLedgers'; QueryType = API; DataAccessIntent = ReadOnly; elements { dataitem(custLedgerEntry; "Cust. Ledger Entry") { column(customerNo; "Customer No.") { } column(postingDate; "Posting Date") { } column(amountLCY; "Amount (LCY)") { } } } trigger OnBeforeOpen() begin end; }
Vous avez désormais créé un objet de page d’API et un objet de requête d’API. Vous pouvez affiner davantage les objets de page d’API et de requête d’API en ajoutant d’autres champs ou filtres. Pour cet exemple, nous allons les laisser tels quels.
Pour les pages d’API et les requêtes d’API, vous n’avez pas besoin de créer un fichier webservices.xml afin que les API soient disponibles dans Business Central. Il vous suffit de publier l’extension dans l’abonné Business Central.
Pour ce faire, procédez comme suit :
Dans Visual Studio Code, accédez à la palette de commandes, puis sélectionnez l’option AL: Publish without debugging.
Attendez que l’extension soit publiée. Une fois l’extension publiée, votre navigateur s’ouvre automatiquement et se connecte à votre bac à sable dans Business Central.
Dans Business Central, ouvrez la page Gestion des extensions pour vérifier que votre extension a été publiée et installée avec succès.
Vous pouvez désormais utiliser Power BI Desktop et afficher ces nouvelles API à l’aide du connecteur Business Central pour Power BI.
Comme vous pouvez le constater, les API personnalisées sont disponibles sous API avancées dans le connecteur Business Central dans Power BI Desktop.