はじめに
Agileworksにはマスタ参照機能があり、
それを使ってマスタ一覧から値を自動入力させることができます。
ただウインドウ表示中に親画面の操作が出来てしまうという仕様(バグ?)があり、
その穴をかいくぐるかのように、ウインドウが開いている状態で項目の手入力や申請ボタンの押下などされるユーザーがいたため、JavaScriptで対応させていただきました。
今回はその内容について記載したいと思います。
JavaScriptで対応する場合
以下のソースコードを適用すればボタン押下時にマスタ参照ウインドウが開いている場合、
アラートメッセージが表示され、処理が中断されるようになります。
WorkflowEvent.addEvent("ボタン名", "回付ルールID", checkOpenWindow);
function checkOpenWindow(){
// マスタ参照ウインドウが開いているかチェック
var window = document.getElementById("_XWebCal");
if(window)
{
if(window.style.visibility=="visible"){
alert("マスタ参照ウインドウを閉じてからボタン操作を行ってください。");
return false;
}
}
return true;
}
画面イメージ
※黒の塗りつぶしが多くて申し訳ないです…
標準機能で対応する場合
本件についてサポートサイトに問い合わせを行ったところ、
該当フィールドを編集禁止とすることで近しい動作が可能かと思われる、との情報をいただきました。
たしかに編集禁止状態でもマスタ参照設定による値の格納は可能なため、
手入力を行わない場合は、編集禁止としておけば無難かと思います。
※手入力を行う場合、この対応ではなくJavaScriptでの対応となります
さいごに
あまり起こらない事象なはずなので、
内容を周知して運用でカバーするのが個人的には一番だと思います。