[ServiceNow] 서비스 카탈로그에 인수를 전달하고 싶습니다.

계기



어느 서비스 카탈로그에 이전 페이지에서 표시하고 있는 값을 인계해 천이 하고 싶다고 하는 요망이 있어, URL로부터 취득하는 방법을 구현했습니다.

참고한 기사



플랫폼



뉴욕

샘플



다음 카탈로그(레코드 프로듀서)의 Asset No. 필드에 값을 전달하고 싶습니다.


방법 1 변수의 Default Value 사용





변수의 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

결과





방법 2 매크로 형식 변수 사용



매크로 유형의 변수를 설정합니다.


위젯의 클라이언트 스크립트에 다음 코드를 작성합니다.

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.에 값을 설정할 수 있었습니다.

좋은 웹페이지 즐겨찾기