【问题标题】:Dynamics crm 365 quick create form get parent entity dataDynamics crm 365快速创建表单获取父实体数据
【发布时间】:2021-01-21 03:06:48
【问题描述】:

当我单击表单查找字段中的“新建”链接时,会打开快速创建表单。 我需要获取父表单的值来预填充快速创建表单的某些字段。这不能通过映射来完成(如本网站的一些帖子中所见),因为它只能在快速创建表单中工作。我怎样才能在javascript中做到这一点?除了使用localStorage没有别的办法了吗?

编辑:

window.parent.Xrm.Page.getAttribute(attribute name).getValue()

没用

【问题讨论】:

  • 试试window.top这会给你数据示例window.top.sourceentityname让我知道这是否有帮助
  • @sean 可以让它工作吗?
  • 您可以回答您的解决方案并关闭此问题。 :)
  • 好的@Arun Vinoth

标签: javascript dynamics-crm microsoft-dynamics dynamics-365


【解决方案1】:

你有两种选择,在 js 中实现。

  1. 在主表单脚本中,您可以分配一个全局变量并在快速创建表单中访问它。取决于版本,您可能需要管理 formContext 而不是 Xrm.PageRead more

     var setValsForQuickCreate = function(){
       window.top.attributename = Xrm.Page.getAttribute("new_attributename").getValue();
     }
    
     var setValFromMainForm = function(){
       Xrm.Page.getAttribute("new_attributename").setValue(window.top.attributename);
     }
    
  2. 否则,您可以在表单加载时使用 web api 进行查询,根据映射的父查找值对其进行过滤并填写字段。您可以创建一个单独的库/方法仅用于在 QC 表单中注册,或者仅检查它是否是快速创建表单并执行它。

【讨论】:

  • 我使用本地存储的解决方案,但有问题,因为我不能总是重置变量的值,所以如果从另一个实体打开联系人快速创建表单,它会取值存在于本地存储中,这是一个错误。我尝试了您提出的第一个解决方案,但 window.top 也是一个全局变量,因此难以控制,并且从另一条记录快速创建联系人时问题也是如此。关于您的第二个解决方案,您能否告诉我如何在快速创建表单中获取父级的 ID,以便在 Web api 中使用它? @Arun Vinoth
  • @Sean 这应该会有所帮助 - himbap.com/blog/?p=2874
  • 当通过关系映射从父表单内的子网格打开时,您应该已经在表单中填写了父查找。
  • 非常感谢,这是查找父记录 ID 的另一种方法:butenko.pro/2020/09/15/…。 @Arun Vinoth
  • 但是很遗憾,在快速创建表单中无法获取父数据,是父表单处于新建模式。 @Arun Vinoth
猜你喜欢
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 2021-03-18
相关资源
最近更新 更多