カタログアイテムの代わりに外部システムに遷移するリンクを表示したい
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-05-2024 10:42 PM
通常、カタログアイテムを表示している箇所に、外部システムへのリンクをリスト表示したいと考えております。
また、その際にログインしているユーザやユーザの所属国などの情報もURLに組み込みつつ遷移させたいです。
参考になる情報などがあれば教えていただけますと幸いです。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-07-2024 07:05 AM
Catalog Item で 外部へのリンクを アイテムとして表示するには、コンテンツアイテムを使用します。
以下はContent Itemの設定例です。URLに外部システムのURLを設定してください。
URLは固定値での設定になります。ログインしているユーザーなどのパラメーターをScriptで動的にURLに埋め込むことはできません。
そこで、ServiceNowでURLパラメーターを埋め込むページを間に挟むことで、要件を満たすことが出来ます。
今回の例では、「test_custom_redirect.do」というページを新規作成しました。Content ItemのURLに「test_custom_redirect.do」を設定して中継する仕組みにしてます。
中継するページはUI Pageを使って作成します。
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_url_parameter" jelly="true">
jvar_url_parameter = gs.getUserName();
</g:evaluate>
<script>
top.location.href = "https://<MyInstance>.service-now.com/sys_user_list.do?sysparm_query=user_name%3D" + encodeURIComponent("${jvar_url_parameter}");
</script>
</j:jelly>
この例では、User IDをScriptで取得して、外部システムの想定のURLを作成してページ遷移しています。
例では、ServiceNow Instanceの User Tableを Queryして 自分のUser IDを検索しています。
このURLを希望する外部システムへのURLを設定して、パラメーターをScriptで作成してください。
例は、Catalog Itemのリストに Test Custom Redirect という名前で表示しています。クリックすると中継ページを通って目的のURLにパラメーターを追加してページに遷移します。