1

I'm pretty new to powerapps but learning as I go. Is there a way to write the following if statements as one statement? (that way it will only create one item on my sharepoint list, instead of seperate items for each if statement). I am struggling to do so as each If statement has a different default result.

If(
    IsEmpty(MondayCombo.SelectedItems),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Monday: DataCardValue82.Text}
    ),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Monday: Concat(
                MondayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);
If(
    IsEmpty(TuesdayCombo.SelectedItems),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Tuesday: DataCardValue83.Text}
    ),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Tuesday: Concat(
                TuesdayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);
If(
    IsEmpty(WednesdayCombo.SelectedItems),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Wednesday: DataCardValue84.Text}
    ),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Wednesday: Concat(
                WednesdayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);
If(
    IsEmpty(ThursdayCombo.SelectedItems),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Thursday: DataCardValue85.Text}
    ),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Thursday: Concat(
                ThursdayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);
B4N3
  • 15
  • 1
  • 5

1 Answers1

1

Unfortunately PowerApps don't have the return or exit command yet to break the code execution.

You have to come up with a workaround to verify the code execution & bypass all the other unwanted code execution. For example, we can have a bool variable to set & validate in next loop.

UpdateContext({RecordCreated:false});
If(
    IsEmpty(MondayCombo.SelectedItems),
    UpdateContext({RecordCreated:true});
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Monday: DataCardValue82.Text}
    ),
    UpdateContext({RecordCreated:true});
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Monday: Concat(
                MondayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);
If(RecordCreated = false,
If(
    IsEmpty(TuesdayCombo.SelectedItems),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {Tuesday: DataCardValue83.Text}
    ),
    Patch(
        ChangeOfService,
        Defaults(ChangeOfService),
        {
            Tuesday: Concat(
                TuesdayCombo.SelectedItems,
                Value,
                ", "
            )
        }
    )
);)

Please up-vote this idea