【问题标题】:get custom fields from SharePoint list item从 SharePoint 列表项中获取自定义字段
【发布时间】:2018-02-08 09:52:27
【问题描述】:

使用测试版 SharePoint REST API(使用 Microsoft Graph)。 想要获取列表的所有项目,包括自定义字段的内容。

当我使用https://graph.microsoft.com/beta/sites/{site-id}/lists/{list-id}?expand=columns,items(expand=fields) 时,我看到(就我而言):

  • columns 包含 32 个字段,包括标准字段(例如 ID, Title、Status)和自定义的(例如Next_action)
  • fields 仅包含默认(在我的情况下为 23)字段,包括 id [注意它是小写的]、Title 和 Status 字段以及 - 正如预期的那样 - 不是自定义字段。

documentation shows an example of getting specific columns。 当我使用https://graph.microsoft.com/beta/sites/{site-id}/lists/{list-id}/items?expand=fields(select=ID,Title,Status,Next_action)

然后我得到一个包含所有项目的数组,每个项目的对象fields 只包含属性id。

所以:其他标准字段(Title、Status)和自定义字段Next_action 不会显示。

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


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

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

  • 决策列表没有缺失字段(=columns 和实际的 fields 之间没有区别)
  • 它们都有“缺失”:ID|Author|Editor|DocIcon|AppAuthor|AppEditor,以及不在列中的字段:id|AuthorLookupId|EditorLookupId;我猜两者都可以解释(注意列中的 ID 和字段中的 id)
  • 缺失的字段有多种类型:文本(丰富/普通、单行/多行)、数字、选择等。

可能相关,当使用 Flow 时,我为“创建或修改项目时”创建了一个触发器,然后我只看到 2 个列表(更改和决策)。缺失:任务、风险、问题。

任务

  • 字段 (19):“Title|Predecessors|Priority|Status|PercentComplete|AssignedTo|Body|StartDate|Checkmark|ContentType|Modified|Created|_UIVersionString|Attachments|Edit|LinkTitleNoMenu|LinkTitle|ItemChildCount|FolderChildCount”
  • 缺少 (13):“DueDate|RelatedItems|JIRA_id|Progress_notes|Next_action|Waiting_for|Updates|ID|Author|Editor|DocIcon|AppAuthor|AppEditor”
  • 列 (4) 中没有的字段:“PercentComplete@odata.type|id|AuthorLookupId|EditorLookupId”

风险

  • 字段 (22):“标题|状态|类别|到期日期|概率|影响|曝光|成本|成本_x0020_曝光|描述|缓解_x0020_计划|触发器|内容类型|修改|创建|_UIVersionString|附件|编辑|链接标题|ItemChildCount|FolderChildCount "
  • 缺少 (12):“所有者|AssignedTo|Impact_x0020_description|Contingency_x0020_plan|Trigger_x0020_Description|RelatedItems|ID|Author|Editor|DocIcon|AppAuthor|AppEditor”
  • 列 (7) 中没有的字段:“OwnerLookupId|Probability@odata.type|Impact@odata.type|Cost@odata.type|id|AuthorLookupId|EditorLookupId"

问题

  • 字段 (16):“ContentType|Title|Modified|Created|_UIVersionString|Attachments|Edit|LinkTitleNoMenu|LinkTitle|ItemChildCount|FolderChildCount|Status|Category|Priority|DueDate|Discussion”
  • 缺少 (10):“ID|Author|Editor|DocIcon|AppAuthor|AppEditor|Owner|AssignedTo|Resolution|RelatedItems”
  • 列 (5) 中没有的字段:“id|AuthorLookupId|EditorLookupId|OwnerLookupId|AssignedToLookupId”

决定

  • 字段 (14):“Title|Description|Decided_by|Date_decided|ContentType|Modified|Created|_UIVersionString|Attachments|Edit|LinkTitleNoMenu|LinkTitle|ItemChildCount|FolderChildCount”
  • 缺少 (6):“ID|Author|Editor|DocIcon|AppAuthor|AppEditor”
  • 列 (3) 中没有的字段:“id|AuthorLookupId|EditorLookupId”

变化

  • 字段 (13):“Title|Status|Priority|ContentType|Modified|Created|_UIVersionString|Attachments|Edit|LinkTitleNoMenu|LinkTitle|ItemChildCount|FolderChildCount”
  • 缺少 (14):“描述|操作|背景|影响|影响_x0020_delivery_x0020_time|影响_努力|影响_功能|影响_成本|ID|作者|编辑|DocIcon|AppAuthor|AppEditor "
  • 列 (3) 中没有的字段:“id|AuthorLookupId|EditorLookupId”

【问题讨论】:

    标签: sharepoint microsoft-graph-api


    【解决方案1】:

    $expand={field}($select={field}) 周围的当前/beta 端点似乎存在错误。我看到了类似的结果。

    但是,当我使用时,我会看到完整的字段列表:

    /beta/sites/{site-id}/lists/{list-id}/items?$expand=fields

    我还可以使用以下方法返回完整的列、项目和字段集:

    /beta/sites/{site-id}/lists/{list-id}$expand=columns,items($expand=fields)

    目前,您需要提取整个集合并处理应用中的任何其他处理。作为 beta 版本,仍有几个错误正在解决中。这就是为什么不建议将其用于生产的原因。

    【讨论】:

    • 知道是Beta,目前正式版不支持列表,希望能用Beta。您提到的两种解决方法都给了我与以前相同的结果(23 个常规字段)。我是否需要做任何特别的事情来获取自定义列的值,例如就我而言:Next_action?我将如何“拉动整个集合”和“处理额外的处理”?
    • 您能否为next_action 添加列决策?访问列表中的字段没有问题。
    • 原谅我的无知,“添加列决策”是什么意思?
    • 抱歉,我的胖手指试图在手机上自动更正打字。 :) 我正在寻找next_action 的列定义。我想知道未显示的列是否有一些独特之处。
    • 定义:我已更新帖子以包含有关我拥有的列表的详细信息。 Next_action 是单行文本字符串。
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多