
I have a very straight forward Flow desire to inform a user when an Opportunity record of a Dataverse table has been Closed as Won.
I am aware that backend Dynamics processes as well as business process flows can do multiple updates to a Dataverse record causing a Power Automate Flow to run multiple times when you only want it to run once from a user experience.
That is why I am using a pattern to verify if the record triggering the flow has been updated since the triggering event based on the RowVersion of the triggering record compared to the versionnumber of a delayed retrieval of the same record:
The condition is set to be true on:
equals(string(triggerBody()?['RowVersion']),string(body('Get_a_row_by_ID_-_ModifiedOpportunity')?['versionnumber']))
if the outcome is not true, the record has been updated so this instance of the Flow run can stop --> trusting that the last instance of a Flow run will have the same RowVersion as the last versionnumber --> working with the latest data of the record.
I have been using this pattern for a while now, but today I had two Flows triggered at the same time with no difference in the RowVersion of the triggering record:
In the screenshot I am using the compare functionality of Visual Studio and the output of the triggering action of the Flow are exactly the same... how can a second Flow run be run over the same record with exactly the same data (including RowVersion) when the Flow should only run on Change type Modified. If the data (including RowVersion) is the same --> the record is not modified and a second Flow run should not be triggered right?
To verify, I am not mistaking Flow Runs --> a screenshot of the output of the delayed Get Row actions which actually shows that the two Flows are different:
This is a old post but i am getting the exact same behavior. I have in my flow a cancel event to exit so the flow is not running for no reason but there is infinit loop triggering the same rowVersion and same updated time :
What is going on? it will not happen every time, but this example shows 2 flows stucks that keep running every minute even if they are cancelled.