So, you have decided that you absolutely have to embed a PowerApp into your Power BI report. I am not going to stop you, but I will, however, give a few points to consider before you jump in with both feet and have a less than enjoyable experience.
Here they are in a decision-making order:
- What tables need to be in DirectQuery vs Import modes (a hint, if you would like to see charts on the report refresh as entries are being made in your app, then the data for those charts should probably come from the DirectQuery tables). However, you do not have to have all tables in DirectQuery mode, so if you do not have to make them DirectQuery for performance or modeling consideration, then don’t. Also, the table that feeds into the PowerApp visual does not have to be in DirectQuery mode either.
- Navigation – generally speaking I would recommend that you use PowerBI for navigation (using slicers) as opposed to using PowerApps navigation. This decision will have some consequences, if you use PowerApps navigation, then you can have the Main screen in PowerApp that will navigate to Screen A or Screen B depending on what you need your user to do (for example Screen A could be a Enter Budget Screen and Screen B could be Enter Forecast Screen). However, I would recommend you build two PowerApps, one for Budget and one for Forecast and call embed them as appropriate in your Power BI pages
- Look and feel vs refresh strategy tradeoffs – I already made a video explaining why you can’t have your cake and eat it too… you either pick a control over the look and feel and lack of refresh control from the PowerApp, or have the refresh control from the PowerApp but being stuck with scroll bars on your PowerApp if you need to make any adjustment to the default size of the app.
- PowerApp embedding has to be done in the PowerBI service. Doing it in Power BI desktop does not work well if at all. So, you should probably do everything you need to do from the design/modeling perspective in the desktop and then as the last step, publish the PBIX file in the service and then finish the embedding process there.