【ServiceNow】CSVファイルを作成してチケットに添付する方法
皆さん、こんにちは。ServiceNow担当のアキです。
皆さんはServiceNowの導入をしていて、「ファイルの自動作成ってどうやるのだろう?」と考えたことはないでしょうか?
ServiceNowテーブルの各レコードへファイル添付をしたり、メール送信時にファイルを添付するなど、運用で(=手作業で)行う機会は多々あると思いますが、自動でファイルを作成して添付することも可能です。
このような添付ファイルを簡単に作成する標準APIが用意されていますので、今回は添付ファイルの作成についてご紹介します。
GlideSysAttachment APIのご紹介
今回使用するAPIは「GlideSysAttachment」です。
代表的なメソッドとしては、下記の機能が用意されています。(※Docsより一部抜粋)
今回は添付ファイルの作成がテーマですので、「write」メソッドを使う事例を紹介します。
ユースケース
例えば、月に1回、未解決のインシデントを抽出して、CSVファイルを作成し、新規に起票したタスクに添付するケースを考えてみます。
<イメージ>
<処理手順>
この場合の処理手順としては下記のイメージとなります。
①月初のタイミングでアクティブなインシデント[incident]レコードを抽出
②タスク[task]の新規レコードを作成
③新規レコードへCSVファイルを添付
実装サンプル
上記の処理手順に沿って、実装サンプルをご紹介します。
以下のスクリプトはすべてサーバサイドスクリプトで実行できます。
自動で実行する場合は、スケジュールジョブに下記のスクリプトを記載し実行します。
①アクティブなインシデント[incident]レコードを抽出
上記のコードで、現在有効なインシデントレコードが抽出できます。
上記の例では、CSVファイルへ出力する内容を組み立て、contentという変数へ格納しています。
CSVファイルなので、各項目値は前後をダブルコーテーション[“]で囲い、項目間はコンマ[,]で区切っています。
②タスク[task]の新規レコードを作成
上記のコードで、添付ファイルを貼り付けるタスクレコードを準備しています。
最低限の項目として、タスク名とアサイン先グループを設定しています。
③新規レコードへCSVファイルを添付
手順①で組み立てた変数「content」を利用して、CSVファイルを作成します。
手順②でタスクレコードを作成した際に、変数「task_rec」にタスクレコードが格納されていますので、添付先として指定します。
変数「contentType」でコンテンツタイプを指定します。
ServiceNowでサポートされている添付ファイルのコンテンツタイプが利用できます。
<補足>
コンテンツタイプは、作成するファイルの種類に応じてさまざまです。
下記に一例を紹介します。
実行結果
上記の処理をスケジュールジョブで実装し、インシデントテーブルのデモデータを利用して、添付ファイルの作成を実施してみました。
タスクが作成されたことを確認できます。
タスクレコードを開くと、作成した添付ファイルが保存されていることが確認できます。
添付ファイルを任意のフォルダへダウンロードし、ファイルを開くとCSVファイルの中身が想定通りに作成されていることが確認できます。
[まとめ]
今回は、標準で用意されているAPIを利用して、ファイルの作成とレコードへの添付を実現する方法をご紹介しました。
添付ファイルを作成することで、担当者へメール送信したり、外部から接続してダウンロードしてもらうなど、さまざまな運用(業務要件)にお応えすることができます。
ServiceNowの高度な実装には、弊社のServiceNow導入サービスをよろしくお願いいたします。
ServiceNowについて
ServiceNowについてさらに詳しく知りたい方は、ServiceNowに熟知したSTSメンバーがよりよいシステム構築をご提案しますので、ぜひお問合せください!
お問い合わせはこちら