Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.13.7 CSV・Excelの列データ取得(SYSTEM)

機能

この部品は,WindowsまたはUNIX環境で,CSV(Comma Separated Values)ファイルまたは,Microsoft社のExcelで作成したExcelシートから指定した列のデータをすべて取得し出力プロパティに設定します。

Windows環境の場合はCSVファイルまたはExcelファイルから,UNIX環境の場合はCSVファイルから,データを取得します。

次を満たすファイルのデータの取得をサポートします。

【CSVファイルの場合】

・拡張子がcsvのテキストファイルであること。

・列名が必要な場合は,ファイルの1行目には半角コンマ区切りで列名が記載されていること。列名が不要の場合は列名の記載は必要ありません。

・ファイルの2行目以降には読み取り対象のデータが半角コンマ(,)で区切られて記載されていること。なお,列名の記載有無に関わらず,データの読み取り開始行は2行目からとなります。

・Windows環境の場合は,文字コードがMS932で記述され,改行コードがCR+LFであること。UNIX環境の場合は,ユーザーの環境変数[LANG]で指定している文字コードで記述され,改行コードがLFであること。

【Excelファイルの場合】

・拡張子がxlsのファイル(「Excel97〜2003ブック」として保存されたExcelフォーマット),またはxlsx,xlsm(Excel2007以降のExcelブック,Excelマクロ有効ブック)のファイルであること。

・必ず列名が記載されていること。1行目以降で最初に記述がある行が列名となる。

・列名が記載されている行の次の行以降に列名に対応する値が記載されていること。

ファイルの記述例を次に記載します。

【記述例1】

ホスト名

hostVM001

hostVM002

【記述例2】

ホスト名,コメント

hostVM001,#Comment1

hostVM002,#Comment2

読み込んだフィールドには次のチェックを行います。どれかの条件に当てはまると,部品は異常終了します。

(a)フィールドの文字列長が1024文字より大きい

(b)フィールドに次の特殊記号を含む

 「,」(Windows環境の場合),「<」,「>」,「|」,「;」,「&」,両端以外の「"」および末尾の「¥」

 なおフィールドのデータが空の場合,無視して次の行を読み取ります。

(c)フィールドに制御文字(0x00〜0x1f)を含む

出力情報は指定した列ごとに出力します。どれかの列でデータ行数が99件を超えるか,「(フィールドの文字数の合計値)+ データ行数」が1017文字を超えると,部品は異常終了します。

利用場面

・管理情報を記載したCSV/Excelファイルからデータを取得し,サービスの入力値として利用できます。

・CSV/Excelファイルのキー情報となる列をこの部品で取得し,繰り返し部品,CSV・Excelの行データ取得部品への入力とすることで,ファイルに記載されたすべての行について特定の処理を実行できます。

前提条件

【システム内前提製品】/【実行対象サーバ内前提製品】/【実行対象サーバの稼働OS】の最新のサポート状況については,リリースノートを参照してください。

【システム内前提製品】

 (1)JP1/Automatic Operation 11-00以降

【実行対象サーバ内前提製品】

 (1)データ取得対象にExcel2007以降のExcelブック,Excelマクロ有効ブックを指定する場合,次に示すMicrosoft社のプログラムのインストールが必要です。(Windows環境の場合)

  ・2007 Office system ドライバ,または

   Microsoft Access データベース エンジン 2010(32bit版),または

   Microsoft Access Database Engine 2016(32bit版)

【実行対象サーバの稼働OS】

 (1) Windows Server 2008 R2 Standard/Enterprise/Datacenter

 (2) Windows Server 2012 Standard/Datacenter,Windows Server 2012 R2 Standard/Datacenter

 (3) Windows Server 2016 Standard/Datacenter

 (4) Windows Server 2019 Standard/Datacenter

 (5) Red Hat Enterprise Linux Server 6 (32-bit x86),Red Hat Enterprise Linux Server 6 (64-bit x86_64)

 (6) Red Hat Enterprise Linux Server 7 (64-bit x86_64)

 (7) Red Hat Enterprise Linux Server 8 (64-bit x86_64)

 (8) CentOS 6 (64-bit x86_64)

 (9) CentOS 7 (64-bit x86_64)

 (10) CentOS 8 (64-bit x86_64)

 (11) Oracle Linux 8 (64-bit x86_64)

【実行対象サーバ内前提製品の使用条件】

なし。

注意事項

・Windows環境の場合の注意事項

(1) ODBCドライバの制限によって,ファイル名には「[」,「]」,「!」は使用できません。

(2) Excelファイルのセルが結合されている場合,数式がエラーとなっている場合は取得される値が空になります。また,書き込みパスワードが設定されている場合は,部品は異常終了します。読み取り対象のファイルからはこれらの状態を取り除いてください。

(3) 読み取る列は,文字列型データと数値型データを混在させないでください。混在していると,ODBCドライバの仕様によって,正常に値を取得できない場合があります。

 (a)数値型データとは次の形式の文字列のことです。

  符号付き整数値(10進数) 例:-12345

  固定小数点数(10進数)  例:3.1415

  浮動小数点数(10進数)  例:6.543E+10

 (b)文字列型データとは上の数値型以外の形式の文字列のことです。

(4) 読み取り対象のファイルから異なるデータ型が混在する列を取得する場合は,次の対処が必要です。

 ・Excelファイルの場合は数値型データの先頭に「'」を付けてください。

 ・CSVファイルの場合は数値型データを「"」で囲んでください。

(5) 読み取り対象がCSVファイルである場合,IPアドレスは「"」で囲んでください。「"」で囲まない場合,数値型データとして誤認識され,正常に値を取得できないことがあります。

(6) 読み取り対象ファイルがExcelファイルの場合,セルに記述されたデータのデータ型によっては,表示されている値と実際に取得される値が異なる場合があります。次のデータ型のデータを記述している場合はご注意ください。

 (a) Boolean型(True/False)

  表示される値:TRUE/FALSE

  セルに記述されている値:TRUE/FALSE

  実際に取得される値:True/False

 (b) 日付データ

  表示される値:mm月dd日

  セルに記述されている値:yyyy/mm/dd

  実際に取得される値:yyyy/mm/dd

 (c) 時刻データ

  表示される値:hh:mm

  セルに記述されている値:hh:mm:ss

  実際に取得される値:hh:mm:ss

 (d) パーセント

  表示される値:〜%(例:10%)

  セルに記述されている値:〜%(例:10%)

  実際に取得される値:0.〜(例:0.1)

 (e) 数式

  表示される値:(数式の結果)

  セルに記述されている値:(数式)

  実際に取得される値:(数式の結果)

(a)(d)(e)のデータをセルに記述されている値のまま取得したい場合は先頭に「'」を付けてください。

なお,読み取り対象ファイルがCSVファイルの場合は記述した値をそのまま取得することができます。

(7) (6)の型のデータを記述する場合,その列の列名を除いたデータが1種類の型のデータだけになるように記述してください。複数の型のデータが1列に混在している場合,データを取得できない場合があります。

(8) 読み取り対象の列番号には255以内の整数値を指定してください。256以上の値を指定すると部品は異常終了します。途中の空白列も列数に含まれますのでご注意ください。

(9) ファイル読み込み時のリトライ回数には0以上32767以下の整数値を指定してください。範囲外の値を指定すると部品は異常終了します。

(10) ファイル読み込み時のリトライ間隔には1以上60以下の整数値を指定してください。範囲外の値を指定すると部品は異常終了します。

(11) 読み取り対象ファイルのデータの途中に空白行がある場合,空白行も行数としてカウントされます。データが記述された行が99行以内であっても,途中の空白行を含めた行数が100以上となる場合,部品は異常終了するのでご注意ください。

(12) CSVファイルの場合,フィールドの文字列長は255バイト以内にしてください。256バイト以上だった場合,ODBCドライバが正常に値を取得できずに,部品が異常終了する場合があります。

(13) この部品を同一ファイルに対して同時に実行した場合,ファイルのアクセスに失敗する場合があります。この場合,リトライ回数とリトライ間隔を調整して,エラーを回避できるまでリトライを実施してください。

(14) Excelファイルから取得したデータ内のMS932で表示できない文字は,「?」に置換します。

・UNIX環境の場合の注意事項

(1) 読み取り対象の列番号には255以内の整数値を指定してください。256以上の値を指定すると部品は異常終了します。途中の空白列も列数に含まれますのでご注意ください。

(2) 読み取り対象ファイルのデータの途中に空白行がある場合,空白行も行数としてカウントされます。データが記述された行が99行以内であっても,途中の空白行を含めた行数が100以上となる場合,部品は異常終了するのでご注意ください。

(3) CSVファイルのデータには「,」は使用できません。使用した場合,列を正しく区切ることができないため,データを取得できません。

(4) LC_ALLやLC_MESSAGESなどLANGより上位のロケール環境変数が設定されている時,上位のロケール環境変数が優先されてしまうため部品を実行する際に,LC_ALLやLC_MESSAGESなどの上位のロケール環境変数を解除するか,LANG環境変数と同一の値に変更してください。

実行権限

Administratorsグループに所属するユーザー

バージョン

03.10.00

部品のタグ

Gather OS information,Windows,Linux

タスクログに表示される部品の名称

osReadCSVExcelFileColumn_System

戻り値

戻り値

説明

0

正常

11

異常(ユーザーミス) 定義ファイル内容の不正

12

異常(ユーザーミス) プロパティ不正

14

異常(ユーザーミス) ファイルアクセス不可

27

異常(エラー内容はタスクログで確認)

41

異常(部品内でエラーを検知) プロパティ未入力(部品スクリプトでエラーを検知)

プロパティ一覧

プロパティ一覧を次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

plugin.destinationHost

実行対象サーバのホスト名

この部品を実行するサーバのホスト名またはIPアドレスを指定します。IPv6アドレスには対応していません。

− 

入力

○ 

common.fileName

ファイル名

ファイル名を指定します。

− 

入力

○ 

common.sheetName

EXCELファイルのシート名

EXCELファイルのシート名を指定します。CSVファイルの場合は,指定不要です。

Sheet1

入力

△ 

odbc.Column1

列番号1

取得するデータの列番号を指定します。

− 

入力

○ 

odbc.Column2

列番号2

取得するデータの列番号を指定します。

− 

入力

△ 

odbc.Column3

列番号3

取得するデータの列番号を指定します。

− 

入力

△ 

odbc.Column4

列番号4

取得するデータの列番号を指定します。

− 

入力

△ 

odbc.Column5

列番号5

取得するデータの列番号を指定します。

− 

入力

△ 

odbc.fileOpenRetryCount

ファイル読み込み時のリトライ回数:Windows固有

ファイルの読み込みに失敗した場合のリトライ回数を指定します(Windowsの場合だけ)。ファイル読み込み時のリトライ間隔と組み合わせて最大待ち時間となります。"0"を指定した場合はリトライしません。

20

入力

○ 

odbc.fileOpenRetryInterval

ファイル読み込み時のリトライ間隔:Windows固有

ファイルの読み込みに失敗した場合のリトライ間隔を秒単位で指定します(Windowsの場合だけ)。

5

入力

○ 

odbc.OutputValue1

データ1

取得したデータを設定します。

− 

出力

△ 

odbc.OutputValue2

データ2

取得したデータを設定します。

− 

出力

△ 

odbc.OutputValue3

データ3

取得したデータを設定します。

− 

出力

△ 

odbc.OutputValue4

データ4

取得したデータを設定します。

− 

出力

△ 

odbc.OutputValue5

データ5

取得したデータを設定します。

− 

出力

△ 

common.returnValue

部品の戻り値

この部品の戻り値が格納されます。

− 

出力

△