The following should work if you disallow multiple selections for the column in SharePoint.
Any updates will be in this newer post.
I will start with choice type columns, but the approach is exactly the same for lookups.
Let's say your SharePoint list (MyList) has a choice column (MyChoiceColumn) with 3 choices: Choice A, Choice B, Choice C.
This works:
Patch(MyList, MyRecord, {MyChoiceColumn: {Id: 1, Value: "Choice A", '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}})
In order to make it practical, have a dropdown control (Dropdown1) in PowerApps with the following Items property:
Table({Id: 1, Value: "Choice A"}, {Id: 2, Value: "Choice B"}, {Id: 3, Value: "Choice C"})
Then you can modify the above Patch to this:
Patch(MyList, MyRecord, {MyChoiceColumn: {Id: Dropdown1.Selected.Id, Value: Dropdown1.Selected.Value, '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}})
If you have a lookup to MyLookupList with MyLookupColumn, then set the Items property of the dropdown control to this:
MyLookupList
(you must have also added this list as a data source first)
Then the Patch will be this:
Patch(MyList, MyItem, {MyLookupColumn: {Id: Dropdown1.Selected.ID, Value: Dropdown1.Selected.Title, '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}})Please let me know if anyone has any issues with making this work.