ServiceNow – UI Actionのcurrentにはサーバ側ではなくクライアント側(フォーム)の値が入っている

開発・導入

結論

UI Action内のスクリプトにおいて

current.getValue('field_name');

などとした場合、取得される値はサーバ側に保存されている値ではなく、現在フォームで入力した値が取得されます。その後UI Action内で

current.update();

などとしなければ、その値はサーバ側に保存されることはありません。

ボタンを押下した際に、サーバ側の値ではなくクライアント側の値を取りたいんだよなーと思って実験したら、サーバ側スクリプトなのにクライアント側の値がとれたので共有します。

デモ

実装

フォーム

UI Action(無関係なフィールドは非表示にしています)

デモ

フォームを開く

値を入力(未保存)し、ボタンを押下

保存をしていないのでレコードは作られず、Record not foundが表示される

ログにはサーバ側には未送信のはずのフォーム上で入力した情報が出力される

コメント

タイトルとURLをコピーしました