提供 Notes 日历存储的 xPages REST 服务

xPages REST service to feed a Notes Calendar Store

我正在尝试使用 RESTservice 从资源预留数据库中获取数据,并通过资源名称提供具有过滤功能的日历。 所有 运行 都很好,而我使用没有过滤器的休息服务

<xe:restService id="restService2" pathInfo="/inoteslegacyjson">
    <xe:this.service>
        <xe:viewJsonLegacyService count="30000"
            databaseName="${compositeData.databaseName}"
            viewName="${compositeData.viewName}" defaultColumns="false"
            var="entry" contentType="text/plain" compact="false">
            <xp:this.columns>
                <!-- Cal Date -->
                <xe:restViewColumn name="4"
                    columnName="StartDateTime">
                </xe:restViewColumn>
                <!-- Icon -->
                <xe:restViewColumn name="9" columnName="9"></xe:restViewColumn>
                <!-- Start Date -->
                <xe:restViewColumn name="4"
                    columnName="StartDateTime">
                </xe:restViewColumn>
                ...

但是当我输入这样的搜索语法时:

<xe:this.search><![CDATA[#{javascript:
var isResourceFiltered:Boolean;
var strTmp:String=viewScope.resourceName;
isResourceFiltered=(strTmp.compareToIgnoreCase("All")!=0);
print ("Is result filtered:" + isResourceFiltered + ", filter: "+ strTmp);

if (!isResourceFiltered) {
    return "";
}

return "ResourceName=" + viewScope.resourceName}]]></xe:this.search>

我在控制台中看不到任何关于 Print() 的消息,并且在页面中出现一些错误:

calendarDataStore: RequestError: 无法加载 /admin/resource.nsf/ResourceCalendarFiltered.xsp/inoteslegacyjson 状态:500

或错误400

如何根据资源名称过滤日历视图 (以及如何制作时间片以仅获取 UI 中显示的时间段以避免计数 =“30000”?)

我做了 Java 休息服务并使用 FT 搜索在两个日期范围之间进行搜索。您也可以将按资源名称搜索到该 FT 搜索中。在我的例子中,我没有使用视图,而是在 Java 中进行了查找,并在我的代码中构建了返回的文本(以使用基于 Web 的日历 FullCalendar)。效果好而且速度快。

viewScope.resourceName 可能设置得不够早,无法使用。这可以解释缺少打印语句和 calendarDataStore 返回的错误 500。

尝试添加一些错误处理来验证是组件问题还是代码错误。

XPages OpenLog Logger(或 OpenNTF Domino API 中的相应代码)将捕获未捕获的异常,因此无需 try/catch 块即可验证编码问题。