我有一个内置到 ssjs 对象中的自定义文档流程。当我在阅读模式下单击文档中的编辑按钮时,我调用在后端文档中设置锁定日期/时间和锁定所有者的方法,然后返回 true。然后可以使用 ChangeDocumentMode 简单动作将文档更改为编辑模式。但是,当我第一次保存文档时(例如使用简单的操作),它会创建一个冲突文档。前端文档很可能不知道后端文档修改并保存我在进入编辑模式之前所做的。
如果我更改此过程以便让我的文档锁定代码设置两个后端文档字段,然后使用 context.redirectToPage,文档将打开到编辑模式并从 ui 保存它不会创建任何冲突文档。但是,如果在使用我的代码解锁文档后,我使用打开页面简单操作转到“上一页”以退出文档,它只会返回阅读模式而不是实际关闭文档。我确信最初的 redirectToPage 破坏了历史并导致了这个问题。
问题:有没有人建议我如何在进入编辑模式之前锁定文档,进入编辑模式,保存而不会导致文档冲突,并且仍然能够使用“打开页面”简单操作退出(解锁文档后) ?
以下是锁定相关代码的示例,包括进入编辑模式的代码:
thisDoc.replaceItemValue("LockOwner",context.getUser().getCommonName());
thisDoc.replaceItemValue("LockDate",session.createDateTime(@Now()));
thisDoc.save();
var url = view.getPageName()+"?action=editDocument&documentId="+thisDoc.getNoteID();
context.redirectToPage(url);