2012-03-27 60 views
3

我们需要使用DXL在数据库中导入SSJS库。为此,我们已经写了一个Java代理和它的代码是这样的:使用DXL在数据库中导入SSJS脚本库

import lotus.domino.*; 
public class JavaAgent extends AgentBase { 
    private DxlImporter importer = null; 
    public void NotesMain() { 
     try { 
      Session session = getSession(); 
      AgentContext agentContext = session.getAgentContext(); 

      String filename = "C:\\tempssjslib.xml"; 

      Stream stream = session.createStream(); 
      if (stream.open(filename) & (stream.getBytes() > 0)) { 
       Database importdb = session.getCurrentDatabase(); 
       importer = session.createDxlImporter(); 
       importer.setReplaceDbProperties(true); 
       importer.setReplicaRequiredForReplaceOrUpdate(false); 
       importer.setAclImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_IGNORE); 
       importer.setDesignImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE); 
       importer.importDxl(stream, importdb); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     finally { 
      try { 
       System.out.println(importer.getLog()); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

文件C:\ tempssjslib.xml包含了我在Domino Designer中创建,然后使用“工具>导出的SSJS库DXL实用程序>导出程序“(用于测试目的)。但是当我运行这个代理库的时候,不是得到的数据库导入。 DxlImporter.getLog()也没有错误。

我尝试了与XPages,Form,LotusScript脚本库类似的过程,并成功地导入它们。但同一个代理不能导入SSJS库。

有没有我在代码中遗漏的东西?我们可以使用DXL在数据库中导入SSJS库吗?

回答

1

它看起来像出口商工具(或者甚至可能是DXLexporter)没有导出所有需要的字段。如果你手动在dxl文件内部添加这个,就在项目名称='$ ServerJavaScriptLibrary'...行之前,它会成功导入它。

<item name='$Flags'><text>.5834Q</text></item> 
<item name='$TITLE'><text>...name of the SSJS library...</text></item> 
+0

感谢渡轮的确切代码。它也适用于只包含$ Flags的标签。 – Naveen 2012-03-28 09:38:09

1

如果您打印导入的笔记ID并在适当的工具(Ytria或Notespeek)中分析,您会看到问题出现在$ Flags字段中。

我创建了一个测试SSJS库,$ Flags字段包含“.5834Q”。但是进口的只有“34Q”。

我没有这些标志的确切参考,但它可能是一个好的开始。手动覆盖此字段可成功运行,但此标志可能包含一些有价值的信息。

这对我来说似乎是一个错误。

另外YTria工具有一个关于$ flags字段内容的很好的参考。

+0

是的,它是导出文件中缺少的$ flags字段。该参考适用于所有SSJS库。 – 2012-03-27 18:41:16

+0

谢谢Serder和Ferry。 $ Flags字段的确是问题所在。 – Naveen 2012-03-28 09:39:05