[Servicenow]カタログビルダーを使ってみた

#はじめに
　Quebecから使えるようになったカタログビルダーについて、使い方とか使ってみた感想を書きます。


##カタログビルダーってなに？
　[使ってみる前の感想]
 　　GUIベースでカタログの定義が作れるんかな？

##いざ、使ってみる
　Service Catalogモジュールの下に、「Catalog Builder」が追加されています。
　別ウインドウで開くようになっていますね。
　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/f6cf06de-cef6-d6af-13af-9960a8ca0ea6.png)


　カタログビルダーを開くと、こんな画面になる。
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/8d861a4a-c1f6-c088-a181-374838569c94.png)

　今回は、新規にカタログを作るので、「Start creating new catalog item」の「Create a new Catalog item」を押して新規で作ってみる。
　これが遷移先の画面。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/3e935f53-22e8-c6e9-b2f6-eb9f27af7f08.png)

　Stepが多い…もはやメンドくs(ry

###Step1 Template
　ここは、作成されたテンプレートを選択するみたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/80c7d3ad-165a-aaf2-b7b9-245267d6f6a4.png)

　先ほどのTop画面にテンプレート作成のメニューもあったので、独自にテンプレートが作れるようです。
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/cede6e00-f288-2999-b5f6-1ee48f7220c1.png)
テンプレートを選ぶと、右側に色々情報が出てきます。
予め、①～⑧Stepまでの定義がテンプレートで出来るようです。
今回は、「Standard items in Service Catalog」のテンプレートを選択して作っていこうと思います。
テンプレートを選択しないと次に進めないので、テンプレートを使用せず作るには空のテンプレートを作っておく感じなのか・・？

###Step2 Detail
テンプレートを選んだあとの画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/e77667eb-8711-c621-faf6-f2a58713def3.png)

左側にメニューが出ているのでこれを切り替えて設定していく感じです。
入力が必要なメニューに、「●」がついてるんですかねー。

Detailの中ですが、大きく2つの構成で、「Basic info」と「Item details」があります。
Basic info内では、カタログの名前と、カタログの簡単な説明を。
Item details内では、詳細説明と、添付ファイルを設定できます。
こんな感じで設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/af3fcc88-16f3-bddb-2d85-26fcdad5640c.png)



###Step3 Location
メニュー名だけ見ると、何を設定するのか全然わかりませんでしたが開いてみると解決。
サービスカタログの階層を設定できるメニューの様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/8ecb1768-4238-f561-d7b4-d3132d4f1e7b.png)

ここでカテゴリを新規で作成出来れば便利なのにそれは出来ないみたいです。

カテゴリの「Edit」(小さい・・！)で、必要なカテゴリを選択して設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/76760226-052a-2c29-49bb-a13ec69d2248.png)


###Step4 Question
ここは、カタログの入力項目を定義する画面ですね。
普通に作成するときは、変数として作成する部分かと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/83516f72-287d-0b6b-f0cd-0eda16d8853d.png)

テンプレートから作っているからか、既に存在する質問が・・・消せない！！鍵がかかってますね…
Permissionが無いって言われてるので、権限の問題かもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/3d7053e4-808e-bb81-7f4d-e53dc3b0a161.png)

一旦、デフォルトの質問は無視する形で作っていきたいと思います。

まずは、枠を作っていきます。+を押すと、小さいポップアップが出てくるので、ココでレイアウトを定義できそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/60d4c52e-151b-89ab-ee0f-66a202f9f975.png)
いきなり、questionの追加もできそうですが、Structureでグループ化したほうがいいですね。
Single column container - 1行に1項目の配置設定
Two column container - 1行に2項目の配置設定

今回は、Two column containerで作っていきます。
タイトルを設定して追加すると、こんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/de471937-7863-7498-c3da-067eb38546f6.png)
枠ができて、中に+のものが出てきました。
+を押すと、先ほどと同じように出てきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/941fc1f2-fde3-5367-9a14-d4ad05ba60f9.png)

では、New questionで質問を追加していきたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/6ef68116-56df-f2f3-e01a-d77fd9a500bb.png)

Create questionの画面になりました。
Previewも確認できるみたいです。便利！

Question typeを選択すると、タブメニューが増えていきます。
[choice]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/ea420446-d8c3-9d37-8895-ffdb6bcd7e39.png)
Choicesのタブの中では、choiceの中身を定義できます。

そして気づいた。
Question typeとして選択できる項目が非常に少ない・・！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/8ce4940f-e0f9-60c8-a6ac-00eb2e06bc1e.png)

通常の変数として作成する際は、色々出ますが、catalog builder上では全然出てきません。
[通常作る際の選択肢]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/0e0a9bf2-e331-3839-ae6a-6500d92e8632.png)


しょうがないので、今選択できる項目のみで構成していきましょう。
大体必要なものはそろってます。
こんな感じで、定義が終わりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/89fd7bd2-0ddc-4935-06ff-b59b07b04393.png)

これをプレビューしてみると、こんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/58e277f5-5db0-85c1-0c6b-f11cdf4eaecf.png)

上のデフォルト項目が非常に邪魔です…
でも見ないことにします。
選択肢の中は、それぞれこんな感じです。
[あるひ]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/3da6f5a7-f348-2899-5d62-8dbf47d8c2c2.png)
[くまさん]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/dc7cdc93-00ce-7eb9-9ae8-dcf3c06cb130.png)

これで大体は完成なのですが、どうせなら正しい選択肢を選んだ時だけ次の項目が出てきてほしいので入力制御も加えましょう。
「ある日」の選択肢で「森の中」が選ばれた時にだけくまさんが出るようにしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/e4bbe791-7084-521b-a721-82de22de4f7d.png)
くまさんの項目に、マウスをあてると一番左に「Define behavior」というものがあるので、これをクリック。
で、newすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/38cbeb9f-af54-d452-3658-0b0265feb2e8.png)
こんな感じの画面になります。
UI Policyの設定ですね。

こんな感じで設定します。
Visibleにtrueを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/9e34b707-404e-3c7c-3063-b1eaec6cbcb5.png)
Conditionに条件を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/a6309f7e-acc4-20f6-2d21-9314fa7f5113.png)

同じように、後に続く歌詞に対しても制御を入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/22207ce9-6a56-8743-e6f9-5b1e3efb0545.png)
設定すると、1ってつくようになりました。わかりやすいですね。
これをプレビューで確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/4b09ae65-7d1d-a6a6-d6ba-527eb5dd0b40.png)
初期表示です。項目が見えなくなりました。
これで、ある日を選択すると・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/03ab3780-e686-7010-0e08-565b6dd95a8d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/a4ea5a72-7573-4c11-45c8-f99a796f9d09.png)

ちゃんと制御が効いてますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/5603469f-ed5c-c987-8b57-925db6087830.png)


###Step5　Setting
ここは単純ですね。
カートを非表示にするとか、配送時間を非表示にするとかの設定ができる画面です。
(チェックが変更できないのはなんででしょう・・やっぱり一旦は気にしない方向で！)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/6fea66f0-ccb1-0fd6-ba61-83b5564ff549.png)

###Step6 Access
このカタログを誰に見せるか、誰に見せないか、の制御ができるようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/cc82e2fb-2ed6-dbd2-65fc-5ff68e8d6982.png)
User Criteriaによって制御できるようですが、やはり鍵がついていて編集できません。
テンプレートに従うようになっているみたいですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/c972e2de-c67d-a7a8-d495-bf51cdca4892.png)

###Step7 Fullfillment
ここで、サービスカタログとFlowの紐づけを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/9b6fc699-65de-0ea0-81f8-fe8a0b040369.png)

今回は、Flowは作っていないので適当なFlowを選択しておきます。

###Step8 Review and Submit
最後に、作成した内容が確認できるようになっています。
1個ずつ開いていくと詳細が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/43205b55-e385-0fff-dbe9-3566ea4b3a13.png)

で、Submitでようやく終了です。

Submitすると、ダッシュボードに「Publish」として見えるようになりました。
これをEdit⇒saveすると、またDraftに戻って再SubmitでPublishになるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/9ecb1e62-5a53-c467-df62-23dc6365d9ed.png)

##おわりに
　非常に使いやすい機能ですね。特にレイアウト周りとUI Policyの設定。
　一方で、サービスカタログの作成に慣れている方であれば通常の定義の方が早く作れるのかと思いました。
　あと、scriptを書く場合はどうするのかがわからなかったです。どこかにメニューがあるのか、そもそもBuilderではscriptを書くまでのことを想定していないのか。
　次は、テンプレート作成の方も使ってみたいと思います。

##おまけ
　作ったものを実際のレコードとして見に行くと…
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/ede8aa78-3ea7-8d73-a640-17760ea17b17.png)

ちゃんと見えてますねー。
Related listを見てみると。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922262/67afd1d9-2df1-d236-ba70-8bee2f525cfb.png)
！！？
Queestionの定義ですが、追加したり消したりを繰り返すと、実際のVariableの定義が山のように増えていたみたいです。消したものは、削除ではなく非アクティブ化されるんですね。
レイアウトでガチャガチャしちゃうとゴミが大量に増える・・勉強になりました。