在Dynamics 2011中调用对话框并将多个recordID传递给它

And*_*rew 6 javascript dialog dynamics-crm-2011

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

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

我似乎无法在SDK或代码片段中找到任何内容.我找到的最接近的是这个:

http://crmmongrel.blogspot.com/2011/06/launch-dialog-from-ribbon-button-in-crm.html

任何人都知道这是否可行?我知道开箱即用发送直接电子邮件允许将电子邮件发送到所选项目,所以我需要类似的东西.

我应该使用对话框还是别的什么?

以下是单击功能区按钮时调用的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);
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ter 6

您需要在功能区中为该按钮指定SelectedControlAllItemIds参数.这是一个描述它的链接:

http://social.microsoft.com/Forums/en/crm/thread/79f959ac-0846-472f-bff1-4f5afe692a56

- 编辑 -

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

CRM对话框不能在设计上用于多个记录,因此您无法使用它们.

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

希望有所帮助!

  • 听起来它实际上在CRM中定义为多对多 - 通过查看Customizations区域中的Contact实体进行验证.如果是这种情况,遗憾的是,您无法建立关联M2M实体的工作流程.您可以在Associate/Disassociate消息上构建插件,但这并不好玩.你是对的 - 在幕后有一个"中间"实体,但它不能通过UI访问.您可能需要重新考虑您的设计.您可以通过构建自己的"RoleMembership"实体来构建自己的M2M结构,该实体具有对联系人和门户角色的查找. (2认同)