在MS Dynamics 365表单上显示SharePoint文档子网格

在MS Dynamics 365表单上显示SharePoint文档子网格,sharepoint,dynamics-crm,dynamics-crm-online,dynamics-crm-2016,dynamics-365,Sharepoint,Dynamics Crm,Dynamics Crm Online,Dynamics Crm 2016,Dynamics 365,我需要在MS crm Dynamics 365自定义实体表单上显示SharePoint文档子网格 有人能告诉我,如何使用受支持或不受支持的方式来实现这一点吗?最新:最新版本有直接的OOB定制来实现这一点 简而言之:服务器到服务器集成方法显示crm网格中的物理文档。不需要iframe解决方案 旧式列表组件集成有一个局限性,它在crm网格中显示文档位置crm记录,所以您需要iframe解决方案来显示Sharepoint中的物理文档 [适用于基于服务器的集成]-它将在网格中显示文档 打开要在其

我需要在MS crm Dynamics 365自定义实体表单上显示SharePoint文档子网格


有人能告诉我,如何使用受支持或不受支持的方式来实现这一点吗?

最新:最新版本有直接的OOB定制来实现这一点


简而言之:服务器到服务器集成方法显示crm网格中的物理文档。不需要iframe解决方案

旧式列表组件集成有一个局限性,它在crm网格中显示文档位置crm记录,所以您需要iframe解决方案来显示Sharepoint中的物理文档

[适用于基于服务器的集成]-它将在网格中显示文档

打开要在其中显示SharePoint文档库的实体Web表单

  • 单击“插入”选项卡,单击“子栅格”,指定子栅格的名称
  • 在“数据源”部分,从记录下拉列表中选择“仅相关记录”
  • 在实体下拉列表中选择“文档位置(关于)”
  • 从默认视图部分选择“活动文档位置”[如下图所示]
  • 点击设置。单击“保存”,然后发布自定义项
  • 更新[适用于列表组件集成]
    关联视图将显示我们想要的内容,但子网格未按预期工作。经研究,这是产品的局限性

    有时,需要对与记录相关联的文档进行“一目了然”的查看。要查看SharePoint中与记录相关的文档,用户必须导航到表单外部的相关实体区域。(与连接或其他相关实体类似)

    对于大多数相关实体,可以在表单中使用子网格来立即在表单上显示关系,但是对于文档没有简单的解决方法

    另一种选择是在IFRAME中显示关联视图

    编辑: 在最新的Dynamics 365中,不推荐使用列表组件进行CRM+Sharepoint集成。唯一的方法是基于服务器对服务器(S2S)的CRM+Sharepoint集成。这种S2S方法显示关联网格和子网格中的文档,而不是列表组件中的文档位置。CRM-Sharepoint包装器负责从CRM FetchXML到SP CAML查询的转换,并提供我们想要的结果

    让CRM查询文档的好处在于 可以使用与创建文档的自定义视图相同的方式创建文档的自定义视图 CRM中的任何其他实体。使用列表组件时,默认设置为 SharePoint中的视图是在IFRAME中呈现的,这意味着 您必须在SharePoint上具有列表自定义权限的列 这样所有用户都可以看到更改。使用新服务器 服务器集成您可以选择要包含在中的SharePoint列 您自己的视图,甚至使用CRM advance添加您自己的过滤器 查找接口

    .

    您可以找到解决方案:

    您可以使用下面的代码行设置Iframe url以在Iframe中显示子网格:

    Xrm.Page.getControl("IFRAME_Documents").setSrc(Xrm.Page.context.getClientUrl() + "/userdefined/areas.aspx?formid=" + CurrentFormId + "&inlineEdit=1&navItemName=Documents&oId=%7b" + recordId + "%7d&oType=" + oTypeCode + "&pagemode=iframe&rof=true&security=852023&tabSet=areaSPDocuments&theme=Outlook15White");
    
    其中:

    “IFRAME_文档”是IFRAME名称

    “CurrentFormId”=是当前选定的表单id,您可以使用
    Xrm.Page.ui.formSelector.getCurrentItem().getId().replace(“{”,“”)来获取它

    “recordId”=记录的GUID


    “oTypeCode”=可以使用Xrm.Page.context.getQueryStringParameters()等获取的实体类型代码

    我在D365中就是这样做的。(使用Chrome使其更简单)

  • 启用实体的文档管理

  • 当显示“文档”选项卡时 对于实体记录,打开它

  • 然后打开Chrome开发控制台(F12)

    抓取面板(实际上是一个iframe)源。URL的格式为:

    /userdefined/areas.aspx?appid=...........&formid=.......&inlineEdit=1&navItemName=Documents&oId=.....&oType=.....&pagemode=iframe&rof=true&security=......&tabSet=areaSPDocuments&theme=Outlook15White
    
  • 用适当的值替换源URL中的虚线值 并使URL完全限定为根前缀


  • 只需确保在值中不使用任何硬编码的guid或id即可。通过这种方式,可以方便地在需要的任何地方重复使用。

    可以肯定,这只显示SharePoint位置的列表。它没有显示文档,对吗?你能发布一个结果的屏幕截图吗?我试过了,只看到SharePoint文档的位置,而绝对看不到文档。@Arun_Vinoth我准备好了你的更新和文章链接,但坦率地说,我仍然感到困惑。。是否可以通过Dynamics 365中的相关列表显示SharePoint文档列表,或者iFrame是唯一的选项?@Andrew这完全取决于您用于CRM-SP集成的方法。。S2S或列表组件??