无法在Xpages中获取iNotes日历数据

时间:2015-06-08 15:26:59

标签: xpages

我无法让iNotesCalendar控件正常工作。

它适用于tearoom.nsf。但如果我将控件放在普通的mail.nsf中,我总会得到一个空白的日历。

我可以通过网络浏览器获取JSON。看起来像这样:

enter image description here

我的代码是:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xe:restService
        id="restService1"
        pathInfo="/inoteslegacyjson"
        preventDojoStore="false">
        <xe:this.service>
            <xe:calendarJsonLegacyService
                viewName="calendarOutline"
                var="entry"
                contentType="text/plain"
                colCalendarDate="CalDateTime"
                colStartTime="StartDateTime"
                colEndTime="EndDateTime"
                colSubject="For"
                colChair="Chair">
            </xe:calendarJsonLegacyService>
        </xe:this.service>
    </xe:restService>
    <xp:br></xp:br>
    <xe:calendarView
        id="calendarView1"
        jsId="cview1"
        type="#{javascript:sessionScope.dateRangeActions_selectedValue}"
        storeComponentId="restService1"
        style="width:100%">
        <xe:this.summarize>
            <![CDATA[#{javascript:summarize = sessionScope.calendarFormatActions_selectedValue == "true";}]]>
        </xe:this.summarize>
    </xe:calendarView>
</xp:view>

2 个答案:

答案 0 :(得分:2)

您希望将日历视图显示为iNotesCalendar,以用于基于mail.ntf的普通邮件数据库。

您的问题的示例是针对teamroom.nsf设计并使用的。它使用专门的视图“calendarOutline”。所有以“col”开头的calendarJsonLegacyService属性都定义了该视图的特定列名。因此,您无法真正使用此示例来阅读邮件数据库的“正常”日历视图。

幸运的是,所有calendarJsonLegacyService属性默认值都专用于“正常”日历视图“($ Calendar) | 日历“邮箱。

以这种方式更改您的代码:

  • 删除所有“col ...”参数
  • viewName属性更改为“日历”
  • 使用值“yourServerName !! pathToMailDatabase.nsf”添加属性databaseName

你的restService会是这样的:

  <xe:restService
      id="restService1"
      pathInfo="/inoteslegacyjson"
      preventDojoStore="false">
      <xe:this.service>
         <xe:calendarJsonLegacyService
            viewName="Calendar"
            contentType="text/plain"
            databaseName="Server1!!mail.nsf">
         </xe:calendarJsonLegacyService>
      </xe:this.service>
   </xe:restService>

答案 1 :(得分:0)

xe:restService和xe:calendarView的代码看起来与我使用的类似。

我在使用xe:calendarView和Internet Explorer 11时遇到了问题。问题是日历是空的 - 与您的体验完全一样。为了使它与IE11一起使用,我通过将X-UA-Compatible设置为“IE = 10”来强制IE11充当IE10。