Skip to main content

Bind a Report to an Entity

Goal​

Connect a report to a Model-Driven Apps entity — for example, an Invoice entity — so the report reads that entity's records from one environment and lays out its fields as report columns.

Prerequisites​

  • The entity you want to report on exists in the environment you are reporting against. A table has its data behind it from the moment it is created (see What Happens When You Save a Table).
  • You have credentials that grant reporting read access to the environment: either an external application registration granted the reporting.read (or modelapps.read) scope (see Register an External App), or you are reporting from inside the Platform Shell, which supplies the same access for the app you are working in.
  • You know which environment holds the data you want (reporting always reads exactly one environment's data).

Steps​

  1. In the Reporting tool, create or open a report and add a Parsware data source.
  2. Point the data source at the target environment's reporting address and supply the reporting credentials from the prerequisites.
  3. Choose the entity to report on from the list of bindable entities. Every table in that environment appears — for example, Invoice.
  4. The tool loads the entity's bindable columns (each field's label and data type, with the entity's primary field first). Select the columns you want on the report.
  5. Optionally add filters and sorts on those columns (for example, "Total is greater than 50", newest first) and a page size.
  6. Preview the report. The tool requests a page of rows for the selected columns and renders them. Save the report.

What happens behind the scenes​

Binding a report creates a read-only connection to that one environment's entity data. The reporting data source never writes: it can list the environment’s tables, describe a table’s columns, and return pages of rows for the columns and filters you chose. Access is granted by the reporting read scope on your credentials rather than by an application role, which is why a reporting integration does not need maker or administrator write permissions. Every request reads only the environment you pointed the data source at — one environment's data can never appear in a report bound to another.

Troubleshooting​

  • "Reading reporting data requires the 'reporting.read' or 'modelapps.read' scope." — the credentials on the data source do not grant reporting read access. Use an application registration that has the reporting.read (or modelapps.read) scope, or report from inside the Shell.
  • The entity is not in the bindable-entity list. — it does not exist in this environment; you probably pointed the data source at a different one. Point it at the environment that holds the table, or import the solution that brings it.
  • A filter or sort is rejected as an unknown field. — the filter/sort names a field that is not defined on the entity. Choose a column from the entity's own field list.
  • What Happens When You Save a Table.
  • Register an External App.
  • Query Entity Data for Reporting (developer).