Power BI - does it cache OData source meta data? - odata

I'm using Power BI against an OData V4 source I'm currently developing so the data source metadata is changing regularly. I've noticed that I've been bitten a few times by Power BI 'remembering' property names that no longer exist.
When I look at the data source metadata via a browser against the OData service itself, I see all the proper properties and navigation properties. But in Power BI, when I specify the same OData service resource (via 'Get Data'), pick an entity, when it goes into Power BI query editor it's referencing 'old' properties that no longer exist - hence Power BI blows up.
So it looks like the old metadata is being held on somehow. Is there anyway to reset what appears to be cached metadata?
Thanks!

Yes, Power PI Desktop. Sorry for the confusion. I turns out you need to go into 'Options and Settings' -> 'Data Source Settings', then delete all the OData URLS. That seemed to work.
'Refresh Preview' just reloads the data, not the metadata, it seems.

It sounds like you are referring to Power BI Desktop (not the Power BI web service)?
In the Edit Queries window, the Refresh Preview button should refresh the cached metadata.

Related

Show ApplicationInsights metrics on custom dashboard without Azure resources / storage

I am designing a system (stack: MVC 5, EF6, SQL Server) which needs to capture a lot of information about user interaction with various components of the app.
E.g.
How much time a user spend on a particular screen.
What action is the user performing: viewing, editing a page/form
Idle time
Progress in a particular workflow
And show all this information on a Management dashboard which is part of the same web app.
The traditional way of doing this would be to fire a sql query when a certain action happens and save this information in the application database. The thing is that, I don't want to overload the main application server with all these tasks and this approach doesn't seem too robust to me.
I was reading about Application Insights (Telemetry and custom events) and it seems that it should work for my problem statement. The only problem is that it is very tightly coupled with Azure resources and portal dashboard (as per my understanding).
So my question is: Can I use ApplicationInsights package to capture metrics and persist the data in a local SQL database and show it on a custom dashboard?
I read about continuously exporting telemetry information from Azure Storage to Power BI or SQL DB but wont work for me because I cannot use Azure as an intermediary.
https://azure.microsoft.com/en-in/documentation/articles/app-insights-export-telemetry/
Would really appreciate some guidance on this. Thanks.
You can use PowerBI dashboards, with direct integration to Application Insights, specifically, with Analytics queries you likely may use in this scenario.
Also, you can consider using Application Insights API (https://dev.applicationinsights.io/) to achieve this directly, including integration with some popular dashboards. Note that API is now in early preview, so we may introduce some changes, but the overall shape should be stable.
I am also curious what prevents you from using Azure - we'd like to learn more about it. Please be aware of the fact that Application Insights stores it data in Azure
For the specific case when you want to use just Application Insights SDK, while storing and analyzing the data "locally" in your tool of choice - this is also possible. (Note: in this case you only benefit from App Insights SDK and schema, leave the door open for future possibility to use full App Insights). To achieve that, you can consider implementing a custom telemetry channel - see here for some additional information: http://apmtips.com/blog/2016/01/31/telemetry-channels-update
While implementing this approach, you should you should be mindful about the volumes - I would advocate for decoupling it through some form of a queue mechanism, makes it easier to protect your app, balance the load and also monitor ...

accessing crm changes via odata

I am using odata to query Dynamics CRM Online 2013. I am trying to track changes against particular entities. For example, I want to be able to see Old Values and New Values for Opportunities, as you would see in the Summary View. Auditing is enabled for the entities but the most I can see via odata is whether a field of an entity was changed or not, and when it was changed.
Q. If "Change Tracking" is enabled will that expose another odata entity that will give me those changed values?
I am pretty sure Audit entity data is not exposed via OData.
Please find the url for the actual usage of Change Tracking feature.
http://www.powerobjects.com/2015/10/26/change-tracking-in-dynamics-crm-2015/
Audit table is not consumable through Sdk calls.. neither odata nor soap.
On premise will allow to query using sql queries but still data is "," "~" separated.
On the other hand Change tracking is accessible through sdk call using RetrieveEntityChangesRequest message. Pls refer the link below.
But this is for primary usage of integration services to identify the modified records for upstream/downstream systems from last cycle.
https://msdn.microsoft.com/en-us/library/dn932130.aspx
Update: Reg Audit, we have some limited options though - https://yanivrdt.wordpress.com/2016/01/08/retrieving-audit-history-records-via-api/

How does BreezeJS will help in saving data to client browser without actually saving it to database

In SPA , how can we use BreezeJS to save data on client cache before saving back to database. I am working on this HotTowel Template and trying an application which is a simple calculator and I want to calculate the results using cache and save it to only cache (client browser), and I should be able to query on the results. ( I am already done with this type of application but problem is that it will do the saveChanges into database directly and the view is updated accordingly)
It's not clear that you have a specific issue we can address.
For a general understanding of how to manage changes offline, you might watch John Papa's Pluralsight course, "Building Apps with Angular and Breeze - Part 2", particularly the "Saving State with Local Storage" module.

Missing SharePoint Server Publishing Infrastructure feature in SharePoint 2007

I am trying to display a sql query result on a page in my Sharepoint site. After looking around I found instructions on how to do that using the Content Query Web part. The instructions to enable that feature instructions here include activating the SharePoint Server Publishing Infrastructure. I currently don't have that option. Is there something I can install to my sharepoint site to get that option? Is there a better/easier way to display the results of a sql query in sharepoint?
Make sure to look in your "site collection features" instead of your site feature. This feature needs to be activated at the root level of the site collection.
FYI the Content Query WebPart only retrieve content from your site collection (by crafting a relevant CAML query, which is finally transformed to SQL query). You don't have the possibility to create a direct sql query and receive the result.
If you need to query another database than the one SharePoint is using (avoid accessing it from SQL at all cost !), you'll need to rely on the Business Connectivity Service, a data view webpart (using SharePoint designer), or create a simple webpart that will be responsible for everything (connecting to the db, doing the query and rendering the result in any way).
Hope it helped.

Website talking to client application?

I'm working on a desktop application in Delphi 2007 and on a website where content data for this application is maintained. To view this website, the user is basically restricted to Internet Explorer 7 or higher. (Not going to support the rest.)
What I am looking for is a way to add a link to the website which would tell my already-running application to select a certain record by an ID that's passed to it from the website.
That sounds easy but it's a bit more complex than this. In the application, the user selects a dossier for a customer of the user. In this list he can find a list of products. His customer -who sits next to the user- just searches on the website and selects a product to be added. (Or the user selects one for him.)
Second Life seems to be able to do this by supporting a new protocol for the web browser. Thus, the link secondlife://gingivere/240/72/ would kick you to some place in Second Life. (Unless you haven't installed Second Life, in which case it doesn't do much.) Basically, I want to implement something similar in my application!
(Must support Windows 2000, 2003, XP, Vista and newer versions of Windows.)
Oh, I'm using Borland/Codegear/Embarcadero Delphi 2007 and the application is a simple WIN32 application. (I also have Visual Studio 2008 available but would prefer to not use this.)
See Registering an Application to a URL Protocol.
I would poll a webservice from the client application rather that try to make a connection from the server to the browser.
RTC Real Thin Client and remote functions are perfect for this.
Me, I'd forget the browser compatibility issues (how do you think you will stop IE8 being used?) and use the PBear browser component direct. Using this you can intercept your links easily, and thus spot whatever reference you wish. In my app, I have things like "act://actHelp" and I spot the link type as 'act' and then search for an action with the name "actHelp". If available, I execute it. You can also pre-parse the HTML code to look for these links, and insert an image of the icon that the action uses, thus matching your UI and ensuring it is kept up to date.
Go integrated, and forget external browser issues.

Resources