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テーブルのように列が多いテーブルのデータを取得するぬは不向きです。

ServiceNow

Posted by arkgame