Tetsuya Izawa
ServiceNow Employee

こんにちは。ServiceNowでトレーナーを勤めている井澤です。アプリケーション開発に関連するトレーニングを担当しています。本ブログでは、アプリケーション開発系のトレーニングで扱う内容について、そのエッセンスを紹介していきたいと思います。

ServiceNow上のアプリケーション開発について、またトレーニングの内容についてイメージを持ってもらえるように、Now Platformの各種機能を使って、簡単なアプリケーションを作っていきます。毎回、いくつかの開発ツールやプラットフォームの機能に触れながら、少しずつ機能を付け足していきます。

 

1.     今回開発するもの:レコードプロデューサー

今回は、前回(※『StudioとGuided Application Creatorでテーブルとフォームを作成する』参照)作成したアプリケーションとテーブルに、レコードを登録するための画面を追加します。サービスカタログのレコードプロデューサーとして開発し、ユーザーが入力しやすい画面に仕立てます。

 

2.     サービスカタログとは

ServiceNowプラットフォーム上のサービスカタログアプリケーションとは、会社や組織が提供するサービス(ハードウェアやソフトウェアの調達、システムのインシデントに対する報告や、ヘルプのリクエストなど)を、ユーザーが自身の操作でリクエストできるようにするためのアプリケーションです。

Now Platformのサービスカタログを作ることで、ユーザーに対して、サービスを簡単にリクエストしやすくするための入力画面を用意できます。

開発者インスタンスのサービスカタログに用意されている、サンプルのカタログを見てみましょう。アプリケーションナビゲータから、Self-Service > Service Catalogでアクセスできます。

サービスカタログはカテゴリーに分類されています。モジュールを開くと、カテゴリーが表示されています。

find_real_file.png

この画面から、”Can We Help You?” カテゴリーを選んでみます。

 find_real_file.png

 

パスワード変更などのリクエストしたいサービスが列挙されています。

ここでたとえば、障害報告をするために”Create Incident”というカタログを選んだとします。

find_real_file.png

ユーザーがサービスカタログ画面を使ってリクエストを行うと、システム内部ではタスクレコードが生成され、タスクの実行者に割り当てられます。以後、実行者は「報告されたインシデントの調査をする」「機器の準備を行う」などのタスクを進めていきます。ServiceNow上のテーブルのタスクレコードを管理することで、タスクの実行状況を把握することができます。

 

3.     レコードプロデューサーとは

サービスカタログの一種に、レコードプロデューサーがあります。レコードプロデューサーは、1件のレコードを作成するための画面です。

上にあげた”Create Incident”サービスアイテムは、インシデント(Incident)テーブルに1行、レコードを追加する画面なのです。

「1件のレコードを作成するための画面」といえば、フォームも1件のレコードを作成する画面です。

下はIncidentアプリケーションのCreate Newモジュールの画面です。1件のレコードのデータを管理するためのフォームです。

 find_real_file.png

実はフォームとレコードプロデューサーが実現することは同じです。テーブルのレコードを1件編集すること、です。違うのは、サービスカタログの方が分かりやすい方法で画面表示でき、ユーザーが値を入力するのが容易になるというところです。

 

4.     レコードプロデューサーの作成を始める

レコードプロデューサーは、Studioの画面から簡単に作成することができます。

Studioの画面左側、アプリケーションエクスプローラで、レコードプロデューサーを作りたいテーブルを選択します。今回は、前回作成したテーブルMy Logについて、Data Model > Tables > My Logとたどって、選択します。

画面を少し下にスクロールすると、Related Links(関連リンク)があります。リンクの中から”Add to Service Catalog”を選んでクリックします。

find_real_file.png

すると、カタログアイテムに名前を付け、またテーブルのフィールドのうち、どのフィールドをカタログアイテムのページでユーザーに入力してもらうか選ぶ画面が表示されます。

今回は、名前をLog my workとし、またフィールドとして”Log Text”を選び、右側のバケットに移します。

find_real_file.png

Save and Openボタンを押すと、設定が保存され、レコードプロデューサーを編集する画面が新たに表示されます。

5.     レコードプロデューサーの項目を設定する

レコードプロデューサーのフォームで、編集するのは二か所です。

一つは、画面下にスクロールすると表示される、関連リストのVariablesです。ここには、先ほど選択したフィールド”Log Text”が含まれています。

 find_real_file.png

この行のQuestion列をダブルクリックして、(このフィールドに値を入力してもらうための)ユーザーに対する「質問」「指示」の文に変更します。

たとえば、以下の通りです。

find_real_file.png

変更はもう一か所です。「レコードプロデューサーでデータを挿入した後、画面をどこに遷移するか」を決めます。関連リストより少し上の画面に、”Script”というフィールドがあります。こちらに、


producer.redirect=”My Logテーブルのテーブル名_list.do”;

 

というスクリプトを記述します。これは、レコードプロデューサーで1レコードを作成し終わった後に、どのページに遷移するか決めています。

find_real_file.png

スクリプトを記述したら、Updateボタンを押して保存します。これでレコードプロデューサーの開発は終わりです。

 

最後に、Studioのレコードプロデューサーのフォームのヘッダ部分で右クリックし、コンテキストメニューを表示します。Copy sys_idメニューを選んで、このレコードのsys_idをクリップボードにコピーしておきます。

 find_real_file.png

6.     “Create New”の設定変更と動作確認

ブラウザのStudioのタブから、プラットフォームUIのタブに戻ります。My Logを選択します。
Create Newモジュールにマウスカーソルを合わせて、鉛筆ボタンをクリックしてください。モジュールを編集して、フォームではなく、以前の手順で作成したカタログアイテム(レコードプロデューサー)を使うように変更します。

find_real_file.png

Link Typeタブを選び、Link TypeをURL(from Arguments:)に変更します。

また、Argumentsは、

com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=(先ほどの手順でクリップボードにコピーした、レコードプロデューサーのsys_id)

とします。

find_real_file.png

Updateして、保存します。

以上で設定は終了です。

 

モジュール”Create New”をクリックしたら、レコードプロデューサーが表示されます。

find_real_file.png

Submitして、レコードを作成すると、Scriptで指定した、My Logテーブルの全件表示リストにリダイレクトされます。

 

7.     まとめ

今回は、前回作成したテーブルのレコードを作成するための、サービスカタログのレコードプロデューサーを作成しました。レコードプロデューサーの画面をモジュールから呼び出し、レコード作成後はリスト表示をする設定まで行っています。サービスカタログのカタログアイテムを作ると、ユーザーに対して正しく入力を促すことができます。

 

8.     トレーニングの紹介

今回取り上げた、「サービスカタログ・レコードプロデューサーの作成」は、ServiceNowのトレーニング

『Application Development Fundamentals』

https://www.servicenow.co.jp/services/training-and-certification/application-creation-in-servicenow-...

で詳しく紹介しています。アプリケーション開発に興味のある方は、トレーニングの受講をご検討ください。

 

トレーニングの予定や、申し込み方法については、次のページをご覧ください。

ServiceNow Japan: 認定トレーニング&認定資格

https://www.servicenow.co.jp/services/training-and-certification/general.html