アクティビティ構造
アクティビティは、1つ以上のシーケンスステップで構成されます。アクティビティステップでは、それぞれシステムが実行するアクションを説明するメソッドを指定する必要があります。
ステップページとは、メソッドが処理されるメモリ内のページのことをいいます。デフォルトでは、アクティビティは呼び出されたコンテキストで実行されます。たとえば、ケース処理中にユーティリティシェープから呼び出されたアクティビティは、ケースタイプ(pyWorkPage)に割り当てられたページに対して実行されます。
次の画像で「+」アイコンをクリックすると、アクティビティの設定に関する詳細が表示されます。
アクションアクティビティ
アクティビティでは、番号順にステップが実行されます。「Loop」、「When」、および「Jump」は、ステップを繰り返したり、ステップの実行順序を変更したりする場合のアクションまたは条件を示します。
次の画像で「+」アイコンをクリックすると、アクティビティのアクションと条件に関する詳細が表示されます。
他のアクティビティを呼び出すためのメソッド
アクティビティは他のアクティビティを呼び出すことができるため、開発者はモジュール型のアクティビティを作成することで、標準のアクティビティを再利用できます。Pega Platform™には、別のアクティビティを実行する方法が2つ用意されています。 と
呼び出し
Pegaでは指定されたアクティビティが実行され、呼び出されたアクティビティプロセスが終了した時点で呼び出し元のアクティビティにコントロールが戻されます。AとBの2つのアクティビティを考えてみましょう。AがBを呼び出すと、Bが終了したときに、コントロールはAに戻ります。
分岐
Pega Platformでは指定されたアクティビティが実行されますが、コントロールは最初のアクティビティを呼び出したルールに戻されます。元のアクティビティは、分岐したアクティビティが完了すると終了します。 CとDの2つのアクティビティを考えてみましょう。 CがDに分岐する場合、D(分岐したアクティビティ)が完了すると、コントロールはアクティビティCを呼び出したルールに戻ります。次の画像は、呼び出しと分岐の方法のオプションを示しています。
パラメーター
パラメーターはアクティビティにデータを入力したり、アクティビティからデータを返したりする変数を定義します。
パラメーターを使用すると、開発時に事前に定義するのではなく、アクティビティが呼び出されたときに引数を渡すことができるため、アクティビティの再利用性が向上します。
- アクティビティパラメーターは、Activitiesフォームのparametersタブで定義されます。
- パラメーター値を参照するには、param.<ParamName>という表記を使用します。
- パラメーターの名前と値は、パラメーターページと呼ばれる特別なクリップボードページに保持されます。このページはクclipboardツールでは表示されません。
次の画像は、アクティビティルールのParameters タブを示しています。
セキュリティ
アプリケーションをより適切に保護するには、アクティビティ固有のアクセスコントロールを設定して、アクティビティを実行できる方法とユーザーを制限します。アクティビティルールのSecurityタブの設定を使用してアクティビティタイプを指定し、オプションでアクティビティを実行できるユーザー(または他のリクエスター)を制限します。 次の画像は、アクティビティルールのSecurityタブを示しています。
アクセス制限
Restrict accessセクションのセキュリティ設定を使用して、ユーザーが実行時にアクティビティを実行する方法(または実行するかどうか)を制限します。
Allow invocation from browserチェックボックスを選択すると、ユーザーはURLのSubmitボタンやpyActivity=要素などのユーザー入力処理によってアクティビティを直接開始できるようになります。このアクティビティを別のアクティビティからのみ、呼び出し、分岐、またはその他の手段で開始できるようにする場合は、選択を解除します。
「Require authentication to run」チェックボックスを選択して認証済みのリクエスターのみがこのアクティビティを開始できるようにするにします。ゲストユーザーが他のセキュリティおよびアクセス条件を満たしている場合にこのアクティビティを実行できるようにするには、チェックボックスをオフにします。
1つ以上の権限を特定して、このアクティビティを実行できるユーザーおよびその他のリクエスターを制限できます。実行時においてユーザーが属しているアクセスグループでアクセス権限の1つが付与されていない場合、アクティビティの実行は失敗します。
アクティビティタイプ
アクティビティのアクティビティタイプを選択して、このアクティビティを他のルールで参照できるか、またどのように参照できるかを決定します。たとえば、Routeアクティビティタイプを選択すると、アクティビティの使用がケースワークフローのルーティングアサインメントに制限されます。Activity typeリストには、次のオプションがあります。
| アクティビティタイプ | 説明 |
|---|---|
| Activity | これ以上、具体的な値が適用されない場合に選択します。この値のアクティビティは、フロールールで直接参照することはできません。 |
| Assembler | 非推奨。使用しないでください。 |
| Assign | アクティビティがフロールールのアサインメントシェープから参照されるかどうかを選択します。Assignアクティビティは、アサインメントを作成するために使用されるため、NotifyおよびRouteアクティビティなど、アクティビティから呼び出される可能性のある他のアクティビティタイプとは異なります。 |
| Asynchronous | アクティビティがバックグラウンドスレッドで非同期に実行されるかどうかを選択します。アクティビティでは「Load-DataPage」、「Connect-Wait」、「Call-Async-Activity」、および(ユーザーが非同期アクティビティをロードできるようにするステップインストラクション)のステップメソッドのみを呼び出せます。 |
| Load Data Page | アクティビティでデータページに値を追加するかどうかを選択します。Data PageルールのDefinitionタブでこのアクティビティを参照してください。 |
| Locate | 現在は廃止されています。位置特定可能ページを利用する既存のアクティビティでのみ使用できます。 |
| Notify | アクティビティを使用して、保留中のアサインメントを1人または複数のユーザーに通知するかどうかを選択します。 |
| Onchange | アクティビティがルールによってDeclare OnChange自動的に実行されるかどうかを選択します。 |
| Route | アクティビティを使用してフロールールのアサインメントをルーティングするかどうかを選択します。 |
| Rule Connect | アクティビティがコネクタールールを呼び出して外部システムとインターフェイスするかどうかを選択します。 |
| Trigger | アクティビティがルールによってDeclare Trigger自動的に実行されるかどうかを選択します。 |
| Utility | アクティビティがフロールールのユーティリティシェープから呼び出されるかどうかを選択します。 |
| Validate | 非推奨。使用しないでください。 |
アクティビティのベストプラクティス
一般
- 可能な限り、データトランスフォームルールを使用してプロパティ値を設定するなど、別のルールタイプを使用してください。
- ハードコードされた再利用可能な値をプロパティ(URLやクラスなど)で使用することは避けてください。代わりに、データページ、デシジョンテーブル、マップ値を使用します。
- アクティビティは短くしましょう。アクティビティのステップを25以下に制限し、各アクティビティを1つのタスクを完了することに集中させます。
- 再利用可能なアクティビティを使用します。
- 各アクティビティステップの機能の説明には、Description フィールドを使用します。
- ワーニングを削除するには、Security タブで適切なActivity typeを設定します。たとえば、「Utility (default)」、「Validate」、「Load Data Page」などを設定します。
手順
- 重複ループの使用を削減または排除して、アプリケーションのパフォーマンスを向上させます。
- コメント付き行は、アクティビティの詳細を明確にするのに役立たないのであれば、ルールをマージする前に削除しておいてください。
- 非推奨のアクティビティメソッドは使用しないでください。
- ハンドコードされたJavaを制限しましょう。標準またはカスタムのルールタイプ、ライブラリ関数、またはアクティビティメソッドが利用できる場合は、アクティビティのJavaステップを避けてください。
パラメーター
- パラメーターを使用して入力と出力を明確に定義すると、システムアーキテクトがアクティビティの使用方法を理解して、アプリケーションの保守性を向上させられるようになります。アクティビティを処理するために特定の値が必要な場合は、完全なページ参照ではなく、スカラーパラメーターを渡します。
次の問題に答えて、理解度をチェックしましょう。