実装ステージでは、フロー内のステップを定義して設定します。
Update Inventoryサービスを実装しているフローは、HTTP updateリクエストを受け入れて、publisherがデータベース内に存在していることを確認します。Publiserが見つかった場合、タイトル・テーブルは更新され、確認の電子メールが送られます。更新されなかった場合、拒否の電子メールが送られます。
フローを作成するには:
ソリューションエクスプローラでデフォルトフロー(Flow-1)にパークします。
フローの名前を Update_Inventory に変更します。
このフローの下の、フロー変数をダブルクリック(Ctrl+L)し、[フロー変数]リポジトリを開きます。
[追加]をクリックして新しいフロー変数を作成し、名前を F.PublisherID に変更します。項目タイプはAlpha、長さを 30 に設定してください。
F.TitleID と F.TitleName という2つのフロー変数を追加します。どちらもAlphaで長さを 30 に設定します。
F.PublisherExists という名前の4番目の変数を作成して、Logical に設定してください。これは、変数がTue/Falseの値を受け入れることを意味します。
[ツールボックス]ペインから、[HTTP]コンポーネントを選択して、[トリガー]エリアにドラッグします。
HTTPトリガプロパティを設定します。
[設定]セクションには、トリガ設定が表示されています(これは、以前定義されたデフォルトのHTTPサービスです)。
HTTPトリガコンポーネントでダブルクリックか右クリックで[設定]を選択して[コンポーネントの設定:HTTP]ダイアログを開きます。
[エンドポイント名]ドロップダウンリストからUpdate_Publisher_Booksを選択します。
以下のように、HTTPコール内に送られる引数を受け取るためのフロー変数を選択してください。
このステージでは、指定されたPubliherがPublishers データベース内に存在するかどうかについて調べるデータマッパーのステップを設定します。これを行うために、有効なpublisher レコードまたは空のレコードを返すSelectステートメントを使用します。
[フロー]エリアに[データマッパー]ユーティリティをドラッグしてください。
[プロパティ]ペインで[ステップ名]を Validate_Publisher_ID に変更してください。
データマッパー上でダブルクリックか右クリックします。[設定]をクリックして[データマッパー]ウィンドウを開きます。.
ツールボックスの[マッパースキーマ]セクションから、Databaseを[データマッパー]ウィンドウの[送り元]エリアにドラッグします。
[プロパティ]ペインで送り元の名を Publishers に変更してください。
以下の通りに送り元プロパティを設定してください。
[データベース定義]のドロップダウンリストから、Inventory_ Databaseを選択します。これは以前に定義したデータベース・リソースです。
テーブルとカラムを選択するために[ウイザード]パラメータでをクリックしてください。
[有効なテーブル]リストから、Publishersテーブルを選択します。[追加]をクリックして、dbo.[Publishers] が[選択済みテーブル]リストに追加されていることを確認してください。
[次へ]をクリックして[カラム選択]ダイアログに移動します。
[カラム]リストから、pub_idを追加します。
[次へ]をクリックして[Where句と Order By]ダイアログに移動します。
以下の通りにWhere句を定義してください: [publishers].pub_id='<?F.PublisherID?>'
これは、指定されたpublisherのレコードだけを取得します。
[次へ]をクリックしてデータベースに送られるSQL文を表示します。
[完了]をクリックして[データベース]ウィザードの定義を終了してください。tu-rubokkusu
ツールボックスの[マッパースキーマ]セクションから、項目タイプを[データマッパー]ウィンドウの[宛先]エリアにドラッグします。
[プロパティ]ペインで宛先名を"PublisherExists"に変更します。
以下の通りに宛先特性を設定してください:
リストからF.PublisherExistsを選択してください。
[保存]をクリックして画面を終了します。
以下の通りに送り元を送り先にマッッピングしてください:
pub_id送り元ノードを選択して、F.PublisherExists送り先ノードにドラッグしてください。この時点で、接続が2つの選択されたノードの間で確立され、さらに自動的に、親ノードの間でも確立されます。
F.PublisherExistsノードにパークします。
[プロパティ]ペインで以下の計算値を挿入してください。最後の2つの文字は、2つのシングルクオーテーションである点に注意してください: src.Source/S3/Record/pub_id <>''
これは、publisherがデータベース内で見つかった場合、項目をTrueに設定します。
[保存]をクリックして[データマッパー]ダイアログを閉じ、設定処理を終了します。
前のステップ(Validate Publisher IDD)の上で、新しい[データマッパー]ステップをドロップしてください。このステップは、publisherが見つかった場合だけデータベース内のタイトルを更新します。
[プロパティ]ペインでサービス名を"Update Titles"に変更します。
[保存]をクリックして定義を保存してください。
[コンポーネント]で右クリックして、コンテキストメニューから[条件]を選択します。
式エディタが開きます。データ項目リストを開くために、ツールバーボタンの[項目](左からの2番目)をクリックしてください。
F.PublisherExists項目で位置付け、ダブルクリックして選択します。これは、True/Falseの値だけが入力できる論理型項目です。
[検証]をクリックして、式を検証します。[OK]をクリックして式を保存します。定義された条件は、ステップの上の右側に表示されます。
データマッパー上でダブルクリックか右クリックして[データマッパー]ウィンドウを開きます。
ツールボックスの[マッパースキーマ]セクションから、項目タイプを[データマッパー]ウィンドウの[送り先]エリアにドラッグします。
[プロパティ]ペインで名前を"TitleDetails"に変更します。
[プロパティ]ペインの[項目]パラメータで、をクリックして[ソースプロパティ]ダイアログボックスを開きます。ここで、次の項目を選択します。 F.PublisherID, F.TitleID, F.TitleName.
ツールボックスの[マッパースキーマ]セクションから、データベースタイプを[データマッパー]ウィンドウの[送り先]エリアにドラッグします。
[プロパティ]ペインで名前を"UpdateDatabase"に変更します。
[プロパティ]ペインで、以下のように宛先のプロパティを定義します。
データベース定義がInventory Databaseへのセットであることを確認してください。
[ウイザード]パラメータで、をクリックしてウイザードを開いてください。
DB Operation を Insertに設定します。
[データベース]ウィザードで、[Title]テーブルを選択します。
[次へ]をクリックして[カラム選択]ダイアログに移動します。
[カラム]リストから、title_idと titleとpub_idを選択します。
[次へ]をクリックします。
[完了]をクリックしてウィザードを終了します。
以下のノードを接続することによって、送り元上の項目を送り先のデータベース・フィールドに接続します。
F.PublisherID から titles.pub_id
F.TitleID から titles.title_id
F.TitleName から titles.title
[保存]クリックしてマッピング定義とデータマッパーの設定を保存してください。
この時点で、新しいタイトル情報によってデータベースを更新しました。しかし、publisherが見つからない場合、データベースを更新する代わりに、拒否のeメールを送りたいところです。
データマッパーのValidate Publisher ID ステップの先頭で新しい[eメール]コンポーネントをドロップします。
以下の通りに[eメール]コンポーネントを設定してください。
コンポーネント名をRejection Email に変更してください。
[設定]セクションで、Inventory Email Server Resourceが選択されることを確認してください。
[eメール]コンポーネント上でダブルクリックか右クリックして[ダイレクトアクセスメソッド:Email]ダイアログボックスを開きます。
[追加]をクリックしてQuick Send メソッドを選択します。
[To]欄に受信したいeメールアドレスを設定します。例:postmaster@Magicxpi.com。
[題名]欄には次のように入力します:Inventory 拒否メッセージ。
[本文]欄には、以下を入力してください: 'タイトル ' & F.TitleName & ' は、inventoryシステムで更新されませんでした。'
最後のステップは、データベースが更新されたあと、確認のeメールを送信する別のeメール・コンポーネントを設定することです。
Update Titlesステップの上位に 新しい[eメール]コンポーネントをドロップしてください。
以下の通りに[eメール]コンポーネントを設定してください。
コンポーネント名をConfirmation Emailに変更してください。
[設定]セクションのeメール設定で、Inventory Email Serverリソースが選択されることを確認してください。
[eメール]コンポーネント上でダブルクリックか右クリックして[ダイレクトアクセスメソッド:Email]ダイアログボックスを開きます。
[追加]をクリックしてQuick Send メソッドを選択します。
[To]欄に受信したいeメールアドレスを設定します。例:postmaster@Magicxpi.com。
[題名]欄には次のように入力します:Inventory 確認メッセージ。
[本文]欄には、以下を入力してください: 'タイトル ' & F.TitleName & ' は、inventoryシステムで更新されました。'
[保存]をクリックしてプロジェクトを保存します。
次のステップは、フプロジェクトのテストです。