Lier un rapport à une entité
Objectif
Connecter un rapport à une entité Model-Driven Apps — par exemple une entité Facture — pour que le rapport lise les enregistrements de cette entité dans un environnement et présente ses champs sous forme de colonnes du rapport.
Prérequis
- L’entité sur laquelle vous voulez produire un rapport existe dans l’environnement interrogé. Une table dispose de ses données dès sa création (voir Ce qui se passe quand vous enregistrez une table).
- Vous disposez d’identifiants qui accordent un accès en lecture pour les rapports à
l’environnement : soit une inscription d’application externe dotée de la portée
reporting.read(oumodelapps.read) (voir Inscrire une application externe), soit vous produisez le rapport depuis le Shell de la plateforme, qui fournit le même accès pour l’application dans laquelle vous travaillez. - Vous savez quel environnement contient les données voulues (un rapport lit toujours les données d’un seul environnement).
Étapes
- Dans l’outil de rapports, créez ou ouvrez un rapport et ajoutez une source de données Parsware.
- Pointez la source de données vers l’adresse de rapports de l’environnement cible et fournissez les identifiants de rapports mentionnés dans les prérequis.
- Choisissez l’entité à utiliser dans la liste des entités liables. Chaque table de cet environnement y figure — par exemple Facture.
- L’outil charge les colonnes liables de l’entité (le libellé et le type de données de chaque champ, le champ principal de l’entité en premier). Sélectionnez les colonnes que vous voulez dans le rapport.
- Ajoutez éventuellement des filtres et des tris sur ces colonnes (par exemple « Total est supérieur à 50 », les plus récents en premier) et une taille de page.
- Prévisualisez le rapport. L’outil demande une page de lignes pour les colonnes sélectionnées et les affiche. Enregistrez le rapport.
Ce qui se passe en coulisses
Lier un rapport crée une connexion en lecture seule aux données d’entité de cet environnement. La source de données de rapports n’écrit jamais : elle peut lister les tables de l’environnement, décrire les colonnes d’une table et renvoyer des pages de lignes pour les colonnes et les filtres choisis. L’accès est accordé par la portée de lecture pour les rapports de vos identifiants plutôt que par un rôle d’application, c’est pourquoi une intégration de rapports n’a besoin d’aucune autorisation d’écriture de créateur ou d’administrateur. Chaque requête ne lit que l’environnement vers lequel vous avez pointé la source de données — les données d’un environnement ne peuvent jamais apparaître dans un rapport lié à un autre.
Dépannage
- « La lecture des données de rapports nécessite la portée 'reporting.read' ou 'modelapps.read'. » —
les identifiants de la source de données n’accordent pas l’accès en lecture pour les rapports.
Utilisez une inscription d’application dotée de la portée
reporting.read(oumodelapps.read), ou produisez le rapport depuis le Shell. - L’entité ne figure pas dans la liste des entités liables. — elle n’existe pas dans cet environnement ; vous avez probablement pointé la source de données vers un autre. Pointez-la vers l’environnement qui contient la table, ou importez la solution qui l’apporte.
- Un filtre ou un tri est refusé comme champ inconnu. — le filtre ou le tri nomme un champ qui n’est pas défini sur l’entité. Choisissez une colonne dans la liste des champs de l’entité.
Scénarios associés
- Ce qui se passe quand vous enregistrez une table.
- Inscrire une application externe.
- Interroger les données d’entité pour les rapports (développeur).