从子窗体 CRM 2016 上的父级获取数据



我在CRM 2016中有2个自定义实体,实体a称为权益,实体b称为未来行动。在权益窗体上,我有一个未来操作子网格。我需要的是打开未来操作表单时能够确定它在哪个上下文中打开。意思是,我刚刚从净值表单或其他地方(即高级查找)打开了这个未来的操作。如果从股权打开,我需要仅读取未来行动表。打开未来操作时,如何获取上一个/父窗体的上下文?

以下是对这种情况的一些想法:

虽然我同意亚历克斯的观点,即你所要求的"做不到",但也许可以做点什么。

确定您是否从另一个实体打开了创建表单非常简单,只要在表单上查找父实体即可。如果该查找存在,则应该有一个填充它的自动映射。如果该查找在"创建"窗体上为空,则表明用户在其他地方启动了创建窗体。

在我依靠映射将数据传输到子记录的情况下,我使用 JavaScript 来检查父查找是否为空。如果是这样,我会通知用户他们必须从适当的父类型创建记录,然后关闭窗体。

在这种情况下,听起来您希望限制现有记录,而不仅仅是创建新记录。如果填充了 Equity 父级的所有记录都应为只读,则理论上可以配置工作流和安全角色来实现此目的。填充净值查找后,您可以将记录重新分配给其他用户以使其只读。

例如,假设: 我们的普通用户对所有未来操作都有读取权限,并将权限写入他们拥有的未来操作。

我们有一个具有系统管理员角色的指定用户"CrmAdmin"。

填充未来行动的权益查找时,让工作流将该未来行动分配给 CRMAdmin。这将使它对普通用户只读。

该工作流还可以填充不驱动安全性的单独用户查找,您可以将其称为"负责人"或"业务所有者"或其他任何内容。

一个不受支持的(不推荐)的想法是从用户可能打开它的各个位置打开表单并检查 window.location.href 以查看是否存在您可以挂钩的差异。

我们做了类似的事情。通过一些不受支持的定制,我们可以实现。

将事件处理程序附加到子网格 双击并使用我们的自定义参数打开实体窗体

这样,在表单加载时,您可以验证您的参数是否存在 - 它来自等值形式的子网格并将表单设为只读。否则保持加载的表单不变(从 Adv 查找中打开)。

最新更新