Hitachi

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


4.13.5 CSV・Excelの行データ取得(SYSTEM)

機能

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

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

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

【CSVファイルの場合】

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

・ファイルの1行目には半角コンマ区切りで列名が記載されていること。

・列名指定でデータを読み出す場合,ファイルの1行目に必ず列名を指定すること。

・列番号を指定してデータを読み出す場合は,列名を記載する必要はありません。

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

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

【Excelファイルの場合】

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

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

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

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

【ファイルの記述例】

シート名: ServerInfo (Excelファイルの場合だけ)

1行目: ホスト名, CPUコア数, メモリ, ディスク容量, ライセンスキー

2行目: hostVM001, 2, 2048, 30, key1

3行目: hostVM002, 1, 1024, 10, key2

データを取得するシート名,キー情報が記載された列名(または列番号),取得したい行のキー値,データを取得する列名(または列番号)を指定することで,該当する行の列データを最大90件まで取得できます。

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

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

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

 「<」,「>」,「|」,「;」,「&」,両端以外の「"」および末尾の「¥」

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

出力情報は,キー値に合致した行の,odbc.ColumnListプロパティに指定した列の値を,文字列としてodbc.OutputValue1〜odbc.OutputValue90プロパティに格納し,指定した列ごとに出力します。どれかの列でフィールドの文字列が1011文字を超えると,部品は異常終了します。

【部品の使用例】

前述の【ファイルの記述例】に記載したファイルから,hostVM002のCPUコア数,ディスク容量を取得する場合の入力プロパティは次のように指定します。

[入力プロパティ例1(odbc.ColumnListプロパティに列名を指定する場合)]

odbc.SheetName:ServerInfo (Excelファイルの場合だけ)

odbc.KeyColumnName:ホスト名

odbc.KeyValue:hostVM002

odbc.ColumnList:CPUコア数,ディスク容量

odbc.ColumnsAreNumeric:FALSE

[入力プロパティ例2(odbc.ColumnListプロパティに列番号を指定する場合)]

odbc.SheetName:ServerInfo (Excelファイルの場合だけ)

odbc.KeyColumnName:1

odbc.KeyValue:hostVM002

odbc.ColumnList:2,4

odbc.ColumnsAreNumeric:TRUE

上記入力プロパティ例1または2のように指定した場合,部品の出力プロパティは次のようになります。

[出力プロパティ]

odbc.ColumnValue1:1

odbc.ColumnValue2:10

odbc.ColumnValue3〜90:値なし。

利用場面

管理情報を記載したCSVファイル,Excelファイルからデータを取得し,サービス内の他の部品の入力プロパティとして利用できます。

前提条件

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

【システム内前提製品】

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

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

 (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) 列名には次に示す内容を指定してください。

 ・必ず文字列で指定してください。数値データは指定しないでください。

 ・次の文字は列名に使用できません。

  ・キーとなる列名の先頭には次の文字を使用できません。

  「!」「"」「#」「$」「%」「&」「'」「(」「)」「-」「=」「^」「~」「¥」「|」「`」「;」「+」「*」「[」「]」「{」「}」「,」「.」「<」「>」「?」「_」「/」「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」

  ・キーとなる列名の2文字目以降には次の文字を使用できません。

  「"」「#」「%」「&」「'」「(」「)」「-」「=」「^」「~」「¥」「|」「@」「;」「:」「+」「*」「[」「]」「{」「}」「,」「.」「<」「>」「?」「/」

  ・キーとなる列名以外の列名には次の文字を使用できません。

  「!」「[」「]」「`」「,」「.」

 ・文字数は半角全角混合で64文字まで指定できます。

(7) 読み取り対象ファイルが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ファイルの場合は記述した値をそのまま取得することができます。

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

(9) キーとなる列名(odbc.KeyColumnNameプロパティ),およびデータを取得する列のリスト(odbc.ColumnListプロパティ)に列番号を指定する場合は,255以下の整数値を指定してください。256以上の値を指定すると部品は異常終了します。途中の空白列も列数に含まれますのでご注意ください。

(10) キーとなる列名(odbc.KeyColumnNameプロパティ),およびデータを取得する列のリスト(odbc.ColumnListプロパティ)に列名を指定する場合は,255列目以内の列名を指定してください。256列目以降の列名を指定すると部品は異常終了します。途中の空白列も列数に含まれますのでご注意ください。

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

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

(13) キーとなる値には「"」および「'」以外の文字を使用してください。

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

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

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

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

(1) 列名には次に示す内容を指定してください。

 ・次の文字は列名に使用できません。

  ・キーとなる列名の先頭には次の文字を使用できません。

  「!」「"」「#」「$」「%」「&」「'」「(」「)」「-」「=」「^」「~」「¥」「|」「`」「;」「+」「*」「[」「]」「{」「}」「,」「.」「<」「>」「?」「_」「/」「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」

  ・キーとなる列名の2文字目以降には次の文字を使用できません。

  「"」「#」「%」「&」「'」「(」「)」「-」「=」「^」「~」「¥」「|」「@」「;」「:」「+」「*」「[」「]」「{」「}」「,」「.」「<」「>」「?」「/」

  ・キーとなる列名以外の列名には次の文字を使用できません。

  「!」「[」「]」「`」「,」「.」

 ・文字数は64文字まで指定できます。

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

(3) キーとなる値には「"」および「'」以外の文字を使用してください。

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

(5) CSVファイルの行の先頭または末尾に存在する半角スペースおよびタブ記号は,その個数に関係なく,存在しないものとみなします。

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

実行権限

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

バージョン

03.10.02

部品のタグ

Gather OS information,Windows,Linux

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

osReadCSVExcelFileRow_System

戻り値

戻り値

説明

0

正常

11

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

12

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

14

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

15

異常(ユーザーミス) 指定したキー値に合致する行がない

27

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

41

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

プロパティ一覧

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

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

plugin.destinationHost

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

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

− 

入力

○ 

common.fileName

ファイル名

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

− 

入力

○ 

common.sheetName

EXCELファイルのシート名

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

Sheet1

入力

△ 

odbc.KeyColumnName

キーとなる列名

キー情報が格納される列の見出し文字列,または列の番号を指定します。

− 

入力

○ 

odbc.KeyValue

キーとなる値

データを取得する行を特定するための文字列を指定します。

− 

入力

○ 

odbc.ColumnList

データを取得する列のリスト

データを取得する列の見出し文字列,または列の番号をコンマ区切りで指定します。列名(または列の番号)は90件まで指定できます。

− 

入力

○ 

odbc.ColumnsAreNumeric

列のリストの列番号指定

キー情報が格納される列,およびデータを取得する列を番号で指定する場合,TRUEを指定します。列名(文字列)で指定する場合,FALSEを指定します。

− 

入力

○ 

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

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

− 

出力

△ 

odbc.OutputValue6

データ6

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

− 

出力

△ 

odbc.OutputValue7

データ7

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

− 

出力

△ 

odbc.OutputValue8

データ8

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

− 

出力

△ 

odbc.OutputValue9

データ9

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

− 

出力

△ 

odbc.OutputValue10

データ10

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

− 

出力

△ 

odbc.OutputValue11

データ11

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

− 

出力

△ 

odbc.OutputValue12

データ12

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

− 

出力

△ 

odbc.OutputValue13

データ13

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

− 

出力

△ 

odbc.OutputValue14

データ14

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

− 

出力

△ 

odbc.OutputValue15

データ15

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

− 

出力

△ 

odbc.OutputValue16

データ16

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

− 

出力

△ 

odbc.OutputValue17

データ17

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

− 

出力

△ 

odbc.OutputValue18

データ18

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

− 

出力

△ 

odbc.OutputValue19

データ19

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

− 

出力

△ 

odbc.OutputValue20

データ20

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

− 

出力

△ 

odbc.OutputValue21

データ21

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

− 

出力

△ 

odbc.OutputValue22

データ22

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

− 

出力

△ 

odbc.OutputValue23

データ23

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

− 

出力

△ 

odbc.OutputValue24

データ24

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

− 

出力

△ 

odbc.OutputValue25

データ25

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

− 

出力

△ 

odbc.OutputValue26

データ26

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

− 

出力

△ 

odbc.OutputValue27

データ27

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

− 

出力

△ 

odbc.OutputValue28

データ28

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

− 

出力

△ 

odbc.OutputValue29

データ29

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

− 

出力

△ 

odbc.OutputValue30

データ30

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

− 

出力

△ 

odbc.OutputValue31

データ31

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

− 

出力

△ 

odbc.OutputValue32

データ32

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

− 

出力

△ 

odbc.OutputValue33

データ33

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

− 

出力

△ 

odbc.OutputValue34

データ34

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

− 

出力

△ 

odbc.OutputValue35

データ35

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

− 

出力

△ 

odbc.OutputValue36

データ36

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

− 

出力

△ 

odbc.OutputValue37

データ37

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

− 

出力

△ 

odbc.OutputValue38

データ38

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

− 

出力

△ 

odbc.OutputValue39

データ39

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

− 

出力

△ 

odbc.OutputValue40

データ40

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

− 

出力

△ 

odbc.OutputValue41

データ41

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

− 

出力

△ 

odbc.OutputValue42

データ42

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

− 

出力

△ 

odbc.OutputValue43

データ43

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

− 

出力

△ 

odbc.OutputValue44

データ44

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

− 

出力

△ 

odbc.OutputValue45

データ45

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

− 

出力

△ 

odbc.OutputValue46

データ46

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

− 

出力

△ 

odbc.OutputValue47

データ47

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

− 

出力

△ 

odbc.OutputValue48

データ48

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

− 

出力

△ 

odbc.OutputValue49

データ49

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

− 

出力

△ 

odbc.OutputValue50

データ50

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

− 

出力

△ 

odbc.OutputValue51

データ51

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

− 

出力

△ 

odbc.OutputValue52

データ52

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

− 

出力

△ 

odbc.OutputValue53

データ53

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

− 

出力

△ 

odbc.OutputValue54

データ54

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

− 

出力

△ 

odbc.OutputValue55

データ55

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

− 

出力

△ 

odbc.OutputValue56

データ56

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

− 

出力

△ 

odbc.OutputValue57

データ57

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

− 

出力

△ 

odbc.OutputValue58

データ58

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

− 

出力

△ 

odbc.OutputValue59

データ59

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

− 

出力

△ 

odbc.OutputValue60

データ60

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

− 

出力

△ 

odbc.OutputValue61

データ61

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

− 

出力

△ 

odbc.OutputValue62

データ62

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

− 

出力

△ 

odbc.OutputValue63

データ63

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

− 

出力

△ 

odbc.OutputValue64

データ64

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

− 

出力

△ 

odbc.OutputValue65

データ65

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

− 

出力

△ 

odbc.OutputValue66

データ66

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

− 

出力

△ 

odbc.OutputValue67

データ67

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

− 

出力

△ 

odbc.OutputValue68

データ68

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

− 

出力

△ 

odbc.OutputValue69

データ69

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

− 

出力

△ 

odbc.OutputValue70

データ70

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

− 

出力

△ 

odbc.OutputValue71

データ71

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

− 

出力

△ 

odbc.OutputValue72

データ72

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

− 

出力

△ 

odbc.OutputValue73

データ73

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

− 

出力

△ 

odbc.OutputValue74

データ74

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

− 

出力

△ 

odbc.OutputValue75

データ75

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

− 

出力

△ 

odbc.OutputValue76

データ76

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

− 

出力

△ 

odbc.OutputValue77

データ77

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

− 

出力

△ 

odbc.OutputValue78

データ78

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

− 

出力

△ 

odbc.OutputValue79

データ79

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

− 

出力

△ 

odbc.OutputValue80

データ80

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

− 

出力

△ 

odbc.OutputValue81

データ81

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

− 

出力

△ 

odbc.OutputValue82

データ82

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

− 

出力

△ 

odbc.OutputValue83

データ83

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

− 

出力

△ 

odbc.OutputValue84

データ84

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

− 

出力

△ 

odbc.OutputValue85

データ85

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

− 

出力

△ 

odbc.OutputValue86

データ86

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

− 

出力

△ 

odbc.OutputValue87

データ87

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

− 

出力

△ 

odbc.OutputValue88

データ88

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

− 

出力

△ 

odbc.OutputValue89

データ89

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

− 

出力

△ 

odbc.OutputValue90

データ90

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

− 

出力

△ 

common.returnValue

部品の戻り値

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

− 

出力

△