Skip to content
  • There are no suggestions because the search field is empty.

Create Package and Data Driven Schedules with the PBRS REST API

Create reusable Power BI report packages and define the documented data-driver relationship.

Review status: Draft for Development and Support review. Routes and models labelled validation required must be tested against the supported PBRS build before publication.

Documented package operations

Task Documented route
List packages GET api/packageschedule/getall
Get a package GET api/packageschedule/get/{id}
Create a package POST api/packageschedule/create
Delete a package DELETE api/packageschedule/delete/{id}

The public article describes package CRUD, but it does not list an update operation. Treat package update as unsupported in the documentation until Development supplies a tested endpoint.

Package creation model

Property Documented purpose
PackageName Unique package schedule name.
FolderPath PBRS folder in which to create the package.
DataDriven Whether the package uses a data driver; documented default is false.
Schedule Recurrence definition.
EmailDestinations One or more email destinations.
PowerBIReports One or more packaged Power BI report definitions.
DataDriver Required when DataDriven is true.
GroupByEmail Group files produced by the data-driven package by email address.
Description and Keywords Administrative description and search/filter metadata.

Packaged report definition

A PackagedPowerBIReportModel can identify the Power BI account, report URL, object type, report name, workspace, bookmark, rendering settings, filters, and Power BI data-only export settings for a report included in the package.

Data driver model

The reviewed public model identifies KeyField and ValuesJson. Development must document the complete ValuesJson schema, row mapping, validation behavior, supported dynamic fields, and failure handling before recipient-specific examples are published as API contract examples.

Group files by recipient

GroupByEmail is the documented package setting for grouping files from a data-driven package by email address. This can support consolidated delivery when a recipient should receive multiple generated report files together. Test grouping with controlled data, duplicate addresses, blank addresses, and multiple reports before production use.

Operational safeguards

  • Validate each input row before submitting work.
  • Restrict selectable reports and destinations at the calling application.
  • Use keywords or an external correlation value to prevent duplicate package creation.
  • Match batch size to available execution capacity.
  • Capture per-execution success and failure without logging recipient data unnecessarily.

Data-driven scheduling method

  1. Validate the driver source and required key field.
  2. Define how each row maps to filters, parameters, recipients and output names.
  3. Reject or quarantine blank keys and malformed rows.
  4. Define behavior for duplicate keys and recipient grouping.
  5. Test partial failures and rerun safety before production use.
  6. Reconcile expected recipients and artifacts against the execution results.

The formal ValuesJson schema, package-update contract, batch behavior and partial-failure rules require Development validation.

Bulk-operation contract requirements

Before bulk paginated or SSRS creation is published, the reference must define the canonical endpoint, payload or JSON-file format, maximum items, validation order, transaction boundary, duplicate policy, per-item response, partial-failure behavior and rerun procedure.

Capability matrix for package and data-driven work

Operation Status Safety requirement
List/get package Published Handle GET-body filtering carefully
Create package Published Read back and test controlled delivery
Delete package Published Explicit approval and dependency check
Update package Not established Do not emulate with delete-and-create
Data-driver ValuesJson Field documented; schema missing Validate rows, duplicates, blanks and partial failures

Documentation standard: Record the PBRS build used for verification, test in a non-production environment, redact credentials and customer data, and confirm the saved PBRS state after every write.