If an IcCube schema is refreshed, the new data will be visible for a user only, if he makes a new login and visits the report again.
But of course, she doesn't know, that the schema is refreshed.
What is the best way to handle this?
Is there for example a way to notify the end user, when the schema underlying the open report is updated, with the option for the user to reload the content (but keep the current filtering)?
You can activate the Refresh Period in the report configurtion. The report will be updated each time the server receive new data.
That activation has to be done in every single report?
or can it be configured centrally for all existing reports or at least for each new report?
Related
I set up incremental refresh in powerBI, and it loaded all the history to the service, and now only refreshes the last data every time, as expected. I need to reload once all the history, because of changes made to historical data. Is there a way to do so?
If I republish my dataset from PowerBI desktop to the service, the data will be reloaded fully. Is there a simpler solution?
If your model is NOT in a Premium workspace, republishing is your only option.
If your model is published to a Premium workspace, you can manage the underlying data through the XMLA endpoint. You have to have that set up to be writable in your Power BI Admin settings. Once it's open, you can manage IR models with SQL Server Management Studio (MS doc here). There are also some third-party tools. Of these, Tabular Editor is the best. This is a video from Guy in a Cube that will get you started with TE.
If you have Premium, I highly recommend setting up all your IR tables as Dataflows. That separates the IR from your report, and makes managing IR much simpler in the long run. IR Dataflows are not available without Premium.
If I republish my dataset from PowerBI desktop to the service, the data will be reloaded fully. Is there a simpler solution?
Simpler, no. But you can force a full refresh with the Rest API.
applyRefreshPolicy Boolean true
If an incremental refresh policy is defined, applyRefreshPolicy will
determine if the policy is applied or not. If the policy isn't
applied, a process full operation will leave partition definitions
unchanged and all partitions in the table will be fully refreshed.
Modes are true or false.
This is a n00b question. I need to make some changes to a report that has been published on the PowerBi Cloud. I need to make some changes to a visual. After making the changes, I publish the report. It ends up creating a new report in the workspace. Is there a way to update the report with the changes from PowerBi Desktop? Or do I need to remove the old one and create a new report? I could find any documentation on this.
As long as the report is the same name and it is being published to the same workspace it will overwrite. This maintains the report's GUID (internal identifier) which is also used in the hyperlink to the report, so is handy to keep constant.
You can test this by publishing a report and opening it once published. Check this link and the report content. Change the report and publish again - it will ask you to overwrite. Once re-published, you can refresh and see the report link stays constant but the report is updated.
I'm new to Power BI (Free Version) and I have been asked to develop a report system which generates report from an excel sheet, the reports work good for only the data I have collected.
but my question is how to connect to the data immediately from SQL server without the need to convert it to excel and then import it in power BI, I also want the data to be refreshed dynamically.
One of the solutions I tried is to add new dataset but I get the following message:
Refresh can't be scheduled because the data set doesn't contain any
data model connections, or is a worksheet or linked table. To schedule
refresh, the data must be loaded into the data model.
I have looked for many solutions but none has worked.
am I missing a concept? thank you
If this data is stored in a SQL SERVER table it is a pretty straight forward process.
When you create a new power bi report (.Pbix) you should see a prompt asking you if you want to "Get Data". You would select the 'SQL Server Database' option - See the image below:
Then, you will be asked to enter the Server and Database name, and to specify either 'Import' or 'Direct Query' mode. If you choose 'Import' the data will be refreshed every time you access the report or upon 'Refresh' within a report session. If you choose the latter, the connection will always be live i.e. any changes to the data in your database will be reflected in the report.
Once you get passed this window, you will be asked to either specify credentials or use a windows authentication to access the database and server. After that you can either specify a query to pull in some data or you can select from a list of tables.
I hope this helps!!
I have implemented Power BI embedded in a web app with direct query using Azure SQL as data source.
The Azure SQL database is being updated by webjobs and if I leave open the Power BI embedded web app I don't see the visuals refreshing with the new data unless I trigger a query for example changing tab or filtering with a slicer.
In the documentation I found the following:
"If there is no user interaction in a visualization, like in a dashboard, data is refreshed automatically about every fifteen minutes."
Do I understand correctly that an open visual in my case should be refreshing without need of user interaction?
Can you point out to the reason for it not to be updating automatically? Also do you know a way to control the time of the refresh with direct query without user interaction more exactly than the "...about every fifteen minutes..."
When inspecting the connection properties on Power BI desktop I have made sure it indicates "Direct Query".
From my understanding the embedded report won't refresh automatically. However, if you're using the Power BI JS framework (https://github.com/Microsoft/PowerBI-JavaScript) to embed your report from a Workspace Collection, then you can use a refresh() method on the report object to manually get the latest data, provided your report is using Direct Query.
This method is only present in version 2.2.0 of the framework and was then removed in the latest version (currently 2.2.1) while further testing around billing is performed (see https://github.com/Microsoft/PowerBI-JavaScript/commit/5230b2f96b10a1104efecdffe78255b9788526b8).
However, in my testing I found the session count remained unaffected by the refresh method. You can refresh up to intervals of 15 seconds (a limit set by the server). This may change however, given the method was removed in 2.2.1, but using 2.2.0 seems to work currently.
Here's a quick and dirty example which will refresh the report every minute within the allocated session:
powerbi.embed(reportContainer, embedConfig);
report = powerbi.get(reportContainer);
window.setInterval(function () {
report.refresh();
}, 60 * 1000);
If the session expires (after 1 hour currently) then a new JWT will need to be requested and the report needs to be reloaded with the new token.
You may want to implement some checks around the session expiry if you plan to keep the report open for more than the allotted session time.
I have page with 10 clasic reports and 10 form region (one for each report). On each form region is button with Dynamic action witch
insert data in table. My problem is how to refresh just one report after I insert data so that new data is shown in report. I tried to add another
true action in Dynamic action (refresh region) but it has no effect. Anyone had any idea? Apex version is 4.2
Thanks in advance.
One thing you can do is.
Assign Static ID to your every reports, Like 'myReport1', 'myReport2' or what ever you want (ignore if you already did).
on each button click when you are updating database,
add one more True Action with Execute JavaScipt Code in your existing Dynamic Action.
and put $('#myReport1').trigger('apexrefresh');
repeat this for all of your Reports with relevant Report ID.
This is a frustrating issue and one which I have hit a few times...
Things to check:
Report region is region type: SQL query (PL/SQL Function body returning SQL Query - cannot be refreshed using a standard refresh dynamic action).
Ensure that: id="#REGION_STATIC_ID#" is in the Report template you are trying to refresh
Navigate to: Report Attributes > Layout and Pagination: ensure that "Partial page Refresh" is set to Yes.
Ensure that: any page item values which your SQL report is based on are submitted, these can be entered under Region Source in the "Page Items to Submit" box.
In the "Attributes" in "Pagination", "Partial Page Refresh" should be "Yes". otherwise classic report does not refresh.
Check if you have selected the Template "Standard" in Section "Appearance" of your Classic Report. This solved my problem with refreshing in Apex 5.