【发布时间】:2014-04-17 16:50:18
【问题描述】:
我在将参数从 SSJS 操作传递到 LS 后端代理时遇到问题。在 SSJS 我有这个代码:
var doc:NotesDocument = database.createDocument();
doc.appendItemValue("DeleteDocs",arr);
doc.appendItemValue("Form","frmWFSDeleteDocs");
var UNID = doc.getUniversalID();
dBar.info(UNID, "Doc ID");
doc.appendItemValue("ParentID",UNID);
doc.save();
var agent:NotesAgent = database.getAgent("WFSDeleteDocs");
dBar.info(doc.getItemValueString("ParentID"));
agent.runOnServer(doc.getItemValueString("ParentID"))
dBar 信息中显示的 UNID 是正确的文档 UNID。 在我的 LS 代理中,我有以下代码:
Set agent = s.CurrentAgent
NoteId = agent.ParameterDocID
Print "Notes Param " + NoteID
Set thisDoc = db.Getdocumentbyunid(NoteId)
在日志中 NoteID 不是 UNID 而是 HTTP 服务器:代理打印:Notes 参数 5A3439
当然 getDocumentbyunid 失败了。我对帮助的理解是,这应该与我在 runOnserver 中插入的参数相同。 我错过了什么
【问题讨论】:
-
您应该传递 NoteID,而不是 UNID,但我想不出您发布的代码为什么会存储 NoteID...
-
据我所知,您正在创建一个新文档,然后检索该文档的 unid,然后您才第一次保存它,对吗?我手头没有多米诺骨牌设计师,但据我所知,在第一次保存文档之前没有创建 final unid,所以这可能是传递的 id 不是一个你期望的。就像蒂姆一样,我无法猜测为什么 ID 可能会发生变化。您从代理代码中看到的格式为 noteId,不过
标签: parameters xpages agent xpages-ssjs