スクリプトで参照項目へ値の反映をする方法

Yuki21
Tera Expert

インポートセットテーブルに添付されたCSVファイルをカスタムテーブルへインポートするスクリプトを実装しましたが、テーブルのカラム属性が異なるため、値が反映されまない状況です。

 

スキームID、システムID、性能情報種別IDは
属性がインポートセットテーブルでは文字列、カスタムテーブルは参照(※)となっています。
※スキームマスタ、システムマスタ、性能情報種別マスタの値を参照

参照項目への値の反映をする方法について、ご教示いただければと思います。

1 ACCEPTED SOLUTION

iwai
Giga Sage

Reference項目を表示値で一致させる場合は、下記のScript ”setDisplayValue”で可能です。

参考資料Docs:GlideElement | ServiceNow Developers

var rec = new GlideRecord('incident');
rec.initialize();
rec.caller_id = gs.getUserID();
rec.short_description = 'test';
// Assignment Group(Reference項目)に表示値で設定する。大文字小文字はどちらでも該当するが全角半角などの曖昧一致はしない
rec.assignment_group.setDisplayValue('Incident Management');
// Reference項目の内部値を表示
gs.info('rec.assignment_group >> ' + rec.assignment_group);
// Reference項目の表示値を表示
gs.info('rec.assignment_group getDisplayValue >> ' + rec.assignment_group.getDisplayValue());

// rec.assignment_group >> 12a586cd0bb23200ecfd818393673a30
// rec.assignment_group getDisplayValue >> Incident Management

View solution in original post

11 REPLIES 11

ClientScriptでひとつのTableのQueryだけで良いなら、GlideAjaxより簡易にGlideRecordでQueryする方法も良さそうです。複数のTableのQueryやServer sideの処理が必要ならGlideAjaxで。

GlideRecord | ServiceNow Developers

// ClientScript
var rec = new GlideRecord('sys_user');
rec.addQuery('user_name', 'abel.tuter');
rec.setLimit(1);
rec.query(recResponse);

function recResponse(rec) {
    if (rec.next()) {
        g_form.setValue('user', rec.sys_id, rec.name);
    }
}

Tetu
Tera Contributor

クライアントのGlideRecordは、パフォーマンス落ちるので非推奨とあったのですが、この方法なら気にせず使えるしサーバーサイド書かなくて良いのは非常にありがたいです。