Dashboard in Expression Language

From QPR ProcessAnalyzer Wiki
Revision as of 13:59, 15 January 2024 by Ollvihe (talk | contribs) (→‎Dashboard functions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

In QPR ProcessAnalyzer, dashboard consists of a canvas where charts and other visualization components can be added. Each dashboard belongs to project, and dashboards have a mandatory name and optional identifier. The identifier is used when creating links between dashboards.

Dashboard properties

Dashboard objects in the expression language have the following properties:

Property Description
Content (Dictionary) Returns dashboard content (charts and other components contained by the dashboard).
CreatedBy (User) Returns user who created the dashboard.
CreatedDate (DateTime) Returns date when the dashboard was created.
Description (String) Returns description text of the dashboard.
Id (Integer) Returns id of the dashboard.
Identifier (String) Returns identifier of the dashboard.
LastModifiedBy (User) Returns user who last modified this dashboard.
LastModifiedDate (DateTime) Returns date when the dashboard was last time modified.
Name (String) Returns the name of the dashboard.
Project (Project) Returns project object where the dashboard belongs to.
ProjectId (Integer) Returns project id where this dashboard belongs to.

Dashboard functions

Dashboard objects in the expression language have functions described below. To create new dashboards, use function Model.CreateDashboard(), and to list dashboards, use property Project.Dashboards.

Function Parameters Description
DeletePermanently Deletes the dashboard permanently. EditDashboards permission to the project is required.

Example: delete all dashboards in a project:

ProjectById(1).Dashboards.DeletePermanently()
Modify Parameters dictionary

Modifies the dashboard. The parameter is a dictionary containing dashboard properties to be updated. EditDashboards permission to the project is required. Following properties are supported:

  • Name (String): Name of the dashboard.
  • Identifier (String): Identifier of the dashboard.
  • Description (String): Description of the dashboard.
  • ProjectId (Integer): Project id where the dashboard belongs to, i.e., moves the dashboard to other project.
  • Content (Dictionary): Dashboard content as dictionary.

Example: Change dashboard background color to white.

let dashboard = DashboardById(1); // find dashboard
let content = dashboard.content; // get dashboard content
content.layout.Set("backgroundColor", "#ffffff"); // modify content
dashboard.Modify( // store modified content back to the dashboard
  #{ "Content": content }
);

Example: Remove "Filter" dashboard variable from all dashboards in project.

let dashboards = ProjectById(1).Dashboards;
dashboards.{ // loop through dashboards
  let content = _.content; // get dashboard content
  content["variables"].Remove("Filter"); // modify content
  _.Modify( // store modified content back to the dashboard
    #{ "Content": content }
  );
};

Example: Move dashboards from a project to other.

let sourceProjectId = 1;
let targetProjectId = 2;
ProjectById(sourceProjectId).Dashboards.{
  _.Modify(
    #{ "ProjectId": targetProjectId }
  );
};

Function to get dashboard by dashboard id:

Function Parameters Description
DashboardById
  • Dashboard id (Integer)

Returns dashboard by given dashboard id. Returns the Dashboard object if such exists and user has permissions to it. Throws an exception if dashboard doesn't exist or user doesn't have permissions to it. GenericRead permission to the project that contains the dashboard is required.