PowerApps Patch Function With Complex Columns


PowerApps Patch function is used to create and modify records in SharePoint. The values of specific fields are modified without affecting other properties.
In this article we will see how to create records in  aSharePoint list using PowerApps Patch function with SharePoint complex columns like Lookup field, User field, and Choice field.
Let's start the step by step implementation.
First we will create a SharePoint list and then we will create the above-mentioned complex fields.
PowerApps Patch Fuction With Complex Columns
Go to the PowerApps > Click on Create > Select Canvas app from blank > Set app name and select format.

Add required controls

  1. Add labels for Name , Address , DOB , Lookup , Manager and Gender 
  2. Add Dropdown for Lookup and Manager fields
  3. Text input (Single line) for Name
  4. Text Input (Multi line) for Address 
  5. Radio button for Gender 
  6. Date Picker for DOB as below image.
PowerApps Patch Fuction With Complex Columns
Now set the data source to save the record in the SharePoint list.
  • Go to the View on top ribbon > Select Data source > Search SharePoint > Add connection > Connect to the SharePoint Site > Select lists (Lookup list and list in which we create the record).
  • Add another Data Source > Office 365 User - For adding  users in manager dropdown.
  • Then map Lookup, Gender and Manager columns as below,
Set Property Items Office365Users.SearchUser() and then move to the properties on right corner > set Value - DisplayName 
Set Property Items - [Lookup List Name].Title (eg. Department.Title)
Set Property Items - ["Male","Female"]
Patch Syntax to save records in SharePoint list:
  1. Patch(datasource,  
  2.     Defaults(datasource),  
  3.     {  
  4.         Column name: value  
  5.         ….  
  6.     }  
  7.  )  
Now we will save records in SharePoint list using Patch function as below,
  1. Patch('Employees Information'),  
  2.    Defaults('Employees Information'),  
  3.    {  
  4.       Title : txtName.Text,  
  5.       Address : txtAddress.Text,  
  6.       DOB:DatePicker1.SelectedDate,  
  7.       Gender: {  
  8.          '@odata.type'"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",  
  9.          Value: <radio button selected value>  
  10.       },  
  11.       Lookup:{  
  12.          '@odata.type'"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",  
  13.          Id: <Lookup ID>   
  14.          Value: <Lookup Value> //dropdown selected value  
  15.       },  
  16.       Manager: {  
  17.          '@odata.type'"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",  
  18.          Claims: "i:0#.f|membership|" & Lower(  
  19.             LookUp(  
  20.                Office365Users.SearchUser(),  
  21.                DisplayName = ddManager.Selected.DisplayName   
  22.             ).Mail  
  23.          ),  
  24.          Email: LookUp(  
  25.             Office365Users.SearchUser(),  
  26.                DisplayName = ddManager.Selected.DisplayName  
  27.          ).Mail,  
  28.          Picture: "",  
  29.          JobTitle: "",  
  30.          Department: "",  
  31.          DisplayName: ddManager.Selected.DisplayName,   
  32.  } });  


In this article , we have seen how to use patch function to save records in Sharepoint with complex columns, how to connect data source, and how to map controls.
I hope this helps.
Sharing is caring.