Update SharePoint Lookup Field (multiple values allowed) from standalone Power App

Problem:

It may turn tricky to update SharePoint items from a standalone Power App, if you’ve configured a SP lookup column to allow multiple values.

Solution:

All you need to get around that issue, is to add another ComboBox to the datacard in the Power App form.
Then also create a data connection to the list, where the lookup values reside.

Settings for the ComboBox:

DefaultSelectedItems: If(Not(IsBlankOrError(Parent.Default)),Parent.Default)

OnChange: ClearCollect(myCol,ForAll(ComboBox1.SelectedItems,{Id: ThisRecord.ID,Value:ThisRecord.Title}));Reset(DataCardValue3)

OnSelect: Clear(myCol)

Settings for the origin lookup dropdown:

Change the setting for “multiple selections allowed” to “true”

DefaultSelectedItems: If(Not(IsBlank(Parent.Default)) && IsEmpty(myCol),Parent.Default,myCol)

(myCol = the collection created in the ComboBox OnChange property)

Explanation:

  • First we check, if there are already values available in the source item
  • the OnChange makes sure, that whenever we select new items, the collection myCol will be updated accordingly
  • the Reset() makes sure, that the values in the origin dropdown will also be updated
  • the Clear() function resets the collection, when the user starts a new selection
  • the origin dropdown will always have the selected items from the ComboBox
  • last but not least, hide the origin dropdown and that’s it

One more important thing to mention!
Keep the “Update” property of the datacard as “DataCardValuexx.SelectedItems” – if you try to pass in a table, the submit form function will fail. That’s the trick here.

Enjoy!

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Copy & Paste from Excel into Canvas Power App

Problem:

Power App doesn’t provide functionality to just paste copied content from Excel into a table or a gallery. But it’s annoying people, if they have to type all the values from a calculated Excel file 1:1 into the Power App.
So I found a workaround, that people can just copy & paste values from a standardized table, with which values they need to start an approval workflow for many times.

Solution:

First we create a simple input form on Power App, containing a Text Input field, a table and a button. In my demo I use a SharePoint list as data source.

Then create a Flow with a Power App trigger.

Link the button to the Flow and pass in the text value.

Collection of formulas for you to copy:

Formula for the button:
YOURFLOWNAME’.Run(TextInput1.Text);Refresh(YOURDATASOURCE)

Expression to get the rows:
split(decodeUriComponent(replace(replace(uriComponent(variables(‘strRawTxtInput’)),’%09′,”),’%0A’,’#NEWLINE#’)),’#NEWLINE#’)

Expression to get the columns:
split(decodeUriComponent(replace(uriComponent(items(‘ForEachRow’)),’%09′,’#TAB#’)),’#TAB#’)

Have fun 😉


1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3.50 out of 5)
Loading...

Flow: Update People field in SharePoint online with “multiple selections allowed”

Problem:

When you create many workflow applications, you’ll learn, that most of them will use same data again like organization information, responsible persons etc.
So I started setting up a “Central Data” location with all relevant info as SharPoint lists.
Then I went to the different applications and created a “Get Centralized Data” Flow for each of them.
BUT… trying to update a SharePoint People field, that has the setting “multiple selections allowed” turned out to be a pain. You can’t just use the dynamic value from the central list, even the fields were configured identically.

Solution:

Put the person’s claims into an array variable, but don’t use “claims” but “Email” value (yes, it’s confusing ;-))

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Power Automate (Flow) – Trigger Condition “Modified by”

Problem:

I created a Flow with trigger “SharePoint – When an item is created or modified” and went into an indefinite loop, because the system user modified the item and triggered the workflow again and so on.
So I had to add a trigger condition, to not start if the “modified by” user is my system account.

Solution:

It was a bit tricky to learn, that I can’t use “Modified by Email” – I had to use the editors vaule instead. Here we go…

@not(equals(triggerBody()[‘Editor’][‘Email’], ‘User@example.com’))

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4.33 out of 5)
Loading...

Display PowerApp elements based on O365 group membership

My Szenario:

I had to build some app with confidential contents for different user groups.
Some contents may only be visible to a specific group of people.

Solution:

First of all I created two different security groups in O365.
Then I got the groupId through PowerShell (you could also use AzureAD)
Connect-MsolService
Get-MsolGroup | ? displayname -like 
DisplayName”

Use the “OnStart” property of the app to load your group memberships into collections:
ClearCollect(myUsers,Office365Groups.ListGroupMembers(groupId”).value)

Now put the visible property of the element to hide to following:
If(User().Email in myUsers.mail,true,false)

That’s it. It’ll check, if the current logged on user is in the collection of the group members and based on that displays content or not.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...