固定長書き込みウィザード 操作ガイド

固定長書き込みウィザードとは

DataSpider Servista固定長書き込みウィザードとは、入力データから固定長データを生成するために必要なスキーマ定義を設定する機能を持ったウィザードです。

固定長形式のテキストファイルについて

ここでは、DataSpider Servistaが扱う固定長形式のテキストファイル(以下、固定長ファイルと呼ぶ)について説明します。

固定長ファイルで最も基本的な構造はレコード(record)です。レコードはテキストファイルの1行を表しており、行頭から行末(改行文字)までを1レコードと呼びます。各レコードは複数のフィールド(field)で構成されており、各フィールドはそれぞれ決まった長さで分けられています。(図1)

各フィールドにはそれぞれ型(文字列・数値・日付・タグ)を指定することができます。


固定長書き込みウィザードでは、1レコードの構造を定義することができます。

固定長書き込みウィザードの起動方法

固定長書き込みウィザードは、デザイナにある固定長ファイル書き込みオペレーションから起動することができます。

固定長書き込みフォーマット定義の追加


  1. 固定長ファイル書き込みオペレーションのプロパティから[フォーマット]を選択して[追加]をクリックします。




  2. 「固定長ファイル書き込みフォーマット定義」ダイアログが開きます。
    任意で名前を入力します。

  3. [固定長書き込みウィザードの起動]をクリックします。

固定長書き込みフォーマット定義の編集


  1. 固定長ファイル書き込みオペレーションのプロパティから[フォーマット]を選択して[一覧の編集]をクリックします。

  2. 「リソース一覧の編集」ダイアログが開きます。




  3. [リソース一覧]から編集したいフォーマット定義を選択します。

  4. [固定長ウィザードの起動]をクリックします。


  5. [リソース一覧]からフォーマット定義の追加・削除を行うことができます。

固定長書き込みウィザードの概念




列一覧とは

列一覧とは、入力元XMLデータ(テーブルモデル型)のrowに含まれるcolumnのデータのことです。
ここでの設定では、まず入力元XMLデータのrowに含まれるcolumnと同じ数だけフィールドを追加する必要があります。
さらに、追加した各フィールドに対して構造(名前、型、長さ、揃え、パディングなど)を定義します。

構造定義とは

出力するデータの構造を定義します。構造定義ではグループ、レコードを定義し、そこに列一覧で定義したフィールドをドラッグ&ドロップで追加します。

テーブルモデル型については「データモデル」を参照してください。

固定長書き込みウィザードの設定方法(列一覧)

列一覧では、入力元XMLデータのカラムをフィールドとして構造情報を定義し、固定長データの1レコードを定義します。

列一覧の設定手順(フィールドの追加)


  1. 「列」アイコンを右クリックし、[追加]-[フィールド]を選択します。



  2. プロパティが開きますので、プロパティを設定します。


  3. フィールドのプロパティ(基本設定)

    項目名 必須/省略可 説明 補足
    フィールド名 必須 任意のフィールド名を入力します。  
    フィールド型 必須 フィールドの型を選択します。
    • [文字列]:(デフォルト)
    • [数値]:
    • [日付]:
    • [タグ]:
    • [数値(ゾーン10進)]:
    • [数値(パック10進)]:
     
    エンコード 省略可 任意のエンコードを選択または入力します。

    入力する場合は、J2SE Development Kit 5.0でサポートされているエンコードを指定することができます。
    • [フィールド型][文字列]または[タグ]が選択された場合、有効になります。
    • [エンコードを指定]にチェックを入れない場合、固定長ファイル読み取り処理の[読み取り設定][エンコード]を使用します。
    フィールド長 必須 フィールド全体の長さをバイト数で入力します。
    • 指定したフィールド長より入力データが長い場合、フィールド長で切り取った値を書き込みます。
    開始位置
    -
    レコード内におけるフィールドの開始位置を自動で表示します。  
    揃え 必須 フィールドの揃えを選択します。
    • [右揃え]:(デフォルト)
      フィールドを右揃えにします。
    • [左揃え]:
      フィールドを左揃えにします。
     
    パディング文字 必須 パディングする文字を選択します。
    • [一覧から選択]:(デフォルト)
      半角スペース(デフォルト)、半角ゼロ、全角スペース、全角ゼロから選択します。
    • [直接入力]:
      パディングする文字を直接入力します。
    • [文字コード入力]:
      パディングする文字を文字コードで入力します。
     

    フィールドのプロパティ(フィールドタイプ設定)

    項目名 必須/省略可 説明 補足
    タグ 省略可 タグ(レコード識別コード)を入力します。
    • [フィールド型][タグ]を選択した場合、有効になります。
    日付フォーマット 省略可 日付のフォーマットを選択または入力します。
    年号 意味 表示
    y 数値 1996
    M テキストまたは数値 July&07
    d 数値 10
    h 時(1〜12) 数値 12
    H 時(0〜23) 数値 0
    m 数値 30
    s 数値 30
    S ミリ秒 数値 978
    • [フィールド型][日付]を選択した場合、有効になります。
    • デフォルトは「$yy$MM$dd」です。
    小数部桁数 省略可 小数の桁数を入力します。
    • [フィールド型][数値(ゾーン10進)]または[数値(パック10進)]を選択した場合、有効になります。
    ゾーンニブル 省略可 ゾーン部のニブルを入力します。
    • [フィールド型][数値(ゾーン10進)]を選択した場合、有効になります。
    • 1桁から3桁のゾーンニブルを指定した場合、4桁までの足りない桁を「0」で埋めたゾーンニブルが設定されます。
    • 省略した場合、固定長ファイル読み取り処理の[読み取り設定][エンコード]を基にゾーンニブルが設定されます。主なエンコードで設定されるゾーンニブルは以下の通りです。
    • エンコード ゾーンニブル
      Shift_JIS0011
      Windows-31J0011
      EUC-JP0011
      ISO-8859-10011
      ISO-2022-JP0011
      US-ASCII0011
      UTF-80011
      UTF-160011
      UTF-16BE0011
      UTF-16LE0000
      EBCDIC(Cp930)1111
    符号形式 省略可 符号の形式を選択します。
    • [符号なし]:(デフォルト)
      符号部がない場合に選択します。
    • [最初]:
      符号部が最初の桁に入る場合に選択します(Leading)。
    • [最初(単独)]:
      符号部が独立したバイトとして最初の桁の前に入る場合に選択します(Leading Separate)。
    • [最後]:
      符号部が最後の桁に入る場合に選択します(Trailing)。
    • 最後(単独):
      符号部が最後の桁の後に独立したバイトとして入る場合に選択します(Trailing Separate)。
    • [フィールド型][数値(ゾーン10進)]または[数値(パック10進)]を選択した場合、有効になります。
    正のニブル 省略可 正のニブルを入力します。
    • [符号形式][符号なし]以外を選択した場合、有効になります。
    • 1桁から3桁の正のニブルを指定した場合、4桁までの足りない桁を「0」で埋めた正のニブルが設定されます。
    • 省略した場合、「1100」が設定されます。
    負のニブル 省略可 負のニブルを入力します。
    • [符号形式][符号なし]以外を選択した場合、有効になります。
    • 1桁から3桁の負のニブルを指定した場合、4桁までの足りない桁を「0」で埋めた負のニブルが設定されます。
    • 省略した場合、「1101」が設定されます。

    ニブルとは、情報量の単位の1つで、4ビットに相当します。

  4. 列にフィールドのアイコンが登録されます。

プロパティの編集方法


  1. プロパティの編集
    フィールドの要素を選択すると下部にプロパティが表示されます。
    この画面からプロパティの編集が可能です。



    また、フィールドの要素を右クリックして[プロパティ]を選択するとダイアログが起動し、編集が可能になります。



  2. 削除
    フィールドの要素を選択して下部にある[削除]ボタンを押下することで、選択したフィールドが削除されます。



  3. また、フィールドの要素を右クリックして[削除]を選択すると削除されます。



  4. 移動
    フィールドの要素を選択してドラッグ&ドロップすることで、任意の位置に移動することができます。

固定長書き込みウィザードの設定方法(構造定義)

構造定義では、出力するデータの構造を定義します。

構造定義の設定手順(グループの追加)

  1. 「構造定義アイコン」を右クリックし、[追加]-[グループ]を選択します。

  2. プロパティが開きますので、プロパティを設定します。


  3. グループのプロパティ

    項目名 必須/省略可 説明 補足
    グループ名 必須 任意のグループ名を入力します。  
    出現回数 省略可 書き込み処理では使用していません。
     
    省略可 省略可 書き込み処理では使用していません。
     
    無制限 省略可 書き込み処理では使用していません。
     

  4. 構造定義にアイコンが登録されます。



    グループは青色のアイコンで表現されます。

構造定義の設定手順(レコードの追加)

  1. 「構造定義アイコン」を右クリックし、[追加]-[レコード]を選択します。

  2. プロパティが開きますので、プロパティを設定します。

    レコードのプロパティ

    項目名 必須/省略可 説明 補足
    レコード名 必須 任意のレコード名を入力します。  
    出現回数 省略可 書き込み処理では使用していません。
     
    省略可 省略可 レコードに対応する入力データを、行ごとに必ず出力するかどうかを選択します。
    • [チェックあり]:
      • レコードに対応する入力データが1つ前の行と同じ場合、出力が省略されることがあります。
      • 出力が省略されるのは、以下の条件にすべて合致した場合になります。
        • 後続のレコードで、[省略可]が「チェックなし」に設定されているレコードが存在しない場合
        • 後続のレコードで、[省略可]が「チェックあり」に設定されているレコードが存在し、そのレコードに対応する入力データが1つ前の行と同じ場合
        • 後続のレコードで、1つ目のフィールドがタグのレコードが存在し、そのレコードに対応する入力データが1つ前の行と同じ場合
        • 入力データの最終行ではない場合

    • [チェックなし]:(デフォルト)
      • 行ごとに必ずレコードを出力します。
     
    無制限 省略可 書き込み処理では使用していません。
     

  3. 構造定義にアイコンが登録されます。


    レコードは緑色のアイコンで表現されます。

構造定義の設定手順(フィールドの追加)

  1. 列一覧で定義したフィールドを選択し、構造定義に定義されているレコードにドラッグ&ドロップします。


  2. フィールドにリンクが張られレコードにフィールドが追加されました。

構造定義の設定手順(固定フィールドの追加)

構造定義に固定フィールドを追加することで、定数フィールドのような定義ができます。
  1. 構造定義の「レコード」を右クリックし、[追加]-[フィールド]を選択します。


  2. プロパティが開きますので、プロパティを設定します。

    [フィールド名]に入力した値がそのまま出力されます。

  3. 構造定義にアイコンが登録されます。

構造定義ファイルのエクスポート/インポート機能について

ウィザードで定義した構造定義、列一覧をCSV形式のファイルに保存し、そのファイルから構造定義、列一覧を復元することができます。 一度作られた構造定義ファイルは、読み取り処理、書き込み処理の両方で使用することができます。

構造定義ファイルの仕様

グループ

種別 指定できる文字 必須/省略可 備考
1 プレフィックス GROUP または G 必須 大文字、小文字は区別しません。
2 グループ名 任意の文字列 必須  
3 出現回数 0 以上 2147483647 以下の数字 省略可 省略した場合は「無制限」が設定されます。
4 必須 true または false 省略可 省略した場合は「false」が設定されます。

記述例:グループ名はヘッダーグループ、出現回数は無制限で省略可。

GROUP,ヘッダーグループ,,

レコード

種別 指定できる文字 必須/省略可 備考
1 プレフィックス RECORD または R 必須 大文字、小文字は区別しません。
2 レコード名 任意の文字列 必須  
3 出現回数 0 以上 2147483647 以下の数字 省略可 省略した場合は「無制限」が設定されます。
4 必須 true または false 省略可 省略した場合「false」が設定されます。

記述例:レコード名はヘッダーレコード、出現回数は無制限で省略可。

RECORD,ヘッダーレコード,,

フィールド

種別 指定できる文字 必須/省略可 備考
1 プレフィックス FIELD または F 必須 大文字、小文字は区別しません。
2 フィールド名 任意の文字列 必須  
3 各型の指定できる文字は以下の通りです。

指定できる文字
文字列 string または S
数値 numeric または N
タグ tag または T
日付 date または D
ゾーン10進 zoned または Z
パック10進 packed または P

必須 大文字、小文字は区別しません。
4 型設定 タグまたは日付フォーマット 省略可 型が「タグ」または「日付」の場合は必須です。
5 エンコード フィールド型が文字列の場合、任意のエンコードを指定できます。

入力する場合は、J2SE Development Kit 5.0でサポートされているエンコードを指定することができます。
省略可 省略した場合、固定長ファイル書き込み処理の[書き込み設定][エンコード]を使用します。
6 長さ 0 から 9999 までの数字 必須  
7 パディング文字 任意のパディング文字 必須
  • 文字コード指定はできません。
  • 空文字の場合、[パディングモード]は「一覧から選択」、[パディング文字]は「半角スペース」になります。
8 揃え
揃え 指定できる文字
右揃え Right または R
左揃え Left または L

省略可
  • 省略した場合は「右揃え」が設定されます。
  • 大文字、小文字は区別しません。
9 小数部桁数 0 から 2147483647 までの数字 省略可
  • 型が「ゾーン10進」または「パック10進」の場合有効です。
  • 省略した場合は「0」が設定されます。
10 符号形式
符号形式 指定できる文字
符号なし None または N
最初 Leading または L
最後 Trailing または T
最初(単独) Leading.Separate または LS
最後(単独) Trailing.Separate または TS

省略可
  • 型が「ゾーン10進」または「パック10進」の場合有効です。
  • 省略した場合は「符号なし」が設定されます。
  • 大文字、小文字は区別しません。
11 ゾーンニブル 4桁の 0 または 1 の数字 省略可
  • 型が「ゾーン10進」の場合有効です。
12 正のニブル 4桁の 0 または 1 の数字 省略可
  • 型が「ゾーン10進」または「パック10進」の場合有効です。
13 負のニブル 4桁の 0 または 1 の数字 省略可
  • 型が「ゾーン10進」または「パック10進」の場合有効です。
14 出力 true または false 省略可
  • 列一覧フィールドを構造定義に出力するか否かを指定します。出力する場合は「true」です。
  • 省略した場合は「false」が設定されます。

記述例:フィールド名はヘッダー、型は文字列型、エンコードは Windows-31J、長さは 10、パディング文字は半角スペース、揃えは左揃え。

FIELD,ヘッダー,S,,Windows-31J,10, ,L,,,,,,

構造定義ファイルのエクスポート



  1. [構造定義ファイル]メニューから[エクスポート]を選択します。



  2. ダイアログが起動したら、エクスポート先のファイルを選択または入力します。



  3. [完了]ボタンを押下して、エクスポートに成功すると次のダイアログが表示されます。



  4. エクスポートされた内容は以下の通りです。

  5. GROUP,グループ,,false
    RECORD,レコード,,false
    FIELD,タグ,tag,HDR,Windows-31J,3, ,L,0,,,,,true
    FIELD,文字列,string,,Windows-31J,5, ,L,0,,,,,true
    FIELD,数値,numeric,,,3, ,R,0,,,,,true
    FIELD,日付,date,$yyyy/$MM/$dd,,10, ,R,0,,,,,true
    FIELD,ゾーン10進,zoned,,,2, ,L,0,T,,1100,1101,true
    FIELD,パック10進,packed,,,2, ,L,0,T,1111,1100,1101,true

構造定義ファイルのインポート



  1. [構造定義ファイル]メニューから[インポート]を選択します。



  2. ダイアログが起動したら、インポートするファイルを選択または入力します。



  3. [完了]ボタンを押下して、インポートに成功するとウィザードに構造定義が表示されます。



  4. 既に構造定義が存在する場合は、上書きするかどうかの警告ダイアログが表示されます。



構造定義ファイルを編集する場合の注意点