メールアプリケーションの設計
3 タスク
20 分
シナリオ
Front Stageは、自動生成されたメールを将来の特定の日時に送信するようにスケジュールを設定する必要があります。 FSGの従業員は、この機能を使ってメールを生成する際にメールの内容を編集する必要があります。 Front Stageの従業員は、メール送信予定日時より前の任意の時点で、メールの内容の編集、キャンセル、手動送信を簡単に行える必要があります。 予定日時前にメールのキャンセルや手動送信が行われない場合は、予定日時に自動的にメールが送信される必要があります。 このメールの自動生成、スケジュール設定、編集の機能は、Front Stageのために開発される現在および将来のアプリケーションに組み込めるようになっていなければなりません。
メールの自動生成、スケジュール設定、編集の機能に関するFront Stageの要件を満たすソリューションの設計ドキュメントを作成してください。 設計ドキュメントには、推奨されるアプローチに到達するための思考プロセスを記載し、少なくとも3つの実行可能な代替設計オプション、検討する各アプローチの長所と短所の比較、推奨されるアプローチが望ましい理由の説明を含めてください。
詳細なタスク
1 設計オプションの特定
ソリューションには少なくとも次の3つのアプローチが考えられます。
- Pegaコンポーネントの(pyMode=Component)コンポーネントの一部であるスピンオフEmailプロセス(フロー)
- ジョブスケジューラーで処理されるメールデータインスタンス
- (pyMode=Application)モジュール型組み込みアプリケーションで定義されるスピンオフEmailサブケース
スピンオフEmailプロセスコンポーネント
スケジュール設定時刻にメールを送信する機能は、(pyMode=Component)コンポーネントに含まれるプロセスで定義できます。 ケースタイプは、そのライフサイクルの中でこのプロセスを参照します。 コンポーネントで定義されたプロセスは、2つ目のプロセスをスピンオフします。 スピンオフされたプロセスには、サービスレベルアグリーメント(SLA)付きのアサインメントが含まれています。 SLAは、コンポーネントで定義されてすべてのケースタイプに継承されるDateTimeプロパティに呼応します。
ジョブスケジューラーで処理されるメールデータインスタンス
Data-Corr-Emailクラスは、拡張されてスケジューリング情報を含めるようになっています。 そのクラスのインスタンスは別々に保存されます。 ユーザーは、自分がアクセスできるケースに関連したメールインスタンスを開くことができます。 ジョブスケジューラーは、これらのデータインスタンスに定期的にクエリーをかけ、送信予定時刻が過ぎているにもかかわらず送信されていないメールを探します。 ジョブスケジューラーがメールを正しく送信すると、データインスタンスが更新されて、メッセージが送信されたことを示すフラグが立ちます。
Emailサブケースコンポーネントアプリケーション
常に子ケースとして作成される単一のEmailケースを持つ(pyMode=Application)コンポーネントアプリケーションを作成します。 データ伝搬は、メールを送信するタイミングをEmail子ケースに伝えるために使用されます。 Email子ケースは、送信するメールに関する情報が、直近に添付された親ケースのData-Corr-Email インスタンスに含まれているものと想定しています。 Email子ケースでは、メッセージ送信前にメールを編集するためのUIを利用できます。
2 設計オプションの評価
設計 | 長所 | 短所 |
---|---|---|
スピンオフEmailプロセス |
|
|
ジョブスケジューラーで処理されるメールデータインスタンス |
|
|
Emailサブケースコンポーネントアプリケーション |
|
|
3 最適なソリューションの提案
Emailサブケースモジュラー型組み込みアプリケーションのオプションが望ましい理由は、以下のとおりです。
- 要件を完全に満たす
- 構成の幅が広い
- テストがシンプルになる