LoginSignup
11
14

More than 3 years have passed since last update.

ServiceNow備忘録

Last updated at Posted at 2021-05-14

sn-logo-color.jpg

最近、ServiceNowの案件から離任する事になりました。ServiceNowの案件は少ないので、そうそう次回は無いとは思うのですが、せっかく数か月学んだので自分用の備忘録( ..)φメモメモとして残しておきます。(なお数か月しか学んでいなく、もし間違い等ございましたらご指摘頂けると助かります。)

ServiceNowとは

IT部門の現場においては、情報共有や可視化、標準化などの問題が山積し、日々運用改善を求められています。ServiceNowはそれらを解決すべく、ITIL®に準拠した以下のサービスを提供するエンタープライズプラットフォームです。

  • IT サービスマネジメント(ITSM)
  • IT オペレーションマネジメント(ITOM)
  • IT ビジネスマネジメント(ITBM)
  • ソフトウェア資産管理(SAM)
  • セキュリティオペレーション
  • カスタマーサービスマネジメント
  • 人事サービスデリバリー

例えばアラートのハンドリング:インシデント自動起票、ナレッジ管理との連携、変更管理の情報などITSMとITOMのデータを統合し、コールセンターや運用部門、開発部門との情報共有をスムーズにしてくれます。

このITIL®に準拠したサービスは、ありそうでなかった「ITのためのITサービス」だった為、特に競合がいないまま順調に成長し、2018年、フォーブスにて世界で最も革新的な企業第1位に選出されました。大企業が中心となりますが、いまやグローバルではデファクトスタンダードとして運用の現場に取り入れられ、日本でも急速に拡大中のサービスです。

開発者用ServiceNowインスタンスを試す方法。

ServiceNowアカウント作成

まずはじめに、以下の開発者向けの情報サイトへアクセスします。

https://developer.servicenow.com

上記サイトの右上[REGISTER]を選択し、開発者用のアカウントを作成します。

登録すれば、以下の事が可能になります。

  • 各種学習コンテンツの利用
  • APIリファレンスの参照
  • 開発者向けインスタンスの管理

ServiceNowインスタンス払い出し

ServiceNow開発者向けに、無償でServiceNowインスタンスを提供するサービスが存在します。
なお本番インスタンスと比べ大きく以下の違いがあります。

  • 有償プラグイン含め、すべての機能が無償で利用可能
  • インスタンス非機能が弱い(冗長構成となってない、CPU/メモリが貧弱)
  • 24時間利用しないと、インスタンスが停止する。 また、10日間利用しないと、インスタンスが削除される。 ※削除されても、一定期間は復旧可能。

払出しの手順は、以下を参照してください。

https://developer.servicenow.com/dev.do#!/learn/courses/paris/app_store_learnv2_buildmyfirstapp_paris_build_my_first_application/app_store_learnv2_buildmyfirstapp_paris_servicenow_basics/app_store_learnv2_buildmyfirstapp_paris_exercise_obtain_a_personal_developer_instance

まずはタイムゾーンを日本(JST)に変更 ロゴを変更します。

Filter Navigationに[basic]と入力し、[Basic Configuration U16]メニューを開きます。
[Configure available time zones]より、[JST]を有効化します。
[System timezone for all users unless overridden in the user‘s record]で、JSTを選び、[Save]します。
[Banner image for UI16]を変更し、サイトのロゴを変更し[Save]します。

スクリーンショット 2021-05-14 22.13.04.png

日本語パッチもあてておきましょう。

以下の記事が参考になります。(なお2021年3月時点のParisでは数時間も必要でした。裏で勝手に動いているので、別ブラウザを立ち上げ平行に操作する事は可能です)

その他いろいろと( ..)φメモメモ & 学習用コース

ServiceNowにはいろいろな機能があります。

  • ServiceNowは各テーブルのビューアとして、[リスト]と[フォーム]を持っています。
  • ServiceNowはjavascriptでコーディングでき、大きくわけて、クライアント側スクリプト、サーバ側スクリプトの2つに分類できます。
  • クライアント側のスクリプトはユーザーのブラウザ内で実行され、フォームとフォームフィールド等、ユーザインターフェースを制御するために使用されます。
  • サーバー側スクリプトは、ServiceNowサーバーまたはデータベースで実行されます。このServiceNowのスクリプトはデータベースの参照や更新、メールの送信、RESTメッセージを送信し他システムのAPI呼び出しなど多くのことを実行できます。
  • データの作成や更新をトリガーに、業務ルールに沿ってデータの更新が可能です。本機能をBusiness Ruleと呼び、スクリプトで細かく制御する事も可能です。
  • データの作成や更新をトリガーに、メール通知を送信することが可能です。本機能をNotificationと呼び、スクリプトで細かく制御する事も可能です。
  • データの作成や更新をトリガーに、ワークフローを走らせることが可能です。本機能をWorkflowと呼び、スクリプトで細かく制御する事も可能です。
  • ServiceNowに対して実施たカスタマイズが正しく動いているか検証する、自動テストが可能です。 本機能をATF(Automated Test Framework)と言います。

他にも様々な機能があり、以下のURLの通り、それらを体系的に学べるコースがあるので参照すると良いでしょう。私は、全てでは無いですが、ざっと一通り学びました。

https://developer.servicenow.com/dev.do#!/learn/courses/paris

補足

※ちなみに、ここで学習するNeeditがgithubを使用しているのですが、パブリックリポジトリだとコンプライアンス的にNGな会社が多いと思います。その場合、以下の記事で、プライベートリポジトリに変更して学習すると良いでしょう。

他にも役に立つリンク集

小技や知識のTips(備忘録メモメモ)

OOTB

OOTBという言葉をよく使っていました。これは「Out-of-the-Box(箱から出したままの状態)」の略で、ServiceNowは細かくカスタマイズする事もできるのですが、できるだけOOTBで進めることを大方針とし、現状の運用プロセスを踏襲するのではなく、可能な限りServiceNowのプロセスに合わせる方が推奨されていました。

スキーママップ(ER図)の確認

[System Defenition] - [Tables & Columns]でテーブルとカラムの情報を参照することができ、[Schema map]ボタンでER図を参照することが出来ます。

スクリーンショット 2021-05-14 22.25.19.png

テーブル構造の確認。

[System Defenition] - [Tables]でテーブル一覧を表示できます。

スクリーンショット 2021-05-14 22.22.13.png

または以下の方法でもテーブルの詳細(ディクショナリ)を参照できます。

対象テーブルの任意のカラムラベルのハンバーガメニューを右クリックし「Configure」>「Table」
スクリーンショット 2021-05-14 22.32.03.png

もしくはアプリケーションナビゲーターで「テーブル名.config」と入力し、「Dictionary Entries」タブを選択。
スクリーンショット 2021-05-14 22.33.44.png
※なお上記ConfigのAllは、Bussiness RoleやClient Script、Access Controle等、重要な物が多いので、使う機会が多かったです。

「テーブル名.xxxx」

上記のような「テーブル名.xxxx」と打つサフィックスは、以下の通りあり使う機会が非常に多いです。

  • 「テーブル名.config」 :コンフィグ画面
  • 「テーブル名.list」 :データ全件表示
  • 「テーブル名.do」 :新規登録画面
エクスポート

テーブルを調べるにあたり、てっとりばやく全件エクスポートなども良く実行しました。

1.任意のカラムラベルのハンバーガメニューを右クリックし「Configure」>「List Layout」を選択
スクリーンショット 2021-05-14 22.41.11.png

2.全カラムのビューを新規作成します。※この時、Defalut Viewを上書きしない様に注意してください。
スクリーンショット 2021-05-14 22.43.11.png

3.ビューを変更します。
スクリーンショット 2021-05-14 22.44.41.png

4.行ヘッダーを右クリックでエクスポートします。
スクリーンショット 2021-05-14 22.46.47.png

「u_テーブル名」

「u_」とプレフィックスがついているテーブルは、ユーザが作成したカスタムテーブル(カスタムフィールド)を表します。
スクリーンショット 2021-05-14 22.49.15.png

sys_id

おおよそのテーブルは内部でsys_idを持っており、外部キーとして使われているので調べる機会が多かったです。
スクリーンショット 2021-05-14 22.57.26.png

バックグラウンド スクリプトの起動方法

ファイルナビゲーターに「background」と入力し、Scripts-backgroundを実行します。
スクリーンショット 2021-05-14 23.00.39.png

サーバスクリプト(GlideRecord)など

サーバスクリプトの例です。

GlideRecordを使用した例
var queryString = "priority=1^ORpriority=2";
var now_GR = new GlideRecord('incident');
now_GR.addEncodedQuery(queryString);
now_GR.query();
while (now_GR.next()) {
  gs.addInfoMessage(now_GR.getValue('number'));
}
サーバーサイドスクリプトのデバック

サーバーサイドスクリプトのDebugger使用方法は、以下のラーニングが役に立ちます。
https://developer.servicenow.com/dev.do#!/learn/courses/paris/app_store_learnv2_scripting_paris_scripting_in_servicenow/app_store_learnv2_scripting_paris_server_side_scripting/app_store_learnv2_scripting_paris_breakpoints

クライアントスクリプトのデバック

・クライアントスクリプトはChromeデベロッパーツールなどでデバックしました。

スクリーンショット 2021-05-14 23.19.47.png

ロールバック

ServiceNowには様々なロールバックがあります。例えば削除レコードを回復するほか、実行されたスクリプトのデータベースアクションをロールバックしたり、パッチのアップグレードとプラグインのアクティブ化なんかもロールバックできます。詳細は以下を参照してください。

https://docs.servicenow.com/bundle/quebec-platform-administration/page/administer/table-administration/concept/rollback-delete-recovery.html

以上、次回があるかはわかりませんが、備忘録( ..)φメモメモでした。

11
14
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
11
14