社内業務に関するシステムを一元化して運用・管理できるクラウドサービス「ServiceNow」。
株式会社KYOSOでは、これまでの豊富な運用経験をもとに、ServiceNowの企画立案から運用・保守、内製化までトータルでサポートしています。
目次
はじめに
ServiceNowのAI機能である「Now Assist」には業務効率を高め、生産性を飛躍させるための様々な機能が備わっています。
Now Assistは、各業務領域に合わせたいくつかのパッケージとして提供されています。例えば、「Now Assist for Creator」には開発者をサポートするためのAI機能が充実しています。
本記事では、Now Assist for Creatorで利用可能な数あるスキルのうちの一つである「Code Assist」に焦点を当て、その特徴や検証手順および結果を纏めました。
Code Assistとは
Code AssistとはServiceNowプラットフォーム上でAIがスクリプトの生成を支援してくれる機能です。
開発者がスクリプトで実現したいことを自然言語で入力すると、AIが適切なスクリプトを提案・生成してくれます。
これにより、開発スピードや生産性の向上が期待できます。
検証の目的
検証の目的は「Code Assist」がどれくらい正確かつ効率的にスクリプトを生成できるのか?を調査することです。
具体的には、以下の3つのポイントを評価します。
- 精度:プロンプトに対して意図した通りにスクリプトが生成されるか
- 品質:ベストプラクティスに則った、保守性の高いコードが生成されるか
- 開発工数削減への貢献度:スクリプト記述にかかる時間の短縮に繋がるか
検証環境
- インスタンスのバージョン:Xanadu
- ServiceNowインスタンス:Partner企業に配布されるDemoインスタンス
※個人開発環境(PDI)ではNow Assistは利用することができません - プラグインのインストール:Now Assist for Creator
※Now Assist Admin ConsoleのSettings>Plugins>Installedからインストール済みのNow Assist AIプラグイン一覧を確認できます - 有効なスキル:Code
Now Assist Admin ConsoleのNow Assist Features>Creatorからスキルをアクティベートすることができます - 操作ユーザーに必要な権限:now.assist.creator
検証手順
下記に記載の「実現したいこと」を実現するために、ビジネスルールの詳細アクションにNow Assistの力を借りてスクリプト生成していきます。
- 実現したいこと:インシデント[incident]テーブルのDue Dateフィールドにレコード起票から2日後の日時を挿入する
1. 事前準備
インシデントフォームにDue Dateフィールドを表示します。
※Due Dateが既に表示されている場合はこの手順をスキップしてください
① インシデントフォームのメニューまたはヘッダーを右クリックしてフォームデザイナーを開きます。
②FieldsタブからDue Dateフィールドをインシデントフォームの任意の場所にドラッグ&ドロップします。
③インシデントフォームを再読み込みし、Due Dateフィールドが表示されている事を確認します。
2. ビジネスルールの作成準備
①フィルターナビゲーターから[System Definition]>[Business Rules]にアクセスし[New]ボタンを押下します。
②新規レコードフォームが開くので、以下の通りに入力し保存します。
■フォームメイン画面
Name:任意の名前を入力
Table:Incident[incident]
Advanced:True
■When to runタブ
・When:before
・Insert:True

3. Code Assistの呼び出し
①Advancedタブを開き、Scriptフィールドにカーソルを合わせた状態でctrl+Enterを押下します。
すると、Now Assistの「Now Assist を使用したコード (Code with Now Assist)」 ダイアログボックスが起動します。

4. プロンプトの入力とスクリプト生成
①以下のプロンプトを入力し、Enterキーを押下します。
プロンプト:今日から2日後の日付をdue_dateに入力

②スクリプトが生成されるので[Accept]ボタンを押下します。
Scriptフィールドに生成されたスクリプトが入力された状態になります。

5. 生成されたスクリプトを編集
①スクリプトにコメントを追加してみます。
②生成されたスクリプトを選択するとNow Assistアイコンが表示されるので、[Edit code]ボタンを押下します。
※スクリプトの一部のみを選択した場合は正しくコメントが生成されません

③「Now Assist でコードを編集する (Edit code with Now Assist)」ダイアログが表示されるので、以下のプロンプトを入力し、Enterキーを押下します。
プロンプト:コメントを追加
④訂正されたスクリプトが表示されるので、[Accept]ボタンを押下します。
ビジネスルールを保存します。

6. 生成スクリプトのテスト
①インシデントの新規レコードフォームを開き、必須フィールドに任意の値を入力してから保存します。

②保存後のレコードを確認すると、Due Dateフィールドに現在から2日後の日付が入力されています。

検証結果と考察
検証の結果、意図していた通りにDue Dateフィールドに現在から2日後の日付が入力されました。
また、Edit Codeにより一度生成されたスクリプトをさらにブラッシュアップ可能であることが分かりました。
纏めると、Now AssistのCode Assistを活用することで以下のことが実現できます:
- スクリプトをスピーディーに生成:フィールドの更新など、シンプルなスクリプトはプロンプトから即座に生成され、開発工数を短縮できます
- 生成されたスクリプトを修正:Edit codeにより、生成スクリプトを簡単に修正しブラッシュアップできます
- ServiceNow Gildeクラスの知識を習得:適切なServiceNow Glideクラス (例: current, gs.nowDateTime()) を利用したスクリプトが生成されるため、自ら検索する手間が省け、Glideクラスの用途や利用機会を知るきっかけにもなります
ServiceNow製品ドキュメント:Glideクラスの概要
さいごに
ビジネスルールのスクリプト記述において、Code Assist機能は開発者をサポートし効率UPに寄与することが分かりました。スクリプトの記述に不慣れな場合もNow Assistのサポートにより効率的に開発を行うことができ、学習機会にも繋がります。
今後はより複雑なビジネス要件にも応えられるスクリプトを生成できるよう、ノウハウを蓄積していきたいです。
最後まで閲覧いただき、ありがとうございました。
あなたにとって有益な情報を提供できたのであれば、大変嬉しく思います。
投稿者プロフィール

- 2023年新卒入社です!
これまで、主にServiceNowのITSM領域の開発に携わってきました。ServiceNowの幅広い領域で活躍できるよう、学習に励んでいます。
保有資格
・ServiceNow Certified System Administrator
・ServiceNow Certified Application Developer
・ServiceNow Certified Implementation Specialist - IT Service Management
・ServiceNow Certified Implementation Specialist - Discovery