3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ServiceNow】添付されたエクセルファイルの入力値を取得するフローの作成方法

Last updated at Posted at 2022-07-11

リクエストアイテムに添付したExcelファイルの入力値を取得する方法をまとめます。
使用するAPIはGlideExcelParserです。

本記事ではFlowDesignerでGlideExcelParserを使用するアクションを作成し、メインフローを作成していきます。

アクションを作成する

GlideExcelParserを使用するアクションを作成します。

Input

添付ファイルのsysIDを取得したいので、StringタイプのInputを用意します。
image.png

Script step

具体的な処理を記載していきます。

①変数にInputで取得した添付ファイルのsysIDをセットします。
image.png

➁Script欄にGlideExcelParserを使用する処理を記載します。
以下はサンプルスクリプトです。

Script step
(function execute(inputs, outputs) {

 var parser = new sn_impex.GlideExcelParser();
 var attachment = new GlideSysAttachment();

//添付ファイルのsysIDを指定
 var attachmentStream = attachment.getContentStream(inputs.attachment);

//読み込むソースを指定
 parser.setSource(attachmentStream);

//ヘッダー情報を取得
//配列で各列の情報が格納される
 var headers = parser.getColumnHeaders();
 var num= headers[0];
 var companyName = headers[1];

 gs.info('Header num:'+ num);
 gs.info('Header companyName:'+ companyName);

//行単位で入力値を取得
 while (parser.next()) {
  var row = parser.getRow();
  gs.info('Value row:' + row[num] + ' + ' + row[companyName]);
 }

})(request, response);

サンプルフローを作成する

作成したアクションを使用して、
リクエストアイテムに添付したファイルを読み込むフローを作成します。
image.png

<解説>
TRIGGER)カタログアイテムからレコードが作成されると本フローが処理されます。
ACTION1)リクエストアイテムに添付されたファイルのsysIDを取得します。 ※OOTBアクション
ACTION2)ACTION1で取得した添付ファイルの入力値を取得します。 ※カスタムアクション

各アクションの設定内容

Action1 - Look Up Attachmnet

Source Recordにトリガーとなるレコード(リクエストアイテム)を指定します。
※このアクションのOutputは添付ファイルのsysIDです。
image.png

Action2 - カスタムアクション

Action1のOutput(取得した添付ファイルのsysID)をInputに指定します。
image.png

動作確認

テストしてみます。
カタログアイテムにこのエクセルを添付して送信すると、
image.png

下図のようなログが出力されました。
Excelの入力値を取得できていることがわかります。
image.png

終わりに

大量なデータをExcelのまま申請し、承認後に別システムへ自動登録してほしといった要望を実現するために本APIを使用しました。

とても便利な機能ですが、Excelのセルに付与されているフリガナも取得してしまう欠点もあります。
※フリガナは漢字を入力した際に自動で付与されます。

私たちはExcel保存時にフリガナを削除するマクロを実装することでフリガナごと連携されないよう対応しました。
GlideExcelParserを使用する際はお気をつけください。

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?