Power Automate has introduced new features for versioning and drafting in the solution cloud flows. These features allow users to save drafts of their flows, even with errors, and publish them when ready. The version history is stored in Dataverse, providing a clear record of how each flow has evolved over time. Users can also view and restore past versions as needed. This functionality is gradually being released across different regions, enhancing the Power Automate experience by offering greater control and flexibility in flow management.
Implementation:
For using Version History feature you need to create Cloud Flow only in Solution.
Here we are creating an “Instant Cloud Flow.”
Give title to your flow.
And select trigger for flow.
Here I have selected “Manually trigger a flow”.
Click on “create.”
For now, flow is getting created in Classic mode.
Now add some actions in this Cloud Flow.
Here I have added a “Compose” action in the flow, with a text value in it.
Save the flow and go back to your solution.
And edit this flow, now the flow will open in New Flow Designer.
Now change the value of “Compose” action.
And click on “Save draft.”
Note: This new “Save draft” feature will help you save your flow, even if you have error in flow.
Flow is saved as draft for now.
Go back to solution and edit the same flow.
At this point you will get a version history available.
In this blog we will check the new features of Microsoft Copilot for Canvas App, Microsoft Copilot stands out as a revolutionary feature for Canvas Apps, offering a trio of functionalities: Create, Change, and Ask. These features are designed to empower both developers and end-users with AI-powered capabilities, streamlining the app creation and usage process.
What do these features do?
To use these features, first you need to enable Microsoft Copilot.
Go to the settings of your Canvas App.
Search for “Copilot”, you will find “Copilot Component”.
Enable the “Copilot Component” by turning on the toggle button.
Now on the right side of your Canvas App, you will the Microsoft Copilot pane with these cool features.
Create :
The Create feature allows developers to rapidly build intelligent apps without the complexity of crafting custom AI models. By integrating Copilot, makers can leverage AI to analyze data within the app, providing a conversational experience that guides users through app functionalities and data insights.
This “Create” feature provides these functionalities.
Change:
With Change, developers have the flexibility to adapt their Canvas Apps on the fly. This feature enables makers to modify app components and data interactions based on user feedback or evolving business needs, ensuring that the app remains relevant and efficient.
“Change” feature offers these following actions.
In the following GIF, I’m using the “Change the color of the selected button to…” then I typed “red”.
And the color of the selected button got changed.
Ask:
The Ask feature transforms the way users interact with Canvas Apps. By utilizing natural language processing, users can query the app and receive AI-generated insights and answers. This not only enhances user engagement but also democratizes data analysis, making it accessible to a broader audience without technical expertise.
These features provide a descriptive response for explaining and performing certain tasks like : “What is gallery” and “How do I share my app?”
Together, these features represent a significant leap forward in app development and user interaction within the Power Apps ecosystem. Microsoft Copilot for Canvas Apps is not just a tool; it’s a game-changer that redefines the boundaries of what’s possible in app creation and utilization.
For those interested in implementing these features, it’s essential to note that they are currently in preview and subject to change. However, the potential they unlock for developers and users alike is immense, paving the way for more intuitive, intelligent, and interactive apps.
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
AI suggestion can save you time and effort when creating or updating calculated fields, especially if you are not familiar with the syntax or functions of the formula editor. AI suggestion can also help you discover new insights and possibilities from your data by suggesting formulas that you may not have thought of before. AI suggestion is a smart and convenient way to enhance your calculated fields with the power of AI
Implementation:
To enable this new feature, Go to the “Power platform admin center.”
Click on Environment, select your environment.
Now go to the “Settings”, click on “Features” under the “Product” section.
After enabling the “AI suggestions for formula columns”, scroll down and click on “Save”.
Now create a new column.
I already have 2 columns (Price and Number of units).
And now I’m creating a new column, to calculate the total price.
Select data type as “Formula”, and switch “Type a formula” to “Get a formula suggestions”.
Describe the formula you want in simple words.
You will get the formula suggested under the text box.
Copy formula and paste it in place of text.
Save and publish.
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
In this blog, we will learn about an exciting feature of the Canvas App which is the ability to use it offline. This means that you can create and run apps that work natively on your device without requiring a network connection. This feature is currently available only for Dataverse apps, but it opens up many possibilities for app makers and users.
Implementation:
For creating Canvas App offline, firstly we need to enable table to use as offline.
Go to the tables list.
Select the table you want to use as a data-source in Canvas App.
And open the properties.
In table properties, open advance options.
Scroll down and enable “Can be taken offline.”
Click on save.
Now create a new Canvas App.
Provide a title to your app and select format.
You need to enable offline feature in your Canvas App also.
Go to the “Settings.”
In “Upcoming features” you will get “Dataverse offline” feature, turn on the radio button.
Go to the General tab.
On the Can be used offline (Preview) section, select the Offline profile that contains the entity you want.
If you don’t have an existing Offline profile, choose Auto-generate to create one with the entity from the Canvas app.
Your offline profile will look like this.
Now go back to the app, a screen will automatically appear to sync offline data with a Globe icon, which helps user to know connectivity status.
On “Onselect” property of globe icon, you will get this fx function.
Switch(Connection.Sync, ConnectionSync.Connected, Notify("Your device is connected to the network, and your app is ready to work offline.",NotificationType.Success), ConnectionSync.ConnectedWithWarning, Notify(Connection.LastSyncMessage,NotificationType.Warning), ConnectionSync.ConnectedPendingUpsync, Notify("Some data on your device must be synchronized with the server.",NotificationType.Warning), ConnectionSync.ConnectedError, Notify(Connection.LastSyncMessage,NotificationType.Error), ConnectionSync.ConnectedRefresh, Notify("Your app is currently synchronizing data with the server.",NotificationType.Information), ConnectionSync.NotConnected, Notify("Your device is not connected to the network, but you can keep using this app.",NotificationType.Success), ConnectionSync.NotConnectedWithWarning, Notify(Connection.LastSyncMessage,NotificationType.Warning), ConnectionSync.NotConnectedPendingUpsync, Notify("Some data on your device must be synchronized with the server. Reconnect to the network to synchronize.",NotificationType.Warning), ConnectionSync.NotConnectedSyncError, Notify(Connection.LastSyncMessage,NotificationType.Error))
Let’s add a form and button to submit records.
I have connected form to “Accounts” table.
Your app will look like this.
In mobile app, if you click on globe icon without any connection, you will get this notification.
Save and publish it.
Now open app in mobile phone.
Output:
In the GIF given below you can see that records is getting created with any connection.
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
In this blog, we will learn how to upload a file from Microsoft Dataverse to SharePoint, in my account entity I have a custom file type column “Account File”, Flow will get triggered when user uploads file in any column.
Implementation:
For triggering the flow, we are using action from Microsoft Dataverse “When a row is added or modified”.
Select table, here we have selected “Accounts”.
In “Select columns” we have added a logical name of file type column.
Now add “Download a file or an image” action from Microsoft Dataverse.
Select “Accounts” in table name.
Add dynamic content to get GUID in Row ID.
And select your file type column in Column name.
Add a “Get a row by ID” action from Microsoft Dataverse.
Select table name as “Accounts”.
Add dynamic content to get GUID in Row ID.
Now add an action from SharePoint “Create file”.
Select the site where you want to upload the file.
Provide folder path.
In “File Name”, we have added dynamic content to get account name from trigger.
After adding the dynamic content just add the file type, We have added “.csv”.
And in “File Content” add dynamic content of “File or Image Content.”
Output:
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
In this blog post, we will learn how to check the Quick Create form type by using JavaScript. Quick-create forms are a convenient way to create new records without leaving the current page.
Requirement:
To perform logic or validation based on the form type, we need to get the form type value.
To distinguish between create and quick create forms, we can use JavaScript.
In the present scenario, I will show how to create a contact from the Account entity using the quick create form and then Auto-populate the field ‘Job Title’ as ‘Developer’.
Implementation:
To implement this requirement, we are using java script.
function GetFormType(excecutionContext)
{
//Get the form Context.
var formContext = excecutionContext.getFormContext();
//To get the Context object
var contextObject = excecutionContext.getContext();
//To get the form type via getQueryStringParameters()
var formType = contextObject.getQueryStringParameters().pageType;
//to check is available form is type Quick Create
if(formType == "quickcreate" && formContext.getAttribute("jobtitle") != null)
{
//To set the 'Job Title'
formContext.getAttribute("jobtitle").setValue("Developer");
}
}
Output:
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
In this blog post, we will learn a new code snippet of JavaScript that we are using to implement a requirement in a Model Driven App. The feature is called “setDefaultView()”, and it allows us to dynamically change the default view of a lookup field.
Requirement:
Filter the lookup values of the contact entity on the account entity based on the selected option in the ownership column. The ownership column is an option set type column with four options:
Public
Private
Subsidiary
Others
We want to show only the contacts that belong to the same ownership type as the account in the lookup field.
Implementation:
To achieve this, we are using the setDefaultView() method of the lookup control in JavaScript. This method takes a view ID as a parameter and sets it as the default view for the lookup field. We can use this method in the OnChange event handler of the ownership field to dynamically change the default view of the contact lookup field based on the selected option.
We have an option set column of “Ownership”.
Based on the options, we have created views.
And we have a lookup column of contact entity.
Also, we have an option set column of ownership on Account entity .
If value in ownership is selected as “Public”, only public view records will be suggested in lookup.
//Option set Values of "Ownership" field. const Ownership = { PUBLIC:1, PRIVATE:2, SUBSIDIARY:3, OTHER:4,
};
//To set the Custom View on Lookup Field. function SetDefaultViewOnContact(executionContext) { var formContext = executionContext.getFormContext(); if (formContext.getAttribute("ownershipcode") != null && formContext.getAttribute("ownershipcode").getValue() != null) { //To retrive the "Ownership" of current record. var OwnershipAcc = formContext.getAttribute("ownershipcode").getValue(); switch(OwnershipAcc) { case Ownership.PUBLIC: formContext.getControl("primarycontactid").setDefaultView("{13E3DEA0-09C0-EE11-9079-000D3A337001}"); break; case Ownership.PRIVATE: formContext.getControl("primarycontactid").setDefaultView("{48AEAFA1-0BC0-EE11-9079-000D3A337001}"); break; case Ownership.SUBSIDIARY: formContext.getControl("primarycontactid").setDefaultView("{CB830663-17C0-EE11-9079-000D3A337001}"); break; default: formContext.getControl("primarycontactid").setDefaultView("{608861BC-50A4-4C5F-A02C-21FE1943E2CF}"); } } }
This way, we can provide a better user experience and filter out irrelevant lookup values based on the context. The setDefaultView() method is a new feature of JavaScript that is available in Model Driven Apps and can be used for various scenarios where we need to dynamically change.
Output:
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
In this blog, we will learn about how to use Microsoft Copilot for creating Canvas apps in Dynamics 365,You can use Microsoft Copilot to generate code for your canvas apps based on natural language descriptions
After the recent update of June 2023, we can see the text box on the “Home” page of the Power platform for creating the Canvas app just by describing it.
Let’s create an app.
Here, we are creating an app that contains employee data.
It will suggest you some sample data before creating an app.
You can even add more fields just by describing them in the text box given at the bottom right corner.
Click on “Create app” after adding columns.
After creating Canvas app, you can add screens, buttons and many more configurations.
You just need to describe in the text box for your requirements.
Let’s add some screens and with buttons for navigation.
Output:
Hope it helps!
Power 365ing as usual!
Any requirements, implementation or consulting work in Power Platform or Dynamics 365 – end user, Microsoft partner or an individual?
Problem Area – Technical, Functional, Training, Development or consulting?
Me and my team are here to assist, please fill the following form for your business needs: Click here
Using the Try/Catch Scope, you can create custom error messages that provide detailed information about the specific errors occurring within your flow. This can help to streamline the troubleshooting process and enable faster resolution of issues.
Requirement:
In this blog, we are generating invalid Json parameters to get the “Try” scope action failed, to demonstrate the working of the “Try/catch/Finally” scope.