【问题标题】:How can i know that a meeting is already created or not?我如何知道会议是否已创建?
【发布时间】:2018-11-27 09:43:35
【问题描述】:

有没有一种方法可以确定我打开加载项(撰写模式)的当前会议窗口是来自新会议还是来自我打开以进行编辑的已创建会议?

【问题讨论】:

  • 目前还没有 API 可以显示此信息。您需要知道差异的场景是什么?
  • 我需要获取 itemId 以便我可以从 EWS api 调用 getItem 方法,目前我可以获得 itemId 的唯一方法是从 OfficeJs 库中调用 saveAsync 方法。如果会议已创建,则此方法返回 itemId,但如果这是新会议窗口,则创建新会议。所以我只想在会议处于编辑模式时调用这个方法。

标签: outlook-addin office-js outlook-web-addins


【解决方案1】:

目前,您请求的此功能不是产品的一部分。我们在user-voice 页面上跟踪 Outlook 加载项功能请求。请在此处添加您的请求。当我们进行规划过程时,会考虑用户语音的功能请求。

【讨论】:

    【解决方案2】:

    有很多相关的用例:

    我相信许多插件的目的是增加用户当前正在阅读或撰写的项目(例如约会/会议或电子邮件)。这通常在第 3 方系统中通过将 Exchange 中的会议与单独系统中的“记录”相关联来完成。要确定当前会议是否已与“记录”相关联(并可能显示其内容),您需要一种明显识别会议的方法。如果是新会议,您知道没有“记录”,但如果是现有会议,您需要能够识别它。在撰写模式下公开 itemId 将满足此需求。顺便说一句,该功能已经在用户语音上requested

    我只能推测为什么微软还没有添加该功能,但我认为 Office JS 一开始就支持电子邮件。电子邮件的撰写模式几乎专门用于创作新的(未发送的)电子邮件,因此它们永远不会有 itemId。

    但是,约会和会议并非如此。它们在创建后经常被编辑,因为会议经常被重新安排,增加了更详细的议程等。

    不幸的是,使用 saveAsync 获取 itemId 的解决方法有几个缺点,正如您已经提到的那样:它非常具有侵入性,因为它会留下“幽灵”会议(因为用户现在不会后悔保存约会/会议)和它会导致将spurious meeting update requests 发送给与会者等。它在 Outlook for Mac 中不起作用! - 与 VSTO/COM 插件相比,此插件技术的一大卖点。

    在我的公司,我们曾多次尝试将现有的 VSTO 加载项移植到 Office JS,但每次我们都在这个确切的问题上停滞不前,因为缺点对很多人来说都是简单的!

    然而,一种方法——除了可能使用一些粗略的启发式——我们已经考虑过,是这样的:

    1) 通过 EWS(或 MS Graph),使用包含 itemId 的自定义加载项属性来扩充每个用户(!)的每个会议(!)。请参阅:https://stackoverflow.com/a/43140644/10752973,了解如何从“外部”设置自定义属性。

    2) 打开加载项时,查看自定义属性是否存在。如果自定义属性在那里,它是一个现有的约会/会议(你会知道它的 itemId)。如果没有,那就是新约会。

    正如我所说,我们还没有实现它,但理论上它可能会起作用。但对于如此简单的事情来说,这是一个巨大的麻烦(并且会给 Exchange 服务器和应用程序本身带来负担)。实际上,我们还需要监控 Exchange 中的每个邮箱,以检测新创建的约会/会议,以便使用自定义属性来增强它们,这是不必要的复杂。

    但我希望这个答案可以说服Outlook Add-ins Team 重新考虑添加对在约会/会议的撰写模式下获取 itemId 的支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      相关资源
      最近更新 更多