从SharePoint列表项获取自定义字段

5
使用测试版的 SharePoint REST API(使用Microsoft Graph)。 希望获取列表中的所有项,包括自定义字段的内容。
当我使用https://graph.microsoft.com/beta/sites/{site-id}/lists/{list-id}?expand=columns,items(expand=fields)时,我看到(在我的情况下):
  • columns 包含 32 个字段,包括标准字段(例如 IDTitleStatus)和自定义字段(例如 Next_action
  • fields 只包含默认的字段(在我的情况下为 23 个),包括 id [注意它是小写的]、TitleStatus 字段,而且不包括预期的自定义字段。

文档展示了获取特定列的示例。
当我使用https://graph.microsoft.com/beta/sites/{site-id}/lists/{list-id}/items?expand=fields(select=ID,Title,Status,Next_action)时,会得到一个包含所有项的数组,并且每个项都有一个fields对象,该对象仅包含属性id

因此:其他标准字段(TitleStatus)和自定义字段Next_action不会显示出来。

如何获取标准字段和自定义字段的值列表?


编辑:关于我拥有的列表的更多详细信息:

其中一些列表是已经自定义的默认列表(我相信是任务、问题、风险),另外一些则是完全自定义的(决策、变更)。任务列表具有版本控制。
一些观察结果:

  • 决策列表没有缺失字段(即columns和实际fields之间没有差异)
  • 它们所有都有“missing”:ID | Author | Editor | DocIcon | AppAuthor | AppEditor,以及不在列中的字段:id | AuthorLookupId | EditorLookupId;我想两者都可以解释(请注意,列中的ID和字段中的id)
  • 缺失的字段是各种类型的:文本(富文本/纯文本,单行/多行),数字,选择等。

可能相关的是,当使用Flow创建“当创建或修改项目时”的触发器时,我只会看到2个列表(Changes和Decisions)。缺失的是:Tasks,Risks,Issues。

任务

  • 字段(19):“标题|前置任务|优先级|状态|完成百分比|被分配者|正文|开始日期|复选框|内容类型|修改时间|创建时间|_UI版本字符串|附件|编辑|链接标题(无菜单)|链接标题|项目子项计数|文件夹子项计数”
  • 缺失(13):“到期日期|相关项|JIRA ID|进展说明|下一步操作|等待中|更新|ID|作者|编辑|文档图标|应用程序作者|应用程序编辑者
  • 未在列中的字段(4):“完成百分比 @ odata.type |id | AuthorLookupId | EditorLookupId ”

风险

  • 字段(22):"标题|状态|类别|到期日|概率|影响|风险|成本|成本_x0020_风险|描述|缓解_x0020_计划|触发器|内容类型|修改日期|创建日期|_UIVersionString|附件|编辑|链接标题|项目子项数|文件夹子项数"
  • 缺失字段(12):"所有者|分配给|影响_x0020_描述|应急_x0020_计划|触发器_x0020_描述|相关项|ID|作者|编辑|DocIcon|AppAuthor|AppEditor"
  • 不在列中的字段(7):"OwnerLookupId|Probability@odata.type|Impact@odata.type|Cost@odata.type|id|AuthorLookupId|EditorLookupId"

问题

  • 字段(16):"ContentType | 标题| 修改 | 创建 | _UIVersionString | 附件 | 编辑 | LinkTitleNoMenu | LinkTitle | ItemChildCount | FolderChildCount | 状态 | 类别 | 优先级 | 到期日 | 讨论"
  • 缺失的字段(10):"ID | 作者 | 编辑 | DocIcon | AppAuthor | AppEditor | 所有者 | 分配给 | 解决方案 | 相关项"
  • 不在列中的字段(5):"id | AuthorLookupId | EditorLookupId | OwnerLookupId | AssignedToLookupId"

决策

  • 字段(14):"标题 | 描述 | 决策者 | 决策日期 | ContentType | 修改 | 创建 | _UIVersionString | 附件 | 编辑 | LinkTitleNoMenu | LinkTitle | ItemChildCount | FolderChildCount"
  • 缺失的字段(6):"ID | 作者 | 编辑 | DocIcon | AppAuthor | AppEditor"
  • 不在列中的字段(3):"id | AuthorLookupId | EditorLookupId"

更改

  • 字段(13):“标题|状态|优先级|内容类型|修改日期|创建日期|_UIVersionString|附件|编辑|无菜单链接标题|链接标题|项子数|文件夹子数”
  • 缺失字段(14):“描述|操作|背景|影响|影响交付时间|影响工作量|影响功能|影响成本|ID|作者|编辑|DocIcon|AppAuthor|AppEditor
  • 不在列中的字段(3):“id|AuthorLookupId|EditorLookupId
1个回答

3
当前的/beta端点似乎存在一个与$expand={field}($select={field})相关的错误。我看到了类似的结果。
然而,当我使用以下内容时,我可以看到完整的字段列表: /beta/sites/{site-id}/lists/{list-id}/items?$expand=fields 我还能够使用以下内容返回完整的列、项和字段集合: /beta/sites/{site-id}/lists/{list-id}$expand=columns,items($expand=fields) 目前,您需要拉取整个集合,并在应用程序中处理任何附加处理。由于这是测试版,仍有几个错误正在修复中。因此,不建议将其用于生产。

我知道这是Beta版本,官方版本目前不支持列表,所以我希望使用Beta版本。你提到的两种解决方法都给了我之前相同的结果(23个常规字段)。我需要做些特殊的事情才能获取自定义列的值吗?例如,在我的情况下:Next_action?如何“拉取整个集合”和“处理其他处理”? - wivku
你能为 next_action 添加一个名为 decision 的列吗?我在获取列表中的字段时遇到了麻烦。 - Marc LaFleur
请原谅我的无知,您说的“添加决策列”是什么意思? - wivku
抱歉,我的手指有点肥胖,在使用自动纠错的手机上打字有些困难。 :) 我正在寻找 next_actiondefinition 列。我在想是否有一些关于未显示列的独特信息。 - Marc LaFleur
定义:我已更新帖子,包括我所拥有的列表的详细信息。Next_action是一个单行文本字符串。 - wivku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接