Magic xpiトレーニングテキスト
19. 演習6

19.1 「マッパーレベルコミット」フローの作成

【ビジネスプロセスとフローの追加】

  • ビジネスプロセスを追加し、名前を「トランザクション」に変更します。
  • 追加されたフローの名前を「マッパーレベルコミット」に変更します。

ビジネスプロセスとフローの追加

 

【ステップのコピー】

  • 「マッパーレベルコミット」フローをダブルクリックし、フローエディタを開きます。
  • 第7章で作成した「CSV→DB書込」フローをダブルクリックし、フローエディタを開きます。
  • 「CSV→DB書込」フローのデータマッパーを右クリックしコピーします。
  • 「マッパーレベルコミット」フローを右クリックし、コピーしたステップを貼り付けます。

ステップのコピー

 

【ステップの修正】

  • 「マッパーレベルコミット」フローのデータマッパーをダブルクリックします。
  • 送り元のCSVを、変数からではなく、ファイルから読み取るようにプロパティを修正します。

ステップの修正

送り元タイプ File
ファイルパス EnvVal (‘currentprojectdir’)&’csv\input1.csv’

 

【トランザクションの設定】

  • 「マッパーレベルコミット」フローのデータマッパーのプロパティで以下のように設定します。
  • DBトランザクションレベルを「Mapper」とした場合は、エラー動作は必ず「Exit」とします。

トランザクションの設定

 

エラー動作 Exit
DBトランザクション MSSQL
DBトランザクションレベル Mapper

 

19.2 「レコードレベルコミット」フローの作成

【フローのコピー】

  • 19.1で作成した「マッパーレベルコミット」フローをコピーし、同一ビジネスプロセスに貼り付けます。
  • コピーしたフローの名前を「レコードレベルコミット」に変更します。

フローのコピー

 

【トランザクションの設定】

  • 「レコードレベルコミット」フローをダブルクリックし、フローエディタを開きます。
  • データマッパーのプロパティで、DBトランザクションレベルを「Record」に変更します。

トランザクションの設定

 

エラー動作 Exit
DBトランザクション MSSQL
DBトランザクションレベル Record

 

19.3 「フローレベルコミット」フローの作成

【フローのコピー】

  • 19.1で作成した「マッパーレベルコミット」フローをコピーし、同一ビジネスプロセスに貼り付けます。
  • コピーしたフローの名前を「フローレベルコミット」に変更します。

フローのコピー

 

【データマッパーのトランザクション解除】

  • 「フローレベルコミット」フローをダブルクリックし、フローエディタを開きます。
  • データマッパーのプロパティでDBトランザクションの選択を解除します。

データマッパーのトランザクション解除

 

エラー動作 Exit
DBトランザクション (選択を解除)
DBトランザクションレベル どちらでも可(無視される)

 

【データマッパーのコピー】

  • データマッパーをコピーし、フローの最後に張り付けます。
  • 張り付けたデータマッパーの送り元のファイル名をinput2.csvに変更します。

データマッパーのコピー

 

【トランザクションの設定】

  • フローのプロパティでトランザクションを設定します。

トランザクションの設定

 

DBトランザクション Yes
DBリソースリスト MSSQL

 

19.4 「エラー処理」フローの作成

【送信用メールサーバリソースの登録】

  • メニュー > プロジェクト > 設定をクリックします。
  • 左ペインで「リソース」が選択されている状態で「追加」ボタンを押します。

送信用メールサーバリソースの登録

 

  • リソースタイプ「Email」を選択します。
  • リソース名「MailSend」と入力し、「OK」ボタンを押します。

※禁則文字(@、&、% 等)は使用できません。

リソースタイプ「Email」

 

  • 右ペインに送信用メールサーバの詳細情報を入力します。
  • 入力が終わったら画面下部の「検証」ボタンを押します。

 

右ペインに送信用メールサーバの詳細情報を入力

 

※ご利用の環境にあわせて設定します。

備考
サーバ タイプ (空白) 受信サーバの場合のみ指定
送信メールサーバ localhost SMTPサーバアドレス
送信ポート番号 (空白) 送信用ポート番号

省略時:25

SSL:465

TLS:587

送信セキュア接続 No No, SSL, TLSが選択可
Fromアドレス postmaster@ibolt.com 返信用アドレス

 

【フローの追加】

  • 「トランザクション」ビジネスプロセスにフローを追加し、名前を「エラー処理」に変更します。

フローの追加

 

【Emailコンポーネントの配置】

  • 「エラー処理」フローをダブルクリックし、フローエディタを開きます。
  • ツールボックスからEmailコンポーネントをフローエリアにDrag&Dropします。

Emailコンポーネントの配置

 

【Emailコンポーネントの設定】

  • Emailコンポーネントをダブルクリックし、設定画面を開きます。
  • 「追加」ボタンでメソッドを追加し、「Quick Send」を選択します。

Emailコンポーネントの設定

 

  • 右ペインで「Quick Send」メソッドの詳細を設定します。
To ‘postmaster@ibolt.com’
件名 ‘xpiエラー通知’
ボディ ‘【フロー名】’ & Trim ( C.sys.LastErrorFlowName ) & ASCIIChr(13) & ASCIIChr(10) &

‘【ステップ名】’ & Trim ( C.sys.LastErrorStepName ) & ASCIIChr(13) & ASCIIChr(10) &

‘【エラーコード】’ & Str ( C.sys.LastErrorCode ,’4′) & ASCIIChr(13) & ASCIIChr(10) &

‘【エラー内容】’ & Trim ( C.sys.LastErrorDescription ) & ASCIIChr(13) & ASCIIChr(10) &

‘【付随情報】’ & IF( ISNULL( C.sys.LastErrorInfo ), ”, Trim( C.sys.LastErrorInfo ) )

※ 複数のメールアドレスに送信する場合は、メールアドレスをカンマで区切って列挙します。

※ ASCIIChr(13)=「CR」、ASCIIChr(10)=「LF」で改行を表します。

※ C.sys.LastErrorCodeは4桁以下の数値なので、Str関数を使用して4桁の文字列に変換しています。

※ C.sys.LastErrorInfoはBlob型の変数で、値がない場合はnullとなるため、「&」で結合できるように空文字に変換しています。

 

【各フローのプロパティの設定】

  • 各フローの「エラー処理フロー」プロパティに、今作成した「エラー処理」フローを設定します。

各フローのプロパティの設定

19.5 正常系データと異常系データでの動作確認

【フローの無効化】

  • 異常系データでテストを行うとエラーメールが送信されます。
  • 第7章で作成した「メール監視」フローの「有効にする」プロパティを「No」に設定しておきます。

フローの無効化

 

【データ削除】

  • デバッグを行う前に、商品マスターのデータを削除しておきます。

データ削除

 

【結果の確認】

  • 読み込むCSVファイルを変えながらプロジェクトデバッグで結果を確認します。

結果の確認

No. フロー 読み込むCSVファイル 予想される結果
1 マッパーレベルコミット input1.csv 10行取り込まれる。
2 error.csv 1行も取り込まれず、エラーメール受信。
3 レコードレベルコミット input1.csv 10行取り込まれる。
4 error.csv 9行取り込まれ、エラーメール受信。
5 フローレベルコミット Input1.csv & input2.csv 20行取り込まれる。
6 Input1.csv & error.csv 1行も取り込まれず、エラーメール受信。

 

【結果の確認の流れ】

  • デバッグを行うフローの自動起動を「Yes」に設定し、プロジェクトデバッグを行います。

結果の確認の流れ