MKIが解説するServiceNow開発blog

ServiceNow にまつわるMKIナレッジを紹介いたします。

Workflowアクティビティ一括検索データベースビューについて

はじめに

みなさんこんにちは、三井情報株式会社です。

 

突然ですが、ServiceNowのWorkflowでどんなアクティビティが存在するか、指定したスクリプトが使われているアクティビティがどれかを調べるのに苦労したことはありませんか?

基本的には1つ1つアクティビティを開かないと確認できず、複数のアクティビティを一括で検索するツールも標準では用意されていません。

そこで、今回は現在PublishとなっているWorkflowに含まれるアクティビティを一覧表示するDatabase Viewを作成し、Workflowに使用されているアクティビティやそのアクティビティで設定されている値やスクリプトを検索する方法をご紹介させて頂きます。

 

今回利用する機能

Database View

 

テーブル構成

Workflowの情報は複数のテーブルで管理されており、今回利用するテーブルとテーブル同士の関係性は以下になっております。

 

f:id:mki-blog:20211217115020p:plain

wf_workflow_version

 Workflowの特定のバージョン (公開されたバージョンまたはチェックアウトされたバージョン)を管理する

 

wf_activity

 Workflowで使用されているアクティビティを管理する

 

sys_variable_value

 様々なテーブルの変数(WorkflowやFlow Designerなどに設定された情報)を管理する

 

設定方法

Database View全体としては以下となり、View Tableを4つ使用しています。

f:id:mki-blog:20211217115139p:plain

 

Orderが100となっているwf_workflow_versionのView Tableは以下の設定となっています。

f:id:mki-blog:20211217115224p:plain

 

Orderが200となっているwf_workflow_versionのView Tableは以下の設定となっています。ここで再度wf_workflow_versionのView Tableを作成している理由は、wf_workflow_versionのレコードのうちpublish=trueのみというフィルターをかけたいのですが、View Table単体では使用できないため、同一テーブルを参照したView Tableを2つ作成してjoinしています。

f:id:mki-blog:20211217115310p:plain

 

wf_activityのView Tableは以下の設定となっています。

WorkflowとWorkflowで使用しているアクティビティを結びつけています。

f:id:mki-blog:20211217115351p:plain

 

sys_variable_valueのView Tableは以下の設定となっています。

Workflowアクティビティと変数を結びつけています。

f:id:mki-blog:20211217115519p:plain

 

これでDatabase Viewの作成は完了です。Database Viewを実行し、Workflow名や指定したスクリプトでフィルタリングしてWorkflowで使用しているアクティビティがヒットすれば成功です。

以下は弊社インスタンスで稟議申請の中でBoxと連携を行っているスクリプトを含んでいるアクティビティをフィルタリングした結果になります。

f:id:mki-blog:20211217115625p:plain

 

おわりに

今回の検証により、Database Viewを利用しWorkflowに存在するアクティビティを調査することができるようになりました。

最後まで読んでいただき、ありがとうございました。

 

三井情報株式会社
ソリューション技術本部
クラウドソリューション部
第四技術室
甲田善寛

www.mki.co.jp