【问题标题】:How do I Loop through a multi-value People Field or Lookup field in SharePoint 2013 designer using REST如何使用 REST 在 SharePoint 2013 设计器中循环遍历多值人员字段或查找字段
【发布时间】:2019-10-01 14:49:45
【问题描述】:

我有一个多值人员选择器和一个多值查找字段,我需要读取 2013 工作流程中的所有条目。我知道如何创建一个工作流来检索数据并使用 REST 和字典遍历每个列表项。鉴于我正在遍历每个项目,我现在需要遍历每个多值字段。

过去,我使用循环迭代器和表示多值字段中数据的第二个字典条目来完成此操作,但我无法再访问此代码。我可以使用循环并通过我的 responseContent 使用 find 函数解析,但这并不可靠,因为我的 reponseContent 将有多个记录,我知道可以使用第二个字典条目来完成。

我的 REST 查询是:

_api/lists/GetByTitle('EmailSetup')/Items?$select=EmailYN,EmailSubject,EmailBody,EmailTo/EMail,Emailcc/EMail,EmailToWorkflowPerson/Title,EmailccWorkflowPersons/Title&$filter=(Title%20eq%20%27BSM%20Review%27)%20and%20(WorkflowName%20eq%20%27ProcessBSMRequests%27)&$expand=EmailTo,Emailcc,EmailToWorkflowPerson,EmailccWorkflowPersons

我的多值字段是 Emailcc 和 EmailccWorkflowPerson,(分别是人员选择器和查找)。

我有我的第一个字典作为捕获 requestHeaders 的以下数据结构

Accept        String  application/json;odata=verbose
Content-Type  String  application/json;odata=verbose

在我的第一个循环中,我获取了所有属性,但不确定如何获取多值字段 Emailcc 和 EmailccWorkflowPersons。

是的,我可以解析我的响应,但是有一种更好的方法可以以某种方式将这些多值字段放入一个结构中,然后循环遍历这些字段。

我需要的是什么是结构(字典)以及如何将数据放入该结构,然后如何循环通过该结构。

最终结果应该是排序(伪代码),其中 Index 是我所在的记录,Index2 是我所在的多值。

d/results([%Varaible: Index%])/Emailcc/Email[%Variable: Index2%])xxx

【问题讨论】:

  • 好的,我是新来的,想弄清楚事情,但是当我点击我的答案时真的很沮丧,它给了我一个负面的观点。为什么会这样。我是否不小心单击了向下箭头并且无法更改?我是否因为想对我的问题投票而丢分?不是很清楚。这个问题是我从未真正看到过正确答案的问题。我已经看到了答案,但他们总是对响应进行查找,并且当您有 REST 调用返回的多条记录时会出现问题。

标签: sharepoint-2013 sharepoint-designer multivalue


【解决方案1】:

经过大量调试,我得到了一半的答案,也许有人可以帮助我解决另一半。当数据通过 REST 返回时的数据结构看起来像(我们自己的数据的一些掩码):

responseContent={"d":{"results":[{
"__metadata":{"id":"Web\/Lists(guid'c7bb71c8-a9dd-495f-aa5f-4dcacdf8db5c')\/Items(1)","uri":"https:\/\/xxxxx.xxxxxx.xxxxxxxxx.xxx\/hc\/teams\/MES\/_api\/Web\/Lists(guid'c7bb71c8-a9dd-495f-aa5f-4dcacdf8db5c')\/Items(1)","etag":"\"13\"","type":"SP.Data.EmailSetupListItem"},
"EmailTo":{"__metadata":{"id":"b493bee4-ec1a-4b76-a028-11766bdb7e5b","type":"SP.Data.UserInfoItem"},"EMail":"xyxee.dyff@homeward.com"},
"EmailToWorkflowPerson":{"__deferred":{"uri":"https:\/ \/xxxxx.xxxxxx.xxxxxxxxx.xxx\/hc\/teams\/MES\/_api\/Web\/Lists(guid'c7bb71c8-a9dd-495f-aa5f-4dcacdf8db5c')\/Items(1)\/EmailToWorkflowPerson"}},
"Emailcc":{"results":[{"__metadata":{"id":"790a690a-515b-4d07-bba3-73bf325fbbed","type":"SP.Data.UserInfoIt em"},"EMail":"xyxee.dyffns1@homeward.com"},{"__metadata":{"id":"3d77e75c-5fa8-4df6-937c-97e572714843","type":"SP.Data.UserInfoItem"},"EMail":"xyxee.dyffr@homeward.com"}]},
"EmailccWorkflowPersons":{"results":[{"__metadata":{"id":"06582ed9-09 10-4932-9b43-0cfb072942c7","type":"SP.Data.WorkflowPersonsListItem"},"Title":"Assistant Administrator"},{"__metadata":{"id":"13d03566-1703-4550-a21f-08ea286d4940","type":"SP.Data.WorkflowPersonsListItem"},"Title":"Initiator"}]},
"EmailYN":"No",
"EmailSubject":"BSM Request # %%ID%%",
"EmailBody":"<div class=\"ExternalClass645790473F7D4B62BE6224DD7B93990F\">%%IDLINK%%<br><\/div><div class=\"ExternalClass645790473F7D4B62BE6224DD7B93990F\">and the BSM#&#160;%%ID%%<br><\/div><div class=\"ExternalClass64 5790473F7D4B62BE6224DD7B93990F\"><br><\/div>"
}]}}

我创建了另一个字典变量,EmailResults,就像第一个存储多值 emailcc 地址一样。

然后下面的Get:

Get d/results([%variable: Index%)/Emailcc/results from Variable:responseContent (Output to Variable: EmailccResults)

为了获得记录计数,我在 EmailccResults 中使用计数项目

我将第二个索引设置为从零开始,并根据 EmailccResults 中的计数循环遍历该数字。 设置我的中间电子邮件地址(从多值人员选择器中一次获取一个值)。

Get d/results([%variable: Index%)/Emailcc/results(%Variable: Index2%)/EMail from Variable: responseContent (Output to Variable: EmailCc)

然后我增加 Index2 变量并转到下一条记录。这非常有效。

现在我的问题是我有一个包含在此查询中的多值查找(查看上面的结果)。我尝试了同样的逻辑,我成功地得到了计数,但不是标题字段。 我的收获是:

从变量获取 d/results([%variable: Index%)/EmailccWorkflowPersons/results:responseContent(输出到变量:EmailccResults)

我的实际任务是:

Get d/results([%variable: Index%)/EmailccWorkflowPersons/results(%Variable: Index2%)/Title from Variable: responseContent (Output to Variable: tmpvar)

** Lookup 的工作方式完全相同。我的问题是我的 get above 在文本框中有一些空白行。

【讨论】:

  • 我不明白为什么多值查找不起作用。它与我的多值人员字段具有相同的结构。以下是查找返回数据的结构: wfcc=[{"__metadata":{"id":"7a8a91a7-c4e5-4393-be4c-0550d28a544c","type":"SP.Data.WorkflowPersonsListItem"}," Title":"请求者名称"},{"__metadata":{"id":"1853ad1b-dde7-4bfb-8d7a-122f55984370","type":"SP.Data.WorkflowPersonsListItem"},"Title":"State S ...对于人物选择器: wfcc=[{"__metadata":{"id":"69291c5f-57c1-4b1c-813b-e97fe7d34657","type":"SP.Data.UserInfoItem"},"EMail" :"steve.xxxxx@dhs.xxxxx.gov"},...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
相关资源
最近更新 更多