ステップ4. iiiTUTSEQ06処理シーケンスを定義する
このステップでは、以下の処理を行う処理シーケンスを作成します。
- Assign – 変数割り当て = OK
- While – 変数 = OKの間ループ
- アクティビティ – POP3経由でサーバーから1つのメールを取得
- If &FROMADDRESS * NE ''
- 変換マップ – 社員ファイルからCSVに
- 割り当て &TONAME = 'Personnel Dept LANSA'
- アクティビティ – テキスト置換 – メール本文作成
- アクティビティ – SMTP経由でメール送信
- Else
- Terminate
まず始めにテキストのスケルトンを作成します。これは返信の電子メールの本文テキストを作成するテキスト置換アクションで、後ほど使用するものです。
1. メモ帳を開き、以下に表示されている通り返信のテキスト・スケルトンを作成します。
2. IBM i のIFSに以下に従って保存します。
注:- メモ帳は自動的にtxtのファイル拡張子を追加します。
- このチュートリアルのパスは で確認できます。
- %%PARM.TONAME%% と %%PARM.DEPARTMENT%% の値は、次のテキスト置換アクションで置換されます。
3.
を選択し、[作成]ボタンで新しい処理シーケンス作成を開始します。 すると、[処理シーケンス・エディタ]が開きます。4.
タブ(左上)を選択し、 タブの処理シーケンスの始めに 処理命令をドラッグ・アンド・ドロップします。 変数&FLAG_WHILEに'OK'の値を割り当てます。 これはWhileループの制御に使用されます。
5. 次に、処理シーケンスの[Assign]の下に[While]ループをドロップします。 [条件]に&FLAG_WHILE = 'OK'を設定します。 このループは後でIf条件により終了されます。
6. [アクティビティ]タブ(左上)を選択し、処理シーケンスに[MAIL_RECEIVE]をドロップします。 これは[While]ループの中に入るようにしてください。 必要であれば、ボタンを使って位置調整します。
7. [構成]タブ(左上)を選択します。
a. [iiiTUT_POP3] – チュートリアルPOP3構成をインバウンドのPOP3メール構成IDにドロップします。これはステップ2で定義したものです。
b. 電子メールの件名に&DEPARTMENTの値を設定します。 電子メールの件名には、例えば"ADM"などのような部門コードが含まれます。これがファイルから社員を選択する際に使用され、CSVファイルに出力されます。
c. ユーザーの電子メールアドレスをFROMADDRESSに設定します。
以下のようになります。
8. ボタンで処理シーケンスを保存します。以下のようにIDが[iiiTUTSEQ06]の処理シーケンスを保存します。
エラーや警告のメッセージは無視してください。 引き続き、処理シーケンス定義の完成させていきます。
9. 再び[命令]タブ(左上)を選択し、[If]命令を処理シーケンスにドロップします。 条件に[&FROMADDRESS *NE '']を設定します。 ( FROMADDRESSがブランクではないという意味です。)FROMADDRESSはMAIL_RECEIVEから返されます。 電子メールが見つからないとブランクになります。
これで、処理シーケンスは以下のようになります。
10. [変換マップ]タブ(左上)を選択します。
a. 前回作成した[iiiTUTMAP02]を処理シーケンスにドロップします。 これは[If]ループ内に入るようにしてください。必要であれば、昇格/降格ボタンを使って調整します。
b.
タブ(左上)を選択します。 作成した[iiiTUTDEMO]を[EARTHSourceConnection]パラメータにドロップします。c.
タブ(左上)を選択し、[Department_InSourceParameter]に変数[DEPARTMENT]をドロップします。 この変数はMAIL_RECEIVEアクティビティの件名の変数として使用しました。d. [TextfileTargetFilename]に次を設定します。
/LANSA_Composer_k12pgmlib/lic/Tutorial/_SentEmail/iii_EmployeeInfo.csvこれで、処理シーケンスは以下のようになります。
11.処理シーケンスを保存します。
12.
タブ(左上)を選択し、[Assign]命令を処理シーケンスにドロップします。 これは、返信の電子メール・テキストに組み込まれる変数、TONAMEの値を設定するために使用されます。 式を次のように完成させます:&TONAME = 'Personnel Administrator'
これで、処理シーケンスは以下のようになります。
13.
タブ(左上)を選択し、処理シーケンスに[TEXT_SUBSTITUTE]を以下のようにドロップします。
a. スケルトンのパスとファイル名を次のように指定します。
'/LANSA_Composer_k12pgmlib/lic/Tutorial/_EmailSkeletons/iii_EmployeeInfo.txt'
b. 拡張テキストのパスとファイル名を次のように指定します。
'/LANSA_Composer_k12pgmlib/lic/Tutorial/_SentEmail/iii_EmployeeInfo.txt'
14.
タブ(左上)を選択し、処理シーケンスに[MAIL_SEND]をドロップします。a.
タブ(左上)を選択し、作成した[iii_INQ_EMP] SMTP電子メール構成の詳細を最初のパラメータにドロップします。b. [iiiSMTPID] チュートリアルSMTP構成を2番目のパラメータにドロップします。
c. 本文テキストのパスとファイル名を以下のように設定します。
/LANSA_Composer_k12pgmlib/lic/Tutorial/_SentEmail/iii_EmployeeInfo.txt
d. 電子メールのパスとファイル名を以下のように設定します。
/LANSA_Composer_k12pgmlib/lic/Tutorial/_SentEmail/iii_EmployeeInfo.csv
これで、処理シーケンスは以下のようになります。
15.処理シーケンスを保存します。
16.[Else]命令を処理シーケンスにドロップします。 [Else]の下に[Terminate]をドロップします。 必要な場合は、 ボタンを使って正しい位置に調整します。 これで、処理シーケンスは以下のようになります。
タブ(左上)を選択し、
17.ボタンを使って処理シーケンスを保存します。
18.処理シーケンスiiiTUTSEQ06の[バージョン履歴]タブを確認します。 ここには、この演習で保存された今までのバージョンがリストされています。 注:どのバージョンも することができます。 により、選択したバージョンを現バージョンにします。
19.電子メールのリクエストを送信する電子メール・アカウントには自身のメール・アドレスを使用します。 件名には(ADMなどの)部門コードを入力します。 このメールをMAIL_RECEIVEアクティビティのFROMADDRESSで指定した電子メール・アカウントに送信します。
20.ボタンで実行ダイアログを開き、
ボタンをクリックして、実行します。 この処理シーケンスを実行するには、WindowsエクスプローラーでIBM i サーバーにログインし、変換マップが準備されていなければなりません。 処理シーケンスが正しければ、ログは以下のようになります。
21.iii_INQ_EMPのSMTP電子メール構成で指定した、自身の電子メール・アカウントの受信トレイを確認します。 iii_EmployeeInfo.csvというファイルが添付された返信メールがあるはずです。 このファイルをExcelで開き、社員リストが正しいか内容を確認します。
22.(例えばADM、FLT、AUDなど)異なる部門で電子メールのリクエストを送信し、処理シーケンスを再度実行します。 自身の電子メール・アカウントの受信トレイを確認し、それぞれのリクエストごとに返信があり、そのCSV添付ファイルにリクエストに沿った内容の社員リストが含まれているかチェックします。
これで、この演習は終了です。