Javascript 在Dynamics 2011中调用对话框并向其传递多个RecordID

Javascript 在Dynamics 2011中调用对话框并向其传递多个RecordID,javascript,dialog,dynamics-crm-2011,Javascript,Dialog,Dynamics Crm 2011,我希望允许用户从联系人实体中选择一个或多个联系人,然后启动一个接受记录ID的对话框。我们的想法是为联系人添加一些自定义配置 我目前在启动对话框的功能区按钮上有一个自定义操作,但它只接受一个记录Id。我可以访问选定记录Id的列表,这不是问题,它使用JavaScript将列表传递给对话框 我似乎在SDK或代码片段中找不到任何东西。 我找到的最接近的东西是: 有人知道这是否可能吗?我知道开箱即用的直接发送电子邮件允许向选定的项目发送电子邮件,因此我需要类似的东西 我应该使用对话框还是其他什么 以下是

我希望允许用户从联系人实体中选择一个或多个联系人,然后启动一个接受记录ID的对话框。我们的想法是为联系人添加一些自定义配置

我目前在启动对话框的功能区按钮上有一个自定义操作,但它只接受一个记录Id。我可以访问选定记录Id的列表,这不是问题,它使用JavaScript将列表传递给对话框

我似乎在SDK或代码片段中找不到任何东西。 我找到的最接近的东西是:

有人知道这是否可能吗?我知道开箱即用的直接发送电子邮件允许向选定的项目发送电子邮件,因此我需要类似的东西

我应该使用对话框还是其他什么

以下是单击功能区按钮时调用的javascript代码片段:

function LaunchModalDialog(SelectedControlSelectedItemReferences,dialogID, typeName)
{

// Get selected objects
var allItems = new Array
var allItems = SelectedControlSelectedItemReferences

// Just get first item for now as dialog only seems to accept one ID
var personId = allItems[0].Id;
personId = personId.replace(/\{/g, "");
personId = personId.replace(/\}/g, "");

// Load modal
var serverUri = Mscrm.CrmUri.create('/cs/dialog/rundialog.aspx');
var mypath = serverUri + '?DialogID={' + dialogID + '}&EntityName=' + typeName + '&ObjectId={' +personId + '}';
mypath = encodeURI(mypath);

// First item from selected contacts only
window.showModalDialog(mypath);

// Reload form.
window.location.reload(true);
}

您需要在功能区中为该按钮指定SelectedControlAllItemId参数。下面是一个描述它的链接:

--编辑--

对不起,我误解了-你的意思是启动一个实际的CRM对话框,而不仅仅是一个普通的HTML弹出对话框窗口

按设计,CRM对话框不能用于多个记录,因此您无法将其用于此目的

但是,您应该能够创建一个HTML web资源文件,通过传入SelectedControlAllItemId参数,可以从功能区启动该文件。然后,该HTML web资源将具有一些javascript,这些javascript将使用REST端点更新所选联系人(有关更多信息,请参阅SDK)


希望有帮助

但是,如何使用多个ID启动对话框呢?是否有包含rundialog.aspx可接受参数的文档?“”这是否意味着我无法通过工作流管理每个更新联系人发送的电子邮件?i、 e所有内容最终都将是自定义代码??不,您仍然可以有一个由字段更新触发的工作流。您的Web资源将使用REST端点更新字段,但这仍然算作正常的字段更新,因此由该字段触发的任何工作流仍将启动。它实际上不是字段更新,而是一个新角色,因此假设我可以通过创建角色记录触发工作流,那么?将更详细地浏览SDK,听起来它实际上在CRM中定义为多对多,但通过查看Customizations区域中的Contact实体进行验证。如果是这种情况,很遗憾,您无法通过关联M2M实体来构建工作流。您可以在关联/解除关联消息上构建插件,但这并不有趣。你是正确的-在幕后有一个“中间”实体,但它不能通过UI访问。您可能需要重新考虑您的设计。您可以通过构建自己的“RoleMembership”实体来构建自己的M2M结构,该实体具有查找联系人和门户角色。