5. Patrick Curran
SharePoint / Cloud Architect
• MCT, MCPD, MCITP, MCP, MCTS, MCSA, MCSE
• CTO Planet Technologies.
• Co-Author of Microsoft SharePoint 2013: Designing and Architecting Solutions.
• Working with Azure since 2010.
• Working with SharePoint since 2003.
• Working with SQL Server since 1998.
7. In this session we will review:
• Why you cannot just simply modify your Active Directory properties and expect the
properties to show in SharePoint Online.
• How to create your own LOB system using PowerShell.
• How to take on-premises LOB user properties and update SharePoint Online user profile
properties through PowerShell.
• How to synchronize your LOB database with an Azure DB.
• How to take data from user properties stored in an Azure SQL Database and update
SharePoint Online user profiles
• How to update custom SharePoint Online user properties using a Console Application(C#)
• How to continually update your SPO user properties through an Azure Web Job (C#)
18. few restrictions on the source data:
• Max size: 2GB
• Max properties: 500,000
• Source file must be uploaded to same SharePoint
Online tenant where the process is started
• UPA Property must be already created in SPO
• UPA Property Edit Settings must be disabled
{
"value": [
{
"<IdName>": "<UserIdValue_1>",
"<AttributeName_1>": "<User1_AttributedValue_1>",
"<AttributeName_2>": "<User1_AttributedValue_2>",
...,
"<AttributeName_x>": "<User1_AttributedValue_x>"
},
{
"<IdName>": "<UserIdValue_2>",
"<AttributeName_1>": "<User2_AttributedValue_1>",
"<AttributeName_2>": "<User2_AttributedValue_2>",
...,
"<AttributeName_x>": "<User1_AttributedValue_x>"
},
...,
{
"<IdName>": "< UserIdValue_n >",
"<AttributeName_1>": "<Usern_AttributedValue_1>",
"<AttributeName_2>": "<Usern_AttributedValue_2>",
...,
"< AttributeName_x >": "<User1_AttributedValue_x>"
}
]
}
19. Queue import process:
The QueueImportProfileProperties method located in the Office365Tenant object is an
asynchronous call. It does not download the source data or the import it, but simply adds the
work item to the queue.
idType = userIdType = userPricipalName (mail)
sourceDataIdProperty = userLookupKey = IdName = UPN (mail)
propertyMap = Attributes
sourceUri = Uri of file located in SPO Document Library
{
"value": [
{
"<IdName>": "<UserIdValue_1>",
"<AttributeName_1>": "<User1_AttributedValue_1>",
"<AttributeName_2>": "<User1_AttributedValue_2>",
...,
"<AttributeName_x>": "<User1_AttributedValue_x>"