高度なカスタマイズ > ビジネスロジックのカスタマイズ > ワークフロー管理のカスタマイズ > 変更アクティビティのワークフロー割当のカスタマイズ > カスタマイズポイント
  
カスタマイズポイント
カスタムのやり直し役割の作成
enumCustomize ツールを使用して、新しいやり直し役割を wt.project.RoleRB.rbInfo に追加します。このツールの使用方法については、列挙タイプカスタマイズユーティリティを参照してください。
このプロセスでは、カスタム役割 "Rework Assignee" を使用します。新しい役割が必要ない場合、このステップはスキップできます。
変更アクティビティのワークフローのカスタマイズ
1. 「サイト」「組織」「製品」、または「ライブラリ」コンテキストの「ユーティリティ」ページで、「ワークフローテンプレート管理」を選択します。
2. "Change Activity Workflow" テンプレートに対して「複製」を選択して、カスタマイズのコピーを作成します。カスタマイズされたワークフローの適切な名前を選択します (たとえば、このドキュメントでは "Custom Change Activity Workflow" が使用されています)。ワークフローテンプレートを変更する前には常にコピーを行います。OOTB ワークフローテンプレートそのものをカスタマイズしないようにしてください。
3. "Custom Change Activity Workflow" テンプレートに対して「編集」操作を選択すると、ワークフローテンプレートエディタに変更アクティビティのワークフローグラフが表示されます。このカスタマイズに関係する領域は、右上部分にあるやり直しループです。
4. "Rework Change Notice Task" をダブルクリックしてエディタを開き、「参加者」タブを選択します。"Rework Assignee" 役割を追加して、"「タスク実施者」" 役割を除去します。新しい役割が必要ない場合、このステップはスキップできます。
5. ワークフローの "Set State Implementation" ステップと "Rework Change Notice Task" ステップの間に新規定義式のステップを作成し、"Set Rework Assignee" のような意味がわかる名前を付けます。
6. 前の作業タスクを完了したユーザーを自動的に取得し、それらのユーザーをやり直しタスクの変更アイテムチームに割り当てるために、"Set Rework Assignee" ステップに Java コードを追加します。ここで呼び出すことのできるヘルパーメソッドについては、Java ヘルパーメソッドを参照してください。
例:
wt.project.Role reworkRole = wt.project.Role.toRole("REWORK_ASSIGNEE");
wt.project.Role participantsRole = reworkRole;
java.util.Map<wt.project.Role, wt.fc.collections.WTSet> roleToParticipantMap;
// Try to get participants from the rework activity.
roleToParticipantMap = com.ptc.windchill.pdmlink.change.server.
impl.WorkflowProcessHelper.getActivityParticipants(
(wt.change2.VersionableChangeItem) primaryBusinessObject,
"Rework Change Notice Task");
// If the map is null then the rework activity has not executed yet.
if (roleToParticipantMap == null) {
participantsRole = wt.project.Role.toRole("ASSIGNEE");
// Try to get participants from the original activity.
roleToParticipantMap = com.ptc.windchill.pdmlink.change.server.impl.
WorkflowProcessHelper.getActivityParticipants(
(wt.change2.VersionableChangeItem) primaryBusinessObject,
"Complete Change Notice Task");
}
// Assign participants from original or rework activity to the
rework role on the change team.
// By doing so only those participants will get the next
rework tasks.
wt.fc.collections.WTSet participants = roleToParticipantMap.
get(participantsRole);
com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.
setChangeItemParticipants(
(wt.change2.VersionableChangeItem) primaryBusinessObject,
reworkRole, participants);
7. Java コードが完了した後、「構文チェック」ボタンを選択してエラーがないか確認します。カスタムワークフローテンプレートを使用する前に、すべてのエラーが修正されていることを確認してください。
8. "Custom Change Activity Workflow" テンプレートに対する変更を保存して、これをチェックインします。
変更アクティビティのライフサイクルのカスタマイズ
「ライフサイクルテンプレート管理」ユーティリティを使用して、カスタムの "「変更アクティビティのライフサイクル」" テンプレートを作成します。前のセクションで作成したカスタムワークフローテンプレートを指定します。
変更アクティビティのオブジェクト初期化規則のカスタマイズ
「オブジェクト初期化規則管理」ユーティリティを使用して、カスタムの "「変更アクティビティ」" のオブジェクト初期化規則 (OIR) をテンプレートを使用して作成します。前のセクションで作成したカスタムライフサイクルテンプレートを指定します。