ページの先頭行へ戻る
Interstage Data Effector V9.3.x リファレンス集
FUJITSU Software

1.3.2 連結条件ファイル

文字コード、ファイル形式または編集条件などを定義した連結条件を記述します。

実行パラメタの種類と意味

以下に、連結条件ファイルの実行パラメタを示します。

注意

  • 連結条件ファイルの内容は、CharacterCodeパラメタで指定したデータの文字コードで記述してください。

  • パラメタ名は行の先頭から記述してください。


パラメタ

省略

説明

CharacterCode

検索対象となる文字列の文字コードを指定します。
本パラメタを省略した場合、UTF-8が指定されたとみなします。

InFileType

入力ファイルタイプを指定します。
本パラメタを省略した場合、CSVが指定されたとみなします。

ListDef

不可

入力とする項目を定義します。
本パラメタは複数たができます。

LCondition

仮想項目機能を使う場合に、仮想項目定義を指定します。
本パラメタは複数行にまたがって定義できます。
本パラメタを省略した場合、仮想項目機能は使用できません。
仮想項目定義の詳細については、“3.8 仮想項目機能”を参照してください。

OutputDef

不可

出力する項目をリターン式に指定します。XML形式または自由な形式で出力したい場合は、出力形式を指定します。
本パラメタは行にまたがて定義できます。

Jcondition

入力ジャーナルファイルと入力マスタファイルの連結条件を連結条件式に指定します。
入力マスタファイルを定義しない場合は、本パラメタを省略します。
本パラメタは複数行にまたがって定義できます。

MemorySize

連結機能の一時ファイル処理を動作させる場合に指定します。
連結機能で利用するメモリサイズをメガバイト(MB)で指定します。処理中に、指定されたサイズ以上のメモリが必要となった場合には、一時ファイルを利用して処理を継続します。
本パラメタを省略した場合、連結機能の一時ファイル処理が動作しません。
連結機能で利用するメモリサイズは、本パラメタで指定したサイズに加え、データ加工用にメモリを使用します。

SubstituteZeroForEmpty

OutputDefパラメタに指定する数値演算式における空の扱いを指定します。
本パラメタを省略した場合、NOが指定されたとみなします。

CharacterCode

設定

意味

UTF-8

UTF-8の場合

SHIFT-JIS

Shift-JISの場合

EUC

EUC-JPの場合


InFileType

設定

意味

CSV

CSVの場合

XML

XMLの場合


ListDef

抽出する項目を定義します。documentoのあとのJ略またはM略称は、replace用動作環境ファイルのJnlFileで指定したJ略称またはMstFileで指定したM略称を用います。


図1.14 ListDefの定義(入力ファイルタイプがCSVの場合)

図1.15 ListDefの定義(入力ファイルタイプがXMLの場合)


K略称
  • 入力ジャーナルファイルまたは入力マスタファイルの各項目に対する新たな名前です。後続のOutputDefパラメタまたはJconditionパラメタで参照使用できます。

  • K略称は、全体で一意でなければなりません。


図1.16 K略称の定義(入力ファイルタイプがCSVの場合)

図1.17 K略称の定義(入力ファイルタイプがXMLの場合)

注意

K略称の指定に何らかの誤りがある場合、指定されたK略称を含むメッセージが標準エラー出力に出力されます。K略称にマルチバイト文字を指定し、かつデータの文字コードとシステムロケールの文字コードが異なる場合、メッセージ中のK略称が正しく表示されない場合があります。

参照

レコードノード指定のK略称の定義については、“レコードノード指定”を参照してください。

項目名
  • 入力項目定義のdocumentで指定したCSVファイルの抽出する項目名を指定します。

テキスト式
  • テキスト式は、入力項目定義のdocumentで指定したXML文書の抽出する要素ノードをテキスト式で指定します。

  • テキスト式を指定したK略称は、指定された要素ノードの値を表します。

パス式
  • パス式は、入力項目定義のdocumentで指定したXML文書の抽出する要素ノードをパス式で指定します。

  • パス式を指定したK略称は、指定された要素ノードの開始タグから終了タグまでの文字列を表します。

注意

  • パス式を指定したK略称は、出力形式を指定しない場合のリターン式、および連結条件式に指定することはできません。

  • パス式を指定したK略称は、単一行関数および集合関数に指定できません。

  • パス式を指定したK略称は、仮想項目機能の論理式に指定できません。ただし、is_empty関数に指定した場合には、論理式に指定できます。


属性式
  • 属性式は、入力項目定義のdocumentで指定したXML文書の抽出する属性ノードを属性式で指定します。

参照

  • テキスト式の詳細については、“3.1.3 テキスト式”を参照してください。

  • パス式の詳細については、“3.1.2 パス式”を参照してください。

  • 属性式の詳細については、“3.1.4 属性式”を参照してください。


asis_text関数

出力形式の自由化機能を利用する場合に、XML形式の入力データの表現をそのまま出力するときに指定します。
asis_text関数を指定すると、CDATAセクションをXMLテキスト表現形式に変換せずに、そのまま出力します。
本関数は、ListDefパラメタにだけ指定できます。

注意

  • asis_text関数には、パス式は指定できません。

  • asis_text関数を指定したK略称は、出力形式を指定しない場合のリターン式、および連結条件式に指定することはできません。

  • asis_text関数を指定したK略称は、単一行関数および集合関数に指定できません。

  • asis_text関数を指定したK略称は、仮想項目機能の論理式に指定できません。ただし、is_empty関数に指定した場合には、論理式に指定できます。

ポイント

出力形式の自由化機能を利用する場合に、入力データの内容をcsvテキスト表現形式またはxmlテキスト表現形式に変換して出力する場合は、連結条件式のOutputDefパラメタに以下の変換関数を指定します。

  • CSVテキスト表現形式に変換する場合:csv_convert関数

  • XMLテキスト表現形式に変換する場合:xml_convert関数

連結条件式のOutputDefパラメタの詳細については、“OutputDef”を参照してください。

関数の詳細については、“4.7 単一行関数(変換関数)”を参照してください。


レコードノード指定
  • レコードノード指定は、入力項目定義のdocumentで指定したXML文書の中でレコードとして扱う単位となるノードを指定するものです。

    図1.18 レコードノード指定の定義

  • レコードノード指定は、パス式を使用して要素ノードを指定します。このパス式が本定義におけるコンテキストノードとなります。K略称以降の式においての基点となるノードを定義します。

  • レコードノード指定のパス式のパス演算子に“//”は指定できません。

  • レコードノード指定のパス式のパス要素に“*”は指定できません。

  • レコードノード指定のパス式に、テキストノードまたは属性式は指定できません。


ポイント

コンテキストノードとは

コンテキストノードとは、その文脈において基点となるノードです。
連結機能におけるコンテキストノードは、ListDefパラメタのレコードノード指定によって指し示される要素ノードです。

コンテキストノードには、連結結果を出力する単位となるノードを設定すると便利です。

以下に「/Jnl/Body/Meisai」を起点とした場合の、ListDefパラメタのレコードノード指定例を示します。

参照

  • パス式の詳細については、“3.1.2 パス式”を参照してください。

  • 連結機能でのレコードノード指定を使った例については、“導入・運用ガイド”の“繰返し項目のあるXML文書を連結する場合”を参照してください。


K略称
  • 入力ジャーナルファイルまたは入力マスタファイルの各項目に対する新たな名前です。後続のOutputDefパラメタまたはJconditionパラメタで参照使用できます。

  • K略称は、全体で一意でなければなりません。

asis_text関数
  • 出力形式の自由化機能を利用する場合に、XML形式の入力データの表現をそのまま出力するときに指定します。
    asis_text関数を指定すると、CDATAセクションをXMLテキスト表現形式に変換せずに、そのまま出力します。
    本関数は、ListDefパラメタにだけ指定できます。

注意

  • asis_text関数には、相対パス式は指定できません。

  • asis_text関数を指定したK略称は、出力形式を指定しない場合のリターン式、および連結条件式に指定することはできません。

  • asis_text関数を指定したK略称は、単一行関数および集合関数に指定できません。

  • asis_text関数を指定したK略称は、仮想項目機能の論理式に指定できません。ただし、is_empty関数に指定した場合には、論理式に指定できます。

相対テキスト式
  • 相対テキスト式は、入力項目定義のdocumentで指定したXML文書中のテキストノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。

図1.19 相対テキスト式の定義

  • コンテキストノードを基点として、相対テキスト式で示されるテキストノードが複数ある場合、その中の文書順における先頭のテキストノードだけが選択されます。

  • コンテキストノードを基点として、相対テキスト式で指し示されるテキストノードが1つもない場合、相対テキスト式は空を返します。

  • コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対テキスト式は空を返します。


相対属性式
  • 相対属性式は、入力項目定義のdocumentで指定したXML文書中の属性ノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。

図1.20 相対属性式の定義

  • コンテキストノードを基点として、相対属性式で示される属性ノードが複数ある場合、その中の文書順における先頭の属性ノードだけが選択されます。

  • コンテキストノードを基点として、相対属性式で指し示される属性ノードが1つもない場合、相対属性式は空を返します。

  • コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対属性式は空を返します。


注意

相対属性式では、相対テキスト式の定義にある「位置指定」は、指定できません。


相対パス式
  • 相対パス式は、入力項目定義のdocumentで指定したXML文書中の要素ノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。

図1.21 相対パス式の定義

  • コンテキストノードを基点として、相対パス式で示される要素ノードが複数ある場合、その中の文書順における先頭の要素ノードだけが選択されます。

  • コンテキストノードを基点として、相対パス式で指し示される要素ノードが1つもない場合、相対パス式は空を返します。

  • コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対パス式は空を返します。

  • パス式を指定したK略称は、指定された要素ノードの開始タグから終了タグまでの文字列そのものを表します。

注意

  • パス式を指定したK略称は、出力形式を指定しない場合のリターン式、および連結条件式に指定することはできません。

  • パス式を指定したK略称は、単一行関数および集合関数に指定できません。

  • パス式を指定したK略称は、仮想項目機能の論理式に指定できません。ただし、is_empty関数に指定した場合には、論理式に指定できます。


相対要素式

要素式は、XMLデータ中の要素ノードを指し示すものです。相対要素式は、コンテキストノードを基点とした相対的な位置にある要素ノードを指し示します。

図1.22 相対要素式の定義

注意

  • 祖先ノード参照は、コンテキストノードの祖先の要素ノードを指し示します。

  • ‘..’はコンテキストノードの親である要素ノードを指し示します。

  • コンテキストノード参照は、コンテキストノードそのものを指します。

  • ‘/’を区切りとして 記号‘..’を続けて記述することで、コンテキストノードの親の親の要素ノード、とコンテキストノードの祖先である要素ノードを指し示すことができます。

  • ルート要素ノードの親、またはその祖先のノードを参照しようとする祖先ノード参照はエラーになります。

  • '/'を区切りとする要素名は、’/’の直前までの式によって指し示されるノードの子で、かつ名前が要素名である要素ノードを指し示します。


位置指定

位置指定は、要素式、またはテキスト式によって指し示される複数のノードの中の特定のノードを指し示す場合に利用します。

参照

数値リテラルについては、“3.1.6 リテラル”を参照してください。

注意

  • ノードの位置は、パスで示される複数のノードを文書順に先頭から数えたときの順番で指定します。(1が先頭)。

  • 位置指定の“last()”は、パスによって指し示されるノードの数を表します。位置指定として“last()”だけを指定した場合、位置指定を含むパスは、パスによって示されるノードを文書順に参照したときの最後のノードを指し示すことになります。

  • 位置指定の“last()’の後に続く“-”と数値リテラルは減算を表します。これにより、パスによって示されるノードを最後から数えた順序でノードを指し示すことができます。

  • 位置指定に指定した値が0以下、またはその値よりパスによって指し示されるノードの数より大きくなる場合、式は空を返します。

  • 位置指定の数値リテラルに、符号(+,-)および小数は指定できません。


OutputDef

ListDefパラメタで定義したK略称を使用して、出力ファイルへの項目の出力順番をリターン式に定義します。
XML形式または自由な形式で出力したい場合は、リターン式の中に出力形式を指定します。出力形式を省略した場合には、CSV形式で出力されます。


図1.23 出力項目定義

注意

リターン式の中に出力形式を指定した場合には、replace用動作環境ファイルのOutFileパラメタに指定したスキーマ情報ファイルは、作成されません。

参照

リターン式の詳細については、“3.7.2 連結機能のリターン式”を参照してください。


Jcondition

入力ジャーナルファイルと入力マスタファイルの連結条件を連結条件式に指定します。この連結条件によって参照特定された入力マスタファイルの項目を連結結果として出力します。
連結条件は、1つの入力マスタ(M略称)につき1つ指定します。

図1.24 連結条件

参照

連結にかかわる詳細については、“導入・運用ガイド”の“連結機能の注意事項”を参照してください。
連結条件式の詳細については“3.3 連結条件式”を参照してください。

ポイント

連結機能では、入力ジャーナルファイルと入力マスタファイルの連結機能だけではなく、入力ジャーナルファイルのデータ形式を変換する機能もあります。
たとえば、XML形式の入力ジャーナルファイルをCSV形式に変換するなど。
その場合は、入力マスタファイルは不要なので、Jconditionパラメタも不要です。

処理例については、“導入・運用ガイド”の“データ形式を変換する”を参照してください。


MemorySize

連結機能の一時ファイル処理を動作させる場合の、利用するメモリサイズをメガバイト(MB)で指定します。
本パラメタには、以下の見積り式で算出した値より大きい値を設定してください。
見積り式で算出した値より小さい値を設定した場合には、最低限必要な連結情報がメモリに展開されなくなり、処理が継続できないことがあります。
また、32ビット用Data Effectorの場合は、プロセス空間に対して使用可能なメモリサイズよりも小さい値を指定してください。プロセス空間に対して使用可能なメモリサイズよりも大きい値を指定すると、エラーになります。

  • 32ビット用Data Effectorの見積り式

     max ( N × ( 120 + A  × MK ) ÷ ( 1,024 × 1,024 ), 100 )
  • 64ビット用Data Effectorの見積り式

     max ( N × ( 216 + A  × MK ) ÷ ( 1,024 × 1,024 ), 100 )
    • 記号の説明

      変数

      意味

      単位

      N

      連結する全入力マスタファイルのレコード数を指定します。

      件数

      A

      連結条件に指定した入力マスタファイル側の項目の平均データサイズを指定します。

      • K略称、文字列型の仮想項目、substr関数、rtrim関数を指定した
        場合、および+演算子により左記を組み合わせた場合:
        +演算子によって結合された全体の文字列分のバイト長(平均)

      • val関数、数値関数、および数値型の仮想項目の場合: 16

      • date型指定、日付値関数、および日付型の仮想項目の場合: 6

      • time型指定、時刻関数、および時刻型の仮想項目の場合: 3

      • datetime型指定、日時値関数、および日時型の仮想項目の場合: 9

      バイト

      MK

      連結条件に指定した入力マスタファイル側のK略称数を指定します。

    • 32ビット用Data EffectorのMemorySizeパラメタに指定可能な最大値

      OS

      MemorySizeパラメタに指定可能な最大値

      Windows

      3072MB

      Linux

      3072MB


本パラメタは、連結条件式の結合関係式において、完全一致による連結の場合だけ指定できます。結合関係式において、部分一致による連結の場合は、指定できません。指定するとエラーになります。結合関係式については“3.3.3 結合関係式”を参照してください。

  • 連結処理実行時、指定サイズを超えるメモリが必要となる場合、replace用動作環境ファイルのWorkFolderパラメタで指定した作業ディレクトリに、一時ファイルが作成されます。

  • 本パラメタを省略した場合、メモリが不足したときは異常終了します。

  • 連結機能で利用するメモリサイズは、本パラメタで指定したサイズに加えデータ加工用にメモリを使用します。


注意

  • プロセス空間に対して使用可能なメモリサイズは実行環境にも依存するため、上記の値より小さい値でも、プロセス空間に対して使用可能なメモリサイズの制限でエラーになる場合があります。

  • 本パラメタに指定したサイズが、実行する環境の物理メモリサイズよりも大きい場合、実行する環境の物理メモリサイズが設定されます。このとき本コマンドは正常に終了し、以下の警告が出力されます。


    表1.4 出力例
    shnde: WARNING: 02007: 
    The memory size has exceeded the installing memory.
    Memory size = 2500[MB]; Installing memory size = 2007[MB]. (replace)

    表1.5 使用するメモリの最大サイズの設定例

      

      

      

      

      

    実行環境のメモリサイズ

    MemorySizeパラメタに指定したサイズより実行環境に搭載されたメモリサイズが小さい場合

    (例:物理メモリサイズ256MB)

    MemorySizeパラメタに指定したサイズより実行環境に搭載されたメモリサイズが大きい場合

    (例:物理メモリサイズ7GB)

    利用メモリサイズ

    MemorySizeパラメタに500を指定する

    物理メモリサイズで動作し、MemorySizeパラメタに指定したサイズが搭載メモリサイズを超えた旨のメッセージ(shnde: WARNING: 02007)が出力されます。

    (例:256MBで動作します)

    指定メモリサイズ(500MB)で動作します。

    MemorySizeパラメタに5000を指定する
    (32ビット用
    Data Effectorの場合)

    プロセス空間のメモリサイズ制限でエラーになります。

    プロセス空間のメモリサイズ制限でエラーになります。

    MemorySizeパラメタに5000を指定する
    (64ビット用
    Data Effectorの場合)

    物理メモリサイズで動作し、MemorySizeパラメタに指定したサイズが搭載メモリサイズを超えた旨のメッセージ(shnde: WARNING: 02007)が出力されます。

    (例:256MBで動作します)

    指定メモリサイズ(5000MB)で動作します。


SubstituteZeroForEmpty

OutputDefパラメタに指定する数値演算式における空の扱いを指定します。

指定できる値は以下のいずれかです。

設定

意味

YES

数値演算式における算術演算において、空を0とみなして演算します。
また、数値演算式の結果が空となった場合、0を出力します。

NO

数値演算式における算術演算において、演算対象に空が含まれる場合、演算結果はすべて空を返します。
また、数値演算式の結果が空となった場合、何も出力しません。

参照

数値演算式における空の扱いについては、“3.5.2 数値演算式における空の扱い”を参照してください。