最近、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年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な会社が多いと思います。その場合、以下の記事で、プライベートリポジトリに変更して学習すると良いでしょう。
###他にも役に立つリンク集
- 製品ドキュメント:https://docs.servicenow.com/
- コミュニティ:https://community.servicenow.com/community
- 開発者向けサイト:https://developer.servicenow.com/dev.do
- 学習サイト:https://nowlearning.service-now.com/
(「Self-Paced」は無償)
#小技や知識のTips(備忘録メモメモ)
#####OOTB
OOTBという言葉をよく使っていました。これは「Out-of-the-Box(箱から出したままの状態)」の略で、ServiceNowは細かくカスタマイズする事もできるのですが、できるだけOOTBで進めることを大方針とし、現状の運用プロセスを踏襲するのではなく、可能な限りServiceNowのプロセスに合わせる方が推奨されていました。
#####スキーママップ(ER図)の確認
[System Defenition] - [Tables & Columns]でテーブルとカラムの情報を参照することができ、[Schema map]ボタンでER図を参照することが出来ます。
#####テーブル構造の確認。
[System Defenition] - [Tables]でテーブル一覧を表示できます。
または以下の方法でもテーブルの詳細(ディクショナリ)を参照できます。
対象テーブルの任意のカラムラベルのハンバーガメニューを右クリックし「Configure」>「Table」
もしくはアプリケーションナビゲーターで「テーブル名.config」と入力し、「Dictionary Entries」タブを選択。
※なお上記ConfigのAllは、Bussiness RoleやClient Script、Access Controle等、重要な物が多いので、使う機会が多かったです。
#####「テーブル名.xxxx」
上記のような「テーブル名.xxxx」と打つサフィックスは、以下の通りあり使う機会が非常に多いです。
- 「テーブル名.config」 :コンフィグ画面
- 「テーブル名.list」 :データ全件表示
- 「テーブル名.do」 :新規登録画面
#####エクスポート
テーブルを調べるにあたり、てっとりばやく全件エクスポートなども良く実行しました。
1.任意のカラムラベルのハンバーガメニューを右クリックし「Configure」>「List Layout」を選択
2.全カラムのビューを新規作成します。※この時、Defalut Viewを上書きしない様に注意してください。
#####「u_テーブル名」
「u_」とプレフィックスがついているテーブルは、ユーザが作成したカスタムテーブル(カスタムフィールド)を表します。
#####sys_id
おおよそのテーブルは内部でsys_idを持っており、外部キーとして使われているので調べる機会が多かったです。
#####バックグラウンド スクリプトの起動方法
ファイルナビゲーターに「background」と入力し、Scripts-backgroundを実行します。
#####サーバスクリプト(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デベロッパーツールなどでデバックしました。
#####ロールバック
ServiceNowには様々なロールバックがあります。例えば削除レコードを回復するほか、実行されたスクリプトのデータベースアクションをロールバックしたり、パッチのアップグレードとプラグインのアクティブ化なんかもロールバックできます。詳細は以下を参照してください。
https://docs.servicenow.com/bundle/quebec-platform-administration/page/administer/table-administration/concept/rollback-delete-recovery.html
以上、次回があるかはわかりませんが、備忘録( ..)φメモメモでした。