Skip to main content

Power BI Developer community January update

Headshot of article author Ranin Salameh

 

This blog post covers the latest updates for Power BI Developers community. Don’t forget to check out our latest developer blog post, if you haven’t done so already.

Embedded analytics

 

Here is the list of updates for embedded analytics…

 

Automation & life-cycle management

Use Power BI API with service principal (Preview)
Schedule refresh API
Get Power BI Apps content

 

Embed capabilities

Control all visual menu actions programmatically
Personalize reports with Themes API
Clone visual API
 

Automation & life-cycle management

Use Power BI API with service principal (Preview)

We’re thrilled to announce the support of authenticating to Power BI with service principal (also known as app-only authentication), now available in Public Preview.

Service principal can replace master user and help customers build a more robust solution when going to production:

  • Easier to create – applications can be registered automatically, and anyone with the appropriate permissions can add the new application to a security group allowed to use service principal.
  • No need to purchase a Power BI Pro license for a service principal (though it is recommended to have a user with Pro license who can access Power BI portal).

Read more about service principal in the blog announcement.

 

Schedule refresh API

Power BI enables Dataset owners to configure the refresh schedule. The refresh schedule refreshes the data according to the specified time and frequency. Learn more on configuring scheduled refresh.

 

The new REST API enables you to set a new refresh schedule or override the configuration of an existing schedule. You can also retrieve the schedule of a dataset with ‘get schedule refresh’ API.

This API is very useful for setting or updating schedules on many datasets because you can use a script rather than configuring each manually. The API can also be useful if you want to make automatic changes according to a specific trigger. For example, multiple refresh failures will disable the scheduled refresh. With the new API, you can enable the refresh schedule again without the need to do it manually.

Please note that this API is relevant for cached (import mode) or composite models only.

Schedule DirectQuery cache refresh

For datasets connected in a DirectQuery or Live Connection to the data source. However, Dashboard tiles pinned from reports that use DirectQuery, still cache the data and refresh it in a defined frequency. Now, you can use REST API to set the cache refresh of a DirectQuery or a live connection dataset.

Get Power BI Apps content

We added a new set of APIs that enable the users to get a list of their Power BI installed apps and their content. For now, the content includes only dashboards and reports.

Read more about it here.

 

 

Embed capabilities

Control all visual menu actions programmatically

Options and Context Menus APIs has been extended to provide full control for each visual in the report on built-in commands, and custom commands. Built-in commands can be hidden, or greyed-out per visual and the position of custom commands in the menus can be controlled as well.

Read more about it here and use the new ‘Insight to action’ showcase in the Microsoft Power BI Embedded Playground to experience the new feature.

 

 

Personalize reports with Themes API

Themes API allows you to apply a custom theme to your embedded report, such as corporate colors, seasonal coloring, or other custom styles. The custom theme can be defined using a JSON file like in the Power BI Service, and be applied when the report is loaded or changed in a loaded report.

Read more about it here and use the new ‘Personalize report design’ showcase in the Microsoft Power BI Embedded Playground to experience the new feature and get the code to implement it.

 

Clone visual API

Clone visual API allows you to make copies of an existing visual. It’s helpful when you want to create copies of one visual with different filters or different layout. It allows you also to bring visuals from another page of the report to the currently active page.

Read more about it here

 

Come and meet us!

Meet Power BI embedded analytics Product group in the following conferences:

 

1. DeveloperWeek– We have a booth and a dedicated session on Power BI Embedded analytics

 

 

2 . Power Platform Summit– 2 hours deep-dive session

 

If you are puzzled or run into a few issues, be sure to check our resources that can help you get by:

  • ‘Troubleshooting’ doc to help you get by all the obstacles on your way for building a great app.
  • FAQ doc to answer all your question regarding the Product, licensing and Azure capacities.
  • Community forum for developers, to seek answers or ask any other questions you have.

 

Custom Visuals 

 

Custom Visuals Rendering Events API

 

The 2.3 API introduces a new rendering events service providing the custom visual developer an ability to notify about rendering progress.

 

Use this API to ensure timely export to PPT and PDF execution of your visual.

This API improves the liability of the export to PPT and PDF features.

Future certification of custom visuals will require proper use of those rendering APIs, and please start using them if your visual is certified.

 

The new API contains three methods (started, finished or failed):

When the rendering is only going to start, the custom visual code calls to to indicate that rendering process was started.

 

If the rendering were  completed successfully, the custom visual code immediately calls the renderingFinished method notifying the listeners that this visual image is ready.

 

In case that a problem occurred during the rendering process, preventing the custom visual to successfully complete it, the custom visual code will call to renderingFailed method notifying the listener that the rendering process didn’t complete and also will provide an optional string for the cause of failure.

declare module powerbi.extensibility.v020300 {

export interface IVisualHost extends extensibility.IVisualHost {

eventService: IVisualEventService ;

}

/**

 * An interface for reporting rendering events

 */

export interface IVisualEventService {

/**

 * Should be called just before the actual rendering was started.

 * Usually at the very start of the update method.

 *

 * @param options – the visual update options received as update parameter

 */

renderingStarted(options: VisualUpdateOptions): void;

/**

 * Should be called immediately after finishing successful rendering.

 *

 * @param options – the visual update options received as update parameter

 */

renderingFinished(options: VisualUpdateOptions): void;

/**

 * Called when rendering failed with optional reason string

 *

 * @param options – the visual update options received as update parameter

 * @param reason – the option failure reason string

 */

renderingFailed(options: VisualUpdateOptions, reason?: string): void;

}

}

Local storage API

With the new Local Storage API, custom visual can request the host to save or load data from the browser’s storage.

Note that there is a separation of storage access, so that only visuals of the same type can access the data stored.

For more information, please check here.

declare module powerbi.extensibility.v020200 {
export interface
IVisualHost extends extensibility.IVisualHost {

storageService: ILocalVisualStorageService;

}

/**

 * Provides an access to local storage for read / write access

 */

interface ILocalVisualStorageService {

/**

 * Returns promise that resolves to the data associated with ‘key’ if it was found or rejects otherwise.

 *

 * @param key – the name of the payload to retrieve

 * @returns the promise that resolves to the data required or rejects if it wasn’t found

 */

get(key: string): IPromise<string>;

/**

 * Saves the data to local storage. This data can be later be retrieved using the ‘key’.

 * Returns a promise that resolves to the amount of free space available to the caller after the save if there

 * is any or rejects otherwise.

 *

 * @param key – the name of the payload to store

 * @param data – the payload string to store

 * @returns the promise resolves to the amount of free space available or rejects if there is no free space to store the data

 */

set(key: string, data: string): IPromise<number>;

/**

 * Deletes data associated with ‘key’ from local storage.

 *

 * @param key – the name of the payload to remove

 */

remove(key: string): void;

}

}

Custom visuals webinar

Have you watched custom visual’s webinar?

If not join Ted and Chuck as they discuss the current state of the custom visual platform and explain how you can take advantage of the most recent enhancements.

Custom visual’s webinar

 

 

 

As always, feel free to use all the communication channels at your disposal to connect with our team, share your thoughts and ask questions:

– Contact us for support- pbicvsupport@microsoft.com

That’s all for this post. We hope you found it useful. Please continue sending us your feedback, and it’s very important for us. Have an amazing feature in mind? Please share it or vote in our Power BI Embedded analytics Ideas forum, or our Custom Visuals Ideas forum.