Simple Paging With FetchXML On Lists In Power Automate

Introduction

In a few scenarios when working on a List of records for a given entity, we must provide paging to perform certain operations. In order to achieve this, we use different actions in Dataverse and power automate like do until, List Rows, Scope, Initialize, Increment and Set Variables. As an example for contacts entity with the help of changing page number dynamically with logic we can achieve this functionality.

Step 1

Login to the required Power Apps environment using URL make.powerapps.com by providing username and password and click on Flows on the left-hand side as shown in the below figure.

Simple Paging With FetchXML on Lists in Power Automate Figure 1

Step 2

After Step 1, Click on New Flow and select instant cloud flow and provide the trigger as Manually trigger a flow and click on Create as shown in the below figure.

Simple Paging With FetchXML on Lists in Power Automate Figure 2

Step 3

After Step 2, name the flow as Simple Paging With Fetchxml  add a new action Initialize Variable and name it as Initialize variable - Page Number and provide the following inputs

Name : Page Number

Type : Integer

Value : 1

 as shown in the below figure.

Simple Paging With FetchXML on Lists in Power Automate Figure 3

Step 4

After Step 3, take another action and name it as Do until and under condition provide the inputs as

Condition: variables(‘Page Number’)

Operator : is equal to

Value :0

as shown in the below figure.

Simple Paging With FetchXML on Lists in Power Automate Figure 4

Step 5

After Step 4, under Add action select Dataverse-> List rows and select the following values as inputs

Table name : Contacts

FetchXmlQuery:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false" page="variables('Page Number')">
    <entity name="contact">
        <attribute name="fullname" />
        <attribute name="telephone1" />
        <attribute name="contactid" />
        <order attribute="fullname" descending="false" />
    </entity>
</fetch>

 as shown in the below figure.

Simple Paging With FetchXML on Lists in Power Automate Figure 5

Step 6

After Step 5, take a Scope action and under that add condition component with inputs as

Condition : length(outputs('List_rows_-_Contacts')?['body/value'])

Operator: is greater than

Value: 0

And under if yes part take Increment variable and name it as Increment variable - Page Number  and provide inputs as

Name : Page Number

Value : 1

And under if no part take Set Variable and name it as Set variable - Page Number to 0 and provide inputs as

Name : Page Number

Value : 0

as shown in the below figure

Simple Paging With FetchXML on Lists in Power Automate Figure 6

Step 7

After Step 6, save and test the flow by selecting manual option and see the result for the first page and second pages as

Simple Paging With FetchXML on Lists in Power Automate Figure 7

And in the second page looks like

Simple Paging With FetchXML on Lists in Power Automate Figure 8

Note:

  1. Make sure to save and run the flow whenever you try expressions.
  2. Here I have 3 contact records in the contact table.
  3. If you don’t handle list properly it leads to infinite loop for paging.

Conclusion

In this way, one can get simple paging with FetchXML on Lists in Power Automate with simple logic.