gpt4 book ai didi

java - DocumentCollection 计数为 5 但只获取 1 个文档

转载 作者:行者123 更新时间:2023-11-30 07:03:10 24 4
gpt4 key购买 nike

在 IBM Lotus Domino 中,我构建了一个 Java 代理。在这个代理中,我得到一个具有 orderlines 的 View :

View orderLinesView = CurrentDatabase.getView("OrderLinesOnId");

该 View 有一个排序列:ID_Order,它也已分类。

我执行了以下操作来获取 View 中具有相同 ID_Order 的所有文档:

 Vector keyRegel = null;
keyRegel = new Vector();
keyRegel.add(orderDocument.getItemValueString("ID_Order"));
DocumentCollection orderLineCollection = orderLinesView.getAllDocumentsByKey(keyRegel, true);

现在我想循环遍历所有文档并打印描述:

System.out.println("Count orderRegelcollection:" + 
Document orderLineDocument = orderLineCollection.getFirstDocument();

while (orderLineDocument != null) {
System.out.println("description " + orderLineDocument.getItemValueString("description"));
orderLineDocument = orderLineCollection.getNextDocument();
}

运行时,它会打印 1 个文档,并在第一个循环后完成。然而,在我看来,我清楚地看到 5 个具有相同 ID_Order 的文档。奇怪的是,它只需要 View 中的最后一个文档(当我在 ID_Order 上搜索时)

enter image description here

完整的代码是这样的:

   View relationsView = dbRelatie.getView("Relations");;
Document relationDocument = relationsView.getFirstDocument();
while (relationDocument != null) {

Vector key = null;
key = new Vector();
key.add("");
key.add(relationDocument.getItemValueString("getDebtor"));
DocumentCollection orderDocumentCollection = TotalOrdersView.getAllDocumentsByKey(key, true);
Document orderDocument = orderDocumentCollection.getFirstDocument();

while (orderDocument != null) {

然后我得到了订单..

最佳答案

您的 while 循环永远不会获取下一个文档。

在 while 循环中将最后一行更改为

orderLineDocument = orderLinesView.getNextDocument();

另外,或者因为您已经建立了一个集合。您可以使用它来获取下一个文档:

orderLineDocument = orderLineCollection.getNextDocument();

从文档来看,示例类如下所示。此示例获取数据库中的所有文档并创建 DocumentCollection。您的代码与下面的示例之间的区别在于您是从 View 创建集合。尽管如此,这个方法应该也适合你。

This agent gets all the documents in a database.

import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.getAllDocuments();
Document tmpdoc;
Document doc = dc.getFirstDocument();
while (doc != null) {
System.out.println(doc.getItemValueString("Subject"));
tmpdoc = dc.getNextDocument();
doc.recycle();
doc = tmpdoc;
}
} catch(Exception e) {
e.printStackTrace();
}
}
}

Documentation for DocumentCollection

关于java - DocumentCollection 计数为 5 但只获取 1 个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com