Scripting Lotus Notes-编写设计元素的创建脚本
我有一个lotusnotes应用程序,它实际上由一个模板组成,其中包含所需的所有表单、视图和代理。它还需要将此模板中的一些设计元素(自定义表单和我们自己类型文档的视图)复制到邮件模板中,因此在定期刷新之后,所有用户都可以使用它 应用程序的工作原理如下:应用程序数据库(源自我提供的模板)是在Domino服务器上创建的。在该数据库中运行的代理根据http请求在用户的邮件数据库中创建“自定义”文档 然后,在客户端,用户可以使用我们的视图显示此文档 目前,部署过程如下所示:Scripting Lotus Notes-编写设计元素的创建脚本,scripting,templates,lotus-notes,lotus-domino,Scripting,Templates,Lotus Notes,Lotus Domino,我有一个lotusnotes应用程序,它实际上由一个模板组成,其中包含所需的所有表单、视图和代理。它还需要将此模板中的一些设计元素(自定义表单和我们自己类型文档的视图)复制到邮件模板中,因此在定期刷新之后,所有用户都可以使用它 应用程序的工作原理如下:应用程序数据库(源自我提供的模板)是在Domino服务器上创建的。在该数据库中运行的代理根据http请求在用户的邮件数据库中创建“自定义”文档 然后,在客户端,用户可以使用我们的视图显示此文档 目前,部署过程如下所示: 用我们的模板创建一个“主”应
你知道我如何通过NotesScript、JavaScript、Java实现这一点吗?这听起来可以通过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>";
}
publicstringgetdxl(stringagentname,stringreplicaid){
返回“”+
" "+/* ... */"";
}
请注意,DXL导入器绝不是健壮和容错的:您可以使开发人员客户机在输入有效XML和符合DTD的内容时崩溃。例如,尝试在字段上设置
fieldhint=“
”。在开发时记住这一点。试着看看这些想法-->
为了避免一些已知的DXL问题,您可以尝试以编码的二进制格式导出和导入
**更新
在仔细研究您的情况之后,我认为最简单的方法是使用模板继承。因此,您可以将自定义模板中的元素复制到邮件模板中,并确保元素设置为从自定义模板继承。谢谢您提供的信息,但我在该代码中没有看到我如何设置“目标”数据库,我想将设计元素放在其中。啊,我在编辑代码时意外删除了对目标数据库的引用。目标数据库是dxlimportder.importDxl.Yes的一个参数,现在就是这样。我只是想自动复制一些方法。如果模板继承设置正确,那么为什么需要再次复制表单?您在自定义模板中对表单所做的任何更改都应复制到邮件模板中,而邮件模板又应复制到用户邮件数据库中。这是真的-我只是想准备一个外观良好的向导或其他东西,这样管理员就不必手动将表单和按钮复制到应用程序数据库中(基于模板)。这只是对整个“安装”过程的一个润色-即,如果安装说明是:1,那就太好了。用该模板创建一个db;2.打开该数据库,单击“安装”,而不是:1。创建数据库;2.复制邮件模板中的这些元素;3.改变这个和这个,等等。好的,那么肯定是DXL。看看上面的链接。谢谢你的链接卡洛斯,我会接受其他答案,因为示例代码,但我仍然支持你的答案。干杯