I have a power app and a power automate flow connected to each other. PowerApps is the trigger for the flow which I have tied to a button in the app. I am passing to the flow three texts fields, the flow is taking those text string making it into a HTML file, then converts to a PDF using OneDrive for business, I then create a share-link (in flow) and pass the link back to the App so the app can "Launch()" it. The flow works fine, it creates the PDF file on my onedrive, and it passes back the link, however it has issues launching the URL.
My problem is this, currently I have one button that tries to do everything, it runs the flow, assigns the share-link to a variable once it has been received back in power apps and then launches it. Here is my formula:
Set(
PDFFilePath,
'Flow'.Run(
DataCardValue15.Selected.DisplayName,
DataCardValue19.Text,
DataCardValue25.Text
)
);
Launch(PDFFilePath.pdffilepath)
Everything but the launch functions works, I have a label on screen to ensure a value gets assigned to the variable "PDFFilePath", and when I check the flow and the file everything has worked as its supposed to.
Now if I take the exact same launch command i used in the button formula above (in red) and run that by itself, the launch function works. So I am not sure if I am missing something about the launch function, or something else.
Solved! Go to Solution.
Okay, i did some more testing. I added a second button that has the formula of:
If( !IsBlank(PDFFilePath), Launch(PDFFilePath) )
I changed the original button to run the select of button 2 after the variable is set, it didnt work. I then setup a new app added the bare minimum to get the flow app to work, and same thing the launch didnt happen. In the new app i created a second button that just has the launch function and that does work.
I then just stared at my screen for a while and found the problem, I was running the editor in chrome and I didnt notice that it was blocking a "pop-up". So apparently just running the launch function running doesnt count a pop-up to chrome, but maybe when another function calls launch it does? I am not sure, but I appreciate the help and feedback. Thanks.
Can you try to add a Text Field and you can then Later Hide it
Set it to the Output from your flow function PDFFilePath, add onSelect and do the Launch Function on the text box based on condition it is not blank?
My guess was by the time your Launch() ran, the flow wasn't finished generating the file.
That's why when you separated the Launch command and ran it on its own. It worked for you because by then the flow was already done generating the file.
Hi @BaronKiespert ,
Based on the issue that you mentioned, I agree with @ProjectVelox 's thought almost.
The Launch function may be executed, however, your flow has not been finished. So, the PDFFilePath variable would be blank when you execute your Launch function.
Please consider modify your formula as below:
Set(
PDFFilePath,
'Flow'.Run(
DataCardValue15.Selected.DisplayName,
DataCardValue19.Text,
DataCardValue25.Text
).pdffilepath
);
If(
!IsBlank(PDFFilePath),
Launch(PDFFilePath)
)
or
With(
{
PDFFilePath: 'Flow'.Run(
DataCardValue15.Selected.DisplayName,
DataCardValue19.Text,
DataCardValue25.Text
).pdffilepath
},
Launch(PDFFilePath)
)
Please try above solution, check if the issue is solved.
Best regards,
Thanks @v-xida-msft !
I was going send a solution after I did my tasks, but you already did it for me 😄
@v-xida-msft Thanks for the ideas, i replaced the launch function with the "If(!isblank", and it did not launch. I also tried the "with" suggestion to no avail.
I repalced the launch function with (below) just to see if the variable does indeed get assigned before the next step runs, and the output was good.
If(!IsBlank(PDFFilePath),Set(PDFOutput,"Good"),Set(PDFOutPut,"Bad"))
My understanding of flow is that it wont go to the next step until the current step is completed, so I am somewhat positive that the file has been created. To test that I added a timer to the mix, instead of the launch function I told it to start a timer, once the timer ended I told the timer to run the launch function, the duration was set to a full minute. During the minute while I waited, I manually went to my onedrive checked the time stamp and opended the file, all looked good. However, powerapps still did not launch the file after the minute.
Hi @BaronKiespert ,
Is the 'PDFFilePath' variable populated with proper value after you press the "button"?
Based on the issue that you mentioned, I could not reproduce your issue on my side. I have made a test on my side, and don't have the issue that you mentioned.
Regarding to the issue that you mentioned, it seems that this issue is related to the Launch function execution mechanism in your PowerApps app. Normally, the Launch function would be executed after the Set(..) formula has been executed successfully.
Please consider add another button (Button2) in your flow, then set the OnSelect property to following:
If(
!IsBlank(PDFFilePath),
Launch(PDFFilePath)
)
set the OnSelect property of your original button to following:
Set(
PDFFilePath,
'Flow'.Run(
DataCardValue15.Selected.DisplayName,
DataCardValue19.Text,
DataCardValue25.Text
).pdffilepath
);
Select(Button2) // Add formula here, fire the Button2 OnSelect event
If the issue still exists, please consider re-generate a new app based on your data source, then create a connection to your flow from your new canvas app, then try above formula again, check if the issue is fixed.
Please try above solution, hope it helps.
Regards,
Okay, i did some more testing. I added a second button that has the formula of:
If( !IsBlank(PDFFilePath), Launch(PDFFilePath) )
I changed the original button to run the select of button 2 after the variable is set, it didnt work. I then setup a new app added the bare minimum to get the flow app to work, and same thing the launch didnt happen. In the new app i created a second button that just has the launch function and that does work.
I then just stared at my screen for a while and found the problem, I was running the editor in chrome and I didnt notice that it was blocking a "pop-up". So apparently just running the launch function running doesnt count a pop-up to chrome, but maybe when another function calls launch it does? I am not sure, but I appreciate the help and feedback. Thanks.
@BaronKiespert Thanks for post this solution. I was having the same issue. Pop up blocker was the culprit
User | Count |
---|---|
125 | |
87 | |
86 | |
75 | |
69 |
User | Count |
---|---|
216 | |
181 | |
140 | |
97 | |
83 |