ServiceNow getReference()非同期関数の使い方
概要
getReference()はクライアントスクリプトでサーバ情報を非同期で取得する関数です。
スクリプトインクルードを作成する必要がないので少ないコードでテーブルデータを取得することができます。
getReference()の引数は参照型フィールド名,呼び出す関数名です。
次の例では参照型フィールドuserのレコードを取得してsetEmpInfo関数を呼び出しています。
function onChange(control, oldValue, newValue, isLoading) { if (isLoading || newValue == '') { return; } g_form.getReference('emp', setEmpInfo); //参照フィールドuserのレコードを取得してsetEmpInfoを呼び出す function setEmpInfo(emp) { //ユーザ情報をフィールドemp_infoに設定する g_form.setValue('emp_info', emp.name + ' [' + emp.employee_number + ']'); } }
分析
getXML()及びgetXMLAnswer()の場合は必要な行列のデータのみを取得しますが、
getReference()の場合は1レコード全体を取得します。
そのためにネットワーク負荷が多くなり、メモリも多く使われるます。
列が少ないテーブルのデータを取得する場合は問題はないとしてもServiceNowテーブルのように列が多いテーブルのデータを取得するぬは不向きです。