[モデリング: DataSpider Servista連携編] ステップ1: スクリプトの新規作成(DataSpider Servista)


[ステップ0: 準備] << ... >> [ステップ2: アプリの編集]


このステップでは、DataSpider Servistaを使用してデータを受け取り、Excelファイル「ログインID管理台帳」に保存するスクリプトを作成します。

ログインID管理台帳について

 小林さんが、ログインIDを発行した際に管理しているExcelファイル「ログインID管理台帳」は以下のようなフォーマットになっています。
適宜、同様のフォーマットのExcelファイルを用意してください(ファイル名: ログインID管理台帳.xls)。

ストーリー

 佐藤さんは、以下の順番でスクリプトを新規作成します。

操作手順(1-1): 新規にプロジェクトおよびスクリプトを作成

  操作画面 DataSpider Servistaの操作
1 DataSpider ServistaおよびStudioを起動し、新規にプロジェクトとスクリプトを作成します。
  1. [Studio]メニューから、[プロジェクトの新規作成]を指定し、プロジェクト名とスクリプト名を入力します。
    • [プロジェクト名]: ログインID管理台帳
    • [スクリプト名]: 台帳保存
  2. 入力後、デザイナが表示されます。

操作手順(1-2): スクリプト変数を定義

  操作画面 DataSpider Servistaの操作
1 DataSpider BPMから受け渡されるデータおよび台帳登録行の情報を保持するスクリプト変数を定義します。
  • [スクリプト変数名]: loginId
    • [変数型]: 文字列型  確定したログインIDを保持します。
    • [スクリプト入力変数として使用する]: チェックします。
  • [スクリプト変数名]: userData
    • [変数型]: XML型  申請者のユーザ型(ユーザID、ユーザ名、メールアドレス、名前)を保持します。
    • [スクリプト入力変数として使用する]: チェックします。
  • [スクリプト変数名]: dataRow
    • [変数型]: 整数型  ログインID管理台帳の登録行数を保持します。

操作手順(1-3): ログインID管理台帳.xlsファイルを読み込み、現在の登録行数を取得

  操作画面 DataSpider Servistaの操作
1 ログインID管理台帳.xlsファイルを読み込むための「シートから読み取り」コンポーネントと、現在の登録行数を保持する「変数代入Mapper」を配置します。
  1. デザイナの「ツールパレット」 - 「ファイル」 - 「Excel」 - 「シートから読み取り」を選択し、スクリプトキャンバスに配置します。
    • [名前]: 管理台帳の読み込み
  2. デザイナの「ツールパレット」 - 「基本」 - 「処理」 - 「変数代入」を選択し、スクリプトキャンバスに配置します。
    • [名前]: 台帳登録行数の取得
  3. 「Start」から、それぞれ左図のようにプロセスフローを引きます。
    • 「Start」 → 「管理台帳の読み込み」へ、プロセスフローを引きます。
    • 「管理台帳の読み込み」 → 「台帳登録行数の取得」へ、プロセスフローを引きます。
2



「管理台帳の読み込み」(シートから読み取り)コンポーネントのプロパティを設定します。
  1. [必須設定]タブのプロパティを設定します。
    • [ファイル]: ログインID管理台帳.xlsファイルが保存されている場所を入力または選択します。
    • [シート名]: 読み取る対象のシート名を入力または選択します。
  2. [開始/終了条件]タブのプロパティを設定します。
    • [読み取り開始条件を指定]: チェックします。
    • [指定したセルアドレスから開始]: チェックします。
    • [セルアドレス]: B3  サンプルのログインID管理台帳.xlsは、このセル位置からデータ行となっています。
  3. [読み取り設定]タブのプロパティを設定します。
    • [最初の行は値として取得しない]: チェックします。
  4. 1~3の設定を終え、[必須設定]タブの列一覧の更新を押下します。
    • 列一覧に読み取る対象の列名が表示されます。
  5. [開始/終了条件]タブのプロパティを設定します。
    • [読み取り終了条件を指定]: チェックします。
    • [終了条件]: [追加]ボタンを押下して行を1行追加し、以下の条件を入力します。
      • [列名]: ログインID
      • [行番号]: (指定しない)
      • [条件値]: 未入力
    この終了条件を設定することで、セル位置「B3」から「ログインID」のセルに値が入っている行までを読み取る設定になります。
  6. [完了]ボタンを押下し画面を閉じます。
3 「台帳登録行数の取得」(変数代入Mapper)を開き、ログインID管理台帳.xlsファイルの登録行数をスクリプト変数にマッピングします。
  1. 「ツールパレット」 - 「数値」 - 「演算」 - 「足し算」ロジックを選択し、マッピングキャンバスに配置します。
  2. 「ツールパレット」 - 「数値」 - 「基本」 - 「数値定数」ロジックを選択し、マッピングキャンバスに配置します。
    • [数値]: 4
  3. 「入力元」-「コンポーネント変数」 - 「管理台帳の読み込み」 - 「count」から、「出力先」 - 「スクリプト変数」 - 「dataRow」へ左図のようにリンクを引きます。
    現在の登録済データ件数(count) + 台帳のデータ開始行数(4)を加算して、追加登録する際の行の位置を保持します。

操作手順(1-4): DataSpider BPMから渡されたデータを取得し、ログインID管理台帳.xlsファイルにデータを書き込む

  操作画面 DataSpider Servistaの操作
1 スクリプト変数(スクリプト入力変数)から、DataSpider BPMから受け渡されたデータを取得します。
  • 「loginId」には、確定したログインIDが渡されます。
  • 「userData」には、申請者のユーザ型(ユーザID、ユーザ名、メールアドレス、名前)が渡されます。
    「userData」のようなXML型のスクリプト入力変数の値を受け取る場合は、ドキュメントMapperを配置し、
          「Start」からデータフローを引くことで値を受け取ることができます。
    スクリプト変数の使用方法に関する詳細は、DataSpider Servistaオンラインヘルプの「サービスの開発」
          -「詳細なトピック」–「スクリプト変数」ページの「3. 使用方法(XML型のスクリプト変数の場合)」項を参照してください。
  1. デザイナの「ツールパレット」 - 「変換」 - 「基本」 - 「マッピング」を選択し、ドキュメントMapperをスクリプトキャンバスに配置します。
    • [名前]: BPMからデータ取得
  2. デザイナの「ツールパレット」 - 「ファイル」 - 「Excel」 - 「書き込み」を選択し、スクリプトキャンバスに配置します。
    • [名前]: 管理台帳へ書き込み
  3. 「Start」から「End」へ、それぞれ左図のようにデータフローおよびプロセスフローを引きます。
    • 「Start」 → 「BPMからデータ取得」へ、データフローを引きます。
      「データフローを引く」メニューから「userData → main_data」を選択します。
    • 「台帳登録行数の取得」 → 「BPMからデータ取得」へ、プロセスフローを引きます。
    • 「BPMからデータ取得」 → 「管理台帳へ書き込み」へ、プロセスフローとデータフローを引きます。
    • 「管理台帳へ書き込み」 → 「End」へ、プロセスフローを引きます。
2

「管理台帳へ書き込み」(書き込み)コンポーネントのプロパティを設定します。
  1. [必須設定]タブのプロパティを設定します。
    • [ファイル]: ログインID管理台帳.xlsファイルが保存されている場所を入力または選択します。
    • [シート名]: 書き込む対象のシート名を入力または選択します。
    • [列一覧]: [追加]ボタンを押下して行を追加し、書き込む対象の列名を入力します
  2. [書き込み設定]タブのプロパティを設定します。
    • [上書き]: チェックします。
    • [書き込み位置を指定]: チェックします。
    • [セルアドレスを指定]: チェックします。
    • [開始セルアドレス]: B${dataRow}  スクリプト変数「dataRow」を指定します。
  3. [完了]ボタンを押下し画面を閉じます。
3 「BPMからデータ取得」(ドキュメントMapper)を開き、マッピングを定義します。
  1. 「「入力元」 - 「入力データ」 - 「userData」には、DataSpider BPM側から申請者(ユーザ型)の情報が受け渡され、DataSpider Servista側ではXML型で保持されています。
    ユーザ型は以下のXMLスキーマ定義で受け渡されますので、「userData」を選択し、右クリックメニューから以下のスキーマ定義を読み込むか、直接要素を追加して左図と同じように各XML要素を追加してください。

     例:  1   testtaro@testserver.com   テスト太郎

    <?xml version="1.0" encoding="UTF-8"?>
     <user>
         <id>1</id>
         <mailAddress>testtaro@testserver.com</mailAddress>
         <name>テスト太郎</name>
     </user>
  2. 上記で定義した各要素に対し、以下のようにマッピングします。
    • [mailAddress]: 「出力先」 - 「管理台帳へ書き込み」 - 「table」 - 「row」 - 「(メールアドレス=)column」へマッピングします。
    • [name]: 「出力先」 - 「管理台帳へ書き込み」 - 「table」 - 「row」 - 「(氏名=)column」へマッピングします。
  3. 申請し、確定したIDが受け渡されるスクリプト変数「loginId」を以下のようにマッピングします。
    • [loginId]: 「出力先」 - 「管理台帳へ書き込み」 - 「table」 - 「row」 - 「(ログインID=)column」へマッピングします
  4. 発行日をシステム日付から取得し、以下のようにマッピングします。
    • 「ツールパレット」 - 「日付」 - 「基本」 - 「現在日時」をマッピングキャンバスに配置する
    • 「ツールパレット」 - 「文字列」 - 「日付」 - 「日時フォーマッティング」をマッピングキャンバスに配置する
    • 「日時フォーマッティング」のプロパティ設定画面を開き、 [フォーマット] に 「yyyy/M/d」と入力する
    • 以下のようにマッピングする
      • 「現在日時」から「日時フォーマッティング」へ
      • 「日時フォーマッティング」 から 「出力先」 - 「管理台帳へ書き込み」 - 「table」 - 「row」 - 「(発行日=)column」へ

操作手順(1-5): 作成したスクリプトおよびプロジェクトをサービスとして登録

  操作画面 DataSpider Servistaの操作
1 スクリプトを保存し、プロジェクトをサービスとして登録します。
  1. [ファイル]メニュー - [プロジェクトの保存]を選択し、作成したスクリプトを保存します。
  2. [ファイル]メニュー - [プロジェクトをサービスとして登録]を選択します。
    選択後、「サービスの登録」ダイアログが開き、以下の値が表示されます。
    • [サービス名]: root@ログインID管理台帳
  3. 値はそのままの状態で、[完了]ボタンを押下します

スクリプトを新規作成しました!

 佐藤さんは、DataSpider Servistaを使用して、データを受け取り、Excelファイル「ログインID管理台帳」に保存するスクリプトを作成しました。
ステップ2では、DataSpider BPMに作業を戻し、このステップで作成したスクリプトを実行するように「ログインID発行」アプリの編集を開始します。

[ステップ0: 準備] << ... >> [ステップ2: アプリの編集]