Я создаю новый список и пытаюсь добавить поле LookUp в список.
Я получаю список, против которого хочу посмотреть:
let list = sp.web.lists.getByTitle("Trucks");
list.get().then(list => {
this._ensureMyList("MySPListTest", list)
});
Затем я создаю новый список и новое поле:
private _ensureMyList(listName: string, truckList): void {
sp.web.lists.ensure(listName)
.then((ler: ListEnsureResult) => {
if (ler.created) {
console.log("list was created");
ler.list.fields.add("LookupTest", "SP.FieldLookup", {
Group: "~Example",
FieldTypeKind: 7,
Filterable: true,
Hidden: false,
EnforceUniqueValues: true,
})
.then((result) => {
console.log("result: ", result);
});
}
});
}
Я получаю ошибку:
Uncaught (in promise) Error: Error making HttpClient request in queryable: [500] ::> {"responseBody":{"odata.error":{"code":"-2146232832, Microsoft.SharePoint.SPException","message":{"lang":"en-US","value":"Please use addfield to add a lookup field instead."}}},"responseHeaders":{}}
Я получил имя поля и TypeKind от:
https://msdn.microsoft.com/en-us/library/office/dn600182.aspx#bk_FieldLookup
Я также пытался использовать метод addLookup
:
ler.list.fields.addLookup("LookupTest", truckList.Id, "Truck")
.then((result) => {
console.log("result: ", result);
});
С ошибкой:
Uncaught (in promise) Error: Error making HttpClient request in queryable: [400] ::> {"responseBody":{"odata.error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"en-US","value":"The parameter __metadata does not exist in method AddField."}}},"responseHeaders":{}}