cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
markslosberg
Resolver II
Resolver II

Can more than one argument be passed to a Flow from PowerApps?  If so, of course, how?

So I am plowing along, pretty successfully using what I learned in in this post  (https://powerapps.microsoft.com/en-us/blog/return-an-array-from-flow-to-powerapps-response-method/) to call an SQL stored procedure from a Flow and then call that Flow in turn from a PowerApp but I have encountered a roadblock and am not coming up with the right strategy to solve it.  Here is a step-by-step of where I am and I would be extremely appreciative of any direction someone could point me in.   I have been browsing those sites to answer the question ("Can I pass more than one argument from a PowerApp to a Flow that needs four).  While I have seen some similar posts (https://powerusers.microsoft.com/t5/Building-Power-Apps/PowerApp-Button-pass-2-seperate-parameters-t...), nothing that directly addresses this problem, which I suspect others are encountering from the variety of different posted questions.

 

I have created a SQL Server stored procedure that takes 4 string arguments that works successfully.

ALTER PROCEDURE [dbo].[FlexQueryProductInventory]
       @Salesperson varchar(50) = '',
       @Crop varchar(50) = '',
       @Variety varchar(50) = '',
       @WarehouseName varchar(50) = ''
AS
BEGIN
      SET NOCOUNT ON;
      SELECT [Company Number]
      ,[Company Name]
      ,[Bus Unit]
      ,[Bus Unit Desc]
      ,[LOCATION]
      ,[Item Nbr Short]
      ,[Item Number]
      ,[Item Desc01]
      ,[Item Desc02]
      ,[Unit of Measure]
     ,[Qty On Hand]
      ,[Qty In Transit]
      ,[Qty On PO]
      ,[Qty Commit]
      ,[Qty On Backorder]
      ,[Qty Available]
  FROM [BI_Mart].[dbo].[RT_Product_Inventory]
  WHERE
       [LOCATION] LIKE '%' + @Salesperson + '%' AND
       [Item Desc02] LIKE '%' + @Crop + '%' AND
       [Item Desc01] LIKE '%' + @Variety + '%' AND
       [Bus Unit Desc] LIKE '%' + @WarehouseName + '%'
  ORDER BY [LOCATION], [Item Desc02], [Item Desc01], [Bus Unit]
END

I have created a Flow to execute this.  I have not gotten this to execute completely correctly yet in test mode since it is only prompting me for a single variable instead of four.  If I enter a string during a test, it placed that into each variable and while it ran successfully, it didn’t return any rows (because of course the search criteria didn’t result in any matches).  I then created a simpler stored procedure with a single WHERE test that did test out successfully (which is where I got the JSON payload to feed to the Response step to generate the schema).  So I have not successfully executed this Flow with proper strings being fed to each of the four variables  which was perhaps a foreshadowing of the problem I am encountering.  I have fiddled around a little with the configuration of the Initialize Variable step but to no avail so far.

Flow with multiple parameter variablesFlow with multiple parameter variables

 

I then went into my PowerApps and started to configure the Button to call the Flow and there is where I have encountered the block. Notice the Invalid number of arguments: received 4, expected 1 error message.  This seemed eerily similar to my inability to test my Flow with more than one string entry (one for each variable).

 

(the screen shots are showing up in line so I have attached them as files to the bottom)

PowerApps calling Flow Error Message.png

 

Now we get to my question.  Can more than one argument be passed to a Flow from PowerApps?  If so, of course, how?  I am beginning to believe based on reading the posts that I might have to pass a concatenated CSV string to the Flow in one argument. Then I will have to make the Flow parse the single input string and populate each of the four variables, perhaps with the Split function which I don’t know how to do yet so I need to better understand that process too (as I suspect that will also be useful in the future).  But I am wondering if perhaps there is a different way to write the Flow from scratch to accept more than the one argument.  This seems like it should be straightforward but as we know very little is straightforward in PowerApps and Flow😉.

 

For just a little more context, here is the whole PowerApps app where I will populate the Data Table in the middle with the results of this stored procedure based on the search parameters passed and the lower Gallery with the results of the second stored procedure which fortunately only requires one variable to be passed after an item is selected from the Data Table.

OverallPowerAppsScreen.jpg

 
1 ACCEPTED SOLUTION

Accepted Solutions
markslosberg
Resolver II
Resolver II

I finally solved this little mystery and the short answer is "Yes, you can pass more than one argument to a Flow from PowerApps but it doesn't seem to be documented anywhere".  Here is the short description:

 

I was on the right track in that you just put in an Initialize Variable step for each argument (variable) you want to pass and make certain that you select "Ask in PowerApps" from the Dynamics Content for each Value when prompted.  This is where it gets a little squirrely because while the "Ask in PowerApps" comes up initially in the Dynamic Content box on the first variable, it "disappears" for some reason in subsequent Initialize Variable steps.  It is there but hidden for some reason and you need to either query for it with an "Ask" or just hit the show more button.  When you do that, all is good and things work more or less as one might expect.

 

Now here are all of the "gotchas" that made this difficult to solve and generated an enormous amount of frustration.

This argument passing issue was really, really annoying because it pointed up

  1. the continued lack of documentation and inability to find a quick answer to what design pattern and syntax to use for something so straightforward that many people likely will need somewhere along the line.  All of the references come from people trying to solve their specific problem (like passing and parsing multiple email addresses) rather than the more general question of passing multiple arguments. There is a great white paper out there on standards and guidelines that has helped me a lot but it really needs to be expanded to include lots of really standard design patterns out there like this one (as well as clear documentation on how to use certain functions like split()).
  2. real deficiencies in the Power Automate and PowerApp  Studios and again a lack of a basic documentation including known issues. 
    1. In Power Automate, initialized variables are not taking on the names of steps in the Dynamics Content window that are renamed (or the variables that are being set) so it is completely impossible, after doing the renaming to real steps, to tell which step the data is being requested for during Test runs of the Flow
    2. Even worse, when I deleted Flow steps because I had bolluxed up the syntax so badly I wanted to start fresh on them, the “deleted” Initialized value remained somewhere in the Power Automate cache and I couldn’t find any documentation on how to clear them (I tried everything I could think of).  In addition, they continued to accumulate as you add and delete steps so the test went from prompting me for just one variable (out of the 4 I was looking for) to prompting me for 5 and then 9 and then 10, 11, 12 as I deleted steps to try to get back to a good starting point before re-adding them.  In addition, as I said earlier in this post, the “Ask from PowerApp” Dynamic Content showed up nicely for the first Initialize Variable step but then for unknown reasons went invisible on subsequent Initialize Variable steps.  It was there and I just had to hit “show more” or query for it but I only found it because I stumbled on it out of sheer frustration rather than having it clearly documented somewhere. 
      1. BTW, it turns out that happened to be my initial mistake.  Because I couldn’t find that option in the Dynamics Content window, I had tried something else when I initialized variables 2-4 the first time around and since I hadn’t used “Ask in PowerApps” on them then, guess what, it wasn’t asking for them😉.
    3. Finally, out of sheer desperation because I couldn’t clear out the old detritus variables, I had to completely start over with a fresh Flow from scratch determined not to make any mistakes now that I knew about this little variable caching issue.  Now, as a musician, I know that it was good for me to get the practice doing it over and over but as a person who actually wants a product to work in a reasonable manner and get to bed on time, that was definitely not what happened last night😉
  3. Then, just to top it all off, late in the evening, after I solved the Flow issue and just wanted to connect it up to my PowerApp to test, I discovered a major problem in the PowerApps Studio trying to invoke the Flow.  When I used the Action>Power Automate button, it repeatedly, completely erased and then garbled what I had entered into the function line initially (the ClearCollect function template).  Then when I redid I added the ClearCollect function back in, it deleted the Power Automate call.  I had to piece the function line text together with a series of “cuts and pastes” from Notepad (I mean like 5, I was ready to put my fist through the screen before I got it all assembled).  While I had gotten a little used to this type of strange Studio behavior 3 years ago, I was really not expecting this kind of thing to still be in the product now.  I really thought I was going crazy there for a few minutes until I stepped through it very, very slowly watching every single keystroke to see when it broke.

So as Willie the Shake would say "all's well that ends well".  And, had I needed to, I now know how I could have used the other strategy to solve the problem by passing a string with multiple values concatenated together as a CSV and then parse them out and assign them to Flow variables using the split() function which I couldn’t do before (and yet again, the documentation on how to do that was fragmented and found all over the place in different blog posts and messages).

 

I will try to come back into the post and add a few screenshots later if I have some time.

 

 

View solution in original post

8 REPLIES 8
mdevaney
Community Champion
Community Champion

@markslosberg 

Did you try removing the Flow from PowerApps and then re-adding it?

 

---
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up."

I did but not in a very controlled setting.  I really would like to know that I am on the correct structural track to solve this and then go back and execute the changes in carefully scripted setting to ensure that I am not flopping around (a technical term) and wasting a lot of time trying things willy-nilly.

markslosberg
Resolver II
Resolver II

I finally solved this little mystery and the short answer is "Yes, you can pass more than one argument to a Flow from PowerApps but it doesn't seem to be documented anywhere".  Here is the short description:

 

I was on the right track in that you just put in an Initialize Variable step for each argument (variable) you want to pass and make certain that you select "Ask in PowerApps" from the Dynamics Content for each Value when prompted.  This is where it gets a little squirrely because while the "Ask in PowerApps" comes up initially in the Dynamic Content box on the first variable, it "disappears" for some reason in subsequent Initialize Variable steps.  It is there but hidden for some reason and you need to either query for it with an "Ask" or just hit the show more button.  When you do that, all is good and things work more or less as one might expect.

 

Now here are all of the "gotchas" that made this difficult to solve and generated an enormous amount of frustration.

This argument passing issue was really, really annoying because it pointed up

  1. the continued lack of documentation and inability to find a quick answer to what design pattern and syntax to use for something so straightforward that many people likely will need somewhere along the line.  All of the references come from people trying to solve their specific problem (like passing and parsing multiple email addresses) rather than the more general question of passing multiple arguments. There is a great white paper out there on standards and guidelines that has helped me a lot but it really needs to be expanded to include lots of really standard design patterns out there like this one (as well as clear documentation on how to use certain functions like split()).
  2. real deficiencies in the Power Automate and PowerApp  Studios and again a lack of a basic documentation including known issues. 
    1. In Power Automate, initialized variables are not taking on the names of steps in the Dynamics Content window that are renamed (or the variables that are being set) so it is completely impossible, after doing the renaming to real steps, to tell which step the data is being requested for during Test runs of the Flow
    2. Even worse, when I deleted Flow steps because I had bolluxed up the syntax so badly I wanted to start fresh on them, the “deleted” Initialized value remained somewhere in the Power Automate cache and I couldn’t find any documentation on how to clear them (I tried everything I could think of).  In addition, they continued to accumulate as you add and delete steps so the test went from prompting me for just one variable (out of the 4 I was looking for) to prompting me for 5 and then 9 and then 10, 11, 12 as I deleted steps to try to get back to a good starting point before re-adding them.  In addition, as I said earlier in this post, the “Ask from PowerApp” Dynamic Content showed up nicely for the first Initialize Variable step but then for unknown reasons went invisible on subsequent Initialize Variable steps.  It was there and I just had to hit “show more” or query for it but I only found it because I stumbled on it out of sheer frustration rather than having it clearly documented somewhere. 
      1. BTW, it turns out that happened to be my initial mistake.  Because I couldn’t find that option in the Dynamics Content window, I had tried something else when I initialized variables 2-4 the first time around and since I hadn’t used “Ask in PowerApps” on them then, guess what, it wasn’t asking for them😉.
    3. Finally, out of sheer desperation because I couldn’t clear out the old detritus variables, I had to completely start over with a fresh Flow from scratch determined not to make any mistakes now that I knew about this little variable caching issue.  Now, as a musician, I know that it was good for me to get the practice doing it over and over but as a person who actually wants a product to work in a reasonable manner and get to bed on time, that was definitely not what happened last night😉
  3. Then, just to top it all off, late in the evening, after I solved the Flow issue and just wanted to connect it up to my PowerApp to test, I discovered a major problem in the PowerApps Studio trying to invoke the Flow.  When I used the Action>Power Automate button, it repeatedly, completely erased and then garbled what I had entered into the function line initially (the ClearCollect function template).  Then when I redid I added the ClearCollect function back in, it deleted the Power Automate call.  I had to piece the function line text together with a series of “cuts and pastes” from Notepad (I mean like 5, I was ready to put my fist through the screen before I got it all assembled).  While I had gotten a little used to this type of strange Studio behavior 3 years ago, I was really not expecting this kind of thing to still be in the product now.  I really thought I was going crazy there for a few minutes until I stepped through it very, very slowly watching every single keystroke to see when it broke.

So as Willie the Shake would say "all's well that ends well".  And, had I needed to, I now know how I could have used the other strategy to solve the problem by passing a string with multiple values concatenated together as a CSV and then parse them out and assign them to Flow variables using the split() function which I couldn’t do before (and yet again, the documentation on how to do that was fragmented and found all over the place in different blog posts and messages).

 

I will try to come back into the post and add a few screenshots later if I have some time.

 

 

Thank you!


I needed to create a pdf, save it to sharepoint and also send that pdf as an attachment back to the user. (with one button in powerapps)

So I needed more than one argument from powerapps to Flow.

"It is there but hidden for some reason and you need to either query for it with an "Ask" or just hit the show more button."

 

K.

lakosked
Frequent Visitor

Hi, Im running into a similar issue.  But your post does not show the syntax for the power app button.

PowerAppName.Run(FieldName.Text)

Is as far as I have gotten.  Can you post an example of the syntax for multiple fields?  Thanks.

You are on the right track. This is one of the most poorly documented areas as well as the most tedious and weird. First of all, it appears that you can pass as many variables to Flow as needed but the Flow itself drives this process. When you set up the Flow, just do an Init Variable for each parameter and when prompted, use the “Ask in PowerApps” Dynamic content for it. The real painful part is inserting the Flow run command into the PowerApp. The best thing is to just create a standalone button initially and then use the Action/PowerAutomate command to insert it the first time. Once you do this, then you can just type it into another command that is more complicated like placing the results into a ClearCollect function. You can delete the initial button after that. The syntax is as you have it <Flowname>.Run(var1, var2, var3,...) and the syntax checker will ensure the the number of variables in the parentheses matches the number of variables that the Flow is looking for. 

 

I have not been successful passing anything but strings so far (so no numbers or Booleans or arrays yet - it might be possible but I haven’t gotten it to work yet). I just do the type conversions in the flow or downstream (e.g. the SQL Stored Proc). 

one more thing. G-d forbid you have to change the number of arguments passed, you kind of have to start over so try to plan carefully. There are a lot of other vagaries here that are too much for this post but these are the essentials. 

I will say that if you stay within the mysterious, undocumented railings, I have found this to be very stable in operation but I have wasted a lot of time getting to this point. 

Hi Mark,

Thanks for the bit of Syntax. 

Seeing you have commas between the values did the trick.

I thought I had tried commas as a separator earlier today, then tried semi colons, then something else, etc etc.

It was a circular exercise in frustration.

I'm successfully bringing over 3 parameters from one power app to the other via the flow now.

 

Next is to dig into the weeds further by trying to bring over a fourth.

This fourth one is from a sharepoint list drop down but the weird thing is the name that appears in the flow.

In SharePoint it is ClientID

But in the flow it is listed as ClientID id

I've looked through sharepoint and for the life of cannot figure out why the flow is seeing it as ClientID id

So Im not sure if it isn't working because of the name or because of the dropdown or what.

Either way.  I appreciated your assistance with the commas syntax.   3 fields of the 4 is better than what I had this morning with only one field.

 

This is all I had to do. Had the same issue as OP and I just removed the flow and the re-added it. Works a treat!

Helpful resources

Announcements

Back to Basics: Tuesday Tip #2: All About Community Ranks

This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other!   Have you ever wondered how your fellow community members earn the different ranks available? What is the difference between an Advocate and a Helper, a Solution Sage and a Community Champion? In today's #TuesdayTip, we share the secrets and tips to help YOU keep your ranking growing--and why it's so important to our communities. What are community ranks? - Power Platform Community (microsoft.com)   Get the details in this Knowledge Base article that shows you what ranks are, how they are achieved, and what they mean to you as you engage with other community members on a regular basis. Once you start your journey in the community, ranking up, you'll find the benefits. So get busy with those kudos, solutions, and more! We can't wait to see how you rank!That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we continue to get "Back to Basics."

It's #MPPC23 Week! Check Out the Community Sessions and Events Happening in Vegas

After all the planning and preparing, the annual Microsoft Power Platform Conference is finally here! We are excited to see so many of our community in Las Vegas this week. To help make sure you don't miss any of the workshops, sessions, and events we have planned, make sure to check out this handy Community One-Sheet, and download the pdf today! Make sure to stop by the Community Lounge to meet @hugobernier, @EricArcher, @heaher_italent, and @AshleyFelts from our team! See you in Vegas!    

Join Us for the First-Ever Biz Apps Community User Group Meeting: Live from MPPC23

  Join us for the first-ever the Biz Apps Community User Group meeting live from the Power Platform Conference! This one hour user group meeting is all about discovering the value and benefits of User Groups! Discover how you can find a group in your local area or about specific topics where you can learn new skills and meet like-minded people as a user group member.   Hear from User Group leaders about why they do what they do and what resources they receive to help them succeed as community ambassadors. If you have never attended a User Group meeting before, this will be a great introduction! We hope you are inspired to find a group that meets your unique interests!   October 5th at 2:15 pm Pacific time   If you're attending #MPPC23 in Las Vegas, join us in person! Find out more here: https://powerplatformconf.com/#!/session/Biz%20Apps%20Community%20User%20Group%20Meeting%20-%20Live%20from%20MPPC/6172   Not at MPPC23? Attend vvirtually by registering here: https://aka.ms/MPPCusergroupmeeting2023    If you can't attend this meeting live, don't worry! We will record this meeting and share it with the Community at powerusers.microsoft.com 

Back to Basics: Tuesday Tip #1: All About YOUR Community Account

We are excited to kick off our new #TuesdayTIps series, "Back to Basics." This weekly series is our way of helping the amazing members of our community--both new members and seasoned veterans--learn and grow in how to best engage in the community! Each Tuesday, we will feature new areas of content that will help you best understand the community--from ranking and badges to profile avatars, from Super Users to blogging in the community. Our hope is that this information will help each of our community members grow in their experience with Power Platform, with the community, and with each other!     This Week's Tips: Account Support: Changing Passwords, Changing Email Addresses or Usernames, "Need Admin Approval," Etc.Wondering how to get support for your community account? Check out the details on these common questions and more. Just follow the link below for articles that explain it all.Community Account Support - Power Platform Community (microsoft.com)   All About GDPR: How It Affects Closing Your Community Account (And Why You Should Think Twice Before You Do)GDPR, the General Data Protection Regulation (GDPR), took effect May 25th 2018. A European privacy law, GDPR imposes new rules on companies and other organizations offering goods and services to people in the European Union (EU), or that collect and analyze data tied to EU residents. GDPR applies no matter where you are located, and it affects what happens when you decide to close your account. Read the details here:All About GDPR - Power Platform Community (microsoft.com)   Getting to Know You: Setting Up Your Community Profile, Customizing Your Profile, and More.Your community profile helps other members of the community get to know you as you begin to engage and interact. Your profile is a mirror of your activity in the community. Find out how to set it up, change your avatar, adjust your time zone, and more. Click on the link below to find out how:Community Profile, Time Zone, Picture (Avatar) & D... - Power Platform Community (microsoft.com)   That's it for this week. Tune in for more Tuesday Tips next Tuesday and join the community as we get "Back to Basics."

Power Platform Community Newsletter: September 2023

Welcome to our September 2023 Newsletter, where we highlight the latest news, product releases, podcasts, upcoming events, and the great work of our Power Platform Community members. As usual, please make sure you follow our News & Announcements in the Community to stay up to date. Another great way to connect is to join our Power Platform Community on LinkedIn. You can join our LInkedIn community here.   MPPC's Got Power - Submissions end September 28th! Are you ready to showcase your skills at the Microsoft Power Platform Conference in Las Vegas? Don't miss out on the "MPPC's Got Power" talent show, a grand celebration of connection, inspiration, and shared journeys. Whether you're a technical innovator, a talented storyteller, or have a hidden creative side, we want to see what you've got! With three categories to choose from, you have the chance to shine on stage and make your mark in the Microsoft Power Platform community.  Click the GIF to sign up by Thursday 28th September to be part of an unforgettable MPPC23 experience. Now is your time to shine!     Check Out the Low Code Approach Podcast Give the Low Code Approach Podcast a listen! Hosted by Sean Fiene, Wendy Haddad, and Kenric Auguillard, this innovative show shines a light on how Microsoft MVPs, product team members, and Community users are building exciting solutions using Microsoft Power Platform. Plus, with guests like Kartik Kanakasabesan, April Dunnam, Ricardo Duncan Jr., Sonja Gu, Phil Topness, Shane Young and more, this weekly show is a must for all you Business Applications enthusiasts out there. Click the image below to check it out!           COMMUNITY HIGHLIGHTS Check out the most active Community users for August 2023. These hardworking members are posting regularly, answering questions, writing blogs, giving kudos, and providing top solutions in their communities across Power Platform. Huge thanks to these amazing community members for their great contributions last month! trice602poweractivateLaurensMWarrenBelzAmikBCBuizerSamLedcreativeopinion timlExpiscornovusManishSolankiMattJimisonfernandosilvaMisterMarkPstork1saudali_25hafizsultan242Lucas001ragavanrajanp_doc   UPCOMING EVENT: 365 EDUCON CHICAGO Whether you're new to Microsoft 365, Power Platform and SharePoint, or an experienced power user, admin or developer, 365 EduCon has content designed to fit your experience level and area of interest. Their workshops and sessions are taught by Microsoft Certified Trainers, MVPs, Regional Directors, and Engineers. Find out more and register here: Home - Microsoft 365 EduCon Chicago - A Microsoft 365 Conference.  

Announcing the MPPC's Got Power Talent Show at #MPPC23

Are you attending the Microsoft Power Platform Conference 2023 in Las Vegas? If so, we invite you to join us for the MPPC's Got Power Talent Show!      Our talent show is more than a show—it's a grand celebration of connection, inspiration, and shared journeys. Through stories, skills, and collective experiences, we come together to uplift, inspire, and revel in the magic of our community's diverse talents. This year, our talent event promises to be an unforgettable experience, echoing louder and brighter than anything you've seen before.    We're casting a wider net with three captivating categories:  Demo Technical Solutions: Show us your Power Platform innovations, be it apps, flows, chatbots, websites or dashboards... Storytelling: Share tales of your journey with Power Platform. Hidden Talents: Unveil your creative side—be it dancing, singing, rapping, poetry, or comedy. Let your talent shine!    Got That Special Spark? A Story That Demands to Be Heard? Your moment is now!  🚀 Sign up to Showcase Your Brilliance: https://aka.ms/MPPCGotPowerSignUp  🔥 Deadline for submissions: Thursday, Sept 28th    How It Works:  Submit this form to sign up: https://aka.ms/MPPCGotPowerSignUp  We'll contact you if you're selected. Get ready to be onstage!  The Spotlight is Yours: Each participant has 3-5 minutes to shine, with insightful commentary from our panel of judges. We’re not just giving you a stage; we’re handing you the platform to make your mark.     Be the Story We Tell: Your talents and narratives will not just entertain but inspire, serving as the bedrock for our community’s future stories and successes.    Celebration, Surprises, and Connections: As the curtain falls, the excitement continues! Await surprise awards and seize the chance to mingle with industry experts, Microsoft Power Platform leaders, and community luminaries. It's not just a show; it's an opportunity to forge connections and celebrate shared successes.    Event Details:  📆 Date and Time: Wed Oct 4th, 6:30-9:00PM   📍 Location: MPPC23 at the MGM Grand, Las Vegas, NV, USA  

Top Solution Authors
Top Kudoed Authors
Users online (3,281)