Forum Discussion
Dennis Kuhn
Jul 15, 2017Copper Contributor
How to set a people field in a list, e.g. “convert” AccountName to Lookup ID?
I am trying to build an SPFX WebPart with React Office UI Fabric. I have a SharePoint list with a People field called AssignedTo. The lookup ID values are like 12, 20, and so on. When I select a pers...
- Jul 16, 2017
A call to `api/web/ensureuser` using the SPHttpClient is needed. It ensures the requested user is loaded into the SharePoint site userinfo. Using the given `AccountName` like `i:0#.f|membership|bob@somewhere.org.nz` from the search as parameter. The returned SPUser contains the `Id` field for the Lookup column.
I implemented the following method:
public EnsureUser(userName: string): Promise<ISPUser> { console.log("SharePointDataProvider.EnsureUser( \"" + userName + "\" )"); var data = {logonName: userName}; return this._webPartContext.spHttpClient.post( this._ensureUserUrl, SPHttpClient.configurations.v1, { body: JSON.stringify(data) } ).then( (value: SPHttpClientResponse) => { console.log("SharePointDataProvider.EnsureUser FullFill: statusText:\"" + value.statusText + "\"" ); return value.json(); }, (error: any) => console.log("SharePointDataProvider.EnsureUser Rejected: " + error ) ).then((json: ISPUser) => { console.log("SharePointDataProvider.EnsureUser FullFill: Id:" + json.Id +" LoginName:\"" + json.LoginName + "\"" ); return json; }); }My mini ISPUser interface:
interface ISPUser { Email: string; Id: number; LoginName: string; Title: string; }
Dennis Kuhn
Jul 16, 2017Copper Contributor
A call to `api/web/ensureuser` using the SPHttpClient is needed. It ensures the requested user is loaded into the SharePoint site userinfo. Using the given `AccountName` like `i:0#.f|membership|bob@somewhere.org.nz` from the search as parameter. The returned SPUser contains the `Id` field for the Lookup column.
I implemented the following method:
public EnsureUser(userName: string): Promise<ISPUser> {
console.log("SharePointDataProvider.EnsureUser( \"" + userName + "\" )");
var data = {logonName: userName};
return this._webPartContext.spHttpClient.post(
this._ensureUserUrl,
SPHttpClient.configurations.v1,
{ body: JSON.stringify(data) } ).then(
(value: SPHttpClientResponse) => {
console.log("SharePointDataProvider.EnsureUser FullFill: statusText:\"" + value.statusText + "\"" );
return value.json();
},
(error: any) => console.log("SharePointDataProvider.EnsureUser Rejected: " + error )
).then((json: ISPUser) => {
console.log("SharePointDataProvider.EnsureUser FullFill: Id:" + json.Id +" LoginName:\"" + json.LoginName + "\"" );
return json;
});
}My mini ISPUser interface:
interface ISPUser
{
Email: string;
Id: number;
LoginName: string;
Title: string;
}