为所有与会者预约时设置CustomProperties

And*_*NET 7 ms-office office-addins exchangewebservices outlook-addin office-js

TL;博士

设置CustomProperties为具有与会者的约会时,只有组织者的约会才能获得CustomProperties.属性不会传播到其他与会者的约会.


更长的版本

当我们与多个与会者创建约会然后以每个与会者身份登录时,我们注意到每个与会者ItemId都不同.因此,会议中的每个与会者似乎都会获得自己的约会副本.(真的希望有人确认这是真的).

但是,从我们的加载项设置自定义属性(使用Outlook JavaScript API)时,只有组织者的约会才能获得自定义属性,因为当我们以任何其他与会者身份登录时,我们无法看到自定义属性.

我们的代码中的代码片段是相关的:

Office.initialize = function (reason) {
    $(document).ready(function () {
         Office.context.mailbox.item.loadCustomPropertiesAsync (onCustomPropertiesLoaded);
    });
};

function onCustomPropertiesLoaded(asyncResults) {
    _customProps = asyncResults.value;
}

//Set custom properties
_customProps.set("myProp", "true");
_customProps.saveAsync(customPropertiesOnSaved);
Run Code Online (Sandbox Code Playgroud)

有没有办法让每个约会副本都有自定义属性?

Gle*_*les 3

当我们创建一个约会并有多个与会者,然后以每个与会者身份登录时,我们注意到每个 ItemId 都是不同的。因此,会议中的每个与会者似乎都会获得自己的约会副本。(真的很希望有人证实这是真的)。

是的,这是正确的,约会的与会者副本是该邮箱中的一个单独的新项目。在后端 Exchange 服务器上,它是一个单独的邮箱存储项目,它们不以任何方式链接(除了可用于关联它们的属性),并且服务器不会更新与会者邮箱中的约会,因此它们必须始终由客户端更新进程(对于房间邮箱,邮箱助手会执行此操作,但这仍然是在服务器上运行的客户端进程)。

但是,当从我们的加载项设置自定义属性时,只有组织者的约会才能获取自定义属性,因为当我们以任何其他与会者身份登录时,我们无法看到自定义属性。

这种情况很可能发生,因为您需要先保存约会上的自定义属性,然后再添加任何与会者并发送会议邀请。在添加任何与会者之前,首先保存带有属性(或附件)的约会非常重要,然后当服务器生成邀请时,这些邀请应包含自定义属性(您可以使用 Mapi 编辑器检查正在发生的情况并查看邀请)生成在管理器的“已发送邮件”文件夹中)。请务必记住,因为约会未链接到服务器上,所以更新组织者上的属性不会反映在与会者副本上,除非您发送会议更新并且会议更新随后被与会者接受,然后与会者将更新他们的信息日历。