我的XPage收集了用于在另一个Domino数据库中填充文档的信息。我使用链接按钮(因此提交后可以打开另一个XPage)。 onClick代码如下:

 var rtn = true
 var util = new utilities()
 var hostURL = configBean.getValue("HostURL");
var userAttachment;
//set up info needed for checking duplicates
var attachName=getComponent("attachmentIdentifier").getValue();
var serialNbr = getComponent("serialNumber").getValue();
userAttachment = user+"~"+attachName;
var userSerial = user+"~"+serialNbr;
//Done setting info needed
//check for duplicates
rtn = utilBean.checkAttachmentName(userAttachment, userSerial)
//done
if(rtn==true){
 var doc:Document = document1;
 dBar.info("ALL IS GOOD");
 var noteID:String=document1.getNoteID();
 dBar.info("Calling saveNewAttachment using NoteID " + noteID )
 rtn=utilBean.saveNewAttachment(session,noteID );  //<<< I get error here
 dBar.info("rtn = " + rtn)
 return "xsp-success";
 view.postScript("window.open('"+sessionScope.nextURL+"')")
}else if (rtn==false){
 errMsgArray = utilBean.getErrorMessages();
 for(err in errMsgArray){
 //for (i=0; i < errMsgArray.size(); i++){
     dBar.info("err: "+ err.toString());
     if (err== "nameUsed"){
         //send message to XPXage
         facesContext.addMessage(attachmentIdentifier.getClientId(facesContext) , msg(langBean.getValue("duplicateName")));
     }
         if(err=="serialUsed"){
             //send message to XPXage
             facesContext.addMessage(serialNumber.getClientId(facesContext) , msg(langBean.getValue("duplicateSerial")));
     }
 }

 return "xsp-failure";
}


而传递错误的java代码是这样的

public boolean saveNewAttachment(Session ses, String noteID)
throws NotesException {
debugMsg("Entering saveNewAttachment and  NOTEID = "+noteID);
// this is used when the user saves an attachment to to the
// user profiles db
boolean rtn = false;
Document  doc;
ConfigBean configBean = (ConfigBean)
ExtLibUtil.resolveVariable(FacesContext.getCurrentInstance(),
"configBean");
String dbName = (String) configBean.getValue("WebsiteDbPath");
debugMsg("A");
Database thisDB = ses.getDatabase(ses.getServerName(), dbName, false);
String value;
try {
debugMsg("noteID:  "+noteID);


下一行引发NotesException错误

doc = thisDB.getDocumentByID("noteID");
debugMsg("C");
} catch (Exception e) {
debugMsg("utilitiesBean.saveAttachment: " + e.toString());
e.printStackTrace();
System.out.println("utilitiesBean.saveAttachment: " + e.toString());
throw new RuntimeException("utilitiesBean.saveAttachment: "
    + e.toString());
}
 return rtn;
}


我可能正在解决这个错误。我想保存数据绑定到User Profile数据库的文档,但是如果提交,则需要将其重定向到另一个页面。这就是为什么我使用链接的原因,但是,我很难尝试保存文档。

最佳答案

在调用此代码之前是否已保存document1?如果不是,则它不在后端数据库中,无法通过getDocumentByID()进行检索。

我假设此行已被错误地复制到此处,因为“ noteID”不是NoteID或持有NoteID的变量,而是一个字符串。

doc = thisDB.getDocumentByID("noteID");

10-08 01:08