是否可以找到打开附件(撰写模式)的当前会议窗口是来自新会议还是已经打开以进行编辑的会议?
答案 0 :(得分:2)
当前,您要求的此功能不是产品的一部分。我们在user-voice页上跟踪Outlook加载项功能请求。请在此处添加您的请求。在我们进行规划过程时,会考虑用户语音上的功能请求。
答案 1 :(得分:1)
有很多与此相关的用例:
我相信许多插件的目的都是为了增加用户当前正在阅读或撰写的项目(例如约会/会议或电子邮件)。这通常是在第三方系统中通过将Exchange中的会议与单独系统中的“记录”相关联来完成的。为了找出当前会议是否已经与“记录”相关联(并可能显示其内容),您需要一种明显地识别会议的方法。如果是新会议,则知道没有“记录”,但是如果是现有会议,则需要能够对其进行标识。在撰写模式下公开itemId可以满足此需求。顺便说一下,该功能已经在用户语音中requested!
我只能推测为什么Microsoft尚未添加该功能,但是我认为Office JS最初是对电子邮件的支持。电子邮件的撰写模式几乎专门用于创作新的(未发送的)电子邮件,因此它们永远不会有itemId。
但是,约会和会议不是这种情况。创建会议后,经常会对其进行编辑,因为会议通常会重新安排时间,并添加更详细的议程等。
不幸的是,使用saveAsync来获取itemId的变通办法有一些缺点,正如您已经提到的那样:它非常具有侵入性,因为它将留下“幽灵”会议(因为用户现在不后悔保存约会/会议)并且它会导致spurious meeting update requests发送给参加者等。并且在Mac版Outlook中不起作用! -与VSTO / COM插件相比,此插件技术的最大卖点之一。
在我公司,我们曾多次尝试将现有的VSTO加载项移植到Office JS,但是每次我们都在这个确切的问题上停滞不前,因为缺点很多!
但是,一种方法-除了可能使用一些粗略的启发式方法外-我们已经思考,它是这样的:
1)通过EWS(或MS Graph),使用包含itemId的自定义加载项属性扩展每个用户(!)的每次会议(!)。有关如何从“外部”设置自定义属性的信息,请参见:https://stackoverflow.com/a/43140644/10752973。
2)打开外接程序后,查看custom属性是否存在。如果有custom属性,则它是一个现有的约会/会议(您将知道其itemId)。如果不存在,那就是新约会。
正如我所说,我们尚未实现它,但从理论上讲它可能会起作用。但这太简单了(麻烦又会加重Exchange服务器和应用程序本身的负担)。我们还需要有效地监视Exchange中的每个邮箱,以检测新创建的约会/会议,以便利用不需要复杂的自定义属性来扩展它们。
但是我希望这个答案可以说服Outlook Add-ins Team重新考虑添加对在约会/会议的撰写模式下获取itemId的支持。