cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
JohnAageAnderse
Memorable Member
Memorable Member

Call Flow using PowerShelll asynchronous, how to poll?

Created a flow with the "When a HTTP request is received" trigger. 

The flow has been setup to response asynchronous. The flow is called using PowerShell method Invoke-RestMethod. The response received contains this information (partly):

id=/workflows/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/runs/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

properties.status=Running

 

It is understood that to poll for the final status, the method Invoke-RestMethod is used again with the above URL from id - plus the api version parameter (known).

 

Unfortunately the response gives the error:

Invoke-RestMethod : {"error":{"code":"DirectApiAuthorizationRequired","message":"The request must be authenticated only by Shared Access scheme."}}

 

Anyone knows how to correctly poll the flow for status update?

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @Charles-Antoine 

I rechecked my information and it turns out that I have given a incorrect solution to my own query 😕

 

The URI to use is in the Headers! In the Headers, in the Location property, you will find the URL to use. Funny is that this information was passed on to my colleagues, but somehow I got it incorrect into the solution post in this thread! My fault!

 

Anyway I also finally managed to find the Microsoft documentation for this:

https://docs.microsoft.com/en-us/azure/architecture/patterns/async-request-reply

 

This should help you solve your issue and I will mark this post as a solution for future viewers.

Kind regards, John

View solution in original post

13 REPLIES 13
kojisaiki
Community Support
Community Support

According to docs, I suggest you to ask in github issue page.

And I suppose to it is good idea to look for similar issue before post your issue 🙂

 

https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/sample-crisis-communication-app#issues-...

> Issues and feedback

Hello @kojisaiki 

Thank you for your reply, but ... my flow and calling it from a PowerShell script has nothing to do with that application!

 

In the Response action settings it is stated:

Asynchronous Response
Asynchronous response allows a Logic App to respond with a 202 (Accepted) to indicate the request has been accepted for processing. A location header will be provided to retrieve the final state.

 

It is the part "A location header will be provided to retrieve the final state" that baffles me - how to use it correctly?

Kind regards, John

Sorry, I just made a mistake in reply to another post... 😢

 

Let me know your question.

If you get a 202 response by kicking your Flow, is any destination URL or id for check progress included in the body or header of the same response?

Hello @kojisaiki 

 

Thank you for asking - it made me look at the response information closer and there I discovered the URL to use for the polling!

 

In the initial response, a StatusCode of 202 is received, which is good. But another field is provided - Content - which contains JSON. Examination of this lead me first to not see the URL to use - so my fault 🙂 Anyway, the path to the URL to use is:

Content > properties > trigger > outputsLink > uri

This gives me "https://prod-07.westeurope.logic.azure.com:443/workflows/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/runs/xxxx..." which I can use to GET the status of my flow.

 

Kind regards, John

One more, in my env, when add "Response" action on finish the flow, response of hook (trigger) URL has returned after finish the flow. If you can add  "Response" action on finish of your flow, probably you will not have to poll.

 

- My http triggered flow (it takes several seconds since in "Do until" section)

コメント 2020-04-08 184250.png- When request in browser, response was shown after several seconds.

コメント 2020-04-08 184140.png

 

Thank you @kojisaiki  for the additional information.

 

I had that already, but the PowerShell script did time out due to my flow taking too long to response. So to avoid that, it was decided to go for the asynchronous method.

Kind regards, John

Hi @JohnAageAnderse ,

 

I'm looking to do the same (my flow last longer than 120 secondes), can you give me a few details ?

 - Do you need to do something specific to get an asynchronous flow or no "Response action" means it's not synchronous ?

 - When I trigger the flow using the curl command, the response does not return any URL but a list of variables/ID:

HTTP/1.1 100 Continue

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
x-ms-workflow-run-id: 08585XXXXXXXXXXXXXXXXXXXXXX
x-ms-correlation-id: 9a2f937aXXXXXXXXXXXXXXXXXXXXXX
x-ms-client-tracking-id: 08585XXXXXXXXXXXXXXXXXXXXXX
x-ms-trigger-history-name: 08585XXXXXXXXXXXXXXXXXXXXXX
x-ms-execution-location: westeurope
x-ms-workflow-system-id: /locations/westeurope/scaleunits/prod-11/workflows/edf01eXXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-id: edf01eXXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-version: 08585YYYYYYYYYYYYYYY
x-ms-workflow-name: a277c0ee-XXXXXXXXXXXXXXXXXXXXXX
x-ms-tracking-id: 9a2f937a-XXXXXXXXXXXXXXXXXXXXXX
x-ms-ratelimit-burst-remaining-workflow-writes: 279
x-ms-ratelimit-remaining-workflow-download-contentsize: 201326592
x-ms-ratelimit-remaining-workflow-upload-contentsize: 201280941
x-ms-ratelimit-time-remaining-directapirequests: 18749596
x-ms-request-id: westeurope:9a2f937aXXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Thu, 08 Oct 2020 15:38:58 GMT
Content-Length: 0

 

Is there a way to create the URL with these IDs ?

 

Thanks for any info you can give !

Best regards

Hello @Charles-Antoine 

In your flow, all response actions must be set to asynchronous (it will complain otherwise).

Your Curl call should then receive the content also.

If you have already tried this, kindly enlighten us 🙂

Kind regards, John

Hi @JohnAageAnderse ,

 

Thanks for your reply. I found the setting "Asynchronous" in the response Action and when I trigger the flow with the curl, I receive a 202 return and the properties/trigger/outputsLink/uri link in the JSON.

 

When I do a GET with this uri, I have (the body is the exact content sent from the post) :

 

{"headers":{"Connection":"keep-alive","Accept":"text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2","Host":"prod-187.westeurope.logic.azure.com","User-Agent":"Jersey/2.4.1,(HttpUrlConnection 1.8.0_261)","Content-Length":"279","Content-Type":"application/json"},"body":[{JSON sent from the POST}]}

 

 

 

Here are some screenshots of the flow and of the response setting:

Description of the FlowDescription of the Flow

Setting of the HTTP responseSetting of the HTTP response

 

I feel like I'm really close but I must be missing something...

Thanks for your help.

Hello @Charles-Antoine 

Place your response as the last action in your flow (see my flow below). Also don't change the Status Code, keep it as 200. When the setting Asynchronous Response is turned on, it will return the Status Code 202 automatically. When the flow finishes, the Status Code 200 will then be used 🙂

Charles-Antoine.Flow with asynchronous response.jpg

Charles-Antoine.Flow with asynchronous response.settings.jpg

When your script receives the 202 response, you have to look in the Content (JSON) and locate the URI to use - is should be this path in the JSON:

Content > properties > trigger > outputsLink > uri

 

Kind regards, John

 

Hi @JohnAageAnderse ,

 

I updated the flow with your advice (response at the end, default status code) and I'm getting outputsLink/uri.

But the GET on this uri is still not giving me the status 😢.

I created a new basic flow:

FlowAsynch.png

Here is the POST call from Postman where you can see the status 202 and the properties/trigger/outputlink/uri

FlowAsynchPostMan.png

Here is the GET call with the outputlink URI:

FlowAsynchPostManGET.png

And I get the same result if the flow is running or finished.

 

Could you show me the result of the GET in your case ?

 

It's driving me crazy, I don't understand what I'm missing. Thank you for your patience !

Best regards,

Charles-Antoine

Hello @Charles-Antoine 

I rechecked my information and it turns out that I have given a incorrect solution to my own query 😕

 

The URI to use is in the Headers! In the Headers, in the Location property, you will find the URL to use. Funny is that this information was passed on to my colleagues, but somehow I got it incorrect into the solution post in this thread! My fault!

 

Anyway I also finally managed to find the Microsoft documentation for this:

https://docs.microsoft.com/en-us/azure/architecture/patterns/async-request-reply

 

This should help you solve your issue and I will mark this post as a solution for future viewers.

Kind regards, John

Thanks @JohnAageAnderse , I got the URL in the header and it's working perfectly fine !!

 

Thank you again for your patience.

 

Best regards,

Charles-Antoine

Helpful resources

Announcements

Super User of the Month | Drew Poggemann

As part of a new monthly feature in the Community, we are excited to share that Drew Poggemann is our featured Super User for the month of February 2024. If you've been in the Community for a while, we're sure Drew's name is familiar to you, as he is one of our most active contributors--he's been a Super User for five consecutive seasons!   Since authoring his first reply 5 years ago to his 514th solution authored, Drew has helped countless Community members with his insights and expertise. In addition to being a Super User, Drew is also a User Group leader and a Microsoft MVP. His contributions to our Super User sessions and to the new SUIT program are always welcome--as well as his sense of humor and fun-loving way of sharing what he knows with others.   When Drew is not solving problems and authoring solutions, he's busy overseeing the Solution Architecture team at HBS, specializing in application architecture and business solution strategy--something he's been doing for over 30 years. We are grateful for Drew and the amazing way he has used his talent and skills to help so many others in the Community. If you are part of the SUIT program, you got to hear some great tips from Drew at the first SUIT session--and we know he still has much more to share!You can find him in the Community and on LinkedIn. Thank you for all you do, Drew!

Announcing Power Apps Copilot Cookbook Gallery

We are excited to share that the all-new Copilot Cookbook Gallery for Power Apps is now available in the Power Apps Community, full of tips and tricks on how to best use Microsoft Copilot as you develop and create in Power Apps. The new Copilot Cookbook is your go-to resource when you need inspiration--or when you're stuck--and aren't sure how to best partner with Copilot while creating apps.   Whether you're looking for the best prompts or just want to know about responsible AI use, visit Copilot Cookbook for regular updates you can rely on--while also serving up some of your greatest tips and tricks for the Community. Our team will be reviewing posts using the new "Copilot Studio" label to ensure we highlight and amplify the most relevant and recent content, so you're assured of high-quality content every time you visit. If you share a post that gets featured in the curated gallery, you'll get a PM in the Community to let you know!The curated gallery is ready for you to experience now, so visit the new Copilot Cookbook for Power Apps today: Copilot Cookbook - Power Platform Community. We can't wait to see what you "cook" up!    

Celebrating a New Season of Super Users with Charles Lamanna, CVP Microsoft Business Applications

February 8 was the kickoff to the 2024 Season One Super User program for Power Platform Communities, and we are thrilled to welcome back so many returning Super Users--as well as so many brand new Super Users who started their journey last fall. Our Community Super Users are the true heroes, answering questions, providing solutions, filtering spam, and so much more. The impact they make on the Communities each day is significant, and we wanted to do something special to welcome them at our first kickoff meeting of the year.   Charles Lamanna, Microsoft CVP of Business Applications, has stressed frequently how valuable our Community is to the growth and potential of Power Platform, and we are honored to share this message from him to our 2024 Season One Super Users--as well as anyone who might be interested in joining this elite group of Community members.     If you want to know more about Super Users, check out these posts for more information today:    Power Apps: What is A Super User? - Power Platform CommunityPower Automate: What is A Super User? - Power Platform Community Copilot Studio: What is A Super User? - Power Platform Community Power Pages: What is A Super User? - Power Platform Community

Super Users 2024 Season One is Here!

   We are excited to announce the first season of our 2024 Super Users is here! Our kickoff to the new year welcomes many returning Super Users and several new faces, and it's always exciting to see the impact these incredible individuals will have on the Community in 2024! We are so grateful for the daily difference they make in the Community already and know they will keep staying engaged and excited for all that will happen this year.   How to Spot a Super User in the Community:Have you ever written a post or asked for help in the Community and had it answered by a user with the Super User icon next to their name? It means you have found the actual, real-life superheroes of the Power Platform Community! Super Users are our heroes because of the way they consistently make a difference in the Community. Our amazing Super Users help keep the Community a safe place by flagging spam and letting the Community Managers know about issues. They also make the Community a great place to find answers, because they are often the first to offer solutions and get clarity on questions. Finally, Super Users share valuable insights on ways to keep the Community growing, engaging, and looking ahead!We are honored to reveal the new badges for this season of Super Users! Congratulations to all the new and returning Super Users!     To better answer the question "What is a Super User?" please check out this article: Power Apps: What is A Super User? - Power Platform CommunityPower Automate: What is A Super User? - Power Platform Community Copilot Studio: What is A Super User? - Power Platform Community Power Pages: What is A Super User? - Power Platform Community

Did You Attend the Microsoft Power Platform Conference in 2022 or 2023? Claim Your Badge Today!

If you were one of the thousands of people who joined us at the first #MPPC Microsoft Power Platform Conference in 2022 in Orlando--or attended the second-annual conference in Las Vegas in 2023--we are excited to honor you with a special community badge! Show your support for #MPPC Microsoft Power Platform Conference this year by claiming your badge!           Just follow this link to claim your badge for attending #MPPC in 2022 and/or 2023: MPPCBadgeRequest    Want to earn your badge for 2024? Just keep watching our News & Announcements for the latest updates on #MPPC24.

Microsoft Power Platform | 2024 Release Wave 1 Plan

Check out the latest Microsoft Power Platform release plans for 2024!   We have a whole host of exciting new features to help you be more productive, enhance delegation, run automated testing, build responsive pages, and so much more.    Click the links below to see not only our forthcoming releases, but to also try out some of the new features that have recently been released to market across:     Power Apps  Power Automate  Copilot Studio   We can’t wait to share with you all the upcoming releases that will help take your Power Platform experience to the next level!    Check out the entire Release Wave: Power Platform Complete Release Planner 

Users online (3,078)