はじめに
Formaの標準アプリの登録ボタン押下後、即時一覧画面にsendbackされるため、本当にデータが登録されたのかわかりづらかったので、興味本位で確認ダイアログを実装しました。
初歩的なことでうまくいかず、半日かかり正直あきらめかけましたが、無事作成できましたので、その構築手順をまとめます。
前提条件
- アプリケーション種別は「標準」
- YESなら登録実行、Noなら入力画面に戻り何もしない
- 更新処理は作成した処理の特性上、不要だったため、考慮していない:記載すべきスクリプトはたぶん同じかと思うが、動作保証はしておりません。またワークフローの申請も同じスクリプトなのですが、こちらも確認はしていないので動作保証はしてません。
使うツール
- 汎用アイテムの「イベントボタン」


ここが今回実装時の初歩的かつ重要ポイントで、標準で準備されている登録ボタンだとアクション設定のカスタムスクリプトに対して、何を書いても強制的に登録実行がされます。(ダイアログが出ながらそのまま登録実行され1つ前の画面に戻ります。)
構築手順
- イベントボタンを配置する
- イベントボタンのスクリプトタブを開き、以下のようにスクリプトを書き込む

imuiConfirm('登録します。よろしいですか?', '登録確認',
function() {
//OKが押された場合の処理、登録処理
sendRegistData();//登録
},
function() {
//キャンセルされた場合の処理(登録画面に戻るだけで何もUI上表示されない)
console.log('キャンセルされました');
},
true
);
これだけで完成です。とても簡単ですね。
※「sendRegistData();」がボタンアイテムの「ボタン(登録)」と同じです。
余談
標準の「ボタン(登録)」で作成したアプリを、運用途中で「イベントボタン」に変えても、少なくとも登録実行については問題なく動くことを確認してます。
わざわざ確認ダイアログのために、「ボタン」の変更を加えることはないとは思いますが参考程度に知っておいたらと思います。
まとめ
以上で、『【intra-mart】確認ダイアログありの登録ボタンの構築手順』でした。
手順としてまとめると超簡単ですが、intra-martの各ツールの仕様を理解してはじめて実現できる内容でした。なんとなくですが、こういうのintra-martって多いですよね。
コメント