Power Automate: Complete Flow Example - NovaGL/coupa-resources GitHub Wiki
Complete Flow Example
Now that we have a few API’s setup lets try it out in Power Automate.
Create a copy of Addresses - Create Address
and change the Method to Get and name it as Addresses - Get Addresses
My Flows > new flow > Instant cloud flow
Choose Manually trigger a flow and create
Before we get into calling the API we need to do some preparation work
Create (initialize) the following variables
Name | Type | Value | Step Name |
---|---|---|---|
Offset | Integer | 0 | Offset |
Count | Integer | 50 | Item count |
Results | Array | Item Results |
Now to get all the addresses we want to loop the API results until the count of the records is under 50.
Create a (Do Until) step
Variable Name | Function | Value | Step Name |
---|---|---|---|
Count | Is less than | 50 | Get all Addresses |
Call Coupa API
Inside the Do Until Loop click Add Action and select Addresses - Get Addresses
Limit | Offset | dir | Return object |
---|---|---|---|
Count | Offset (variable) | Shallow (or as required) |
Set Variables
Now we want to increment the variable so the loop works
Name | Type | Value (expression) | Step Name |
---|---|---|---|
Offset | Increment Variable | length(body('Addresses_-_Get_Addresses')) | Increment Offset |
Count | Set Variable | length(body('Addresses_-_Get_Addresses')) | Result Count |
To make sure we are not adding empty results to our output we check if the API returned any results
Checking for empty results
Create an IF step
Variable Name | Function | Value | Step Name |
---|---|---|---|
Count | Is greater than | 0 | Results Found |
Store results
Now create a Select step so we can store the results in. Maybe sure this is set in If Yes
From | Body |
---|
Map Name | Map Value |
---|---|
Id | Id |
Street1 | street1 |
Street2 | Street2 |
city | city |
State | State |
Postcode | Postcode |
location-code | location-code |
name | name |
Merge results
Let’s add the current results to the exiting results
Create a Compose step to temporarily store it
Inputs | Expression |
---|---|
Count | union(variables('results'),body('Select')) |
Update results array
Now lets move the results to the results variable
Name | Type | Value |
---|---|---|
Results | Set Variable | Outputs(‘compose’) |
View Results
Now outside the loop create a new compose element so we can see the results
Name | Type | Value |
---|---|---|
Results | Compose | Results |