展开REST + CAML中的USER字段 [英] Expand USER field in REST + CAML
问题描述
亲爱的专家,
Dear Experts,
我从名为CheckList的列表中获取多个项目。我只获取IsDeleted为false的项目。
I am getting multiple items from a list called CheckList. I am getting only Items where IsDeleted is false.
我在REST API ajax调用中使用CAML Query获取这些项目。但是,我正在获取作者ID /用户ID而不是作者标题和用户标题。我需要他们两个,我不想再打电话来获取作者/用户的详细信息。
I am getting these items using CAML Query in REST API ajax call. However, I am getting Author ID/ User ID instead of Author Title and User Title. I need them both and I don't want to have another call to get Author/User details.
以下是使用AJAX调用的CAML查询。我需要知道如何在CAML查询中扩展作者字段。
The following is the CAML query with AJAX call. I need to know how to expand the Author field in CAML query.
< View Scope ='RecursiveAll'>< Query> <其中><和><等式>< FieldRef名称= '用户'/><值类型= '整数' ><用户ID />< /值及GT;< /等式>< ;等式>< FieldRef名称= '请将isDeleted'/><值
输入= '布尔' 大于0< /值及GT;< /等式>< /和大于;< /何处>< ViewFields>< FieldRef名称= 'LinkTitle'/>< FieldRef名称= '核对清单'/>< FieldRef名称= 'CheckList_x003a_Title'/>< FieldRef名称= 'CheckList_x003a_Phase'/>< FieldRef
产品名称= 'CheckList_x003a_ID'/>< FieldRef名称= '用户'/>< FieldRef名称= 'ID'/>< FieldRef名称= '请将isDeleted'/>< / ViewFields>< ; /查询>< /查看>
<View Scope='RecursiveAll'><Query><Where><And><Eq><FieldRef Name='User' /><Value Type='Integer'><UserID /></Value></Eq><Eq><FieldRef Name='IsDeleted' /><Value Type='Boolean'>0</Value></Eq></And></Where><ViewFields><FieldRef Name='LinkTitle' /><FieldRef Name='CheckList' /><FieldRef Name='CheckList_x003a_Title' /><FieldRef Name='CheckList_x003a_Phase' /><FieldRef Name='CheckList_x003a_ID' /><FieldRef Name='User'/><FieldRef Name='ID' /><FieldRef Name='IsDeleted' /></ViewFields></Query></View>
var url = webUrl +" / _ api / web / lists / getbytitle('" + listTitle +"')/ getitems";
&NBSP; &NBSP; &NBSP; var queryPayload = {
&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; 'query':{
&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; '__metadata':{'type':'SP.CamlQuery'},
&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; 'ViewXml':viewXml
&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }¥b $ b &NBSP; &NBSP; &NBSP; }; b
&NBSP; &NBSP; &NBSP;返回$ .ajax({
url:url,
方法:"POST",&
data:JSON.stringify(queryPayload),
标题:{
" X-RequestDigest":$(" #__ REQUESTDIGEST")。val (),&
" Accept":" application / json; odata = verbose",
" content-type":" application / json; odata = verbose"
}
});
var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/getitems";
var queryPayload = {
'query': {
'__metadata': { 'type': 'SP.CamlQuery' },
'ViewXml': viewXml
}
};
return $.ajax({
url: url,
method: "POST",
data: JSON.stringify(queryPayload),
headers: {
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"Accept": "application/json; odata=verbose",
"content-type": "application/json; odata=verbose"
}
});
在此先感谢,
Pavan Paruchuru。
Pavan Paruchuru.
推荐答案
扩展操作由于这个解释,它不能在CAML Query and Rest API / GETItems()端点中工作:
Expand operation won't work in CAML Query and Rest API /GETItems() endpoint due to this explanation:
expand not working - SharePoint REST API
expand not working – SharePoint REST API
解决方法是使用具有过滤条件而不是CAML查询的Rest API / items端点,并使用
A workaround is to use Rest API /items endpoint with filter condition instead of CAML Query and use
展开以获取用户标题:
http://sp/sites/jerrydev/_api/web/lists/getbytitle('TestList')/Items?
这篇关于展开REST + CAML中的USER字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!