2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[ServiceNow] サービスカタログに引数を渡したい

Posted at

きっかけ

とあるサービスカタログに前のページで表示している値を引き継いで遷移したいという要望があり、URLから取得する方法を実装しました。

参考にした記事

プラットフォーム

NewYork

サンプル

以下のカタログ(レコードプロデューサー)のAsset No.フィールドに値を渡したい。
スクリーンショット 2020-09-08 19.31.06.png

方法1 変数のDefault Valueを使用する

スクリーンショット 2020-09-08 20.57.26.png

変数のDefault Valueに以下のスクリプトを書きます。

hoge.js
javascript: (function(){
  try{
    return $sp.getParameter('var_asset_no') || '';
  } catch(e){
    return RP.getParameterValue('var_asset_no');
  }
})()

以下の様にURLパラメータを渡してカタログを開きます。

https://(インスタンス名).service-now.com/(カタログページ)&var_asset_no=P1000023

結果

スクリーンショット 2020-09-08 20.54.07.png

方法2 マクロ型の変数を使用する

マクロ型の変数を設定します。
スクリーンショット 2020-09-08 21.10.16.png

ウィジェットのクライアントスクリプトに以下のコードを書きます。

client_script.js
function($scope, $window) {
    var params = $window.location.href.split('?')[1];
    var paramArr = params.toString().split('&');
    paramArr.map(function(keyval) {
        var key = keyval.split('=')[0];
        var value = keyval.split(key + '=').join('');
        value = decodeURIComponent(value);
        try {
            $scope.page.g_form.setValue(key, value);
        } catch (e) {
            console.log('Error set params', e);
        }
    });
}

以下の様にURLパラメータを渡してカタログを開く

https://(インスタンス名).service-now.com/(カタログページ)&category=hardware&cmdb_ci=P1000023

結果

CategoryとAsset No.に値を設定できました。
スクリーンショット 2020-09-08 21.13.31.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?