cancel
Showing results for 
Search instead for 
Did you mean: 

Join the discussion

Most Recent
Lucas001
Super User
Super User

Using environment variables for a smoother deployment of PA Flows with a dataflow trigger.

Read more...

trice602
Super User
Super User

Often times there are requests to append file names with a timestamp, customerID, or another identifier when files are created in SharePoint Libraries. This short flow will show you how to do it, step by step.  We will add the date in the following format MM-dd-yyyy to the file name.

Read more...

wyattdave
Responsive Resident
Responsive Resident

There are many reasons a Outlook trigger wont find but I have found a common issues when promoting flows between environments with different mailboxes.

Read more...

Joseph_Fadero
Continued Contributor
Continued Contributor

Have you ever wondered how to automate repetitive chores with Power Automate? You're not by yourself! This article is your one-stop shop for learning the fundamentals before creating your first flow.

Let's take it apart:

 

1. The Spark: Triggers

Think of a trigger as your flow's starting pistol. It is a triggering event.

Examples include receiving a new email, uploading a file to OneDrive, at a specific time interval and seeing a tweet with a specific hashtag.

Think of this: When a new sales leader appears in your CRM, a flow is triggered. The lead is then automatically emailed a welcome message!


2. Actions

Actions are the backbones of your flow. They are the specific actions that occur when the trigger fires the starting gun.

Action Examples: Sending an email notification, generating a project management task, or modifying a database record.

Real-World Use Case: Your flow detects a new email with an attached invoice. It then retrieves invoice information and instantly changes your accounting system.


3. Connecting the Dots: Connections

Connections function like bridges, allowing your flow to interface with a wide range of external services and apps.

Connecting to: Office 365, SharePoint, Twitter, Salesforce, and pretty much any other supported service.

Imagine this scenario: You wish to send out an automatic tweet every time a new blog article is published on your website. Your flow uses a connection to Twitter to make it happen!


4. Flow of Information: Dynamic Content

Dynamic content is the heart of your flow. It is the information sent on by triggers and actions.

Consider: Extracted email subject, sender information, or file attributes such as size and name.

Put It into Action: When a new expenditure report arrives in your mailbox, your flow can extract the total amount from the email and automatically send it for approval.


5. Expressions.

They enable you to manipulate data dynamically, adding a layer of enchantment to flows.

Expression examples include combining text strings, computing dates, and extracting certain sections of text. Let's Get Specific: Use an expression to format a date pulled from a trigger into the exact format required by your calendar app.


6. Making decisions: Conditional logic.

Condition logic is analogous to your flow's "if-then" statements. They allow your flow to select options based on certain criteria.

Conditional examples include: "If the order exceeds $1000, notify the manager via email." Otherwise, continue with the standard processing." Likewise, "If a tweet mentions a specific product, reply with a discount code."

Real-life scenario: When a new client record is entered into your system, utilize condition logic to determine their location and allocate them to the right sales agent.

 

Would you like to see a video demonstration of some of the concepts? Check out the Youtube Channel: CDHQ

Read more...

Rahman1005
Advocate III
Advocate III

Wouldn't it be wonderful if upon your next login to Dynamics, you were promptly informed of significant events that occurred during your absence? Such as leads being assigned to you, opportunities closed by your team, or new cases opened.

Now, all of this is achievable through 'in-app notifications' for Dynamics 365.

Enable the feature within your model driven apps and users will see notifications when they log in, navigate pages or are on a page for more than a minute.

Enable the feature.

  1. Navigate to the maker admin(https://make.powerapps.com/) and open the model-driven app you would like to enable this feature in and select the edit.
  2. Select settings, Navigate to Features and enable 'In-app notifications'.

Rahman1005_0-1711963426510.png

 

After refreshing your browser, you should see the notification bell in your header.

Rahman1005_1-1711963440758.png

 

In this example I am going to create a notification when a new phone call record is created for case, and I am going to show the notification to the case owner. Obviously, you can use any trigger in Power Automate flow to create a notification.
We are going to create an automated cloud flow when creating the new flow. Click ‘+New Flow’ Make sure you name your flow, for my example I called the flow ‘In-App Notification on new call’.
For the trigger I’m going to use the ‘When a row is added, modified or deleted’. The change type is ‘added’ and the table name is ‘phone calls’. My scope is organization (I want this to run for everyone in the organization) and I am going to run this flow as the modifying user. That’s all you have to enter in the trigger step!

Rahman1005_2-1711963469754.png

 

In the next step I am going to get case record.

Rahman1005_3-1711963483971.png

 

In the next step we’re going to create the actual notification in data verse. Click on ‘+New Step’ and select ‘Add a new row’. For “Table name” select the ‘Notifications’ table.

The rest of this step is really about who the notification goes to and what we want to show in the notification.

In the “Title” field I am going to enter “New phone call has been added for your case!!!”. The title field will show in bold in the notification.

In the ‘Body‘ field I am going to enter “A new phone call has been added for your Case Number:” followed by the dynamic content in the case number field of the case that triggered the flow. The data in the ‘Body‘ field will show below the ‘Title‘ field in the notification.

The ‘Data‘ field in the step is a JSON structure to provide a more advanced control over the notification. links, and/or custom icons. However, those make for better notifications.

In the ‘Expiry (seconds)‘ field I will enter the number of seconds after which the notification will be deleted. I am going to set this for 20 minutes, which equals 1200 seconds.

The ‘Icon Type‘ field will allow you to choose an icon to be shown in the notification. There are a few icons you can use out of the box, and it looks like can use a custom icon as well. I haven’t figured out how to do that yet, so I am going to pick the out of the box “Info” icon.

The ‘Owner(Owners)‘ field represents who will see the notification,. Note that I entered /system users first and the dynamic content (Owner(value)) in parentheses.

Lastly you can set a priority and set the toast type to ‘Timed’. That’s all for the flow configuration! Make sure you save your flow and test it to make sure everything works as expected!

Rahman1005_4-1711963502172.png

 

In Content, paste the following JSON. Replace the <entityLogicalName> with the entity name and <recordId> with the GUID of the specific record for which the link needs to be generated.
{

"actions":[

             {

"title": "Open Phone Call",

"data":{

"url": “?pagetype=entityrecord&etn=<entityligicalname>&id=<=recordId>",

"navigationTarget": "newWindow" }

              }

           ]               

}

 

I am going to add a phone call for a case now.

Rahman1005_5-1711963514509.png

 

Rahman1005_6-1711963535186.png

 

After the phone call created, a notification is received along with an action. Clicking on 'Open Phone Call' will open the popup case record.

Rahman1005_7-1711963545046.png

 

After clicking the 'Open Phone call” action, the case record will be displayed in a new window.

 

Rahman1005_8-1711963555584.png

 

Thank you..!

happyume
Multi Super User
Multi Super User

Out of the box, Power Apps supports Regular Expression (or RegEx) matching through in-built IsMatch, Match and MatchAll functions, however this is not natively supported within Power Automate.

Read more...

trice602
Super User
Super User

If you have worked in the Power Automate space long enough, you have probably come across the request "can you turn this webpage into a pdf?"  In this quick step-by-step walkthrough, I will show you how to do this fast!

Read more...

wyattdave
Responsive Resident
Responsive Resident

Summing up or getting an average an array should be easy, but sadly there isn't an out of the box way in Power Automate but there is a way 😎

Read more...

Deenuji
Community Champion
Community Champion

Power Fx is a versatile language known for its simplicity and effectiveness in handling various data operations, including dates. In this blog post, we'll explore how to perform common date-related tasks using Power Fx Formulas in power automate desktop.

Read more...

wyattdave
Responsive Resident
Responsive Resident

With everything moving to solutions I have been finding that sometimes the app user does not have permission to call the flow. This blog explains a workaround to fix it

Read more...

trice602
Super User
Super User

This is a common question I have answered more than once here and it is time to revisit my accepted solution from August of 2023.  In this example, I will show you how you can reference a saved image you want to include as an embedded/inline image and include in a Send an email (V2) action from either OneDrive or SharePoint - the formats are slightly different.  Goes without saying, make sure the permissions on your image allow others to view (if applicable).

 

 

Read more...

wyattdave
Responsive Resident
Responsive Resident

Some API's return a 302 redirect url, which Postman and other web clients automatically follow. Unfortunately its not that easy in Power Automate so here's how to fix it

Read more...

Monika001
Helper I
Helper I

User story: 

Create an access team whenever a new row is added to the Accounts table. Add the creator of the new row and their manager to the access team. Automate this process using power automate flow. 

What is an access team?

Access teams are a type of team that can be created in the Microsoft power platform to enable an extra level of security to your application. Access teams empower us to have a record level of security for our dataverse tables. Now, you might be wondering, when we already have some ways to achieve security in dataverse why use access teams?

Consider a scenario where an Azure Active Directory group has already been established for the purpose of restricting user access to a particular application. However, you do not want everyone in that AAD group to access all the records of that application. That is, you want some people to access only some records based on the ownership of the records. This is where the access group can help. With the help of power automate flows, you can automate to create access teams dynamically.

Read more...

wyattdave
Responsive Resident
Responsive Resident

Everyone has their own particular style when making flows in Power Automate, and that is part of the beauty of being a developer. But development by its very nature is about sharing and learning from others (its why Stack Overflow is probably most visited developer site).

So after making far too many flows, I've pulled together what I think of as the best approach to Power Automate (and many other RPA tools), and it's called the 'Direct' methodology.

Read more...

Rahman1005
Advocate III
Advocate III

Adaptive Cards are self-contained user interface components that transcend platform boundaries. Crafted in JSON format, these snippets of UI can be seamlessly exchanged between applications.

Upon reaching a particular application, the JSON content is dynamically rendered into native UI elements, seamlessly blending with the app's aesthetic. This approach facilitates the creation and seamless integration of lightweight UI elements across diverse platforms and frameworks.

User Story:

We're preparing to implement a leave approval workflow in Teams utilizing adaptive cards. Employees will submit their leave requests, and line managers will receive notifications within Teams.

Step 1 – Design the Adaptive Card

Prior to establishing the flow, let's initiate the card design process using the designer tool to ensure readiness. Visit https://adaptivecards.io/designer/  to access the designer interface and adjust the 'host app' setting to Microsoft Teams – Light / Dark. Once the card example is updated, we can proceed with development.

Rahman1005_0-1707802998019.png

 

Navigate to https://adaptivecards.io/designer and in Card Payload Editor upload below JSON.

{

    "type": "AdaptiveCard",

    "body": [

        {

            "type": "Container",

            "style": "emphasis",

            "items": [

                {

                    "type": "ColumnSet",

                    "columns": [

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "TextBlock",

                                    "size": "Large",

                                    "weight": "Bolder",

                                    "text": "**New Leave Request**"

                                }

                            ],

                            "width": "stretch"

                        },

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "Image",

                                    "url": "https://adaptivecards.io/content/pending.png",

                                    "altText": "Pending",

                                    "height": "30px"

                                }

                            ],

                            "width": "auto"

                        }

                    ]

                }

            ],

            "bleed": true

        },

        {

            "type": "Container",

            "items": [

                {

                    "type": "ColumnSet",

                    "columns": [

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "TextBlock",

                                    "size": "ExtraLarge",

                                    "text": "@{triggerOutputs()?['body/Title']}",

                                    "wrap": true

                                }

                            ],

                            "width": "stretch"

                        },

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "ActionSet",

                                    "actions": [

                                        {

                                            "type": "Action.OpenUrl",

                                            "title": "View Item",

                                            "url": "@{triggerOutputs()?['body/{Link}']}"

                                        }

                                    ]

                                }

                            ],

                            "width": "auto"

                        }

                    ]

                },

                {

                    "type": "FactSet",

                    "spacing": "Large",

                    "facts": [

                        {

                            "title": "Submitted By",

                            "value": "**@{triggerOutputs()?['body/Author/DisplayName']}** @{triggerOutputs()?['body/Author/Email']}"

                        },

                        {

                            "title": "Employee",

                            "value": "@{triggerOutputs()?['body/Title']}"

                        },

                        {

                            "title": "Start Date",

                            "value": "@{triggerOutputs()?['body/StateDate']}"

                        },

                        {

                            "title": "End Date",

                            "value": "@{triggerOutputs()?['body/EndDate']}"

                        }

                    ]

                }

            ]

        },

        {

            "type": "Container",

            "items": [

                {

                    "type": "ActionSet",

                    "actions": [

                        {

                            "type": "Action.Submit",

                            "title": "Approve",

                            "style": "positive",

                            "data": {

                                "id": "@{triggerOutputs()?['body/ID']}",

                                "action": "approve"

                            }

                        },

                        {

                            "type": "Action.ShowCard",

                            "title": "Reject",

                            "style": "destructive",

                            "card": {

                                "type": "AdaptiveCard",

                                "body": [

                                    {

                                        "type": "Input.Text",

                                        "id": "RejectCommentID",

                                        "placeholder": "Please specify an appropriate reason for rejection.",

                                        "isMultiline": true

                                    }

                                ],

                                "actions": [

                                    {

                                        "type": "Action.Submit",

                                        "title": "Send",

                                        "data": {

                                            "id": "@{triggerOutputs()?['body/ID']}",

                                            "action": "reject"

                                        }

                                    }

                                ],

                                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"

                            }

                        }

                    ]

                }

            ]

        }

    ],

    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",

    "version": "1.2",

    "fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."

}

 

Step 2 – Building The Flow

  • To create the Flow, Go to Power Automate -> Create -> Start from Blank -> Automated Flow.
  • Give an appropriate name for the Flow and select the “When an item is created” trigger and click on Create button.

Rahman1005_1-1707802998021.png

 

  • Add “Post an Adaptive Card to Teams Channel and wait for response” action.

 

  • Team: Select the Team in which you want to post the approval
  • Channel: Select the Channel in which you want to post the approval
  • Message: Copy the json given above and paste it in the message section and ensure the dynamic content is copied properly, or if you have built your own adaptive card then paste your json here and add any dynamic content as required.
  • Update Message: Provide the update message, which will be shown after approver user has provided the decision using the card.
  • Should update card: Select yes here.

Rahman1005_2-1707802998026.png

 

 

  • Add “Condition” action to check whether approver has approved or rejected the request, on left hand side of the condition copy.
  • body(' Postadaptivecardandwaitforaresponse')['submitActionId'] expression (without quotes) and on right hand side provide “Approve” value or whatever your action value is defined in your adaptive card for the buttons.

 

Rahman1005_3-1707802998026.png

 

  • Under the “yes” branch to update the item and send message to the employee once leave request approval or rejected, do following.

Rahman1005_4-1707802998030.png

 

Rahman1005_5-1707802998032.png

 

  • Finally, the navigate to SharePoint site and create a new leave request.

Rahman1005_6-1707802998035.png

 

  • Manger will receive message in teams chats please refer below screen short.

Rahman1005_7-1707802998039.png

 

  • Adaptive card wait for response.

Rahman1005_8-1707802998040.png

 

 

  • Once manager approve’ s the request employee will receive message in teams that his leave request is approved.

Rahman1005_9-1707802998041.png

 

 

Complete Flow.

Rahman1005_10-1707802998044.png

 

 

Thank you...!

Bennykil
Regular Visitor

I found this while working with a colleague and was faced with a sticky situation at work. I have this table in my database. However, I would like to send the data from the period date a day late. For example, I would like an email reporting Monday data on a Tuesday morning. So Friday reports Thursday data.

 

Now, here’s the problem. I would like to report Friday data, not Sunday data on Monday. 

 

How did we solve it? Let's find out

Read more...

ThisIsAShame
Regular Visitor

This is an article that outlines how to use Dataverse to reassign an approval on the behalf of someone else. Lots of posts say that you can’t reassign an approval without manually making the user click “Reassign”, but I outline a flow below that lets you reassign any existing approval as long as you have Dataverse access and 1 Premium license. This means that you don’t have to edit your existing flows, or add any workarounds to your processes. This will simply replicate the “Reassign” button users have, but let’s you press it for them.

Read more...

365-Assist
Multi Super User
Multi Super User

Are you tired of scrolling through endless lists of initialized variables in Power Automate? I have created a workaround using parallel branches to streamline the workflow. 

 

I have also created a YouTube video that further explains the steps I used -> Power Automate - Group Initialize Variable actions (youtube.com)

Read more...

jag1976
Employee
Employee

In today's fast-paced business environment, the ability to swiftly and effectively export data stands as a cornerstone for maintaining a competitive edge. For users of Dynamics Customer Insight, a pivotal component in the Microsoft suite, the constraint of a limited data download capability from Dataverse tables has been a notable bottleneck. This limitation not only impedes the expediency of data exports in Customer Insight but also impacts on vital Dynamics Marketing functions such as lead generation and analytics.

Read more...

egregorich
Frequent Visitor

Microsoft has provided some PowerShell that allows admins to check their Power Platform environment for invalid Power Automate Licenses before it becomes an issue. You can run a check using PowerShell to see if you will have any issues.

Read more...

ManishSolanki
Super User
Super User

A simple use case explaining transforming data in SP list to Timesheet view!

Read more...

VJR
Multi Super User
Multi Super User

Since there is no direct tutorial that fully goes through each topic of the certification you would have to follow an approach of taking the scope topics and learning each topic and below guide would assist.

 

Here is a document regarding the same that contains:
➡ A direction on how to approach for the preparation
➡ Scope and Topics asked in the exam
➡ Tips and pointers
➡ What type of questions are asked
➡ Reference links to important pages

 

 

ManishSolanki
Super User
Super User

How to convert CSV file to array of JSON objects? This tutorial is best suited for large CSV file. Check out here!

Read more...

ManishSolanki
Super User
Super User

How to join arrays efficiently in Power Automate? Check this out!

Read more...

Nived_Nambiar
Super User
Super User

Hi all,

 

Here I am sharing how easily we can update an array property values using another array. This approach would help to avoid long way of updating array which involves loops. Here we will see how we will do it with select action itself. Kindly go through this article to get full idea on how we will be doing this !

Read more...

Agnius
Most Valuable Professional
Most Valuable Professional

Most RPA best practice articles and videos suggest using an external config file. And they are definitely right at that. But what I think they got completely wrong is the type of file to use, as they usually suggest using Excel worksheets.

Excel might seem sexy (I honestly never thought I would ever find proper context to say this), as users are used to it and thus it makes it easy to teach entry-level developers to use it.  But I think there is a much better alternative to that and this article describes how and why to use it. 

Read more...

rzaneti
Super User
Super User

SharePoint lists provide a flexible way to store and organize data, allowing teams to collaborate effectively. Integrate this tool with Power Automate is a great idea, resulting in a lot of time saving for your daily tasks. However, one common challenge from this integration is the dreaded infinite loop. This occurs when a flow is triggered by an update in a SharePoint List record, and inside this same flow there is an action that updates the same list item. As result, there is a subsequential triggering the flow again and creating an infinite loop.

 

The infinite loop issue can cause a cascade of problems, including excessive resource consumption, slow performance, and potentially crashing the entire automation. Resolving this challenge is crucial for maintaining a stable and reliable automation process. Some posts in Power Automate Community even recommend to use an exclusive service account to manage these flows, which may result in cost increasing (more licenses may be purchased) and in more complexity to the flow. 

 

Fortunately, there is a creative and easy solution that solves this problem without requiring any additional licenses, by using resources already available in SharePoint.

 

Case Study Overview

As a showcase for this solution, we will use a simple SharePoint List with a few columns, representing a customers dataset:

01. list overview.png

The List have two text columns (Client and Email) and two numeric columns (Lucky Number and PA_Version Control). For this example, let’s assume that the users will be filling only the text columns, and that the ‘Lucky Number’ (highlighted in yellow) must be generated randomly by the system (in this case, by a flow in Power Automate). When the customer’s name or email is changed, the Lucky Number is refreshed, generating a new random number.

 

The PA_Version Control column (highlighted in green) will also be populated automatically, and be used to prevent the infinite loop in Power Automate, as we will see later in this article. As the users may not change this column, you can keep it hidden.

 

SharePoint Lists Infinite loop in Power Automate

The infinite loop bug happens when we have a flow that is triggered when a List record is edited and has an ‘Update item’ action that modifies this same record:

02. infinite loop design.png

 

As the ‘Update item’ action modifies the same List item, the trigger will be satisfied, so the flow will run again. The behavior will be repeated successive times, entering in an “infinite loop”. To prevent it, we need to make some small changes in the flow design.

 

Understanding the Version Control in SharePoint Lists

Version control is an attribute that Power Automate extracts from the List Item when using the "When an item is created or updated" trigger:

03. version number dynamic content.png

 

This property captures the current version of the record. When included into a List, the record receives a default ‘1.0’ version, and for each further change in this same record, the version number is increased by ‘1’ (becoming, ‘2.0’, ‘3.0’, ‘4.0’, and so on).

 

In Power Automate, the ‘When an item is created or modified’ trigger will return, among other data about the new or edited record, its “version”. You can find it in the raw outputs from the trigger (if you don’t know how to access the raw outputs, refer to this article).:

 

04. version number raw ouputs.png


As Power Automate receives this information with a decimal point and as a string type (we can identify it as a string due to the quotes surrounding the 3.0, as highlighted in yellow above). Our flow requires arithmetic operations with the ‘version number’, so we will need to convert its value to integer (to learn more about data types in Power Automate and how to work with them, check this article).

 

So we will initialize a new integer variable called ‘version_controlling’ and assign to its value an int() expression containing the ‘VersionNumber’ property from trigger output as single argument (you can select it as a dynamic content):

05. convert version number to int.png

 

The expression will looks like this: Int(triggerOutputs()?['body/{VersionNumber}'])

 

Comparing the versions with Power Automate

Now that we have the value corresponding to the current edit version, we need to compare it to that one stored in the SharePoint List. All changes results in a new version number, but in our process, we are storing only the version number from the modifications executed by Power Automate.

 

So, if the current version (stored in the ‘version_controlling’ variable) is equal to that stored in the List plus one, then we are inside the loop and we should terminate the flow, without execute any updates in the List.

 

In practice, we will need a ‘Condition’ action containing two statements that will be tested with an ‘AND’ operator (to learn more about how to work with conditions in Power Automate, refer to this article). The first statement will check if the version stored in the list is different from ‘null’, which will capture the non empty values only (when a new item is added to the List, the user won’t be filling this field, so it will be ‘null’ at this first moment). The second statement checks if the current edition version number is equivalent to that stored in the ‘PA_Version Control’ column plus one:

06. condition action.png

 

In summary:

  • Make sure to set the logic operator “AND” to concatenate both statements (highlighted in yellow)
  • In the right input from the first statement, add the ‘PA_Version Control’ dynamic content from the trigger (element 1)
  • Make sure to set the dropdown from the first statement as ‘is not equal to’ (highlighted in green)
  • In the left input from the first statement, add a ‘null’ value as expression (item 2)
  • In the right input from the second statement, add the ‘version_controlling’ variable (item 3)
  • In the left input from the second statement, add the following expression: add(triggerOutputs()?['body/PA_VersionControl'], 1), replacing the text in red for the dynamic content of your ‘PA_Version Control’.

 

This condition is testing if the ‘PA_Version Control’ value plus one matches to the modification that called the flow. If it matches, the flow may stop, breaking the infinite loop. We are also setting a condition to test if ‘PA_Version Control’ column has a null value: this is important to prevent any errors, as the ‘PA_Version Control’ column will be always null when we are creating a new List record.

 

Preventing the SharePoint Lists Infinite Loop in Power Automate

Now we will include an ‘Update item’ in the ‘If no’ block from the ‘Condition’, keeping the ‘If yes’ empty. The flow will update the List Item only if either (1) the ‘PA_Version Control’ value is null or (2) ‘PA_Version Control’ + 1 is not equal to the 'version_controlling’ variable. If the 'version_controlling’ is different from ‘PA_Version Control’ + 1, the flow may terminate without any further action.

 

In the ‘Update item’ action, we will generate the random value for the ‘Lucky number’ (we can do it by using the expression rand(1, 500)) and set the ‘PA_Version Control’:

07. update item action.png

 

As our business case requires that no users will be editing the ‘PA_Version Control’ column, we can be sure that it is keeping the track of the version that was created by Power Automate. Once the flow is triggered again due to this change (starting a loop), the ‘Condition’ that we created above will identify that the last update was promoted by Power Automate, so the outcome of the ‘Condition’ will be true, driving the flow to the ‘If yes’ block, which is empty – and, consequently, will break the loop.  

 

Testing the Flow

To make sure that the flow is working, let’s add a new user “Harry P”, keeping the ‘Lucky number’ and ‘PA_Version Control’ columns empty:

08. new list record.png

 

As we created a new item, the flow will be triggered and in the run details we will identify that the ‘Condition’ will return as false (highlighted in blue), which is expected, as the ‘PA_Version Control’ column is empty (has a null value):

09. flow run updating.png

 

When we expand the ‘Update item’ action to check the outputs, the ‘Lucky Number’ is set as ‘83’ (highlighted in yellow) and the ‘PA_Version Control’ is set to ‘1’ (highlighted in green).

10. update item output.png

 

Almost at the same time, the flow was triggered again. This is expected, as during the first flow run (highlighted in green)we updated the List record, resulting in another flow call (highlighted in yellow):

11. flow run list.png

 

 

At this time, however, the ‘Condition’ returned ‘true’ (highlighted in green), and the ‘Update item’ action was not executed (highlighted in yellow):

12. flow run preventing loop.png

 

When checking our List, ‘Harry P’ properly received the 83 as ‘Lucky Number’ and ‘1’ as ‘PA_Version Control’:

 

13. updated list.png

 

If we change the name of ‘John L’ to ‘John M’, the flow will be triggered again and a new Lucky Number will be assigned to the record. The ‘PA_Version Control’ will also be reassigned to ‘3’ and the loop will be prevented:

14. modifying item in list.png

 

Conclusion

In conclusion, by tracking and comparing versions, Power Automate enables intelligent updates while avoiding the “infinite loop”. With these practices in place, it is possible to extract the best use from these amazing tools!

 

Originally posted in http://digitalmill.net/ 

stpuceli
Employee
Employee

Forms recognizer is a cognitive service that uses machine learning to analyze and extract data from forms and documents. It can handle various types of documents, such as invoices, receipts, business cards, and identity documents. One of the features of forms recognizer is that it can read bar codes from scanned documents and extract the encoded information.

 

I’ll provide a summary of how to use forms recognizer to extract bar code information from scanned documents. It will cover the following topics:

  • What are bar codes and how are they used?
  • What are the types of bar codes that forms recognizer can read?
  • How to use the forms recognizer API to extract bar code information?
  • How to use the forms recognizer portal to test and train models for bar code extraction?
Read more...

Shaanmathi
Frequent Visitor

Page large result sets (Dataverse) in Power Automate

Read more...

artdlov
Regular Visitor

Dear community member,

It can often happen that some situations are overlooked where data for a "lookup" column is not available during events like Updating or Creating a row in your CRM, thus your Cloud Flow action run is bound to fail if you haven't applied any preventive measures to it.

You can apply multiple Condition actions but your Cloud Flow model/structure becomes overwhelming and confusing when you have more than two lookup columns that can cause failure.

This short guide will show one of possible solutions how to prevent a Cloud Flow action from failing when a lookup column output from a previous action is "null/does not contain data".

By implementing a custom expression function, you can failproof the action and keep each lookup column empty if required.

Read more...

Helpful resources

About the Author
  • Experienced Consultant with a demonstrated history of working in the information technology and services industry. Skilled in Office 365, Azure, SharePoint Online, PowerShell, Nintex, K2, SharePoint Designer workflow automation, PowerApps, Microsoft Flow, PowerShell, Active Directory, Operating Systems, Networking, and JavaScript. Strong consulting professional with a Bachelor of Engineering (B.E.) focused in Information Technology from Mumbai University.
  • I am a Microsoft Business Applications MVP and a Senior Manager at EY. I am a technology enthusiast and problem solver. I work/speak/blog/Vlog on Microsoft technology, including Office 365, Power Apps, Power Automate, SharePoint, and Teams Etc. I am helping global clients on Power Platform adoption and empowering them with Power Platform possibilities, capabilities, and easiness. I am a leader of the Houston Power Platform User Group and Power Automate community superuser. I love traveling , exploring new places, and meeting people from different cultures.
  • Read more about me and my achievements at: https://ganeshsanapblogs.wordpress.com/about MCT | SharePoint, Microsoft 365 and Power Platform Consultant | Contributor on SharePoint StackExchange, MSFT Techcommunity
  • Encodian Owner / Founder - Ex Microsoft Consulting Services - Architect / Developer - 20 years in SharePoint - PowerPlatform Fan
  • Founder of SKILLFUL SARDINE, a company focused on productivity and the Power Platform. You can find me on LinkedIn: https://linkedin.com/in/manueltgomes and twitter http://twitter.com/manueltgomes. I also write at https://www.manueltgomes.com, so if you want some Power Automate, SharePoint or Power Apps content I'm your guy 🙂
  • I am the Owner/Principal Architect at Don't Pa..Panic Consulting. I've been working in the information technology industry for over 30 years, and have played key roles in several enterprise SharePoint architectural design review, Intranet deployment, application development, and migration projects. I've been a Microsoft Most Valuable Professional (MVP) 15 consecutive years and am also a Microsoft Certified SharePoint Masters (MCSM) since 2013.
  • Big fan of Power Platform technologies and implemented many solutions.
  • Passionate #Programmer #SharePoint #SPFx #M365 #Power Platform| Microsoft MVP | SharePoint StackOverflow, Github, PnP contributor
  • Web site – https://kamdaryash.wordpress.com Youtube channel - https://www.youtube.com/channel/UCM149rFkLNgerSvgDVeYTZQ/
Join Blog
Interested in blogging for the community? Let us know.