How to use A SKU’s to try out Paginated Reports in Power BI without upfront cost or long term commitment

image

Since the Eagles game doesn’t start until later, thought I’d put this together for folks.

As many of you know, earlier this month we announced a preview of Paginated Reports in Power BI.  While folks were excited about this, there were those who were disappointed it was only available (for now) if you had Power BI Premium.

“I don’t have Premium (yet . . .),” they said,  “But I still want to try this out and use it.  How can I do so without committing to it for a month and paying $5000?”

The good news is, there is an easy way to do this.  See, as I’ve stated in previous interviews, you can try all the functionality out by spinning up an Power BI Embedded A SKU capacity, which is available to purchase through Microsoft Azure.  While normally A SKU’s are specifically used for embedding scenarios, there is no licensing restriction against using them internally if you’d like.  However, generally this makes little sense vs. purchasing a P SKU for most use cases, since each user would still need a Pro license to access the Power BI portal AND it’s almost $1000 more per month if you run it all the time.

But if you just want to try out the new functionality that is available only on Premium capacity, the big advantage of A SKU’s is you can stop/start them just like any VM in Azure, and you’re billed by the minute vs. having an initial upfront monthly cost.  This means you can spin up an A SKU, turn on the paginated reports capability in your Power BI portal, and start using it.  And when you’re done, you can go into Azure and pause the capacity until you want to use it again.  Since you’re only billed for the time it’s running, you can try this new functionality out for around 14 cents a minute! (this figure is based on my fuzzy math being done while my son is playing Fortnite right next to me, so forgive me if this is off by a few cents one way or another).  Let’s walk through how you’d go set this up yourself –

I have my own Power BI subscription (yes, I pay out of pocket for this), since I like to have access to the exact same experience as all of my users do (or I forgot to turn it off when I joined the team . . .).  In any event, I have a Pro license, but when I check the Admin Portal, I can see I have no Premium capacities right now.

image

Note another tab there which says “Power BI Embedded” – I don’t have any of those capacities, which you purchase in Azure, spun up currently either.

image

To get one of those going, I’m going to head to the Azure Portal and login with my credentials that I also use for Power BI.  Why? Because I’m the only user, so I’m also the admin.  Now, I can do a search for “Power BI Embedded”.  This will take me to the management page, which looks like this

image

I hit the “Create Power BI Embedded” button, which, if you haven’t signed up for an Azure account yet, you’ll be prompted to do so, and this includes a $200 credit for 30 days.  If you have signed up for Azure, you will skip this step (duh).

image

Now that I have that setup, I’ll go back to the portal and get back to the previous screen.  Here, I can click the button again to setup a new Power BI Embedded A SKU.  You need to select at least an A4 capacity size or higher to use Paginated Reports, so I’ll pick an A4 in my home location to spin up.  (NOTE: Paginated Reports are also supported in multi-geo scenarios, even during our public preview, so I could choose other regions outside my home region if I wanted to.)

image

Everything looks good, so I’ll hit create and wait for it to finish deploying.

image

If I check my Power BI Portal, I see that it is also showing as being deployed there under the Capacity Settings –> Power BI Embedded tab
image

Once it’s completed deployment, when I click on the capacity name, I’ll see I can manage this capacity just like I would any premium capacity in Power BI.

image

Under the Workloads, I see the two new preview workloads, and I’ll set Paginated Reports to “On” and assign 50% of the memory to that workload.  I can also try out the new Dataflows workload as well, but I’ll save that for another time.

image

After a few moments, I’ll see the message has changed from starting to Ready, and my workload is now ready to use.  I’ll assign all (one) of the workspaces for my organization to this new capacity.

image

Cool!  Now, I can upload my first paginated report to the workspace and view it.  I’m using a vintage Halo sample report, and it renders without a hitch.

image

But now I want to stop using the capacity and not get charged (since I finished this blog post).  No problem – I can go back to the Azure portal and just pause the capacity until I want to use it again.

image

When I’ve paused it, I can no longer view my paginated reports in Power BI, but they aren’t deleted or otherwise affected.  They’re still there waiting to be used again when the capacity is started up, and I can delete them if I need to.

image

And that’s it – in less than an hour, including the time it took to type this blogpost, I created a new Azure subscription, created my first Power BI “Embedded” A4 capacity, turned on the Paginated Report workload, assigned a workspace, uploaded and viewed my report, and then paused the capacity to stop the billing on it.  Whew!

Thanks so much for reading through the post today, and I hope you all take some time to try out the new paginated reports in Power BI Premium.  And if your organization doesn’t already have Power BI Premium, use this walkthrough to give it a try yourself!

Happy Thanksgiving (week)!

Adventure Works brand package now available!

image

Super short post today.

With the release of an updated test/demo Azure VM for Power BI Report Server on Monday, we thought it made sense to provide a new Adventure Works brand package for everyone to use in their demos/presentations to go along with it.  Feel free to download and use with Reporting Services 2016/2017 or Power BI Report Server – https://1drv.ms/u/s!Au6-0xX27UdgnOIapntXPaoPcqqOWQ

Thanks!

Ten tips for the August Preview of Power BI Report Server

image

Happy Friday all!

Last week, we announced the latest preview of Power BI Report Server, which included new functionality like additional data source support and support for viewing Excel Workbooks.  As you’re trying these new features out, I wanted to highlight some items you might find useful as you get started testing –

1. Keep in mind Office Online Server requires you be part of a domain when you set it up on a server, or else installation will fail.  This is additional requirement beyond what Power BI Report Server requires on its own, where it can run on a server that isn’t domain-joined.  Keep that in mind if your demo environment is your personal laptop.

2. If you’re setting up an environment for test/dev/demo purposes, you can install both Office Online Server and Power BI Report Server on the same machine if you’d like.  This isn’t a supported scenario for production purposes, obviously, but might simplify the setup of your test/demo environment.

3. You can embed Excel Workbooks into other applications using the simple embed functionality at the end of your report URL – for example, I embedded the following live Excel workbook into a PowerPoint slide using the web viewer app from the Office Store, so I can interact with the report during presentations.

image

4. When installing the version of Power BI Desktop (August 2017) we shipped with the preview, it will normally upgrade the June 2017 version of Power BI Desktop for Report Server if you have that installed.  For some people, they’d like to run it side-by-side with the GA version of desktop for PBI Report Server and not upgrade it.  You can do that – just install the “x64” version if you are running the 32-bit version of desktop on your machine, or vice versa.  This should leave you with both versions (in addition to the version for the service if you have that installed as well).  Please note – this should only be done on machines you are using for testing or development purposes, as this isn’t an officially supported configuration.

image

5. If you have multiple versions of Power BI desktop installed, the behavior is designed to always default to the last version you installed when you double-click on a Power BI Desktop file to open it.  If you’d like to use a different version of the desktop you have installed on your machine with a particular report, make sure you open that first, then open the file you’d like to work with.

6. Have you tried the comments feature yet?  You can add comments to any report in Power BI Report Server (including Excel Workbooks) by clicking the comments icon on the right hand part of the screen and then add your comments, along with an attachment file if you’d like.

image

7. If you want to use a live Analysis Services connection with an Excel Workbook in Power BI Report Server, you’ll need to make sure the machine running PBI RS is an administrator on the Analysis Services instance for this to work, since we’re using EffectiveUserName in Office Online Server to make the connection.  John White talks more about this in his blog for SharePoint 2016 and OOS setup as well.

8. If for some reason you need to access the more advanced settings for Power BI Report Server via SQL Server Management Studio, you’ll need to connect using the reportserver endpoint, like in the following example –

image

9. One item you can turn on via Management Studio in Power BI Report Server is the “My Reports” functionality.  This is a simple way to enable access for your organization to a personalized area where users can store and author content in and have immediate access to the report server as long as they exist in Active Directory.  It’s a little different than “Favorites”, where users can tag reports that they want to see in a single view.  Definitely check out it if you haven’t already and see if it makes sense for you and your organizational needs.

10. Don’t forget to apply a brand package to your report server if you’d like to personalize it with your company/team/personal logo and colors!

With that, I’m happy to wish you a great Labor Day weekend (here in the USA, anyways), and thanks as always for reading!

Learn more about Power BI Report Server at SQL Saturday Vancouver

Quick blog post today to let you all know I’ll be presenting at SQL Saturday Vancouver next Saturday, August 26th about Power BI Report Server.  This will be a chance to hear more about exactly what it is, how it can help you and your business AND discuss what new features and functionality will be coming soon.  And if you decide to attend, there’s probably a good chance you’ll see demos of the latest functionality we have planned for the next product update coming later this year!

If you’d like to attend SQL Saturday next week to see me or many other more talented presenters, you can learn more at the link here – http://www.sqlsaturday.com/635/EventHome.aspx

Look forward to seeing you there and being as confused by the funny looking money in Canada as I am.  See you next weekend!

Tiggee, Batman and Power BI Premium

WP_20130922_114

On the eve of the Microsoft Data Insights Summit, I thought I’d finally write the story behind the picture I’ve included with this post.  How does this story relate to the recent announcement around Power BI Premium?  Well, I’ll leave that up to you to decide if it does, or if it’s simply a cute little story that involves my son Matthew (who has been bugging me to write about him on here).

A couple years ago, my son asked his sister Caitlin and I to play Monopoly with him.   We happily agreed, and went downstairs to the family room.  But we didn’t see the usual setup.  Instead, we were greeted with what you see in the picture.

“What the heck is this?” his sister asked.  “This isn’t Monopoly!”

“I know – now it’s AWESOME Monopoly!” he replied.

“Awesome Monopoly?  That sounds stupid.  I don’t want to play that.”

“C’mon, please – it’ll be fun.”

“No it won’t – it looks dumb.  I’m going back upstairs.”  With that, she turned and stomped out of the room, taking Happy Bear with her.

I winced.  This had played out many times before, and the ending had always been the same.  I glanced towards the kitchen, seeing if the tissue box was still sitting on the counter from an earlier incident.  But it wasn’t needed – he just smiled, sat down and started re-arranging Batman to make room for me.

“She’ll be back,” he said.  “You’ll still play with me, won’t you dad?”

“Um, sure.  Awesome Monopoly sounds, um, awesome,” I said, not quite sure what I was in for.

He tried to explain the rules , and I’ll admit, they seemed pretty confusing the first time he explained them to me.  I don’t remember everything he laid out, but one rule he mentioned during this initial explanation was if you rolled a 12 and landed on “Chance”, Batman got put in jail for a turn OR you had to draw a playing card.

“Buddy, I gotta be honest – I don’t fully understand some of these rules you’ve added.” I told him.  “Do you think we could make it a little less confusing?”

“What do you mean?  We haven’t even started yet.”

“Yeah, I know, but some of these rules . . .”

I didn’t want to push too hard, but at the same time, I couldn’t imagine the game going well if the Elf on the Shelf remained the banker for the entire game.

“Okay, new rule!  We can always change the rules if we decide they’re dumb.”

“Really?” I asked.

“Yep – that’s why it’s Awesome Monopoly.  We can keep making it more and more awesome together!”

I shook my head and laughed.  “Sure, pal, that sounds fair.  I’ll let you go first.”

We went a few rounds, me laughing and him asking me each time someone went how he could make it even more “awesome”.

“I’ll admit, pal, this is a lot of fun.”

“Yay – I knew you’d like it!  Can you go tell Caitlin how much fun it is?”

“Sure.”

I nodded, left the room, and came back with her having agreed to play after hearing how it great it was (and Happy Bear even came back too).

“Caitlin’s back – woohoo!”  He proceeded to run around the room and make sounds like a choo-choo train.  “Yayyyy!”

The game played out, and any time someone thought of a way to make the game even more awesome, we talked about it, tweaked the rules and kept making the game more and more awesome!  (My kids used to like to say awesome A LOT).

So what’s the moral of the story?  It’s either –

1. Batman cheats

or

2. Power BI Premium = Awesome Monopoly.

or

3. Chris needs better blog topics

If you’re coming to Seattle for the conference, I’ll see you next week!

How to use SQL Server on Linux to host your Reporting Services catalog

image

Let me get this out of the way upfront before we get to the good stuff.

**This is not yet officially supported by Microsoft.  We will do an official post when it is**

There we go.

While you can’t run the front end of SQL Server Reporting Services on Linux, many folks would potentially like to host the backend catalogs on SQL Server on Linux.  I was wondering over the weekend if this worked quite yet, considering that SQL Server on Linux had just introduced SQL Server Agent support as of CTP 1.4.  So, thanks to Microsoft Azure and some spare time, I decided to give it a go.

First, I used the SQL Server vNext on Red Hat Enterprise Linux 7.2 image in Azure to setup my Linux VM.  This is the easiest way to get started by far, and there is a complete walkthrough how to set this up end to end here – https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-azure-virtual-machine

Search filter for SQL Server vNext VM images

I used PuTTY to connect to my Linux instance via the IP address, and I didn’t install the SQL Server Tools on the Linux box.

You’ll need to install the SQL Server Agent on the Linux box as well, which I did by following the steps here under the part titled “Install on RHEL” – https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-sql-agent.  Go ahead and do this right after you get SQL Server up and running and are still logged into the machine with PuTTY.

To confirm everything was up and running properly, I connected to the server using SQL Server Management Studio on my local PC.  Everything looked good so far.

image

Now, I had to setup my new SSRS instance on a separate machine.  I did this using an Windows Server 2016 Azure VM and simply installing the latest Technical Preview from January on it.  Next up, you need to set the database catalog location in the Reporting Services Configuration Manager.  Keep in mind, you’re limited to using SQL Server authentication to connect to the Report Server database in this scenario (and SQL Server on Linux in general right now).  Everything looked good until I got an error at the “Generating rights scripts” part of the config process for the new database.

I figured I was stuck here until I found this really old blog post from Adam Saxton about the error message I was getting.  The blog post itself wasn’t relevant (sorry Adam), but the very last comment in the thread WAS helpful from Carlos Shepardos.

“If you use a SQL alias to connect to the SQL Server server you have to ensure that the local computer is also able to resolve the SQL alias name via a DNS resolution request. If the local computer is not able to do this you get the error message shown above.

The easiest way to ensure the SQL alias name is resolvable to the IP address of the SQL Server is to create an A record entry in DNS or add a line to the local hosts file.”

So with that in mind, I went to my HOSTS file on the server and added an entry for my SQL Linux instance.  You can navigate the the HOSTS file on your RS server here – C:\Windows\System32\drivers\etc

image

I then used that name instead of my IP address for my SQL Server instance entry for Reporting Services, and the wizard finished without issue.

image

I navigated to my report portal, and it loaded just like you’d expect.

image

To test the SQL Server Agent, I created a simple report and dataset while also setting up some subscriptions and cache refresh plans.  Sure enough, they ran successfully and the jobs showed up as expected when I looked in SSMS as well!

image

As I mentioned earlier, this still isn’t officially supported quite yet, but I was able to use it without any issues in my (admittedly limited) testing.  Would love to hear about your experiences trying this scenario out as well.  Thanks for reading!

Using URL parameters with Mobile Reports in Reporting Services

image

One area I’ve found folks looking for additional information recently has been how to use URL parameters with Mobile Reports in SQL Server 2016 Reporting Services.  This was a fairly popular feature in Datazen, so naturally people want to use it in SQL Server 2016 as well.

Quick background for folks who don’t know what URL parameters are in the context of mobile reports.  You can create a mobile report with parameters in SSRS 2016 so you and your report readers can filter your reports.  This is helpful when you have a large dataset, for example, so not all the records are loaded at once (If you aren’t familiar with how to write a shared dataset query with parameters in Reporting Services, you can learn more about that at this link – https://msdn.microsoft.com/en-us/library/dd239345.aspx).  Sometimes, you’ll want to provide those parameters as part of the URL for the report.  This can be useful if the report is a drill-through target from another report you’re viewing, for example.

First off, there is support for this feature.  You can find documentation on MSDN for it here – https://msdn.microsoft.com/en-us/library/mt772301.aspx

The article, however, only covers the basic scenario around using a dataset parameter.  Dataset parameters are passed on to the shared dataset that they were specified for when you created the mobile report. The parameter name must be specified as:

<Dataset Name>.<Parameter Name>

Below is a sample URL for supplying a value for the @Reqtype parameter of for an ExecutionLogs dataset:

http://rsserver/Reports/mobilereport/ExecutionLogs%20with%20Filter?ExecutionLogs.@Reqtype=Subscription

There are also parameters that are tied to the selection state of the control in the mobile report it was specified for.  These can be thought of as selection control parameters.  An easy way to find the name of the selection control to use in your URL is on the “Set drillthrough URL” screen in Mobile Report Publisher.

image

Like dataset parameters, the parameter name must specified in the following manner:

<Control Name>.SelectedItem
<Control Name>.SelectedItems

Below are sample URLs for specifying these:

http://rserver/Reports/mobilereport/ExecutionLogs%20with%20Filter?SelectionList.SelectedItem=Subscription

http://rsserver/Reports/mobilereport/ExecutionLogs%20Multi?SelectionList.SelectedItems=Subscription,Interactive

A special type of selection control in Mobile Reports is the Time Navigator control.  The time navigator control supports the following properties you can set in your URL –

– SelectedStartTime
– SelectedEndTime
– ViewportStartTime
– ViewportEndTime

The values for these properties are date time values formatted like this – “2017-02-15T00:00:00”.

Please Note: the “:” character needs to be URL encoded as “%3A” (browsers will usually do this automatically for you).

Now please read carefully the following item, because here’s where folks often run into trouble – if a user specifies a dataset parameter value via the URL and there is also a selection control wired up to supply values for the very same dataset parameter, a conflict occurs. The mobile report resolves this conflict by applying the dataset parameter value supplied via the URL (and discarding the initial selection control value). Note that this is true even as the user starts interacting with the report and chooses other selection values!

You can easily avoid this by supplying a selection control parameter via the URL instead of a dataset parameter.  The MSDN article is being updated to reflect this information as well, but keep this in mind when you are designing your mobile reports.

Finally, there is an item you can apply to your entire report via URL, and that’s to enable/disable showing the report title.

To disable the title, simply add “?title=false” to your URL, so it looks like the following –

http://rserver/reports/mobilereport/Claims%20Trends?title=false

If you want to show the title, just don’t add this to your URL.  Simple enough, right?

Hope this has been helpful for you and helped clear up a few things on this topic.  I want to give a special thanks to Andre M. from the engineering team for helping me with this blogpost.