どのような設定を行うかが不明ですが、同時に違うユーザがg_user.userNameをしても異なる値になります。

onLoadクライアントスクリプトの他にもデフォルト値にJavascriptを記述することも可能です。この場合はサーバ側でフォームが作成される時にサーバ側でスクリプトが実行されます。

その他にもdisplay business ruleを使うことも可能です。この場合もフォームが作成される前にサーバ側でスクラッチパッド変数にクライアントスクリプトで利用できる変数を設定します。

Ankur Bawiskar
Tera Patron

Hi,

It would be nice if you could post the details in English so that members can help you

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

Hi.

I think so. but i can hardly use English

Regards

Hitoshi Ozawa
Giga Sage

先ずフォーラムの基本ルールとして投稿した内容を変更せず、追加内容も回答して投稿します。同じような問題があるユーザも検索して読む場合は内容が変更されると分かりづらくなります。また、変更されると通知されません。

さて、本題になります。getParameterValue()はURLからパラメータの値を取得します。

UIとサービスポータルではURIの仕組みが異なります。

サービスポータルの場合はフォームのURIに次の様にパラメータを追加します。

&parm1=123&parm2=456

UIの場合はURLエンコードしてパラメータを追加します。「%26」です。「&」を使うと正しく動作しません。またURI本体も異なるので注意が必要です。

%26parm1=123%26parm2=456
function onLoad() {
    g_form.setValue('field1', getParameterValue('parm1')); // フィールドfield1にparm1の値を設定する
    g_form.setValue('field2', getParameterValue('parm2')); // フィールドfield2にparm2の値を設定する
}

function getParameterValue(name) {
    var url = top.location.href;
    var value = new URLSearchParams(url).get(name);
    if (value) {   // サービスポータルの場合の処理
        return value;
    }
    if (!value) {  // UIの場合の処理
        try {
            var gUrl = new GlideURL();
            gUrl.setFromCurrent();
            value = gUrl.getParam(name);
            if (typeof value == 'undefined') { // パラメータが無い場合は空白を返す
                return '';
            } else {
                return value;
            }
        } catch (e) {}
    }
}

実行例:

フォームを次のように定義しました。

find_real_file.png

1.サービスポータル

https://<インスタンス名>.service-now.com/sp?id=sc_cat_item&sys_id=<sys_id>&sysparm_category=<カタログ番号>&parm1=123&parm2=456

find_real_file.png

2.UI

https://<インスタンス名>.service-now.com/nav_to.do?uri=%2Fcom.glideapp.servicecatalog_cat_item_view.do%3Fv%3D1%26sysparm_id%3D<sys_id>%26parm1=123%26parm2=456

find_real_file.png

元の投稿で解決策を見る

なるほど、URLに含めたパラメータを取得するScriptが書けるのですね。

実際に私の環境でも試してみて、うまくいくことが確認できました。

本当にありがとうございました!

 

また、フォーラムの基本ルールについても承知いたしました。

ご教示いただきありがとうございました。