Exercice : créer un jeu de données pour un état Power BI dans Business Central
Cet exercice utilise l’exemple de société Cronus à partir de la version américaine de Business Central. Vous devrez peut-être adapter les étapes si vous utilisez l’exemple de société pour votre pays ou région.
Scénario
Vous avez été invité à créer un état dans lequel l’utilisateur peut consulter le stock actuel par article. L’état doit également calculer la disponibilité de chaque article en fonction du stock actuel, du nombre d’articles sur les commandes fournisseur et du nombre d’articles sur les commandes vente.
La première étape de la création d’un tel état consiste à créer un jeu de données approprié. Créez un jeu de données pour un état Power BI dans Business Central.
Étapes
Dans l’environnement de développement, ajoutez un nouveau fichier et donnez-lui le nom suivant : ItemAvailabilityAPI.query.al.
Ouvrez le fichier .al, puis ajoutez un objet de requête à l’aide de l’extrait de code tquery (requête d’API).
Ensuite, modifiez la requête afin qu’elle extraie les champs suivants de la table Item :
- N°
- Description
- Code catégorie article
- Coût unitaire
- Prix unitaire
- Stock
- Qté sur commande vente
- Qté sur commande fournisseur
Utilisez la propriété DataAccessIntent de la requête et définissez-la sur ReadOnly.
Ajoutez un filtre à l’élément de données Item afin de vous assurer qu’aucun élément bloqué n’est interrogé. Pour ce faire, utilisez la propriété DataItemTableFilter de l’élément de données comme suit :
DataItemTableFilter = Blocked = const(false);Votre requête devrait à présent ressembler à l’exemple suivant :
query 50127 ItemAvailabilityAPI { Caption = 'ItemAvailability_PowerBI'; APIPublisher = 'contoso'; APIGroup = 'learnPowerBI'; APIVersion = 'v2.0'; EntityName = 'itemAvailability'; EntitySetName = 'itemAvailabilitys'; QueryType = API; DataAccessIntent = ReadOnly; elements { dataitem(Item; Item) { DataItemTableFilter = Blocked = const(false); column(itemNo; "No.") {} column(itemDescription; Description) {} column(category; "Item Category Code") {} column(unitCost; "Unit Cost") {} column(unitPrice; "Unit Price") {} column(inventory; Inventory) {} column(qtyOnSalesOrder; "Qty. on Sales Order") {} column(qtyOnPurchOrder; "Qty. on Purch. Order") {} } } trigger OnBeforeOpen(); begin end; }Votre requête est maintenant prête. Si nécessaire, vous pouvez également ajouter d’autres champs de la table Item, si vous en avez besoin pour l’état Power BI.