2020年10月17日土曜日

ServiceNowのテンプレートでスクリプト(Javascript)を使う

テンプレート機能の使い方については↓以前のこのあたりの記事を参照。

ServiceNowのテンプレート機能を活用する

ServiceNowのデフォルトではテンプレート化できない項目をテンプレート化する(例)

さて時にテンプレートを使用していると動的な値を入れたくなることがある。

なぜか公式のドキュメントには丁寧な案内が見当たらないのだが、テンプレート内でJavascriptを使うことができる様になっている。

使い方はテンプレートの値を設定するときに、

「javascript:[スクリプト内容];」と入れてやるだけでOK。

試しにKnowledgeのテンプレートとしてArticle bodyに
「javascript:gs.getUserDisplayName()」と入れてみる。


このテンプレートを適用すると、

Article bodyに「System Administrator」と現在のユーザ名が入力された。

ただし、とりあえずこれだけだとスクリプトと固定の文字列を組み合わせたい様な入力が実現できない。

どうやらコミュニティを見ても単純にテンプレートのフィールドの記載を工夫するだけでは実現不可なようである。

https://community.servicenow.com/community?id=community_question&sys_id=b18dc32ddb9cdbc01dcaf3231f961984


・・・と思ったらこの記事を発見。

https://community.servicenow.com/community?id=community_question&sys_id=478547eddbd8dbc01dcaf3231f961931

なるほど、文字列もScriptの一部となる様な記載の仕方ならOKということで、先ほどのテンプレートを↑の記事を参考に次のように変更してみる。

「javascript:"Written By : "+gs.getUserDisplayName()」と入れてUpdate。


さてさて、適用してみると・・・


これで期待通り「Written By : System Administrator」となった。固定の文字列「Written By : 」と動的に変わるパラメータである「System Administrator」をスクリプトで取得した値を組み合わせてテンプレートとして入力する事が可能になった。

ちなみに使用可能な関数等は以前も紹介したが↓のリファレンスで調査可能。日付を取得することも出来る様で、いろいろと組み合わせればかなり便利なテンプレートを作れそうだ。

https://developer.servicenow.com/dev.do#!/reference/api/Paris/server_legacy/


0 件のコメント:

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...