我有一个Lotus Notes应用程序,它实际上包含一个模板,其中包含所需的所有表单,视图和代理。它还需要将此模板中的一些设计元素(自定义表单和我们自己的文档类型的视图)复制到邮件模板,因此在定期刷新后,所有用户都可以使用它。
应用程序的工作方式如下:在Domino服务器上创建应用程序数据库(从我提供的模板派生)。根据http请求在此数据库中运行的代理在用户的邮件数据库中创建“自定义”文档。
然后,在客户端,用户可以使用我们的视图来显示此文档。
目前,部署过程如下:
现在,我想简化管理员的工作,自动复制自定义表单和视图,以及创建邮件模板按钮。
我知道如何从NotesScript,JavaScript,Java中做到这一点吗?
答案 0 :(得分:1)
这听起来可以用于DXL,我认为你可以使用LotusScript和Java来完成它。
有些事情应该用Java来实现:
public class RenderDesign extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
DxlImporter myimporter = session.createDxlImporter();
try {
myimporter.setDesignImportOption(myimporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
myimporter.importDxl(this.getDxl(), agentContext.getCurrentDatabase());
}
catch (Exception e) {
System.out.println(this.getDxl());
System.out.println(myimporter.getLog());
}
} catch(Exception e) {
e.printStackTrace();
}
}
然后用DXL构造一个字符串。使用工具 - > DXL实用程序 - >导出(或查看器)以检查您要添加或编辑的设计元素:
public String getDxl(String agentname, String replicaid) {
return "<?xml version='1.0' encoding='utf-8'?>"+
"<view name='(auto-view)'> "+/* ... */"</view>";
}
请注意,DXL导入程序不是强大且容错的:可以使Developer客户端在有效XML的输入上崩溃,并且与DTD一致。例如,尝试在字段上设置fieldhint=""
。在开发过程中牢记这一点。
答案 1 :(得分:1)
试着看看这些想法---&gt; http://www.openntf.org/projects/pmt.nsf/3f2929edba6ef2808625724c00585215/9fe3084cab2f38ad8625754600078af6!OpenDocument
http://www.benpoole.com/80256B44004A7C14/articles/simpledxl
为了避免某些DXL已知问题,您可以尝试导出&amp;以编码二进制格式导入。
**更新
在仔细观察你的情况之后,我认为最简单的方法是使用模板继承。因此,您可以将自定义模板中的元素复制到Mail模板中,并确保将元素设置为从自定义模板继承。