2012-03-27 78 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