cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ck25415
Post Patron
Post Patron

If condition multiple statements with ';' delimiter not working anymore?

Hello,

 

I have the following if condition for onAddFile property of attachment datacard

 

If(//Check file extension
Last(
Split(
First(DataCardValue71.Attachments).Name,
"."
)
).Result = "docx",
true,
false;Notify(
"Please submit the file in .docx format",
NotificationType.Error
)
)

 

It used to work fine the condition returned false and notified the error message when I uploaded a file type other than docx.

 

Now, when I upload a non .docx file type the condition returns "true" and displays the error notification. If i remove ';' delimeter and notify function next to it... the condition returns false.

 

If replace ';' delimiter with && the condition returns false for non .docx file but the notify function does not trigger(tried other functions too none of them worked).

 

Thanks

8 REPLIES 8
v-xida-msft
Community Support
Community Support

Hi @ck25415 ,

Do you specify your If condition formula within the OnAddFile property of the Attachments control?

 

Based on the formula that you mentioned, I think there is something wrong with it. Firstly, I think it is not necessary to specify true or false value within your If formula.

 

In addition, the Last(Split(First(DataCardValue71.Attachments).Name, ".")).Result formula could only retrieve the file extension of the firstly uploaded file, it would not work for the new uploaded file in your Attachments control.

I have made a test on my side, please consider take a try with the following workaround:

Set the OnAddFile property of Attachments control to following:

If(
    Last(Split(Last(DataCardValue9.Attachments).Name, ".")).Result <> "docx",
    Notify("Please submit the file in .docx format", NotificationType.Error)
)

1.JPG

 

Please consider take a try with above solution, check if the issue is solved.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
renatoromao
Super User
Super User

Hi @ck25415 ,

 

Did you try this solution below?

Set(CheckFileExtension, If(Last(Split(First(DataCardValue71.Attachments).Name, ".")).Result = "docx", true, false)) //your result will be true or false

If(//Check file extension
CheckFileExtension = false, Notify("Please submit the file in .docx format", NotificationType.Error)) //and ignore if your condition is equals true


Did I answer your question? Mark my post as a solution!
Thanks!

Renato Romão,

Connect with me here 😉

Power Virtual Agents course (+2.650 students) : English | Português

@v-xida-msft 

 

Yes, I have set the condition within the OnAddFile property of attachment control. Also, the max number of attachments is set to 1.

 

I am trying to assign the outcome of the condition to a variable using updatecontext function. So I will need to use true/false in the if condition. 

 

I wanted to know if we can use ';' delimiter to execute multiple statements in "If" condition in power apps. As I mentioned in my post the condition used to work fine and I am wondering why my expression started to fail now. If we cannot use ';' delimiter to execute multiple statements in "If" condition, what would be an alternative to it ?

@renatoromao 

 

Set(CheckFileExtension, If(Last(Split(First(DataCardValue71.Attachments).Name, ".")).Result = "docx", true, false)) //your result will be true or false

 

If(//Check file extension
CheckFileExtension = false, Notify("Please submit the file in .docx format", NotificationType.Error)) //and ignore if your condition is equals true

 

I tried above expressions and it worked fine and I thought of using the variable outcome to trigger the notification separately if I cannot execute multiple statements.  The problems comes when I wanted to execute multiple statements in If condition with ';' delimiter. 

 

I wanted to know if we can use ';' delimiter in If conditions to execute multiple statements, this way I can reduce the number of expressions  I have to write.

 

 

Hi @ck25415 ,

 

Sure.

Probably your problem is related to use:

If(condition, true, false;action;action)

 

Your code tries to receive Boolean values in the first condition ("true") but in the second condition your return Boolean and actions.

You need to separate each one and you, unfortunately, you expend more than one line of the code.


Did I answer your question? Mark my post as a solution!
Thanks!

Renato Romão,

Connect with me here 😉

Power Virtual Agents course (+2.650 students) : English | Português
yashag2255
Dual Super User II
Dual Super User II

Hi @ck25415 

 

Can you try to setup the configuration like:

Attachments Control -> OnAddFile -> Set(CheckFileExtension, If(Last(Split(First(DataCardValue71.Attachments).Name, ".")).Result = "docx", true, false))

If(CheckFileExtension, Patch();Set(), Set();Update())

The formula presentation should be like this, in case of multiple actions. I am guessing that it is not working because of the Boolean that you passed before the delimiter.

 

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

Thanks everyone, I split the multiple statements into two separate if conditions.

Anonymous
Not applicable

Hi

 

I have a concern that why we have to try to give true & false results at Onaddfile when the file always be attached after click OPEN?

Is there any way to prevent the current file is attached by condition (not reset attachment)

 

Phu_Le_0-1592662484935.png

 

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

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