基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > ウィザードの作成 > ウィザード処理 > FormResult/クライアント側でのフォームの後処理 > JCA コンポーネントの再表示/更新 > カスタム操作処理の例 > FormResultAction.JAVASCRIPT の置き換え
  
FormResultAction.JAVASCRIPT の置き換え
ある操作の結果としてページ内の特定のコンポーネントを更新するために追加の Javascript を実行する必要がある場合、代わりに、次の例に示すチェックアウト操作などの特定の操作に反応する、コンポーネント固有の objectsaffected リスナーを追加するほうが適切です。ほかのページでは Javascript が必要でないことがよくあるため、一部のウィザードではそのウィザード固有のリスナーを追加します。
ウィザード固有のハンドラ
ウィザードの結果としてカスタム (固有の) コードを実行する必要がある操作では、成功したサブミットを処理するためのコールバック関数を使用できます。この successFunc コンフィギュレーションパラメータは PTC.wizard.submitWizard 関数に渡されます。この successFunc は、ウィザードがサーバーから FormResult を受信して afteraction イベントと objectsaffected イベントを発生させたときに呼び出されます。これにより、操作のオーナーはウィザードの流れと動作をより細かく制御でき、個々のコンポーネントによるイベント名の処理方法を修正する必要がありません。たとえば、編集ウィザードの checkin ボタンには、属性がデータベースに正常に保存されると checkin ウィザードを開始する成功ハンドラがあります。
次に示すサンプルコードで、ウィザードのコードに渡される関数に注意してください。
<command onClick="onEditSubmit('checkinButton')"/>
function onEditSubmit(actionName){
var params = {successFunc: PTC.wizard.launchCheckinWizard,
finished: actionName=='saveButton'};
PTC.wizard.submitWizard(params);
}
特定のテーブルにおけるオブジェクトの処理方法の変更
たとえば、(wip.jsfrag から) 既存の行にチェックアウトグリフを追加する代わりに、チェックアウトテーブルに行を追加できます。
PTC.wip = {};
/**
* add/remove rows from the checkouts table for the wip actions
*/
PTC.wip.checkoutsTableObjectsAffectedWrapper =
function(original, formResult) {
if (formResult.actionName === 'checkout') {
var added_new_rows = formResult.getUpdatedOids();

if(added_new_rows.length > 0) {
clearActionFormData();
rowHandler.addRows(added_new_rows, this.id, null, {
doAjaxUpdate : true,
addSorted : true
});
}
return true;
}
return original.call(this, formResult);
};
PTC.wip.addCheckoutTableListeners = function (table) {
table.onObjectsAffected = table.onObjectsAffected.wrap
(PTC.wip.checkoutsTableObjectsAffectedWrapper);
};
PTC.onAvailable('checkedout.work.table',
PTC.wip.addCheckoutTableListeners);