1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ServiceNowのJavaScriptエンジンをECMAScript 2021にする

Last updated at Posted at 2024-09-12

ServiceNow標準のJavaScriptエンジンはES5ですが、TokyoからカスタムアプリケーションでECMAScript 2021(ES12)をサポートするようになったので実際に試してみます。

ServiceNow docsリンク : プラットフォーム上の JavaScript エンジン

カスタムアプリケーションの作成

まずはカスタムアプリケーションを作成します。
初期値で既にES12が選択されていましたが、JavaScript Modeを「ECMAScript 2021(ES12)」にして作成します。

image.png

スクリプトインクルードの作成

スクリプト実行ができればどの機能でもいいのですが、とりあえず単独で使いやすいスクリプトインクルードを試してみます。
コードの内容もES5の時には実行できなかったものであれば何でもいいので変数にconstとletを使ったアロー関数を書いてみます。

const ES12test = (name) => {
    let msg = "Hello " + (name ?? "world");
    gs.addInfoMessage(msg);
};

image.png

コードの実行

前回の記事でも紹介したXploreを使用して実行してみます。

image.png

問題なく動作しました。

他スコープでの使用

ここからが個人的に一番期待している部分なのですが、グローバルスコープやES5のカスタムアプリケーションから使用できるか試してみます。
動作してくれればES5では実現できない処理やES12で記述したほうが良い場合、ライブラリを移植する場合など、活用できる場面が出てきます。

結論を書くと他スコープから呼び出して実行することができました。
実際の画面のスクリーンショットはやんごとなき事情1によりありませんがこれで様々な活用方法が期待できます。

ServiceNowでサポートしているES12の機能

カスタムアプリケーションにてES12をサポートするようにはなりましたが、全ての機能をサポートしているわけではないようです。
詳細は以下のDocsに掲載されていますが本機能を使用してみようと思ったきっかけである正規表現のUnicodeプロパティがサポート対象外なのは残念でした。

ServiceNow docsリンク : JavaScript エンジン機能のサポート

まとめ

  • TokyoバージョンからカスタムアプリケーションでES12をサポートするようになった
  • 作成したスクリプトなどは他スコープから呼び出してES12のスクリプトとして実行可能
  • 全てのES12の機能をサポートしているわけではない
  1. 記事の投稿をさぼっている間に使用していたPDI環境が消えました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?