ウェブブラウザに入力した値でデータベースを検索し、結果をウェブブラウザで確認したい

Avatar
dstn

ウェブブラウザに入力した値でデータベースを検索し、結果をウェブブラウザで確認したい

キーワード:HTML,HTTPトリガー,データベース

概要

ウェブブラウザに入力した値でデータベースを検索し、結果をウェブブラウザで確認したい場合、HTTPトリガーを使用してスクリプトを実行します。
HTMLのname属性とスクリプト変数名を一致させることで、ウェブブラウザに入力した値をスクリプトに受け渡すことが可能です。

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

スクリプト変数に受け渡された会社コードを使用して、受注テーブル・企業マスタテーブル・製品マスタテーブルを検索します。
取得したデータをもとにHTMLを生成し、戻り値としてウェブブラウザに渡すため、スクリプト変数に格納します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. 検索系SQL実行処理」で会社コードを使用して受注テーブル・企業マスタテーブル・製品マスタテーブルから売り上げ情報を取得します。
  2. HTMLデータ生成処理」で、取得した売り上げ情報をもとにHTMLを生成します。
  3. 変数代入処理」で生成したHTMLをスクリプト変数に格納します。
実行結果のイメージについては、以下を参照してください。
  • HTTPトリガーを有効にして、指定したURLにウェブブラウザからアクセスします。
    表示された画面の左フレームにあるプルダウンメニューから会社コードを選択し、検索ボタンを押下します。


  • スクリプトが実行され、結果が表示されます。

ポイントとなる機能

名前 説明 ツールパレット上の場所
HTMLデータ生成処理 Velocityを用いてメモリ上にHTMLデータを生成します。 「ファイル」-「HTML」-「HTMLデータ生成」

処理のポイント

  • ウェブブラウザの検索ボタン押下時に、設定したHTTPトリガーが起動するように設定します。
  • HTML生成処理のHTMLビルダーでVelocityテンプレートを編集し、検索系SQL実行処理で取得したデータを参照します。
    取得したデータを用いた繰り返し処理をVelocityテンプレートに追加することで、取得したレコード数分、HTMLの記述を繰り返すことが可能です。
    HTMLビルダーの詳細については、DataSpider Servistaヘルプの「HTMLビルダー」を参照してください。
  • 生成したHTMLはスクリプト出力変数に代入し、スクリプト外からの参照を可能にします。
  • HTTPトリガーの「実行内容の設定」画面の[スクリプト出力]の設定で、「HTML出力」の[値]にトリガー変数「trigger.outputData」を設定します。
    上記によって、スクリプト出力変数の値がウェブブラウザに渡されます。
    HTTPトリガーの詳細については、DataSpider Servistaヘルプの「HTTPトリガー」を参照してください。

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

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

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

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

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

  4. サンプルデータベースの準備
    共通サンプルDBの「sample.zip」を展開し、「Sample.mdb」をODBCのデータソースに登録します。

  5. グローバルリソースの設定
    コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、Accessのグローバルリソースを追加します。
    グローバルリソースの設定方法については、DataSpider Servistaヘルプの「グローバルリソースのプロパティ」を参照してください。

  6. プロジェクトをサービスとして登録
    スクリプトをHTTPトリガーから実行するため、プロジェクトをサービスとして登録します。
    デザイナから[ファイル]-[プロジェクトをサービスとして登録]を選択して登録します。
    サービス名は、「root@rl_reference_041-043プロジェクト」を設定します。

  7. HTTPトリガーの作成
    マイトリガーの画面から[ファイル]-[新規トリガー作成]を選択し、HTTPトリガーを作成します。
    HTMLトリガーは、以下のように設定します。

    HTTPトリガーの設定



    処理のポイント
    • HTTPトリガー実行のURLは、[実行パス]に「/sample_03」を設定してるため以下となります。
      http://<DataSpiderServer稼働OSのホスト名またはIPアドレス>:<ポート番号>/dataspider/trigger/sample_03
    • HTTPトリガー実行のURLにアクセスすると、スクリプトが実行されます。

    実行内容の設定



    処理のポイント
    • [スクリプト出力]の設定で、「HTML出力」の[値]にトリガー変数「trigger.outputData」を設定します。
      上記によって、スクリプト出力変数の値がウェブブラウザに渡されます。

  8. HTTPトリガー実行のURL変更
    サンプルプロジェクトのサンプルデータ「menu.html」に記述されている「form」タグのaction属性を、設定したHTTPトリガー実行のURLに変更します。

    <form method="POST" action="http://<DataSpiderServer稼働OSのホスト名またはIPアドレス>:<DataSpiderServerのポート番号>/dataspider/trigger/sample_03" target="contents">

スクリプトの作成手順

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

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

      変数名 変数型 初期値 スクリプト入力変数として使用する スクリプト出力変数として使用する
      会社コード 文字列型   チェックを入れる チェックを外す
      HTML出力 文字列型   チェックを外す チェックを入れる

      処理のポイント
      • スクリプト入力変数に使用するスクリプト変数の[変数名]と、サンプルプロジェクトのサンプルデータ「menu.html」の「select」タグのname属性に指定した値を一致させます。

  2. デザイナのツールパレット「データベース」-「Access」-「検索系SQL実行」から、検索系SQL実行処理をスクリプトキャンバスに配置します。
    • 検索系SQL実行処理の設定は、以下のように行います。

      [必須設定]タブ



      [SQL文]は以下のように設定しています。

      SELECT
          受注テーブル.会社コード
          ,企業マスタテーブル.会社名
          ,受注テーブル.製品コード
          ,SUM(受注テーブル.数量) AS 数量
          ,製品マスタテーブル.製品名
      FROM
          受注テーブル
          ,企業マスタテーブル
          ,製品マスタテーブル
      WHERE
          受注テーブル.会社コード = '${会社コード}'
          AND 受注テーブル.会社コード = 企業マスタテーブル.会社コード
          AND 受注テーブル.製品コード = 製品マスタテーブル.共通製品コード
      GROUP BY
          受注テーブル.会社コード
          ,企業マスタテーブル.会社名
          ,受注テーブル.製品コード
          ,製品マスタテーブル.製品名
      ORDER BY
          受注テーブル.会社コード
          ,受注テーブル.製品コード
          ,製品マスタテーブル.製品名

  3. デザイナのツールパレット「ファイル」-「HTML」-「HTMLデータ生成」から、HTMLデータ生成処理をスクリプトキャンバスに配置します。

  4. HTMLビルダーを開き、検索系SQL実行処理で取得した結果をもとにHTMLを生成するため、Velocityテンプレートを編集します。
    • HTMLビルダーは、以下のように設定します。

      HTMLビルダー



      処理のポイント
      • Velocityテンプレートを編集し、検索系SQL実行処理で取得したデータを参照します。
        取得したデータを用いた繰り返し処理をVelocityテンプレートに追加することで、取得したレコード数分、HTMLの記述を繰り返すことが可能です。
        HTMLビルダーの詳細については、DataSpider Servistaヘルプの「HTMLビルダー」を参照してください。

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

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

      マッピングキャンバス


      HTMLデータ生成処理のコンポーネント変数「html_data」には、生成したHTMLデータが格納されます。

  7. スクリプトを保存し、プロジェクトをサービス登録後、HTTPトリガーを有効にします。
    サンプルプロジェクトのサンプルデータ「index.html」から会社コードを選択し、「検索」ボタンを押下します。
    生成したHTMLが表示されれば成功です。

コメント

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

Powered by Zendesk