Dynamics CRM 获取帐户详细信息

Dynamics CRM Getting Account Details

我遇到以下问题。

在 Dynamics CRM 中,我有一个创建新订单的自定义按钮,该按钮效果很好,但是,我想让它作为 OOB 按钮使用,并预填了一些帐户信息,例如帐户名称和价目表(表格示例)。

example

在功能区中 Workbench 我为我的按钮添加了以下参数 ribbon settins

接下来我要做的是创建一个新的 Jscript 网络资源并添加以下代码。

参考文献:https://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/customize-dev/pass-dynamics-365-data-page-parameter-ribbon-actions

网络资源名称:new_getorder 代码:函数 XrmCore.Commands.Open.openNewRecord(primaryControl) {

var formContext = primaryControl;

}

然后我在订单表单上添加了 Web 资源,当点击帐户表单中的自定义按钮时应该会触发该资源,但我遇到了脚本错误(这对我来说并不奇怪)

form properies

我还启用了将执行上下文作为第一个参数传递 Web资源方法不存在:XrmCore.Commands.Open.openNewRecord

new order button from account ribbon

加载订单时出错:Web 资源方法不存在:XrmCore.Commands.Open.openNewRecord

为什么不尝试使用 映射实体字段 功能而不是自定义代码?

You can map attributes between entities that have an entity relationship. This lets you set default values for a record that is created in the context of another record.

在您的场景中,在账户和订单表之间映射账户和价目表字段后,当您转到相关 > 订单部分并尝试从那里创建订单时,这两个字段应该预先填写新订单。

而且我认为当您在帐户表单上有一个订单子网格并尝试从子网格上的新按钮创建订单时,此功能也可以使用。

您可以通过 documentation 来理解这个概念并查看创建映射的步骤。

无论如何,我已经通过在自定义 Web 资源中使用此脚本找到了我的解决方案

enter code here

var entityFormOptions = {};
entityFormOptions["entityName"] = "salesorder";
entityFormOptions["createFromEntity"] = currentRecordRef;;

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
function (success) {
    console.log(success);
},
function (error) {
    console.log(error);
});