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(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】の最新のサポート状況については,リリースノートを参照してください。
また、OSおよび製品について略称を用いています。対象とするOSおよび製品については「はじめに」を参照してください。
【実行対象サーバ内前提製品】
(1)データ取得対象Excelブック,Excelマクロ有効ブックを指定する場合,次に示すMicrosoft社のプログラムのインストールが必要です。(Windows環境の場合)
・Microsoft Access データベース エンジン
【実行対象サーバの稼働OS】
(1) Windows Server
(2) Red Hat Enterprise Linux Server
(3) Oracle Linux
【実行対象サーバ内前提製品の使用条件】
なし。
注意事項
・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 |
部品の戻り値 |
この部品の戻り値が格納されます。 |
− |
出力 |
△ |