NotesException: обязательный аргумент не был предоставлен - PullRequest
0 голосов
/ 18 января 2019

Мой 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;
}

Возможно, я ошибаюсь. Я хочу сохранить документ, данные которого привязаны к базе данных профилей пользователей, но если я отправлю его, мне нужно перенаправить его на другую страницу. Вот почему я использую ссылку, но мне трудно пытаться сохранить документ.

1 Ответ

0 голосов
/ 18 января 2019

Был ли document1 сохранен до вызова этого кода?Если нет, то это не в базе данных сервера для извлечения через getDocumentByID().

Я предполагаю, что эта строка была скопирована сюда неправильно, потому что «noteID» не является NoteID или переменной, содержащей NoteID,это строка.

doc = thisDB.getDocumentByID("noteID");

...