2024年8月9日金曜日

ServiceNow にユーザを追加する方法とemailを送信する設定

ServiceNow にユーザを追加する方法とemailを送信する設定

概要

ユーザはアプリ単位ではなく環境全体で管理されています

環境

  • ServiceNow (2024/08/05 時点)
    • Release Washington DC

追加方法

ServiceNow Developers のトップページから Start Building を選択しトップページを表示します

All から機能を検索します
「Users」で検索すると出てくるので選択します

するとユーザの一覧画面になるので右上の「New」で追加します

あとは必要な情報を入力します
最低限入力が必要なのは

  • UserID
  • Email
  • First name
  • Last name

あたりかなと思います
何も入力しなくてもユーザ自体は作成できるようです

パスワードの設定

作成したユーザを一覧から検索し詳細を表示します
すると Set Password ボタンがあるのでそこからパスワードを設定しましょう

ロールの設定

もし作成したユーザにロールを設定したい場合は下にスクロールし Roles タブから設定できます
Edit を選択します

そしてロールの一覧から追加したいロールを選択し右に移動します
その後 Save することでロールが設定できます
アプリに付属しているデフォルトのロールを設定することで Portal や Workspace にアクセスすることができます

メールの有効化

PDI 環境ではデフォルトでメールが送信できないようになっています
まずは有効にします

ServiceNow Developers のトップページから「Manage Email Properties」を選択します

トグルボタンで有効にします
Save で設定を保存します

Email Properties でも有効になっていることを確認できます (ここからだと有効/無効を切り替えできないらしい)

メールアカウントの追加

Email Accounts のページから追加できます
All -> Email Accounts で検索すると見つかります

PDI 環境では SMTP サーバや POP サーバまでは用意されていないので自分で用意する必要があります
一番簡単なのは Gmail の SMTP アカウントを使えば OK です

New から追加できるので行います
今回は通知用にメールを送りたいだけなので SMTP のみ設定します

Active にもチェックを入れましょう

メール送信の確認

どうやらテストメールを送信する仕組みは ServiceNow にはないようです

https://www.servicenow.com/community/developer-forum/send-test-email-button-is-there-any-out-there/m-p/2191059

実際にメール送信のイベントを作成してテストするしかないようです

ただ Email Accounts を作成すると Admin にメールが飛ぶようなので事前に Admin のメールアドレスを自分のアドレスに変えておけばテストできるかなと思います

Email Diagnostics からでも SMTP サーバが有効かどうか確認できます

トラブルシューティング: SMTPSender: no recipients, email send ignored

メール送信時に Emails を見ると「SMTPSender: no recipients, email send ignored」と表示されていることがあります

どうやら ServiceNow では to と from が同一の場合にはメールを送らないようで自動的に send-ignored ステータスにするようです

参考: https://www.servicenow.com/community/developer-forum/smtpsender-no-recipients-email-send-ignored/m-p/1539024

最後に

ServiceNow でアカウントを作成する方法と SMTP サーバを設定する方法を紹介しました
個人の環境でメール通知を使う場合はメール機能自体を有効してかつ SMTP サーバを設定する必要があります

次回はアプリないでフローを作成しメール送信のイベントを試してみたいと思います

参考サイト

2024年8月8日木曜日

ServiceNow でポータルページを作成する方法

ServiceNow でポータルページを作成する方法

概要

前回 Workspace を追加してデータを表示してみました
今回は ServiceNow で作成したアプリにホームページ的な役割を持つポータルを追加してみます

環境

  • ServiceNow (2024/08/05 時点)
    • Release Washington DC

Experience に Portal の追加

App Engine Studio でアプリを選択しアプリの Experience 一覧から Add を選択します

Portal を選択し次にいきます

Begin で次に進みます

Portal の名前を設定します
アクセスする URL に関係するのでそれっぽい名前にしましょう
なおすでに Workspace などがある場合は URL の関係で別の名前にする必要があります

あとは作成されるまで待ちましょう

作成された Portal の確認

Experience の一覧に Portal が表示された Preview ボタンを押します

UI Builder 自動で起動するので UI Builder の左上にある Portal へのリンクを選択します

すると Portal のプレビューが表示されます

Portal の編集

次に Portal を編集してみます
先程の Experience の一覧から Editor を選択します

UI Builder の Body の設定からヘッダ部分を選択し右ペインの Background から背景の画像 URL を変更してみましょう

背景画像が変更できたら Save しあとは同様に Preview で確認すれば OK です

最後に

ServiceNow でアプリに Portal を追加しトップページを作成してみました
今回は画像しか変更していませんが表示するコンテンツは @data などの変数を使って動的に参照することもできます
自分にアサインされているタスクや承認フローだけを表示したりすることもできるようです

変数の参照方法などもあとで紹介できればと思います

2024年8月7日水曜日

ServiceNow でデータに登録した情報を Web ページで表示する方法

ServiceNow でデータに登録した情報を Web ページで表示する方法

概要

前回作成したアプリに対してテーブルを定義しデータを追加しました
今回は追加したデータを表示するために Experience という機能を使ってみます
アプリに対して Workspace を追加します

環境

  • ServiceNow (2024/08/05 時点)
    • Release Washington DC

Experience に workspace を追加する

App Engine Studio でアプリの一覧を表示します
データを追加したアプリの Experience を表示し「+ Add」を選択します

Workspace の追加

Experience の追加画面になったら Workspace を選択し追加します

Workspace の設定

Workspace の名前を決定します
URL にも影響するのでデータに関連する名前を設定しましょう

連携するデータを選択します
Primary と Secondary を設定できます
データが 1 つしかない場合は自動で選択されています

あとは Workspace が作成されるまで待ちましょう

Workspace の動作確認

作成された Workspace を確認します
Workspace と言ってもデータに紐づいた単純な Web UI で各種操作が揃っています

Experience の一覧に作成した Workspace があるので Preview を選択します

すると Workspace の画面になるので右側のリストを選択するとデータにあるデータをすべて確認することができます

最後に

ServiceNow のデータを Workspace で確認する方法を紹介しました
慣れればデータ登録 -> Workspace 可視化までの流れはすぐにできると思いますが慣れないとなかなかここにたどり着くのは難しいかなと思います

なぜなら ServiceNow にはたくさんの機能がありすぎてよくわからない感じいなっているからです
しっかりと ServiceNow の仕組みを知らないと使いこなすのは難しい印象です

2024年8月6日火曜日

ServiceNow でアプリに対してデータを追加する方法

ServiceNow でアプリに対してデータを追加する方法

概要

前回個人で ServiceNow に申し込みアプリを作成するところまで ServiceNow がどんなサービスなのか体験しました
今回は作成したアプリにデータを追加して Web ページにコンテンツを表示する方法を紹介します

環境

  • ServiceNow (2024/08/05 時点)

テーブルの作成

App Engine Studio で My Apps からアプリの一覧を開きます
そして Data にある「+Add」をクリックします
既存のテーブルがある場合はそれを使っても OK です (今回は削除して新規で作り直しています、もしかすると Task を管理するためのテーブルがあるかもです

テーブルのタイプを選択します
今回は空のテーブルを作成します
エクセルや RDB のデータなどをインポートすることもできるようです

テーブルの雛形を選択します
「Create new table」を選択するとフィールドがない空のテーブルが作成されます
「Create from an extensible table」を選択するとテーブルの雛形からテーブルを作成することができます
今回は空のテーブルを作成します

テーブル名を決定します

テーブルを操作できる権限を設定します
今回はデフォルトの権限である agent だけ設定し次にいきます

これでテーブルの作成は完了です

フィールドの追加

次にフィールドを追加します
作成したテーブルを選択し一覧になったら「+ Add field」を選択します

フィールド名とフィールドタイプを設定します
今回は Name というフィールドを追加します

データの追加

フィールドが追加できたらデータレコードを追加します
プラスボタンを押すとデータを追加できます
先ほど追加した Name フィールド以外はすべてシステムが自動で入力するフィールドなので空で OK です
適当な名前を入力し右上の「Save」をクリックするとデータが登録されます

フォームからデータが登録できるか確認する

テーブルを作成するとそのテーブルにデータを登録するためのフォームが自動で作成されます

Experience から Form を選択します

フォームの編集画面が表示されるので Preview を選択します

右上の Open form in platform を選択します

すると実際に POST できるフォームが表示されるのでそこでリクエストしてみましょう

リクエスト後にデータを見ると実際に送信したデータが登録されていることが確認できます

最後に

データを登録する方法を紹介しました
次回はデータを表示するためのページを追加してみます

2024年8月5日月曜日

ServiceNow を個人で始まる

ServiceNow を個人で始まる

概要

ServiceNow を個人で使う方法を紹介します
ServiceNow が何かすらわかっていない状態なのでとりあえずポチポチ進めてみます

環境

  • ServiceNow (2024/08/05 時点)

アカウントの作成

ここから作成します

メールが来るのでリンクをクリックすれば作成完了です

とりあえず使ってみる

ここから開発環境を作成しましょう

Start Building をクリックすると専用の開発環境を払い出してくれます
時間がかかるので少し待ちましょう
開発環境は独自の URL が払い出される仕組みなので URL を忘れた場合は Start Building から辿りましょう

以下の画面が開発者プラットフォームのトップ画面になります

Creator Studio を使ってみる

とりえあずトップにあるので Create Studio を使ってみます

アプリを作ってみます

テンプレートを選択します

カタログを選択します

これで作成完了です

Creator Studio で作ったアプリを編集してみる

Edit を押すと編集画面になります
編集画面ではどうやら Web ページを作ることができるようです
ボタンやテキストフィールドなどを好きな場所にドラッグアンドドロップするだけで Web ページを作ることができるようです

動作確認

Save and Close を押します
すると上部に Mark as ready が表示されるので押します
編集した箇所は履歴管理されているようで MR のように操作できるようです

これでページのプレビューが確認できます

実際にどこかのサイトにデプロイする場合にはまだパイプライン?の設定が必要なようです

最後に

個人で ServiceNow に申し込んでアプリを作成して Web ページを作成してみました
こんな感じで Web ページなり https で受けれるサイトや API を簡単に作れるサービスようです

今回使用した Creator Studio は App Engine と呼ばれるアプリを簡単に作ることができるツールのようです
アプリ作成後は基本的には Creator Studio ではなく App Engine Studio でアプリを管理したほうが良さそうです (アプリの削除なども App Engine Studio から行います)

個人の利用だとどうやら10日間アプリの編集などをしていないと自動で環境を削除させられるようなのであくまでも検証目的で使いましょう

まだ機能がありそうなのでいろいろと触ってみたいと思います

2024年8月2日金曜日

set -o pipefail の挙動を確認する

set -o pipefail の挙動を確認する

概要

基本的にはパイプの途中でエラーになるとそれが終了コードとなります

環境

  • macOS 11.7.10

テストコード

ls | lsa | ls

echo $?
echo "ls 1回目"

ls
echo "ls 2回目"
echo $?

結果

こんな感じでパイプのラストがステータスコードになります

test.sh: line 5: lsa: command not found
test.sh
0
ls 1回目
test.sh
ls 2回目
0

set -o pipefail を使う

set -o pipefail

ls | lsa | ls

echo $?
echo "ls 1回目"

ls
echo "ls 2回目"
echo $?

結果

1つ目のパイプの結果が 127 になります
パイプの途中でコマンドがエラーになっているのでそれがステータスコードになっています

test.sh: line 5: lsa: command not found
test.sh
127
ls 1回目
test.sh
ls 2回目
0

set -e -o pipefail にする

今度は -e オプションも追加します

set -e -o pipefail

ls | lsa | ls

echo $?
echo "ls 1回目"

ls
echo "ls 2回目"
echo $?

結果

パイプの途中でコマンドが失敗するとシェルスクリプト全体も途中で終了します

test.sh: line 5: lsa: command not found
test.sh

set -e だけにする

set -e

ls | lsa | ls

echo $?
echo "ls 1回目"

ls
echo "ls 2回目"
echo $?

結果

pipefail がないのでパイプの途中で失敗していますがステータスコードが 0 になるので最後まで実行されます

test.sh: line 5: lsa: command not found
test.sh
0
ls 1回目
test.sh
ls 2回目
0

最後に

set -o pipefail はパイプの途中でエラーになった場合それをステータスコードにする

set -e -o pipefail はパイプの途中でエラーになった場合そこで全体も終了する

set -e は途中でエラーになった場合に全体も終了するが、パイプの途中のステータスコードは無視する

2024年8月1日木曜日

apt preferences でインストールするパッケージのバージョンを固定する方法

apt preferences でインストールするパッケージのバージョンを固定する方法

概要

apt upgrade 時に意図しない最新バージョンがインストールされることを防げます
今回は例として docker-buildx-plugin を固定する方法を紹介します

環境

  • Ubuntu 22.04

/etc/apt/preferences.d/docker_buildx_plugin.pref ファイルの作成

  • sudo vim /etc/apt/preferences.d/docker_buildx_plugin.pref
Explanation: docker-buildx-plugin manually upgrade
Package: docker-buildx-plugin
Pin: version 0.15.1-1~ubuntu.22.04~jammy
Pin-Priority: 600

バージョンを調べる方法

  • apt search docker-buildx-plugin
Sorting... Done
Full Text Search... Done
docker-buildx-plugin/jammy 0.16.1-1~ubuntu.22.04~jammy amd64 [upgradable from: 0.15.1-1~ubuntu.22.04~jammy]
  Docker Buildx cli plugin.

この場合 0.16.1-1~ubuntu.22.04~jammy がアップグレード対象です

動作確認

/etc/apt/preferences.d/docker_buildx_plugin.pref
記載後に再度 apt search を実行するとアップグレード対象のバージョンが表示されなくなります
  • apt search docker-buildx-plugin
Sorting... Done
Full Text Search... Done
docker-buildx-plugin/jammy,now 0.15.1-1~ubuntu.22.04~jammy amd64 [installed]
  Docker Buildx cli plugin.

最後に

この他にも apt preferences ではインストール先のリポジトリの優先順位やインストール先のリポジトリの指定なども可能です

参考サイト