2009-06-08 4 views
1

実際に必要なフォーム、ビュー、エージェントが必要なすべてのテンプレートで構成されたLotus Notesアプリケーションがあります。また、このテンプレートのいくつかの設計要素(独自のフォームと独自の種類の文書のビュー)をメールテンプレートにコピーする必要があるため、定期的な更新後にすべてのユーザーがメールテンプレートをコピーします。Lotus Notes - 設計要素の作成をスクリプト化する

アプリケーションは次のように動作します。アプリケーションデータベース(私が提供するテンプレートから派生したもの)がDominoサーバー上に作成されます。 HTTP要求時にこのデータベースで実行されているエージェントが、ユーザーのメールデータベースに「カスタム」ドキュメントを作成します。

次に、クライアント側では、このビューを使用してこのドキュメントを表示できます。

現在、展開手順は、次のようなものです。私たちのテンプレートのうち、「マスター」アプリケーションデータベースを作成します

  1. データベースのフォームとビューを使用してデータを入力します(アプリケーションの動作方法を設定するため)
  2. カスタムフォームとビューをメールテンプレートにコピーします。
  3. メールテンプレートにボタンを作成して(ビューやフォームを起動するため)
  4. 夜間データベースの更新後、すべてのユーザーがカスタムフォームとビューをメールデータベースに受信し、そのボタンを使用してドキュメントを表示できます(存在する場合)。

ここでは、管理者の作業を簡単にし、カスタムフォームとビューのコピーを自動化し、メールテンプレートにボタンを作成したいと思います。

NotesScript、JavaScript、Javaからこれをどのように行うことができますか?

答えて

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ユーティリティ - - ツール使用を追加または編集する設計要素を検査するために>輸出(またはビューアを):DXLの輸入業者は何もなく、堅牢でエラートレラントであること

public String getDxl(String agentname, String replicaid) { 
    return "<?xml version='1.0' encoding='utf-8'?>"+ 
      "<view name='(auto-view)'> "+/* ... */"</view>"; 
} 

に注意してください。有効なXMLであり、DTDに準拠した入力に対して開発者クラッシュをクラッシュさせることができます。たとえば、フィールドにfieldhint=""を設定しようとしています。開発中にこれを念頭に置いてください。

+0

感謝していますが、私はどのように私はデザイン要素を入れたい "ターゲット"データベースを設定するコードでは表示されません。 –

+0

ああ、コードを編集したときに、誤ってターゲットデータベースへの参照を削除しました。ターゲットデータベースは、DxlImporter.importDxlのパラメータです。 –

+0

訂正していただきありがとうございます。 –

1

あなたがエンコードされたバイナリ形式で&インポートをエクスポートしようとすることができますDXL既知の問題のいくつかを回避するために---> http://www.openntf.org/projects/pmt.nsf/3f2929edba6ef2808625724c00585215/9fe3084cab2f38ad8625754600078af6!OpenDocument

http://www.benpoole.com/80256B44004A7C14/articles/simpledxl

アイデアのためにこれらを見てみてください。

**は少しより密接に自分の状況を見た後

を更新し、私は最も簡単なルートはテンプレートの継承を使用することだと思います。そのため、カスタムテンプレートの要素をメールテンプレートにコピーし、要素がカスタムテンプレートを継承するように設定されていることを確認します。

+0

はい、それは今どのようになっています。私はいくつかの方法をコピーすることを自動化したい。 –

+0

テンプレートの継承が正しく設定されている場合、なぜフォームを再度コピーする必要がありますか?カスタムテンプレートのフォームに加えた変更は、メールテンプレートに複製して、ユーザーのメールdbに複製する必要があります。 – Carlos

+0

それは本当です。私はちょうど管理者が(テンプレートに基づいている)アプリケーションデータベースからフォームとボタンを手作業でコピーする必要がないように、よく見えるウィザードなどを準備したかったのです。これは、「インストール」プロセス全体の磨きにすぎません。つまり、設定手順が以下の場合に便利です。1.そのテンプレートからdbを作成します。 2. dbを開き、「install」をクリックします。 2.これらと、これらの要素をメールテンプレートにコピーします。 3.これとこれなどを変更してください。 –

関連する問題