テキストファイルの先頭10行をメールの本文として送信したい

Avatar
dstn

テキストファイルの先頭10行をメールの本文として送信したい

キーワード:メール,CSV

概要

テキストファイルを読み取り、特定の行数までをメール本文に設定して送信したい場合、繰り返し(データ件数)処理とスクリプト変数を使用します。

サンプルプロジェクトの説明

CSVファイルの10行目までのデータを連結して、メールの本文を作成します。
作成した本文を使用して、メールを送信します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. CSVファイル読み取り処理」で入力ファイルを読み取ります。
  2. 繰り返し(データ件数)処理」で以下の処理を繰り返します。
    1. マッピング処理」で、入力データを連結してスクリプト変数に代入します。
    2. 条件分岐処理」で「繰り返し(データ件数)処理」のコンポーネント変数「count」を判定します。
    3. コンポーネント変数「count」が10以上の場合、「break処理」で「繰り返し(データ件数)処理」を抜け出します。
  3. 1通メール送信処理」でスクリプト変数を本文に設定し、メールを送信します。
実行結果のイメージについては、以下を参照してください。
  • テキストファイルのうち、10行目までが本文として送信されます。

    メール内容

    件名 ログを送付します。
    本文 以下ログです。
    ============
    1行目
    2行目
    3行目
    4行目
    5行目
    6行目
    7行目
    8行目
    9行目
    10行目

ポイントとなる機能

名前 説明 ツールパレット上の場所
繰り返し(データ件数)処理 入力データの件数分、処理を繰り返します。 「基本」-「フロー」-「繰り返し(データ件数)」
条件分岐処理 条件分岐を行います。 「基本」-「フロー」-「条件分岐」

処理のポイント

繰り返し(データ件数)処理のコンポーネント変数「count」を使用して、テキストファイルの10行目までを抽出します。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ098のサンプルプロジェクト
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_098.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_098.zip」を展開後に作成される「rl_reference_098プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_098プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_098.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「 サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. テキストデータの取得件数とメール本文に使用するスクリプト変数を作成します。
    • スクリプト変数のプロパティは、以下のように設定します。

      スクリプト変数のプロパティ

      変数名 変数型 初期値
      データ 文字列型  
      取得件数 整数型 10

      処理のポイント
      • 「取得件数」はテキストデータの取得行数を設定します。本文に設定したい任意の行数を設定してください。

  2. デザイナのツールパレット「ファイル」-「CSV」-CSVファイル読み取りから、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
    • CSVファイル読み取り処理の設定は、以下のように行います。

      [必須設定]タブ



      処理のポイント
      • 1列のデータとして取得するため、取得データ中に半角カンマ(「,」)が含まれている場合は[デリミタ文字]を半角カンマ以外に設定してください。
      • 取得データ中に使用されていない文字が特定できない場合、[デリミタモード][文字コード入力]を選択し、[デリミタ文字]に「0x00」と入力してください。
      • 「0x00」はnullを表し、通常のテキストデータには存在しない文字となります。

  3. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
    • 繰り返し(データ件数)処理の設定は、以下のように行います。

      [必須設定]タブ


  4. デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
    • 条件の設定は、以下のように行います。

      [必須設定]タブ



      処理のポイント
      • 繰り返し(データ件数)処理」のコンポーネント変数「count」は繰り返し処理の終了時に1ずつ加算されます。
      • 「count」の値は1回目の繰り返し処理終了時には「0」、2回目の繰り返し処理終了時には「1」となります。

  5. デザイナのツールパレット「基本」-「フロー」-「break」から、break処理をスクリプトキャンバスに配置します。
    • break処理のプロパティはありません。

  6. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。

  7. マッピング処理のMapperエディタを開き、メール本文を作成し、スクリプト変数に代入する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) システム・プロパティ システム・プロパティを出力します。
      [必須設定]タブの[プロパティ名]には「line.separator」と入力します。
      「文字列」-「基本」-「システム・プロパティ」
      (2) 連結 複数の入力文字列を連結して返します。
      [必須設定]タブの[入力数]には「3」と入力します。
      「文字列」-「演算」-「連結」

      処理のポイント
      • システムプロパティ「line.separator」はOSの改行文字を取得します。
      • 読み取ったテキストデータを改行するため、改行文字で連結します。

  8. デザイナのツールパレット「ネットワーク」-「メール」-「1通メール送信」から、1通メール送信処理をスクリプトキャンバスに配置します。
    • 1通メール送信処理の設定は、以下のように行います。

      [必須設定]タブ



      [メッセージ]タブ



      処理のポイント
      • [メッセージ]タブの[本文]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
        スクリプト変数は、以下の方法で素早く入力できます。
        • 入力フィールドにフォーカスをあてて表示させる変数入力アシスタント機能から選択します。
        • 入力フィールドの右クリックメニューで[スクリプト変数]を選択します。

  9. スクリプトを実行し、正常終了すれば成功です。

コメント

ログインしてコメントを残してください。

Powered by Zendesk