ウィジェットとカタログアイテムについて

ewdgfnh
Tera Contributor

下記の動きをServiceNowで実装するのは可能でしょうか?

 

1.チケットページにボタンウィジェットを作成

2.押下されると、カタログアイテムのページに遷移

  →この時、ページBのVariableにチケットの各値を設定する。

1 件の受理された解決策

Mio Matsushita
Mega Sage
こんにちは
カスタマイズになりますが、チケットページのボタンウィジェットをクリックして遷移した先のカタログアイテム変数にチケットの値を設定することは可能です。
例としてインシデントをポータルのチケットページで開いた時、チケットページ上のボタンをクリックして遷移した先のカタログアイテムで、カタログ変数に遷移前のページで表示していたインシデントをセットする方法をご紹介します。
 
カスタマイズは以下です。
1.チケットフォームのウィジェット
例:Ticket Conversationsウィジェット
ボタンを追加しリンク先として以下のURLが動的に生成されるようにします。
https://<INSTANCE_NAME>.service-now.com/sp?id=sc_cat_item&sys_id=21cb2a85936802105de6f5f08bba101f&incident=<現在表示しているインシデントのsys_id>
Body HTML template

 

<button ng-click="redirectToCatalogItem()">カタログアイテムに遷移</button>

 

 

Client controller

 

$scope.customRedirect = function() {
    top.window.location = "/sp?id=sc_cat_item&sys_id=21cb2a85936802105de6f5f08bba101f&incident=" + 
    $scope.data.sys_id
}

 

 

 
2.カタログクライアントスクリプト
URLパラメーター(例:incident)を変数にセットする処理を追加します。

 

function onLoad() {
    //Type appropriate comment here, and begin script below

    var inc = getParameterValue("incident");
    if (inc) {
        g_form.setValue('incident', inc);
    }

    function getParameterValue(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(top.location);
        if (results == null) {
            return "";
        } else {
            return unescape(results[1]);
        }
    }
}

 

 

動作イメージ

image01.pngimage02.png

 

 

 

元の投稿で解決策を見る

1件の返信1

Mio Matsushita
Mega Sage
こんにちは
カスタマイズになりますが、チケットページのボタンウィジェットをクリックして遷移した先のカタログアイテム変数にチケットの値を設定することは可能です。
例としてインシデントをポータルのチケットページで開いた時、チケットページ上のボタンをクリックして遷移した先のカタログアイテムで、カタログ変数に遷移前のページで表示していたインシデントをセットする方法をご紹介します。
 
カスタマイズは以下です。
1.チケットフォームのウィジェット
例:Ticket Conversationsウィジェット
ボタンを追加しリンク先として以下のURLが動的に生成されるようにします。
https://<INSTANCE_NAME>.service-now.com/sp?id=sc_cat_item&sys_id=21cb2a85936802105de6f5f08bba101f&incident=<現在表示しているインシデントのsys_id>
Body HTML template

 

<button ng-click="redirectToCatalogItem()">カタログアイテムに遷移</button>

 

 

Client controller

 

$scope.customRedirect = function() {
    top.window.location = "/sp?id=sc_cat_item&sys_id=21cb2a85936802105de6f5f08bba101f&incident=" + 
    $scope.data.sys_id
}

 

 

 
2.カタログクライアントスクリプト
URLパラメーター(例:incident)を変数にセットする処理を追加します。

 

function onLoad() {
    //Type appropriate comment here, and begin script below

    var inc = getParameterValue("incident");
    if (inc) {
        g_form.setValue('incident', inc);
    }

    function getParameterValue(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(top.location);
        if (results == null) {
            return "";
        } else {
            return unescape(results[1]);
        }
    }
}

 

 

動作イメージ

image01.pngimage02.png