Events Outlook加载项(日历事件):重复周期始终为空

Events Outlook加载项(日历事件):重复周期始终为空,events,null,calendar,outlook-web-addins,recurrence,Events,Null,Calendar,Outlook Web Addins,Recurrence,我有一个用于日历事件的Outlook加载项,带有一个任务窗格。从窗格中,我获得事件数据: date start: item.start.getAsync() date end: item.end.getAsync() recurrence: item.recurrence.getAsync() 日期是确定的,但重复周期总是空的(状态为“成功”),尽管我在事件中更改了重复周期 有什么问题吗 我正在使用开发Outlook 365 Web 谢谢 迭戈 编辑: 当重复周期发生变化时,

我有一个用于日历事件的Outlook加载项,带有一个任务窗格。从窗格中,我获得事件数据:

   date start: item.start.getAsync()
   date end: item.end.getAsync()
   recurrence: item.recurrence.getAsync()
日期是确定的,但重复周期总是空的(状态为“成功”),尽管我在事件中更改了重复周期

有什么问题吗

我正在使用开发Outlook 365 Web

谢谢

迭戈

编辑: 当重复周期发生变化时,我收到事件:

Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleRecurrenceChanged);

但是在handleRecurrenceChanged()中,递归始终为null…*

这个问题在OWA上已经解决。recurrence.getAsync()不应再返回null。

使用您在注释中给我的代码,我在循环发生更改时获得它:

  Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler, callback);
但是只有“handler”函数被调用,其中递归是有效的:console.log(JSON.stringify(eventarg.recurrence))

  • 为什么不调用回调函数
  • 为什么我不能用我的函数获得重复:
Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged,HandlerRecurrenceChange)

在本例中,调用了handleRecurrenceChange,但当我调用item.recurrence.getAsync()时,我得到的结果是result.value=null

如果在需要递归时调用item.recurrence.getAsync()也是一样的(我得到null)

如果可能的话,我希望在需要的时候获得重复(我可以正确地获得所有其他事件值),而不在更改时保存它

问候,


Diego

使用我的test taskpane.js,我做了以下测试:

  • 创建“新事件”

  • 更改重复周期(“每日”)

  • 打开任务窗格并在“Office.onReady()”方法中读取重复周期
    g_item.recurrence.getAsync
    -->recurrence:valid value('daily')//确定

  • 关闭任务窗格

  • 打开任务窗格并在“Office.onReady()”方法中读取重复周期
    g_item.recurrence.getAsync
    -->recurrence:valid value('daily')//确定

  • 关闭任务窗格

  • 将重复周期更改为“每周”

  • 打开任务窗格并在“Office.onReady()”方法中读取重复周期
    g_item.recurrence.getAsync
    -->recurrence:previous value('daily')//错误

  • ***如果任务窗格首次打开时“无重复”,请关闭任务窗格,将重复更改为“任何”,然后再次打开任务窗格-->重复:null

    我的“onReady”方法:

    Office.onReady(info => {
         g_item = Office.context.mailbox.item;
          if (!g_item.itemId) {
             g_item.saveAsync(function (result) {
                  g_item.recurrence.getAsync((asyncResult) => {
                      if (asyncResult.status !== Office.AsyncResultStatus.Failed)
                          console.log("Recurrence: " + JSON.stringify(asyncResult.value));
                  });
              });
          }
    });
    
    Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler);
    document.getElementById("button").onclick = onClick;
    

    我添加了一个同步处理程序和一个按钮。在“onReady”方法中:

    Office.onReady(info => {
         g_item = Office.context.mailbox.item;
          if (!g_item.itemId) {
             g_item.saveAsync(function (result) {
                  g_item.recurrence.getAsync((asyncResult) => {
                      if (asyncResult.status !== Office.AsyncResultStatus.Failed)
                          console.log("Recurrence: " + JSON.stringify(asyncResult.value));
                  });
              });
          }
    });
    
    Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler);
    document.getElementById("button").onclick = onClick;
    
    任务窗格打开时:

  • 将重复周期从“每日”更改为“每周”,并更改事件主题 -->重复处理程序被调用两次: a) 旧的重复值('daily')//错误? b) 新值('weekly')//好

    我的处理程序方法:

     function handler(eventarg) {
         console.log("handler. recurrence: " + JSON.stringify(eventarg.recurrence));
     }
    
  • 按我的按钮。定期跟踪具有旧值('daily'),但主题跟踪具有新值(与项目中的其他值一样,但具有定期…)


  • ***如果选择了重复,然后任务窗格处于打开状态,则onClick方法将正确读取该值。

    感谢您报告有关重复为空的问题。它已被列入我们的积压工作。很遗憾,我们现在没有时间分享,谢谢你的回复。那么我没有做错什么?不知怎的,我不能得到复发?你好,迭戈,迭戈,我们还在调查这个问题。同时,您可以使用GRAPH Api访问会议的重复性作为解决方法:您好,此链接用于安排重复性会议,不是吗?我还可以通过GRAPH Api获得现有会议的重复性吗?谢谢,item.recurrence.getAsync()仍然为null。asyncResult.value为NULL,尽管我在事件重复组合中选择了“每天”。。。我从item.XXX.getAsync()获得的所有其他值都正常。我正在Outlook 365上测试web@Diego您能告诉我们outlook-web-16.01.js的前几行吗?打开外接程序时,您将能够看到对此文件进行的网络调用(您可以在开发人员控制台中找到它)。前3-4行包含我们要验证的JS文件版本。很抱歉,我在控制台中看不到任何对outlook-web-16.01.JS的调用。无论是从Visual Studio启动Outlook web还是打开日历事件(我的加载项所在的位置)并使用加载项选项。。。我可以看到我的加载项跟踪,和一些js调用,但不是这个。。。它确切出现在什么时候?@Diego每当打开外接程序时都会获得它。能否关闭并重新打开加载项,然后检查是否可以看到获取outlook web JS文件的调用?抱歉,我恐怕看不到JS调用。我不确定什么是“打开外接程序”:我从VisualStudio项目中测试外接程序,该项目使用Outlook web在浏览器中打开一个新选项卡。然后我可以打开控制台,但我看不到outlook web-***.js跟踪,也看不到当我转到“日历”和(在一个新事件中)使用我的加载项时……我们无法在我们这边重现此问题。您能为我们提供一个相同的插件示例吗?另外,您能否在复制问题时共享屏幕的视频记录?下面是为了更好地理解处理程序和回调之间的区别。1.处理程序->将在RecurrenceChange 2上调用。callback->将在添加处理程序文档链接后立即调用:您能给我一个电子邮件地址向您发送文件吗?谢谢。请在上提供您的样品插件admin@a830edad9050849405E20081103.onmicrosoft.com?我们无法访问您的文件。Outlook会阻止您上载的JS文件。您可以尝试重新发送文件,创建一个zip文件,或者将文件托管在某个地方并发送URL。我重新发送了电子邮件,请告诉我您是否可以访问这些文件。谢谢