在电子邮件表单 i dynamics 365 上设置 "to" 字段

Set "to" field on email form i dynamics 365

我正在尝试使用 JavaScript 在 Dynamics 365 中打开一个新的电子邮件表单。我可以轻松地预先填写各种字段,例如“有关”,但是当我尝试填写“收件人”字段时,它只是空着。

这是一个重现我的问题的小代码片段:

let contactid = "91be7fec-2142-ec11-8c62-000d3ac23084";
let activityParameters = {};

// Set the regarding field -- this works!
activityParameters["regardingobjectid"] = contactid ;
activityParameters["regardingobjectidname"] = "Regarding your last email";
activityParameters["regardingobjectidtype"] = "contact";

// Set the to field -- this is not working!
var parties = [];
var receiver = {};
receiver["partyid_contact@odata.bind"] = `/contacts(${contactid})`;
receiver["participationtypemask"] = 2; //To
parties.push(receiver);
activityParameters["email_activity_parties"] = parties;
        
await window.parent.Xrm.Navigation.navigateTo(
            { pageType: "entityrecord", entityName: "email", data: activityParameters },
            { target: 2 } // Open in modal
        )

我还尝试了一些基于查找在其他地方的设置方式的变体,例如:

var parties = [];
var receiver = {
    activityparty: {
        id: contactid,
        entityType: "contact",
        name: "XXX"
    },
    participationtypemask: 2
};

谷歌搜索问题只给了我使用网络 API 创建电子邮件的解决方案(正如我在上面尝试过的),但我不确定如何更改代码以便 navigateTo() 识别参数.

有人知道怎么做吗?

我终于明白了。 Andrew Butenko 描述了如何为 openForm() 执行此操作,结果发现同样的解决方案也可以应用于 navigateTo()

我会在这里留下我的解决方案,以防其他人遇到同样的问题。

let contactid = "91be7fec-2142-ec11-8c62-000d3ac23084";
let activityParameters = {};
​
// Set the to field -- this IS working!
activityParameters["to"] = [{
    id: contactid,
    name: "Contact Name Here",
    entityType: "contact"
}];
      
await window.parent.Xrm.Navigation.navigateTo(
            { pageType: "entityrecord", entityName: "email", data: activityParameters },
            { target: 2 } // Open in modal
        );