【ServiceNow】生成AIでコードを自動生成して開発業務を効率化する

本記事は 夏休みクラウド自由研究 8/22付の記事です

こんにちは。SCSKの吉田です。
本記事は、ServiceNowの開発者向け生成AI機能であるNow Assist for Creatorに関する記事となります。
Now Assist for Creatorには、いくつかの機能がありますが、今回はCode generationを紹介させていただきます。

本記事は執筆時点(2024年8月)の情報です。最新の情報は製品ドキュメントを参考にしてください。

Code generationとは

Code generationは、自然言語で記載したいコードの説明を入力すると、その内容をもとにAIがコードをサジェスト、生成してくれる機能となります。
Code generationの使用には以下のようなメリットがあると個人的に感じており、ServiceNowの開発業務を大幅に効率化することができます。

  • 開発経験の有無に関係なく、ServiceNowスクリプトの文法に沿ったコードを簡単に作成できる
  • 過去作成したコードを見返したり、ドキュメントを読んだりなど、調査の時間を短縮できる

普段、ロード・ノーコード開発に慣れていると、久しぶりにコーディングする際に「どういう構文だったっけ?」となることがあります。
そんなとき、Code generationを使用すれば、ドキュメントを調べる必要もなくなるので非常に便利なツールです。

使い方

Now Assist for Creatorをインストールした後、Code generationをアクティベートとすることで、Business rule、Script Includeなどのスクリプトエディターや、Flow Designerで利用可能になります。
Now Assistのセットアップ方法は、以下の記事で簡単にご紹介していますので併せてご覧ください。

ここではシステムで一般的な要件として存在する、以下のシナリオを想定してコードを作成してみます。

  • セキュリティの観点から、一定期間ログインが無いユーザーを無効化したい
自動生成したコードは、非本番環境でレビュー・動作確認の上、本番利用してください。

コードのサジェスト

まず始めにコードのサジェスト機能のご紹介です。

画像のようにCode with Now Assistダイアログボックスに、作成したいコードの説明を記載します。
「ユーザーテーブルを検索し、最終ログイン日が180日以上前のアカウントを非アクティブ化する」

次に記載した内容をSubmitすると、Now Assistが入力された内容をもとにコードをサジェストしてくれます。(ハイライト部分)
サジェストされた内容で問題なければ、Acceptを選択することで自動生成されたコードが反映されます。
最後に、変数名やログ出力処理など、各開発チームが持つ開発標準に合わせて微修正して保存すれば作成完了となります。
実際に自動生成された処理を実行したところ正しく動作することが確認できました。

 

コードの補完

続いて、コードの補完機能のご紹介です。

ここではあえてコードを途中まで記載した状態からスタートします。

コメントで作成したいコードの説明を記載のうえ、右クリック→Auto-generate code completionを選択します。

すると画像のように残りのコードを補完してくれます。(グレーアウト部分)
補完された内容は、先ほどのサジェストされたコードと同じ内容であることが確認できます。

 

生成AIが考えたお題にチャレンジ

シナリオ

弊社内で利用できる生成AIにシナリオを考えてもらい、Code generationでコードを作成してみようと思います。

(吉田)
ServiceNowのスクリプティングを勉強しています。複数のテーブルからデータを取得して特定の条件でクエリするような、複雑なスクリプトのお題をください。

(生成AI)
ServiceNowのスクリプティングを学ぶためのスクリプトの課題をご紹介します。
シナリオ:ユーザーのアクティビティを監視し、特定の条件に基づいて一覧を表示するスクリプトを作成します。
要件:
1.ユーザーテーブルからアクティブなユーザーを取得します。
2.ログイン履歴テーブルから、過去1週間以内のログイン履歴を取得します。
3.各ユーザーのログイン回数を集計し、1回以上ログインしているユーザーのリストを表示します。

実践

まず始めにアクティブなユーザーをクエリするコードを作成します。

次に各ユーザーのログイン履歴を取得し、ログへ出力するコードを作成します。

最後に変数名などを分かりやすく修正した上で完成した処理がこちらになります。

実際にこの処理を動かしてみます。
過去1週間のうちにログインしているユーザーは、私自身のアカウントとテスト用ユーザーの2アカウントとなります。
なおテスト用ユーザーは非アクティブな状態に更新したため、ログは1件のみ出力されるのが想定している動作となります。

ログを確認すると、1件のみ出力されており、正しくコードを作成できていることが確認できました。

 

まとめ

今回は、Now Assist for Creatorの各機能のうち、コードを自動生成してくれるCode generationを使ってみました。
Code generationを使用すれば、ServiceNowの文法に沿った高品質のコードを簡単に作成することができ、また、手動でコードを書く時間を短縮できるので、開発者の業務効率を向上させることが可能な強力なツールと感じました。
Now Assist for Creatorにはその他の機能も用意されているので、今後ご紹介していきます。

 

最後に・・・
弊社では、ITSMやCSM、ESGなど様々なServiceNow製品を扱っています。
以下から問合せ可能ですので、是非ご参照ください。

タイトルとURLをコピーしました