データベースの参照結果をCSVに出力(select[type="csv"])

SQLのSELECT句を組立て実行し、取得したデータをCSV形式で出力します。
 
SQL部分はselectタグと同様ですので詳しくはそちらをご確認ください。
使用可能箇所
run
Sub Tags
link, join, where, group, order, value, formula

属性
id
返却値を管理するID
type
csvを指定
entity
テーブル名/ビュー名、またはビュー・クラス名
transaction
トランザクション設定ファイルのXMLファイル名(例:default)
database
トランザクション設定ファイル内の接続設定のコード
schema
標準スキーマ
when
多くのTagsでサポートしている「実行可否判定のための属性」です。 (こちらを参照)

(記述例) 「SYS_USER」のデータをCSV出力(ユーザーID, ユーザー名, 所属ID, 所属名)
カラムの出力順やヘッダーをvalueタグにて指定します。
selectタグの使い方はこちらを参照

    <run>
     <select id="CSV出力" entity="SYS_USER" type="csv">

      <value map="USER_CODE"  key="ユーザーID" />
      <value map="USER_NAME"  key="ユーザー名" />

      <value map="GROUP_CODE" key="所属ID" base="SYS_USER_GROUP" />
      <value map="GROUP_NAME" key="所属名" base="SYS_GROUP" />

      <join entity="SYS_USER_GROUP" key="USER_CODE" />
      <join entity="SYS_GROUP"      key="GROUP_CODE"
       base="SYS_USER_GROUP" />
     </select>
    </run>
  

JAVAの実装

オプション CSV出力時に以下のオプションが指定できます。
オプションはルール実行時にパラメータ・コンテナに所定の項目名で設定します。
OutputStream
(必須)
CSVを出力する先のOutputStream
OutputHeader
ヘッダーの出力有無を切替え(省略時はヘッダー出力あり)
※ver 1.0.9以降
Character
CSVファイルの文字コード(省略時はWindows-31J)
Delimiter
CSVの区切り文字(省略時はカンマ)

※パラメータ・コンテナの項目名は「selectタグのid + ".オプション名"」の形式で設定
(実装例) ルールの実行結果を指定したファイルに出力する 「SYS_USER」のデータをCSV出力(ユーザーID, ユーザー名, 所属ID, 所属名)
カラムの出力順やヘッダーをvalueタグにて指定します。
selectタグの使い方はこちらを参照

    // ルールエンジン:CSV出力
    final RuleEngineIF rule = super.getRuleEngine("CSV出力");

    // パラメータ・コンテナ
    final Map parm = rule.getParameter();

    parm.put("CSV出力.OutputStream", new FileOutputStream("c:\\sample\\sample.csv"));
    parm.put("CSV出力.OutputHeader", true);
    parm.put("CSV出力.Character",    "UTF-8");
    parm.put("CSV出力.Delimiter",    "\t");

    rule.run();
  
(実装例) ルールの実行結果をクライアントにダウンロードする(WEBパッケージ利用)

    // ルールエンジン:CSV出力
    final RuleEngineIF rule = super.getRuleEngine("CSV出力");

    // パラメータ・コンテナ
    final Map parm = rule.getParameter();

    // クライアントへのダウンロードAPI
    final FileOutput out = super.getUserIO().getResponseOutput();

    out.setContentType("text/csv");	// ファイル種別
    out.setFileName("sample.csv");	// ファイル名
    out.setAttachment(true);		// モーダルウィンドウを開く

    parm.put("CSV出力.OutputStream", out.getOutputStream());
    parm.put("CSV出力.OutputHeader", true);
    parm.put("CSV出力.Character",    "UTF-8");
    parm.put("CSV出力.Delimiter",    "\t");

    rule.run();
  
©Camel engineering LLP