expose a service oData or Rest with excel? - excel

Maybe what I'm going to ask is crazy, but it's what they're asking me and I don't know if it can be done.
Is it possible to expose a service oData or Rest with excel? For example, excel is listening to a request and answered the sum of 2 numbers.
Thank you very much for your answers.

Please note that Questions asking to suggest a product are usually discouraged as they attract highly opinionated responses!
While possible, without compatible infrastructure it is usually easier to create your own API, it can still use an Excel workbook as a backend using techniques commonly referred to as Excel Automation.
One MS example: How to automate Microsoft Excel from Microsoft Visual C#.NET
As part of requirements gathering, as this is a very specific request you should ask them to produce at least a set of the queries and the expected URL format that they intend to use.
A request like this usually means they are coming across from an existing platform or they are trying to copy the functionality from another provider/competitor
MS have a general solution for this called Excel Services REST API that allows you to upload workbooks to SharePoint Services and query against them, the idea is that now you can have a single source of "truth", effectively a live workbook without passing around copies of it.
NOTE:
The Excel Services REST API applies to SharePoint and SharePoint 2016 on-premises. For Office 365 Education, Business, and Enterprise accounts, use the Excel REST APIs that are part of the Microsoft Graph endpoint.
The other MS offering that can create a REST interface for Excel is Power BI, basic instruction on how to upload an offline workbook to Power BI can be found here.
I'm offering this advice because I have fielded this type of request from management or clients in the past, it is important to help them fully understand their reasons behind the request before proceeding as there can be significant licensing and setup costs compared to implementing a custom API manually

Related

Power BI to users without Power BI [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
So I've asked a similar question, but I thought I'd ask it more generally to get as many ideas as possible.
I have Power BI Pro. I am tasked with creating reports for hundreds of recipients, each one personalized to that specific user.
My organization will not pay out for everyone else to have Power BI enabled, although everyone will have an O365 account.
How do I share my reports created in Power BI to users without Power BI? Factoring in there are several hundred of them to produce every week by a team of 2 people.
Thanks in advance!
Right here https://learn.microsoft.com/en-us/power-bi/service-how-to-collaborate-distribute-dashboards-reports
it says
You need a Power BI Pro license to share your content, and those you share it with do too, or the content needs to be in a workspace in a Premium capacity.
But you can always just share the .pbix file locally. This doesn't use PowerBI.Com at all so you can do what you want. You should just be aware that you won't get a lot of the features like security etc.
That's the licencing terms of using Power BI. No way around it. Anything that works around this violates licencing.
Going by your other question.... you don't even need Power BI - you just want a bunch of static PDF's split by department! There are many ways to build a low cost reporting solution that spawns out PDF's, for example SSRS.
Power BI is really not the right tool for operational reporting, even though many people try to shoehorn it into that function. Think outside the square!
As per my comment below, the other way to share reports with non pro users is to buy premium capacity. This only becomes cost effective at high numbers of users though.
Well you can use embed feature of powerbi. Powerbi offers api to get reports and dashboards from your account. You can call the api to get reports and dashboards,embed them in your own application and even store the report id and dashboard id in your database. Then share those reports and dashboards among your users via your own application.
If your users has Office 365 accounts, you can enable their free Power BI accounts, so they aren't "without Power BI" exactly. Sharing reports is Power BI Pro feature, though (i.e. it is paid).
I see couple of options you have.
1) The poor's man solution is to prepare 100's of one page reports (one for each user) with your Pro account and subscribe yourself to those reports. Then create rules in your Office 365 account to forward these e-mails to the appropriate user. You can look at the subject of these e-mails to get the name of the report. This will be a bit cumbersome to manage, but it is almost for free. The problem here is the "one page" part. In the e-mail you will get a screenshot of the first report section only and a link to the actual report (for which your colleagues will need Pro accounts).
2) You can write an application implementing "app own data" scenario. This means that you will use your Pro account as "master account" to access the reports, but you will authenticate your users (and decide which reports they can see) in another way. This can be a web or a desktop application. Choose what is more appropriate for you.
Well you can create the embed code in Microsoft Power BI service and can distribute this link to different users. But there is one exception, if you have implemented row level security in your reports it will not be shown in the embed code.
If you want to show the reports with the row level security you need to use the Power BI embedding process. In this process you create your own dashboard in any language and then embed the reports from Power BI service into your own dashboard and in the dashboard users can see their reports. You can visit this link
https://www.loginworks.com/blogs/how-to-embed-power-bi-reports-into-your-application-using-power-bi-rest-apis/
Our company uses the Power BI Report Server. If your company already has a SQL Server Enterprise license or above, then you already have it, no additional costs. Works great, you can create SSRS and Power BI reports, deploy to your server.
PowerBI Report Server
https://powerbi.microsoft.com/en-us/report-server/
This uses SSRS to serve up web based PowerBI reports. SSRS is a great platform and is very flexible. You would also have support for the other SSRS reports (Paginated and Mobile Reports). I'm not sure what the licensing cost would be for your organization but I hear it's pretty steep.
My understanding is that you would need a Pro license for report writers but clients do not need a Pro license.
I agree with #Nick.McDermaid, there usually is a better solution out there but executives LOVE PowerBI ;)
If you have O365 and use Teams or SharePoint, you can use Power BI embedded (The EM Version is purchased via O365). This will allow you to host the power bi reports in Team, and allocate 'free' users to be able to read the reports. The Pro license would only be needed for report developers.
In this blog post it shows the differences in the SKU's and the number of equivalent Pro licenses to the cost of the service
https://jlsql.blog/2018/01/30/power-bi-embedded-sku-differences-and-cost-breakdowns/
So for the EM1 SKU, the cost per month (£470) is about the same as 63 Power BI Pro licenses, so if you had 100 Power BI users then it would save you the cost of the other 37. But, the SKU's have less Memory and CPU power so you do have to be careful and monitor the Embedded function.

Creating dashboards in tableau

I need to combine the energy consumption every month in my company from various sources. I do the calculations in the excel sheets which I receive every month. How do i combine all the sheets and make a dashboard and also update the dashboard every month automatically once the excel is updated?
Which is the best form of tableau to use(Public,desktop or server)?
What exactly is the difference among the three?
Are the excel sheets a good data source in tableau?
You are asking a lot of questions which should probably be raised separately, but I will try to answer some of them anyway since they all relate to the same use case.
1. How do I combine and make a dashboard
Since Tableau 9.3 you are able to use Union. This will combine all your excel files into a single source of data you can use. I think your data sources should however have the same structure. Meaning the sheets containing information should have the same columns.
You can dynamically and automatically do this using wildcard search. This way it will try and add all files that for example are located in the same folder.
More information on this here.
From the moment you have at least one file as a data source you can start creating a dashboard.
2. Which is the best form of Tableau
I don't think you truly understand the difference between the Tableau applications you mention.
You will need Tableau Dashboard to actually create a dashboard.
If you want to be able to share this dashboard through the web you will need either Tableau Server, Tableau Public or Tableau Online. Everything published on Tableau public will be publicly available. So if your data is considered restricted, sensitive or should not be shared outside your company you should not consider this.
Tableau server on the other hand is server software you can install on a local host which allows you to publish your dashboards and sheets so people with a Tableau server license can access it through a web interface.
Then there is Tableau Online which offers almost the same except that Tableau will take care of the hosting. This is the SaaS solution for making your dashboards available online.
Lastly there is Tableau Reader which is a free desktop application that is able to open your Tableau workbooks, but cannot modify them and has limited access to external data sources.
3. Is Excel a good data source
This really depends on your use case and is probably opinion based. Since the possibility of union and the ability to automatically bring in and update data I think Excel files can be a useful resource. What you need to consider is where the Excel files are stored, how you will connect to them and how many users will need to access them. If other users can easily modify the Excel file and create errors this is another downside of using them as a source.
When you publish your dashboard on e.g. Tableau Server and you want the dashboard to automatically change there as well, the Excel file needs to be accessible from there as well and should not be included in the dashboard. If you feel like none of the above is an issue then at the moment Excel is great for you.

Is it possible to capture application activities within Dynamics CRM (e.g. analytic)

We're currently looking over the benefits of using MS Dynamics CRM, and it's been suggested that we also store website usage data in the system (which sort of makes sense since it relates to a customer interaction)..
Is there a mechanism in CRM to record or capture data such as web visits, duration etc??
Power Web Traffic does this and includes useful dashboards for analyzing the data:
http://www.powerobjects.com/add-on-subscriptions/powerpack/powerwebtraffic/
Power Objects provides a lot of other useful add-ons, as well as good support and price ($1/user/month).
There is no built-in solution, but you could simply add the necessary entities and transfer the information from your website to the CRM via the web-service interface.
If you are looking for some existing solution, ClickDimensions would be worth to have a look at: http://www.clickdimensions.com/tour/web-tracking.asp
I am not sure if it store websites visits or not but its worth looking at ADX Studio
But you can always configure CRM to log website visits by creating an entity which can keep the information you want.
ADX Portal

Automate the export of Facebook Insights data

I'm looking for a way of programmatically exporting Facebook insights data for my pages, in a way that I can automate it. Specifically, I'd like to create a scheduled task that runs daily, and that can save a CSV or Excel file of a page's insights data using a Facebook API. I would then have an ETL job that puts that data into a database.
I checked out the oData service for Excel, which appears to be broken. Does anyone know of a way to programmatically automate the export of insights data for Facebook pages?
It's possible and not too complicated once you know how to access the insights.
Here is how I proceed:
Login the user with the offline_access and read_insights.
read_insights allows me to access the insights for all the pages and applications the user is admin of.
offline_access gives me a permanent token that I can use to update the insights without having to wait for the user to login.
Retrieve the list of pages and applications the user is admin of, and store those in database.
When I want to get the insights for a page or application, I don't query FQL, I query the Graph API: First I calculate how many queries to graph.facebook.com/[object_id]/insights are necessary, according to the date range chosen. Then I generate a query to use with the Batch API (http://developers.facebook.com/docs/reference/api/batch/). That allows me to get all the data for all the available insights, for all the days in the date range, in only one query.
I parse the rather huge json object obtained (which weight a few Mb, be aware of that) and store everything in database.
Now that you have all the insights parsed and stored in database, you're just a few SQL queries away from manipulating the data the way you want, like displaying charts, or exporting in CSV or Excel format.
I have the code already made (and published as a temporarily free tool on www.social-insights.net), so exporting to excel would be quite fast and easy.
Let me know if I can help you with that.
It can be done before the week-end.
You would need to write something that uses the Insights part of the Facebook Graph API. I haven't seen something already written for this.
Check out http://megalytic.com. This is a service that exports FB Insights (along with Google Analytics, Twitter, and some others) to Excel.
A new tool is available: the Analytics Edge add-ins now have a Facebook connector that makes downloads a snap.
http://www.analyticsedge.com/facebook-connector/
There are a number of ways that you could do this. I would suggest your choice depends on two factors:
What is your level of coding skill?
How much data are you looking to move?
I can't answer 1 for you, but in your case you aren't moving that much data (in relative terms). I will still share three options of many.
HARD CODE IT
This would require a script that accesses Facebook's GraphAPI
AND a computer/server to process that request automatically.
I primarily use AWS and would suggest that you could launch an EC2
and have it scheduled to launch your script at X times. I haven't used AWS Pipeline, but I do know that it is designed in a way that you can have it run a script automatically as well... supposedly with a little less server know-how
USE THIRD PARTY ADD-ON
There are a lot of people who have similar data needs. It has led to a number of easy-to-use tools. I use Supermetrics Free to run occasional audits and make sure that our tools are running properly. Supermetrics is fast and has a really easy interface to access Facebooks API's and several others. I believe that you can also schedule refreshes and updates with it.
USE THIRD PARTY FULL-SERVICE ETL
There are also several services or freelancers that can set this up for you at little to no work on your own. Depending on where you want the data. Stitch is a service I have worked with on FB-ads. There might be better services, but it has fulfilled our needs for now.
MY SUGGESTION
You would probably be best served by using a third-party add-on like Supermetrics. It's fast and easy to use. The other methods might be more worth looking into if you had a lot more data to move, or needed it to be refreshed more often than daily.

Moving from custom ASP.NET application to Sharepoint Services

Our company has an ASP.NET application for customer information database. The application started small but has grown without proper design. Now a new version of the app should be developed, which basically would mean designing and implementing it from scratch. The company is interested in making use of Microsoft Sharepoint Services in future and it has been suggested to pilot it with this customer database application.
So my questions is:
Is database driven application something WSS is good for? Mostly the app would perform CRUD-operations on the database and also create reports.
I agree with Greg in that I wouldn't necessarily recommend putting your data in SharePoint lists (this is what Greg may be assuming). But my short answer would be "maybe".
Here's the long answer...
SharePoint runs on ASP.NET so it should accommodate your needs. You would likely be writing ASP.NET web pages that live within SharePoint that access your database or writing web parts that live within SharePoint that access your database.
You could consider the BDC for reading/retrieving data, but that requires MOSS Enterprise and won't provide the CUD part of CRUD. Other tools like CorasWorks DIT may help, but I suspect that custom web parts or pages are the way to go for you.
There are plenty of benefits you can get from SharePoint such as authorization and maybe things like integration of your data with SharePoint list data, provisioning, search, etc. It really depends on the nature of your application as to whether SharePoint will provide much of a benefit.
Short answer: No.
Long answer:
Is there any collaboration? Supporting documentation for the data? Workflow? If no, then there really isn't any reason to host it through SharePoint - you won't be gaining much.
Additionally, keep in mind that the SharePoint lists may look like tables, but they aren't - there is no relational aspects of the lists - no joining, no cascading updates/deletes, etc. This may be a problem if data reporting is a big part of your app.
You can store the data externally and have it appear as read-only lists in SharePoint, but you're still jumping through a lot of hoops if you're not using any of the other SharePoint features.
Kirk beat me to punch and said it better than I would have anyway :)
Another thing to consider is the possiblity of workflows in your process. For example, if you need to start a process when a new contact is added (a follow-up call, etc.), then SharePoint provides a great deal or benefit.
Perhaps a hybrid solution would be appropriate. A custom app for your CRUD and SharePoint integration for the pieces that make sense and provide value.
Building in SP for the sake of using SP probably isn't a good idea.
We have an ASP.NET application that runs in MOSS 2007. While we barely use any of SharePoint's features, we do get the advantage of SharePoint's security model, navigation webparts (we use CorasWorks), integrated Reporting Services, and workflows. In the very least, SharePoint features are there for us to use someday.
All of our application data is in its own SQL Server database. We don't store anything in the SharePoint content database.

Resources