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.
Related
I am trying to figure out a way to create a secure data entry process using Microsoft Office (cannot use Azure by the way). The obvious way is to use Microsoft Forms, but the form would be too large as there are over 150 data points that need to be entered.
I have instead created an Excel file that has the ability to load responses to a SharePoint list. This works as long as the list is public and viewers have contribute privileges. The downside to this is that the data is not secure and anyone can view the list. The data has phone numbers, ssn, passports, etc. I tried to make a work around for this by creating a flow that captured any new entries and moved them to my personal private SharePoint list, then deleted the original. This works great, but after testing with my colleague it seems that anyone can join the first team and make an identical flow to that team to capture data themselves.
Is there a way to accept data from anyone internally while also preventing them from accessing the data? I am capable of using SharePoint, Teams, Power Automate, and Access to accomplish this. I am less familiar with access but have used it before. I'm just not sure how secure it is.
I'll be happy to provide further information as needed. Thanks
You could consider Access forms, and then have the tables reside on SharePoint.
You can then say base the form on a query, and in that query you could provide (have) the user name included as part of the query where clause (thus a user removing or changing the forms filter will only provide a view of their own data.). However, such uses if they fired up Access (or even Excel) could wind up with seeing all rows in the table and not what the Access query restricts the data to (the one user).
Unfortantly with Access desktop? And like most desktop software? Well the goal and design and history is that of allowing ease of data editing and viewing. So, just like when you walk into a bank, and wait in line? Well, when you get to the teller, they will fire up a access form based like system and pull up your account information. And any and all tellers can see/view and pull up that data because that is what the software supposed to do, and do well. (get at any customer data).
Now, flip this problem, and create a user web banking system, or even a instant teller. Now the problem is backwards. The software's goal is not ease of editing data in a table, but ONLY allowing the user to see THEIR data. So a very different kind of problem.
It is very (beyond very) to note that web development tools do not out of the blue or automatics restrict data to JUST the one user. It is YOU the developer that makes that choice. So, if we could press a button and have a access form converted to the web? Well, then that access form would do its job in life. That job is to allow you to edit all that data in a table. Not just YOUR data.
For example, have you ever written a Access application that JUST displays each users own data? I am betting not! It is hard to do. (because the roots of Access is ease of editing data). As noted, I cannot stress that web development tools do the SAME thing. They can let you edit data. The editing of data is thus a software issue and development issue. The data system or Access or even SQL server? They just hold data. It is YOUR software that has to decide that ONLY data for the one user is to be displayed.
Now so very often web systems ONLY show YOUR data. But that VERY common case is due to the nature of web systems, and that your not a bank teller, or a company employee, but that of a consumer of that system. And each consumer now is 100% opposite of what most software systems do naturally (that is get data from a table).
So, I can't stress this concept enough. That concept is that web software and systems do NOT make this restricting of data choice for you. It is your developer tools that MUST have this ability and ALSO the choice of how you build such systems.
Web systems can do this data restricting data better for several reasons.
One big reason? Well, most of the time you adopt some kind of security and logon system.
Thus, parts of the web site now are restricted based on your logon system. (hey, maybe you use Facebook logons). So web systems have a very good and wide and broad system of supporting some kind of logon system. For desktop software? not so much.
But EVEN with that very robust and type of security system and logon system?
You the developer STILL have to make the choice of what data they see. Maybe it is traveling salesmen on the road. And thus every user of that web system still has to be able to edit, view and add customers to that system. This common case is not really different then a typical Access form to edit data.
So only SOME types of web applications need that restricting of data to JUST the one logged on user. But, because web systems have that "better" logon system? Then you the developer can thus now use that logon to restrict data with greater ease then what desktop software dev tools often offer (say like access).
So, a lot of this will come down to the web tools used. If you pulling data with Excel, or Access? Then it considerable more difficult to pull JUST data that belongs to a given user. And your software will require designs from day one with these restrictions in mind.
Again, at the risk of repeating myself?
the tools don't' make the data restrictions for you. If you need secure data for ONLY the given user, then you simply have to adopt a set of developer tools that allow this concept in mind. And that tends to mean the tools you use do NOT by default allow users to directly edit or link to some big table of data that contains all users data.
This is also why say a program written in VB6, or now vb.net can be more secure then Access. (because those tools by default don't provide forms that are designed from day one to edit all rows of data). So, the UI does not present default forms and things that gives users the ability to edit all rows. As a result, then the software can now control what records the users sees, and since they don't' have some default form that allows viewing of all rows.
It thus becomes more practical to write software that only dishes out their own data. But again, and I can't stress this:
The choice of what data to display is a choice of the software developer - not the database nor the web development tools.
It thus stands to reason then you have to chose the appropriate tools that will allow you to write software that restricts the data in a manor you require.
General questions on SO in regards to what flavor of ice cream or what dev tools to use tends to be frowned upon, and is quite much against the general rules for solving software and code issues you have and post on SO.
But, if you come from say Access with VBA skills? Then I would suggest adopting the free verison of Visual Studio and go with vb.net + asp.net web forms. Web forms are close to end of life, but they are by far and away the best choice, the least effort (coming from Access) and will give you a robust security model in which you can restrict data on a per user basis.
I would not duck tape and try to cobble together such a system with office tools, since they are not really designed for that type of data restricting you need. So, go with some good quality web tools like Visual Studio (free version is fine) and use SQL server (free version again) is really the way to go here. If you need a truck in place of a car, then get the right kind of truck, and don't try and use a car for that transport of goods, or in this case build a secure web database system.
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
Scenario :
I am presented with a website
I go in to that website and vote if i like horror movies, yes or no
And then i can see the result in real time, what people vote, and see the different types of mobile phones that they vote from, or laptop, in Power BI dashboard.
Is there a solution for this , i have searched the web, and havent found anything.
That's a very broad question. There are many potential solutions. You might start with https://github.com/PowerBI/getting-started-web-app-asp.net and embellish to your needs.
Lukasz P.
Power BI Team, Microsoft
Get started using Power BI APIs on the Power BI Developer Center - http://dev.powerbi.com. Keep up to date with the Power BI Developer Blog - http://blogs.msdn.com/b/powerbidev.
I'm brand new to Dynamics CRM and have been asked to see if this is a viable replacement for the employee tracking software we're using now (AlexSys Team 2 Pro). We're not so much of a sales based company as the tutorials i see for CRM focus on. I know CRM is more for customer relations and sales tracking but i also know it's highly customizable and can do what i need it to do. I need something that keeps track of how many new tasks have been created and how many have been done and to show a graph or a report with the results. I've looked at some PluralSight videos and some windows videos but they all seem to focus on and really push the use of its sales side usability. We do sell our product here (i work at a software development company) but we need something that isn't focused on sales and is usable to management for tracking progress. So for example, lets say im aksed to do 4 things(tasks), I do 2 of those things and am in the process of handling my 3rd. I'm not a sales agent, lets say im a programmer, I need CRM to be able to show my manager that I had 4 new tasks, completed 2, and if possible to show that im in the process of working on the 3rd. AlexSys Team gives you different options for what state the task is in, such as In-Process and Completed but it does poorly when it comes to reporting. Are there any good places to learn how to do that in CRM, we are not using a partner and will not have someone coding this or changing this for us, i will possibly be the one working on that so i need something that can help show me how to customize it without constantly talking about sales. Im off to watch more PluralSight videos but maybe a user here knows of somewhere better to learn from or maybe just a specific PluralSight video i may have missed. Thanks for any input.
Dynamics CRM is as you've discovered very customisable and will almost certainly meet the requirements you've described. Whether it is the correct choice only you can decide.
YouTube is a really good resource for CRM videos, you can also take a look at the CRM 2011 Technical Training Videos on Channel 9 produced when the product was first released. These give a high level overview of CRM 2011 technical capabilities.
You may want to look at the basics of Activities ( in particular Tasks ) and Queues. Make sure you're clear on the usage of Status and Status Reason and how you can customise them. For reporting you can either use the built-in dashboard capabilities or create your own SSRS reports using BIDS that can be hosted within CRM. The process of producing these reports whilst subtlety different will be easily understood by anyone with some some basic SSRS skills.
I'd recommend enlisting the help of a partner in the first instance even if it's to just verify your initial design. The overall cost of their time in relation to the install and running costs of CRM won't be too significant and they may even be able to save you some money.
I'm not sure of a better place for videos, but I can speak to CRM's ability to serve as a rapid application development platform and the areas it excels. It allows you to create new fields and entities (think Database Tables) without touching a database, as well as customize forms, roles, and security with 0 code. You can also sign up for a free months trial online to setup a quick Proof of Concept.
There is so much that it can do, and do quickly, that your company may be better served to seek outside help, resulting in a better product, delivered quicker, with less overall costs than trying to do everything "in-house".
At our company we are currenty trying to define the basic things our software architects have to know about SharePoint for them to architect and/or lead a SharePoint implementation project. Many architects in our company have a .NET developer background and know a lot about .NET development and the various framework components and tooling. However, they currently lack SharePoint knowledge. In fact they don't even want to know the nitty gritty details. They want to know just enough about it to make the right architectural decisions and apply proven patterns. If more specific knowledge is required they'll ask a SharePoint expert.
So What would is the basic set of SharePoint knowledge / skills that an architect would need to have?
Skills such as list, documents, workflow, permissions... are a bit too basic and are requirement for a SharePoint DEVELOPER.
I'd argue that perhaps site (and site structure) is an area that would fall under the architect's plate.
There are more areas that a SharePoint architect can help with:
Capacity planning - running multiple servers in a farm. Scalability and other magic words.
Knowing the capabilities and business scenarios of using SharePoint - this is a very common one.
The manager asks: what can SharePoint do for me?
The developer asks: well, what do you want it to do.
The manager then asks: well, I don't know what it can do for me so how do I know what do I want it to do?
Closely related to SharePoint capabilities are the various licensing costs related to each component.
As well as familiarity with development and customization costs. Take the same project time that would have taken in ASP.NET, then multiply it by a large coefficient, and then add an additional constant.
And closely related to what-can-it-do, and how-much-does-it-cost, is the all important question of Return-Of-Investment. All hail supreme ROI!
SharePoint deployment can be a massive issue and a lot of pain.
SharePoint upgrade from v2 (MOSS 2003) to v3 (MOSS 2007). We should be seeing a new version of SharePoint in 2010(?). Well soon after the next version of Office goes out the door. So past upgrade experiences may be useful.
Knowledge of 3rd party webparts. I believe a SharePoint architect should be able to give you at least 5 webparts that they've tried from CodePlex and tell you what they think about them. These are free and easy to grab and play at your own leisure.
Some knowledge of commercial webparts. Because they are still cheaper than writing your own.
Have at least 5 SharePoint blogs that they follow religiously (know the community). If not having their own SharePoint blog (give back to the community).
If they are on StackOverflow they must try to answer SharePoint questions (such as this one).
Attend local SharePoint usergroups. I think communities are a huge deal. Especially what you'd learn from talking with people directly and learning what they are doing with their SharePoint installation. You may just surprise yourself.
Experiences with SharePoint Integration - this comes in two equally important flavours - both from SharePoint accessing existing systems (business catalogs, webparts, etc), as well as other systems accessing SharePoint content via webservice or API.
In addition, SharePoint works with (or works well) with Office, OCS, reporting services, performance point, project server.
SharePoint hosting arrangements - Microsoft SharePoint online services can be a popular and cheaper option to start using SharePoint. It can be hosted inhouse, or with a 3rd party company. Knowing the options is always useful.
Must have read SharePoint code using reflector (and preferably still having hair).
I think it takes at least a couple of years to be a SharePoint architect (your mileage may differ). Your .NET architects need to want-to-be a SharePoint architect, otherwise I agree with other's summaries before me - find someone who already is a SharePoint architect.
An architect should have quite a good understanding of our a product works, from a functional and technical viewpoint.
So in my opinion, an architect should:
Have been involved in at least 2 Sharepoint deployments, from design to roll-out.
Have knowledge of our the major sharepoint components can be used using the API.
i.e. Sites, Lists, Documents & Workflow components.
As none of your architects have this knowledge, I would pair them with a Sharepoint expert in an existing Sharepoint project, so they get the knowledge they need.
Ideally SharePoint Architect Skills fall into the below mentioned categories
Infrastructure Level/Operational
Capacity Planning
Physical Architecture (Farm Setup, Network, OS, Licensing)
Application level (Functional and Non-Functional)\
Requirement and Feasibility Analysis (Custom Vs OOTB Development/Implementation)
Techno-functional Mapping of requirements
Information Architecture
Logical Architecture
Conceptual Architecture
Detailed Design
Database design (not in terms of traditional Database design), this is with respect to Number of content Databases for Site collections/web apps.
Deployment
Best way to go for deployment, first time and incremental
Some other activities that an architect will collaboratively work is the Project Manager in Planning, Estimation, Execution/Implementation, Risk Management (assessment, mitigation).
Apart from his daily tasks of working with technical teams, testers, User Interface professionals, Vendors, Clients (Business and IT teams).
Interacting with Enterprise Architect groups if any.
In my not so humble opinion I think the entire "Sharepoint Architect"/"Expert" thing is over-played.
Sharepoint is a tool to centralize an organizations digital resources for centralized collaboration or working together in a centralized way.
The best explanation of What Microsoft Sharepoint is and does
from the WROX book "Beginning Sharepoint 2010 - Building Business Solutions"
"Because computers play such an integral part in any business, not surprisingly, more and more
of the information that is created, consumed, and shared in an organization is digital. The more
business that you conduct and the more successful your business becomes, the more information you
have to manage. Usually, you have some form of document for just about every process and transaction
that plays out during the day-to-day operations of your company. From proposals to legal
documents, from sales receipts to human resources policies, the amount of information required for
a company to function is staggering.
To manage your information overload, SharePoint offers tools with which you can build business
applications to better store, share, and manage digital information. With it, you can create lists,
libraries, and websites for your various company teams to help run your business processes more
efficiently. By locating your organization’s important business data in a single location, it becomes
much easier and intuitive for users to find the right information when they need it rather than
searching through disparate locations such as email, computer hard drives, or file shares.
WHAT IS SHAREPOINT 2010?
SharePoint 2010 is an extensible and scalable web-based platform consisting of tools and technologies
that support the collaboration and sharing of information within teams, throughout the enterprise and
on the web. The total package is a platform on which you can build business applications to help you
better store, share, and manage digital information within your organization. Because you can build
with or without code, the package empowers the average business user to create, deploy, and manage
team websites, without depending on skilled resources, such as systems administrators or developers.
Using lists, libraries, and web parts, you can transform team websites into business applications built specifically around making your organization’s business processes more efficient."
Creating a schema for an organizations Sharepoint deployment is not rocket science. 1. Determine the structure of the organization 2. Determine what Sharepoint can do as far as centralizing the organizations digital resources. 3. Create a Sharepoint construction plan. 4. Build it, test it, refine it. 5. Maintain it, test it, refine it, add onto it. There! Not so tough.
Sharepoint can be a nasty beast to work with if you don't know the ins and outs of it (they should be experts with it to architect it). At a minimum, they should know how lists, sites, and permissions work. Ideally they should also know how all the web parts fit together on pages and how they are supposed to interact. Really if the architects don't want to learn about sharepoint, they are going to create a .net web application and force it to run on sharepoint. It won't really follow the paradigm of how a sharepoint app is supposed to work.
I would look at a company called Mind Sharp for guidence as to what they should learn.
My advice is look for a doer that doesn't just reads PowerPoint to much in the Sharepoint world is just based on what other people have said.
We have been having issues with crawling 500000 items in a Sharepoint farm and everyone gives another story how to get better speed... Normally people refer to not more than 2000 items in a folder, but that does not change the crawl speed....
So a good architecture is someone who is able to do POC proof of concepts himself of his design and not just refers to some vague stories.....
I have seen to many Sharepoint Architects that hasn't had experience from real life....