エージェントワークスペースでナレッジを開き、「リンクのコピー」をした際の挙動について

Ikeda1
Mega Guru

お世話になっております。

表記の件、RomeとSanDiegoで以下の操作の挙動(コピー先URL(のポータル)アドレス)が異なっておりました。

➀エージェントワークスペースにてナレッジ記事を開き
②右上の3点リーダーから「リンクのコピー」をクリック

サポートに問い合わせた結果、Rome では該当の UI Action は sys_ux_lib_source_script - sn-component-workspace-knowledge にて制御がされていたが、San Diego からは 以下のリンク先にあるsys_ux_client_script - Article actions にて制御がされていること。
https://インスタンス名.service-now.com/nav_to.do?uri=sys_ux_client_script.do?sys_id=4ef545ec531310108bd7ddeeff7b1205

および、sys_ux_client_script - Article actions で遷移先のポータルを変更しても、(CSM Configurable Workspace 等の)UI Builder で編集することができる workspace にのみ反映がされるとのことで、Legacy Agent Workspace にはその変更が反映されないことまでご回答を頂きました。

実際に教えていただいた通りの変更を加えても、Legacy Agent Workspaceには反映は出来ないことを確認しております。

この場合、元の実装に戻すため、どのようなカスタマイズを加えるべきでしょうか。

例えば、「kbポータルに遷移した場合、利用しているポータルに強制的にリンクするよう、ポータルのウィジェットにスクリプトを埋め込む」など、良い実装案がございましたら、ご教示ください。

よろしくお願いいたします。

1 件の受理された解決策

iwai
Giga Sage

今のところ「kbポータルに遷移した場合、利用しているポータルに強制的にリンクするよう、ポータルのウィジェットにスクリプトを埋め込む」ほかに良い方法はなさそうです。

San Diegoの AgentWorkspace の Knowledge Pageで "Copy Link" を押したときに実行されるScriptをブラウザのDeveloper toolで調査してみました。

San Diegoでもsys_ux_lib_source_script テーブルの sn-component-workspace-knowledge を実行していました。ただし、San Diegoでは、そのファイルは参照できないように変えたようです。旧バージョンのインスタンスではsn-component-workspace-knowledgeがsys_ux_lib_source_script テーブルにあり、San Diegoでは見えません。
ブラウザのDeveloper tool で処理自体は把握できても、元のファイルを書き換えることができそうにないです。

/uxasset/externals/sn-component-workspace-knowledge/index.jsdbx

      , Ol = ({dispatch: e, state: t})=>{
        let o = t.kbArticle.AppKnowledge_Query.getArticleDetails
          , r = document.createElement("textarea");
        var n = document.location.origin + "/kb?id=kb_article_view&sysparm_article=" + o.articleInfo.number;
        r.innerHTML = n,
        r.className = "sr-only",
        document.body.appendChild(r),
        r.select();
        let a = !0;
        try {
            a = document.execCommand("copy")
        } catch (i) {
            a = !1
        } finally {
            document.body.removeChild(r)
        }

元の投稿で解決策を見る

2件の返信2

iwai
Giga Sage

今のところ「kbポータルに遷移した場合、利用しているポータルに強制的にリンクするよう、ポータルのウィジェットにスクリプトを埋め込む」ほかに良い方法はなさそうです。

San Diegoの AgentWorkspace の Knowledge Pageで "Copy Link" を押したときに実行されるScriptをブラウザのDeveloper toolで調査してみました。

San Diegoでもsys_ux_lib_source_script テーブルの sn-component-workspace-knowledge を実行していました。ただし、San Diegoでは、そのファイルは参照できないように変えたようです。旧バージョンのインスタンスではsn-component-workspace-knowledgeがsys_ux_lib_source_script テーブルにあり、San Diegoでは見えません。
ブラウザのDeveloper tool で処理自体は把握できても、元のファイルを書き換えることができそうにないです。

/uxasset/externals/sn-component-workspace-knowledge/index.jsdbx

      , Ol = ({dispatch: e, state: t})=>{
        let o = t.kbArticle.AppKnowledge_Query.getArticleDetails
          , r = document.createElement("textarea");
        var n = document.location.origin + "/kb?id=kb_article_view&sysparm_article=" + o.articleInfo.number;
        r.innerHTML = n,
        r.className = "sr-only",
        document.body.appendChild(r),
        r.select();
        let a = !0;
        try {
            a = document.execCommand("copy")
        } catch (i) {
            a = !1
        } finally {
            document.body.removeChild(r)
        }

ありがとうございました。

やはり、Scriptではどうにもならなそうですので、遷移先のkbポータルのカスタマイズに舵を切ります。

調査結果のご共有、ありがとうございました。