如果从数据源获取NotesDocument对象,更改一些字段,然后保存数据源,而不直接保存NotesDocument,则不会保存更改。
例如:
var doc:NotesDocument = document1.getDocument(true);
doc.replaceItemValue("TestField", "Test");我使用简单的操作保存数据源,文档中的字段"TestField“为空。
如何使用背景文档中的更改更新数据源?
发布于 2015-08-25 20:17:02
史蒂夫是对的,如果您想更新后端文档并将其反映在DominoDocument包装数据源上,则需要保存。
但是根据你的回答,你为什么要更新后端文档呢?用document1.replaceItemValue("TestField", "test")更新DominoDocument似乎更有意义。
在queryNewDocument中,不存在后端文档。在document1.save()期间,代码将有效地调用database.createDocument(),然后将所有字段从document1写入到新创建的文档对象上。如果之前创建了一个文档对象,那么您就会遇到在对Steve的答复的评论中出现的问题--如果取消了保存,需要删除Document对象。
发布于 2015-08-25 17:33:37
在SSJS中,必须显式保存后端文档。要做到这一点,只需添加一行以保存文档更改。我不知道为什么这个简单的操作不适用于您,但是添加这一行,您的“测试字段”将被更新。
doc.save();发布于 2015-08-26 15:25:34
我想将Authors字段添加到文档中,并在queryNewDocument事件中这样做。
document1.replaceItemValue("Authors", authors);
var doc:NotesDocument = document1.getDocument(true);
if (doc != null) {
var Authors:NotesItem = doc.getFirstItem("Authors");
Authors.setAuthors(true);
}但是,如果我不保存with doc.save()并且只在末尾执行document1.save(),那么字段'Authors‘将保留一个通常的文本字段。我不想在用户单击“保存”按钮之前保存文档。
是否有更好的方法将作者字段添加到新文档中?
https://stackoverflow.com/questions/32210284
复制相似问题