提供 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 块即可验证编码问题。
我正在尝试使用 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 块即可验证编码问题。