使用搜索的xpages为我提供了[在网页上]无法理解的查询和notes客户端
在客户服务器端发生了一些奇怪的错误。每次我访问该页面时,它给出的错误是查询不可理解的。在我自己的服务器测试数据库中。一切都好 我认为这与数据库的ft索引有关,但我不确定哪部分是错误的 脚本是:使用搜索的xpages为我提供了[在网页上]无法理解的查询和notes客户端,xpages,xpages-ssjs,Xpages,Xpages Ssjs,在客户服务器端发生了一些奇怪的错误。每次我访问该页面时,它给出的错误是查询不可理解的。在我自己的服务器测试数据库中。一切都好 我认为这与数据库的ft索引有关,但我不确定哪部分是错误的 脚本是: revname = @Name('[CN]', @UserName()) var dep=[]; var vw:NotesView = database.getView("Reviewer sort by Name"); var dc : NotesDocumentCollection = vw.g
revname = @Name('[CN]', @UserName())
var dep=[];
var vw:NotesView = database.getView("Reviewer sort by Name");
var dc : NotesDocumentCollection = vw.getAllDocumentsByKey(revname,true)
var doc:NotesDocument = dc.getFirstDocument()
var tmpDoc:NotesDocument
while (doc != null) {
tmpDoc = dc.getNextDocument();
dep.push(doc.getItemValueString("dept"))
doc.recycle();
doc = tmpDoc;
}
return "[dep]=" + dep
搜索结果应返回[dep]=信息技术(I.T.)
错误列表
com.ibm.xsp.FacesExceptionEx: Notes error: Query is not understandable
com.ibm.xsp.model.domino.viewnavigator.AbstractViewCollectionNavigator.readEntries(Unknown Source)
com.ibm.xsp.model.domino.wrapped.DominoViewEntryArray.readEntries(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataContainer.readViewEntries(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataContainer.getRowCount(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataModel.getRowCount(Unknown Source)
com.ibm.xsp.model.TabularDataModel.isRowAvailable(Unknown Source)
javax.faces.component.UIData.isRowAvailable(Unknown Source)
javax.faces.component.UIData.setRowIndex(Unknown Source)
com.ibm.xsp.component.UIDataEx.setRowIndex(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelRows(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.ViewPanelRenderer.encodeBegin(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(Unknown Source)
javax.faces.component.UIComponentBase.encodeBegin(Unknown Source)
javax.faces.component.UIData.encodeBegin(Unknown Source)
com.ibm.xsp.component.UIDataEx.encodeBegin(Unknown Source)
com.ibm.xsp.component.UIViewPanel.encodeBegin(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.component.UIViewRootEx._renderView(Unknown Source)
com.ibm.xsp.component.UIViewRootEx.renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.doRender(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl._renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.renderView(Unknown Source)
com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.phase(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
com.ibm.xsp.controller.FacesControllerImpl.render(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.service(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.service(Unknown Source)
com.ibm.xsp.webapp.DesignerFacesServlet.service(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.access$0(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceThread.run(Unknown Source)
NotesException: Notes error: Query is not understandable
lotus.domino.local.View.FTSearchSorted(Unknown Source)
com.ibm.xsp.model.domino.viewnavigator.FTViewNavigatorEx.createCollection(Unknown Source)
com.ibm.xsp.model.domino.viewnavigator.AbstractViewCollectionNavigator.readEntries(Unknown Source)
com.ibm.xsp.model.domino.wrapped.DominoViewEntryArray.readEntries(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataContainer.readViewEntries(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataContainer.getRowCount(Unknown Source)
com.ibm.xsp.model.domino.DominoViewDataModel.getRowCount(Unknown Source)
com.ibm.xsp.model.TabularDataModel.isRowAvailable(Unknown Source)
javax.faces.component.UIData.isRowAvailable(Unknown Source)
javax.faces.component.UIData.setRowIndex(Unknown Source)
com.ibm.xsp.component.UIDataEx.setRowIndex(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelRows(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.ViewPanelRenderer.encodeBegin(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(Unknown Source)
javax.faces.component.UIComponentBase.encodeBegin(Unknown Source)
javax.faces.component.UIData.encodeBegin(Unknown Source)
com.ibm.xsp.component.UIDataEx.encodeBegin(Unknown Source)
com.ibm.xsp.component.UIViewPanel.encodeBegin(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.component.UIViewRootEx._renderView(Unknown Source)
com.ibm.xsp.component.UIViewRootEx.renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.doRender(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl._renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.renderView(Unknown Source)
com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.phase(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
com.ibm.xsp.controller.FacesControllerImpl.render(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.service(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.service(Unknown Source)
com.ibm.xsp.webapp.DesignerFacesServlet.service(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.access$0(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceThread.run(Unknown Source
计算字段:
dep
不是数组吗?您希望它与[dep]=
串联输出什么
必须根据FT搜索语法生成字符串。对于每个值,必须重复“[dep]=”+doc.getItemValueString(
),并用或-或和运算符连接每个条件(您知道自己的逻辑).为了更安全起见,您还应该在=
符号后用双引号括起每个值,尽管这不是严格的强制要求…很大程度上取决于手头的值
e、 g.:[dep]=“技术”或[dep]=“项目交付单位”或[dep]=“管理”
不是一个数组吗?您希望它与[dep]=
串联输出什么
必须根据FT搜索语法生成字符串。对于每个值,必须重复“[dep]=”+doc.getItemValueString(
,并用或-或和
运算符连接每个条件(您知道您的逻辑).为了更安全起见,您还应该在=
符号后用双引号括起每个值,尽管这不是严格的强制要求…很大程度上取决于手头的值
e、 g.:[dep]=“技术”或[dep]=“项目交付单位”或[dep]=“管理”
您很可能在生产中得到多个文档。将查询字符串发送到debug以查看其实际内容。将调用包装在Try catch中并返回信息以查看您正在处理的内容我尝试将脚本放在计算字段中,结果出来:[dep]=信息技术(I.T.)对不起,stwissel,我不明白如何对查询字符串进行调试。因为我知道调试函数只允许使用[tool]调试lotus脚本?问题附加附件的一些更新。您很可能在生产中获得多个文档。将查询字符串发送到debug以查看其实际内容。将调用包装在Try catch中并返回信息以查看您正在处理的内容我尝试将脚本放在计算字段中,结果出来:[dep]=信息技术(I.T.)对不起,stwissel,我不明白如何对查询字符串进行调试。因为我知道调试函数只允许使用[tool]调试lotus脚本?一些带有附件的更新附加到问题上。我从继承的应用程序中了解到,带有空格的值通常会导致问题。如果您测试的值只有一个单词,则解析器可以正常工作。它可以补偿查询的语义不正确。但是当值中有空格时,如dep=informationtechnology(I.T.)
,最好语义正确,并根据字符串值测试字符串字段,代码中的字符串值用双引号括起来(尽管LS是按语法编码的,允许使用{和|等变体)。如果您处理的字段值是作为开发人员您无法控制的,那么在传递的值中,可能还值得转义潜在的双引号。谢谢Paul。在搜索字符串上添加双引号将解决此问题。我从继承的应用程序中了解到,带空格的值通常会导致问题。如果val您测试的ue只是一个单词。它可以补偿语义不正确的查询。但是当值中有空格时,如dep=Information Technology(I.T.)
,最好语义正确,并根据字符串值测试字符串字段,代码中的字符串值用双引号括起来(尽管LS是按语法编码的,允许使用{和|等变体)。如果您处理的字段值是作为开发人员无法控制的,那么在传递的值中,可能还需要避免使用双引号。谢谢Paul。在搜索字符串上添加双引号将解决此问题。