Xpages:Java方法使用OpenNTF ODA不保存文档

Xpages:Java方法使用OpenNTF ODA不保存文档,java,xpages,Java,Xpages,我在Xpages中采用了OpenNTFODAForJava。到目前为止真的很棒,我想我刚刚接触到了表面 我正在调用一个Java方法并希望保存一个文档。方法正在被调用,我没有看到任何错误,但文档从未更新 文档正在“保存”,但它只是从视图中消失 import lotus.domino.NotesException; import org.openntf.domino.*; import org.openntf.domino.utils.Factory; import org.openntf.dom

我在Xpages中采用了OpenNTFODAForJava。到目前为止真的很棒,我想我刚刚接触到了表面

我正在调用一个Java方法并希望保存一个文档。方法正在被调用,我没有看到任何错误,但文档从未更新

文档正在“保存”,但它只是从视图中消失

import lotus.domino.NotesException;

import org.openntf.domino.*;
import org.openntf.domino.utils.Factory;
import org.openntf.domino.Database;
import org.openntf.domino.Session;
import java.io.Serializable;

public class Build implements Serializable  {
    private static final long serialVersionUID = 1L;

    public void process1(String docID) {

        try {

        System.out.println("Got here.");
        Session session = Factory.getSession();
        Database thisDB = session.getCurrentDatabase();
        Database PCDataDB = session.getDatabase(thisDB.getServer(), "scoApps\\PC\\PCData.nsf", false);
        Document thisDoc = PCDataDB.getDocumentByUNID(docID);   
        Item itm = thisDoc.replaceItemValue("status",2, true);
        thisDoc.save(true,false);
        System.out.println("Got here.");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我怀疑文档实际上正在保存,但是在文档上设置了一个值,这意味着它被排除在您正在查看的视图之外


您可以创建“所有文档”视图。将公式设置为选择@All。为表单添加一列,为上次编辑的日期添加一列,设置适当的排序选项,您应该能够找到该文档,并查看它被从视图中排除的原因。

我怀疑该文档实际上正在保存,但在文档上设置一个值意味着从您正在查看的视图中排除该文档


您可以创建“所有文档”视图。将公式设置为选择@All。为表单添加一列,为上次编辑的日期添加一列,设置适当的排序选项,您应该能够找到该文档,并查看它被排除在视图之外的原因。

这是我的疏忽。代码将字段“status”从1更改为2,但我最初设置字段时,它是文本,而不是数字。所以我的文件从所有的视图中消失了。当我听从罗布的建议,查看所有文件时,很容易看出发生了什么

这是我的疏忽。代码将字段“status”从1更改为2,但我最初设置字段时,它是文本,而不是数字。所以我的文件从所有的视图中消失了。当我听从罗布的建议,查看所有文件时,很容易看出发生了什么

它是否打印出所有sysout语句?我不知道那里会有什么问题。我没有为replaceItemValue()使用第三个参数,但它消失的事实表明这并没有抛出错误。查看代码,我看不出代码中有错误,我已经在演示数据库中使用了当前的ODA。它正确地设置为摘要字段,并且该值显示在视图的列中。可能值得检查org.openntf.0.0.log以再次检查ODA本身是否抛出错误。我也从未使用过第三个参数,尽管我怀疑这是问题所在。我通常也不会创建一个“Item itm”对象来仅仅写一个值。如果你不打算用“itm”做任何事情,那么你就不需要它了。还有别的事情。可能是罗伯·梅森的建议。我还建议安装xpages日志读取器,它可以打印系统语句。我只是加入了第三个parm,看看它是否有不同。奇怪的是,当我使用调试器时,我可以看到文档,但没有看到应该看到的字段。它是否打印出所有sysout语句?我不知道那里会有什么问题。我没有为replaceItemValue()使用第三个参数,但它消失的事实表明这并没有抛出错误。查看代码,我看不出代码中有错误,我已经在演示数据库中使用了当前的ODA。它正确地设置为摘要字段,并且该值显示在视图的列中。可能值得检查org.openntf.0.0.log以再次检查ODA本身是否抛出错误。我也从未使用过第三个参数,尽管我怀疑这是问题所在。我通常也不会创建一个“Item itm”对象来仅仅写一个值。如果你不打算用“itm”做任何事情,那么你就不需要它了。还有别的事情。可能是罗伯·梅森的建议。我还建议安装xpages日志读取器,它可以打印系统语句。我只是加入了第三个parm,看看它是否有不同。奇怪的是,当我使用调试器时,我可以看到文档,但我没有看到我应该看到的字段。我只是补充了这个答案,因为我已经在同一条船上了,结果好长时间都在拔头发,试图找到它的底部。我只是补充了这个答案,因为我已经在同一条船上了,最后我把头发拔了好长时间,试图弄清楚到底。