Archive
(Preview) Power Pages ALM using solutions
In one of my articles, I’ve explained Power Pages ALM using PAC CLI.
With this new preview feature Using solutions with Power Pages allows you to contain and transport website configurations using standard Power Platform solution concepts.
Feature Capabilities:
This feature includes the following capabilities:
- Solution explorer embedded experience in Power Pages.
- Add site(s) to a solution and export/import across environments.
- Ability to add newly added artifacts on an incremental basis.
- Use PAC CLI solution command with Power Pages.
Enable this preview feature on Environment:
You’ll first need to enable the enhanced data model on your Power Platform environment before being able to provision a website utilizing the enhanced data model.
- Connect to Power Platform Admin Center and select the Environment.
- Click on ‘Power Pages Sites’.
- Select the Upgrade to modern data model for new sites switch from the tool bar as highlighted below.
- Refer this article for more details.
🙂
[Step by Step] Power Apps portals | Version Control website using Power Platform CLI
In this article, lets see how to version control the Portal website components using Power Platform CLI Portal commands.
What is Version Control
- Version control, also known as source control, is the practice of tracking and managing changes to software code.
- Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.
Lets start working with Portal CLI with prerequisites.
Prerequisites:
- A Power Platform environment with Dataverse database
- Create a new Portal app.
Before we jump on to CLI, lets see how portal components can be edited from maker portal.
Edit Portal Website from Maker Portal
Once your Portal application created
- Click on the portal app.
- You will be redirected to your portal website as shown below.
- If you notice, portal website is collection of many components (i.e., Web Pages, Lists, Files, etc…). You can edit the web site by using ‘Edit’ option directly from maker portal.
- You will be redirected to Portal editor and can edit the components.
Challenges with editing Website directly from Maker Portal
As detailed in above section, you can edit the website directly from Maker Portal but at the cost of following challenges.
- Its not version controlled. Meaning, if I want to revert a file with content from last stable release, it not possible with out version control.
- As a Pro developer, you would feel comfortable editing webpage as html file than in the portal editor.
Use Power Platform CLI with portals
Lets see how we can solve versioning using CLI.
- Open a Visual Studio Code and make sure you installed Power Platform Tools extension.
- Open a new ‘Terminal’.
- As a first step, you need to connect to your Dataverse environment by executing following command.
- pac auth create -u {Environment_url}
- Get the list of available Portals by executing following command.
- pac paportal list
- Copy the ‘WebSiteId’ as highlighted above.
- Now download the website components using following command.
- pac paportal download –path [PATH] -id [WebSiteId]
- Website contents gets downloaded and saved locally as below.
- Now, open this folder using VSCode and open the components.
- Lets go ahead and edit the ‘Home’ web page content.
- Upload the modified website components using following command.
- pac paportal upload –path [Folder-location]
- The upload only happens for content that’s been changed. In the above example, since the change is made to a webpage, content is uploaded only for the adx_webpage table.
- Now, lets refresh the portal website and you should see the modified text.
- If you dont see the changes, you can clear the server-side cache as below.
- Navigate to the URL as follows:
<portal_path>/_services/about
. - Select Clear Cache.
- Navigate to the URL as follows:
Advantages of CLI for portals development
- We can commit the website components to any of the version control tools like Azure DevOps, GitHub.
- We can now use offline-like capability for portals customization by making changes to the portals content. And once all customizations or changes are saved, upload them to the portal.
- Helps integrate seamlessly with any source control tools, such as “git”
- Easily set up CI/CD pipelines
Limitations
- Portals support for Power Platform CLI is limited to the tables listed here.
🙂
Power Apps Portals | Progressive Web Apps (PWA)
What is a Progressive Web App (PWA):
- PWA at core is a website built using web technologies but that acts and feels like an App.
- Users can install a PWA on any device be it a desktop or mobile from the browser or through app stores.
- Main difference between PWA and Web App is a web app is designed to run inside of a web browser and cannot be installed on a device.
- Users can also pin the PWA app directly to the home screen on their mobile device.
Portals as progressive web apps:
- We can enable a Portal as a progressive web app (PWA), with native app–like look and feel, by using Power Apps portals Studio.
- This capability enables external and internal customers to use a portal as an app.
Steps to build a portal as a progressive web app:
- Connect to Power Apps maker portal.
- Select the Portal App and click ‘Edit’
- Portal opens up in In portals Studio.
- Select Progressive web app icon and set ‘Enable PWA’ option.
- Click on ‘Customize PWA’ to modify App’s details.
- Now click on ‘Browse Website’, which opens up Portal application along with ‘App available’ option.
- Click ‘Install’ to install Portal as a Desktop App.
- Post installation, you would get Portal as Desktop App as below. You have options to pin the App to taskbar or to Start.
Manage offline behavior:
- PWA offers support for a smooth navigation experience when the device being used is offline or disconnected from the internet.
- You can choose the pages within your portal that will be available offline (read-only), and a message page for the rest of the portal capabilities that haven’t been enabled for offline access.
- Under ‘Customize PWA’ pane, click on ‘Manage offline pages’.
- Select the Pages that will be available offline.
Refer documentation for more details.
🙂
Power Apps portals | Query data using portals Web API (Public preview)
Portals Web API:
- The Portals Web API enables building a richer user experience inside Power Apps portals pages.
- We can use the Web API to perform create, update, and delete operations across all Dataverse tables from the portal pages.
- For example, you can create a new account, update a contact, or change the table permissions for a product by using the portals Web API instead of the Portal Management app.
Query data using portals Web API:
Web API operations in portals so far were limited to creating, updating, deleting, associating and disassociating tables. With this public preview, Portals will have the capability to retrieve data using GET requests through portals Web API.
Preview capabilities:
The feature provides the following capabilities during this public preview:
- Query records
- Apply system query options
- Request specific properties
- Filter results
- Order results
- Aggregate and grouping results
- Retrieve a count of rows
- Column comparison
- Retrieve related table records with a query
Refer the Docs link for documentation.
🙂
Power Apps Portal – Remove an Entity from Global Search
If you are not familiar with Portal ‘Global Search’, please refer my other article to learn the steps to configure global search for an entity.
In this article, how to remove global search for a configured entity.
Disable the ‘Search Index’:
- Open the entity you would want to disable the ‘Global Search’ and navigate to ‘Views’ and open ‘Portal Search’ view.
- Rename the ‘Portal Search’ view and ensure the new name doesn’t have the Portal Search term.
- Save & Publish.
- This step will block the entity from getting indexed.
- Connect to Portal and rebuild the ‘Search Index’ by navigating to ‘../_Services/about’ page and click on ‘Rebuild search index’.
Remove the entity from search filters in ‘Site Settings’:
- Open the ‘Portal Management’ Model-driven App and go to ‘Site Settings’.
- Open the ‘search/filters’ site setting and remove the entry for the entity you would want to disable Global Search.
- As an example, for Account the entry would be ”Accounts:account‘. Remove the entry.
- Save the ‘search/filters’ site setting.
🙂
[Step by Step] Power Apps Portal – Configure Global Search
In this article, lets learn how to configure global search in ‘Power Apps Portals’.
What is Global Search in Portals:
- Global search of portals allows you to search for records across multiple entities.
- Allows you to search across multiple columns and configure what columns of an entity would be searchable.
- By default, few OOB portal entities are enabled for Global Search. To name a few ‘Knowledge Article, Blog, Blog Post, Forum, etc…’.
So lets see how to configure global search for other entities. I am taking ‘Account’ entity for this article and you can pick the entity of your choice.
Prerequisites:
- PowerApps account. Refer here to get an account.
- PowerApps Portal. Refer link for steps to enable portal.
Once you fulfill the Prerequisites, you would get the following two Apps in your PowerApps maker portal.
- ‘Portal Management’ – Model-driven App which contain Portal related entities.
- ‘Portal’ – Portal app. I named my Portal App as ‘ExpMay2020’.
Following are the high level steps to enable global search for ‘Account’ entity.
- Add/Update Portal ‘Site Settings’.
- Create a ‘Portal Search’ view in Account entity
- Add Portal ‘Web Page’ to display the search result.
- Add ‘Site Marker’ for the ‘Web Page’
- Grant permissions to Portal Users
- Rebuild Search Index
Lets get started.
Add/Update Portal ‘Site Settings’:
- Open the ‘Portal Management’ Model-driven App.
- Go to ‘Site Settings’ and Add a new ‘Site Setting’ by Name ‘Search/EnableAdditionalEntities’ and Value ‘true’.
- Note: Name should be exact match. If you already have ‘Search/EnableAdditionalEntities’ site setting, make sure the Value is set to ‘true’.
- Also make sure the OOB Site Setting ‘Search/Enabled‘ is set to ‘true’.
- Add a new site setting ‘search/filters’, if not exists already. Open the record, if already exists.
- Set the Value with following pattern {YourDesiredName:EntityLogicalname}.
- In my case, its ‘Accounts:account‘.
- Multiple entities must be separated by Comma(,) (i.e., Accounts:account,Contacts:contact)
Create a ‘Portal Search’ view in Account entity:
Open the Solution and go to ‘Account’ entity.
- Create a new View by name ‘Portal Search‘.
- Add the columns which you want to search to the view.
- Save & Publish.
- Once saved, view shows as below.
Add Portal ‘Web Page’ to display the search result:
To open and display the Account record from ‘Global Search’, we need a new ‘Web Page’ with ‘Account’ Entity Form.
- Create a new ‘Entity Form’ by selecting ‘Account’ entity and map one of the Account form. I’ve named my ‘Entity Form’ as ‘Account’.
- Create a new blank ‘Web Page’.
- Add a ‘Form’ component to the ‘Web Page’ and map the ‘Account’ entity form created in previous step.
Add ‘Site Marker’ for the ‘Web Page’:
- From the ‘Portal Management’ Model-driven App go to ‘Site Markers’.
- Create a new ‘Site Marker’
- Name : {EntityName_SearchResultPage}. In my case, its ‘account_SearchResultPage’.
- Page: Web Page which we created in previous section.
Grant permissions to Portal Users:
Portal User must have a minimum ‘Global’ Read access on the entity you are configuring global search for. In my case it’s ‘Account’ entity.
- Create a new ‘Entity Permission’ as below.
- Create a new ‘Web Role’ and map the ‘Entity Permission’.
- Grant the ‘Web Role’ to the ‘Portal User’.
Rebuild Search Index:
We left with one last step before we test the Global Search. Its ‘Rebuild Search Index’
- Connect to your portal. Navigate to ‘../_Services/about’ page.
- Click ‘Rebuild search index’.
Test the Global Search:
- Connect to your Portal.
- Click on ‘Magnifier’ symbol from the ribbon and type your Account to Search.
- Note: You can Search only the columns available in your ‘Portal Search’ view added on ‘Account’ entity.
- You would get the matching Accounts as below.
- Click on the one of the Accounts link and you would be redirected to that ‘Account’.
Note:
- Refer this PG’s article for more details.
- To remove the entity from Global Search refer this article.
🙂
PowerApps Portal – Enable Maintenance mode
During a scheduled maintenance or due to a temporary outage, If you want to bring down your portal and display a proper message to users, PowerApps portal has “Enable Maintenance mode” option.
In this article lets see how to use ‘Enable Maintenance mode’ option.
Prerequisites:
- Subscribe to 30 days trial and procure an Office 365 account.
Steps to navigate to Portals admin center:
- Connect to Power Apps maker portal using Office 365 account.
- Create a new PowerApps portal app, if you don’t have already.
- Now from the ‘Apps’ tab, select your portal and go to ‘Settings’.
- From the ‘Portal settings’ pane, click on ‘Administration’ link.
- You will be redirected to ‘PowerApps Portals admin center’.
Enable/disable Maintenance mode:
- Select ‘Portal Actions’ tab and click on ‘Enable maintenance mode’
- You get the ‘Enable maintenance mode’ popup.
- Under Select page to be used when maintenance mode is enabled: Select one of the following values:
- Default page: Select this value if you want the default page to be displayed. By default, this option is selected.
- Custom page: Select this value if you want a custom HTML page to be displayed.
- Custom page URL: You must ensure that the page URL you provide is publicly accessible.
- I opted ‘Default page’ option and clicked on ‘Enable’.
- If you browse the portal, you would get following screen:
Notes:
- When the maintenance mode is enabled, the customers are restricted from browsing any webpages except the
<portal URL>/_services/about
page. - If you opt for ‘Custom page’ option, make sure, the custom page you provided should not contain the
x-frame-options:SAMEORIGIN
response header, else the page will not load.
🙂
Power Apps Portal – Multi Language – ‘Invalid website language’ error
Other day, while configuring multi language on Power Apps portal, I was getting following error while adding ‘Hindi’ as new ‘Website Language’.
Reason:
- ‘Hindi’ language was disabled by default in CDS.
Fix:
- From your portal’s ‘Model Driven’ App, go to ‘Advance Settings’, which opens up classic ‘Settings’ sitemap area.
- Under ‘Settings -> Administration -> Languages‘ select the Language which you want to enable and click ‘Apply’.
- Now go to the portal’s ‘Model Driven’ App and you should be able to create new ‘Website Language’ with enabled ‘Language’ (i.e., Hindi).
How Multiple Language works in ‘Power Apps Portal’:
- To enable a new localization (i.e., Language), add a new ‘Localized Content’ record, to every Portal ‘Web Page’.
- ‘Localized Content’ record will have a ‘Portal Language’ lookup of ‘Website Language’ record.
- To add ‘Hindi’ localization to the ‘Web Page’ add a new ‘Localization Content’ record with ‘Portal Language’ lookup set to ‘Hindi’ website language (Refer ‘Fix’ section for how part).
- Make sure ‘Published State’ of ‘Localized Content’ is ‘Published’.
Key Notes:
- By default a ‘Localization Content’ record pointing to base language (i.e., English in my case) gets created when you create a new ‘Web Page’.
- Web Link Sets:
- When a new language is activated , a new set of links are created for the newly activated language.
- Content Snippets:
- When a new language is activated , a new set of Snippets are created for the newly activated language.
- Refer link on usage of ‘Content Snippets’
- If you activate a new language after enabling Portal, the metadata will not be installed automatically for the newly activated language.
- To get the metadata translation for the newly activated language, you must import the metadata translation from the Power Apps Portals admin center.
🙂