機能
連結処理を行うための各種条件を設定します。
記述形式
#include "libAsis.h" /* 公開ヘッダ */ int AsisInitReplace( ASISHANDLE RHandle, /* ハンドル */ char *CharacterCode, /* 文字コード */ char *InFileType, /* 入力ファイルタイプ */ char *JnlFile, /* 入力ジャーナルファイル */ char *MstFile, /* 入力マスタファイル */ char *ListDef, /* 入力項目定義 */ char *OutFileType, /* 出力ファイルタイプ */ char *OutputDef, /* リターン式 */ char *Jnode, /* 出力単位ノード */ char *Jcondition, /* 連結条件式 */ char *OutFile, /* 出力ファイル */ char *LCondition, /* 仮想項目定義 */ char *Reserve1, /* リザーブ(NULL) */ char *Reserve2); /* リザーブ(NULL) */ |
パラメタ
データ型 | パラメタ | 用途 | 説明 |
---|---|---|---|
ASISHANDLE | RHandle | 入力 | ハンドルを指定します。 |
char* | 入力 | 検索対象となる文字列の文字コードを指定します。 | |
char* | 入力 | 入力ファイルタイプを指定します。 | |
char* | 入力 | 入力ジャーナルファイル、または入力ジャーナルファイルが配置されたディレクトリを指定します。(注) | |
char* | 入力 | 入力マスタファイル、または入力マスタファイルが配置されたディレクトリを指定します。(注) | |
char* | 入力 | 入力項目を定義します。 | |
char* | OutFileType | 入力 | 本パラメタはNULLを指定してください。 |
char* | 入力 | リターン式を指定します。 | |
char* | Jnode | 入力 | 本パラメタはNULLを指定してください。 |
char* | 入力 | 連結条件式を指定します。 連結にかかわる詳細については、“導入・運用ガイド”の“繰返し項目のあるXML文書を連結する場合”を参照してください。 | |
char* | 入力 | 出力ファイルおよび出力方法を指定します。(注) | |
char* | LCondition | 入力 | 仮想項目機能を使う場合に、仮想項目定義を指定します。本パラメタを省略した場合(NULL指定時)、仮想項目機能は使用できません。 |
注) ファイル名に特殊な文字を指定した場合の扱いについては、 “パス名に指定する特殊な文字の扱い”を参照してください。
図2.1 入力ファイルタイプがCSVの場合
図2.2 入力ファイルタイプがXMLの場合
入力ファイルタイプがCSVの場合に、入力ジャーナルの項目名を記述したスキーマ情報ファイルを指定します。
スキーマ情報を指定した場合、入力ジャーナルファイルは先頭行からデータとして扱います。
スキーマ情報ファイルに標準入力は指定できません。
入力ジャーナルファイルを指定します。物理ファイル名を指定しない場合(""を記述)、標準入力より入力します。
入力ジャーナルファイルが配置されたディレクトリを指定します。ディレクトリ名または物理ファイル名を指定しない場合(""を記述)、標準入力より入力します。
物理ファイル名とディレクトリ名の混在も指定可能です。
JnlFileパラメタの規約を以下に説明します。
スキーマ情報ファイルを指定した場合、物理ファイル名に指定した各ファイル、またはディレクトリ直下のファイルの先頭行には項目名が記述されていないものとみなし、データとして処理対象になります。
スキーマ情報を指定しない場合、物理ファイル名またはディレクトリ名に指定した各ファイルの先頭行には項目名が記述されているものとみなし、先頭行のデータを処理対象にしません。
複数のファイルまたはディレクトリを指定する場合、セミコロン(;)の前後に改行を記述できます。
注意
ディレクトリ配下のファイルは、ファイル名でソートされた順番に処理されます。
連結処理実行中に、指定されたディレクトリに対してファイルの追加、削除を実施した場合は、そのファイルが本機能に反映されない場合があります。
指定されたディレクトリが存在しない場合には、異常終了します。
指定されたディレクトリ配下にファイルが存在しない場合、または、処理するべきファイルが存在しない場合には、異常終了します。(ディレクトリが複数指定されていて、1つのディレクトリ配下にファイルが存在しなくても、他のディレクトリ配下にファイルが存在すれば、異常終了しません。)
指定されたディレクトリ直下のファイルだけが処理対象となります。サブディレクトリ配下のファイルは対象としません。
ディレクトリ配下の内容が以下の場合は、異常終了します。
Data Effectorとして処理対象外のファイルが存在する
参照
処理対象のファイルの種類については、“導入・運用ガイド”の“処理対象ファイルの種類”を参照してください。
ポイント
入力ファイルのエラー処理
入力ファイルタイプがCSVの場合、入力ファイルのエラー処理機能が利用できます。入力ファイルのエラー処理機能は、AsisSetErrFile関数で指定します。
その場合、入力ファイル名に半角英数字を入れるなど工夫すると便利です。
詳細については、“2.5.2 AsisSetErrFile”を参照してください。
図2.3 入力ファイルタイプがCSVの場合
図2.4 入力ファイルタイプがXMLの場合
入力ファイルタイプがCSVの場合に、入力マスタファイルの項目名を記述したスキーマ情報ファイルを指定します。
スキーマ情報を指定した場合、入力マスタファイルは先頭行からデータとして扱います。
スキーマ情報ファイルに標準入力は指定できません。
入力マスタファイルを指定します。
入力マスタファイルに標準入力は指定できません。
入力マスタファイルが配置されたディレクトリを指定します。
物理ファイル名とディレクトリ名の混在も指定可能です。
MstFileパラメタの規約を以下に説明します。
スキーマ情報ファイルを指定した場合、物理ファイル名に指定した各ファイル、またはディレクトリ直下のファイルの先頭行には項目名が記述されていないものとみなし、データとして処理対象になります。
スキーマ情報を指定しない場合、物理ファイル名またはディレクトリ名に指定した各ファイルの先頭行には項目名が記述されているものとみなし、先頭行のデータを処理対象にしません。
複数のファイルまたはディレクトリを指定する場合、セミコロン(;)の前後に改行を記述できます。
注意
ディレクトリ配下のファイルは、ファイル名でソートされた順番に処理されます。
連結処理実行中に、指定されたディレクトリに対してファイルの追加、削除を実施した場合は、そのファイルが本機能に反映されない場合があります。
指定されたディレクトリが存在しない場合には、異常終了します。
各々のM略称の定義において、指定されたディレクトリ配下にファイルが存在しない場合、または、処理すべきファイルが存在しない場合には、異常終了します。(ディレクトリが複数指定されていて、1つのディレクトリ配下にファイルが存在しなくても、他のディレクトリ配下にファイルが存在すれば、異常終了しません。)
指定されたディレクトリ直下のファイルだけが処理対象となります。サブディレクトリ配下のファイルは対象としません。
ディレクトリ配下の内容が以下の場合は、異常終了します。
Data Effectorとして処理対象外のファイルが存在する
参照
処理対象のファイルの種類については、“導入・運用ガイド”の“処理対象ファイルの種類”を参照してください。
ポイント
入力ファイルのエラー処理
入力ファイルタイプがCSVの場合、入力ファイルのエラー処理機能が利用できます。入力ファイルのエラー処理機能は、AsisSetErrFile関数で指定します。
その場合、入力ファイル名に半角英数字を入れるなど工夫すると便利です。
詳細については、“2.5.2 AsisSetErrFile”を参照してください。
図2.5 ListDefの定義 (入力ファイルタイプがCSVの場合)
図2.6 ListDefの定義(入力ファイルタイプがXMLの場合)
入力ジャーナルファイルまたは入力マスタファイルの各項目に対する新たな名前です。後続のOutputDefパラメタまたはJconditionパラメタで参照使用できます。
K略称は、全体で一意でなければなりません。
図2.7 K略称の定義(入力ファイルタイプがCSVの場合)
図2.8 K略称の定義(入力ファイルタイプがXMLの場合)
注意
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 属性式”を参照してください。
出力形式の自由化機能を利用する場合に、XML形式の入力データの表現をそのまま出力するときに指定します。asis_text関数を指定すると、CDATAセクションをXMLテキスト表現形式に変換せずに、そのまま出力します。
本関数は、ListDefパラメタにだけ指定できます。
参照
asis_text関数の詳細については、“1.3.2 連結条件ファイル”の“asis_text関数”を参照してください。
レコードノード指定は、入力項目定義のdocumentで指定したXML文書の中でレコードとして扱う単位となるノードを指定するものです。
図2.9 レコードノード指定の定義
レコードノード指定は、パス式を使用して要素ノードを指定します。このパス式が本定義におけるコンテキストノードとなります。K略称以降の式においての基点となるノードを定義します。
レコードノード指定のパス式のパス演算子に“//”は指定できません。
レコードノード指定のパス式のパス要素に“*”は指定できません。
レコードノード指定のパス式に、テキストノードまたは属性式は指定できません。
ポイント
参照
レコードノード指定の詳細については、“1.3.2 連結条件ファイル”の“レコードノード指定”を参照してください。
入力ジャーナルファイルまたは入力マスタファイルの各項目に対する新たな名前です。後続のOutputDefパラメタまたはJconditionパラメタで参照使用できます。
K略称は、全体で一意でなければなりません。
出力形式の自由化機能を利用する場合に、XML形式の入力データの表現をそのまま出力するときに指定します。asis_text関数を指定すると、CDATAセクションをXMLテキスト表現形式に変換せずに、そのまま出力します。
本関数は、ListDefパラメタにだけ指定できます。
参照
asis_text関数の詳細については、“1.3.2 連結条件ファイル”の“asis_text関数”を参照してください。
相対テキスト式は、入力項目定義のdocumentで指定したXML文書中のテキストノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。
図2.10 相対テキスト式の定義
コンテキストノードを基点として、相対テキスト式で示されるテキストノードが複数ある場合、その中の文書順における先頭のテキストノードだけが選択されます。
コンテキストノードを基点として、相対テキスト式で指し示されるテキストノードが1つもない場合、相対テキスト式は空を返します。
コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対テキスト式は空を返します。
相対属性式は、入力項目定義のdocumentで指定したXML文書中の属性ノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。
図2.11 相対属性式の定義
コンテキストノードを基点として、相対属性式で示される属性ノードが複数ある場合、その中の文書順における先頭の属性ノードだけが選択されます。
コンテキストノードを基点として、相対属性式で指し示される属性ノードが1つもない場合、相対属性式は空を返します。
コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対属性式は空を返します。
注意
相対属性式では、相対テキスト式の定義にある「位置指定」は、指定できません。
相対パス式は、入力項目定義のdocumentで指定したXML文書中の要素ノードを、レコードノード指定によって指し示される要素ノードからの相対的なパスで指定するものです。
図2.12 相対パス式の定義
コンテキストノードを基点として、相対パス式で示される要素ノードが複数ある場合、その中の文書順における先頭の要素ノードだけが選択されます。
コンテキストノードを基点として、相対パス式で指し示される要素ノードが1つもない場合、相対パス式は空を返します。
コンテキストノードを基点として、相対要素式で指し示される要素ノードが1つもない場合、相対パス式は空を返します。
パス式を指定したK略称は、指定された要素ノードの開始タグから終了タグまでの文字列そのものを表します。
注意
パス式を指定したK略称は、出力形式を指定しない場合のリターン式、および連結条件式に指定することはできません。
パス式を指定したK略称は、単一行関数および集合関数に指定できません。
パス式を指定したK略称は、仮想項目機能の論理式に指定できません。ただし、is_empty関数に指定した場合には、論理式に指定できます。
要素式は、XMLデータ中の要素ノードを指し示すものです。相対要素式は、コンテキストノードを基点とした相対的な位置にある要素ノードを指し示します。
図2.13 相対要素式の定義
注意
祖先ノード参照は、コンテキストノードの祖先の要素ノードを指し示します。
‘..’はコンテキストノードの親である要素ノードを指し示します。
コンテキストノード参照は、コンテキストノードそのものを指します。
‘/’を区切りとして 記号‘..’を続けて記述することで、コンテキストノードの親の親の要素ノード、とコンテキストノードの祖先である要素ノードを指し示すことができます。
ルート要素ノードの親、またはその祖先のノードを参照しようとする祖先ノード参照はエラーになります。
'/'を区切りとする要素名は、’/’の直前までの式によって指し示されるノードの子で、かつ名前が要素名である要素ノードを指し示します。
位置指定は、要素式、またはテキスト式によって指し示される複数のノードの中の特定のノードを指し示す場合に利用します。
参照
数値リテラルについては、“3.1.6 リテラル”を参照してください。
注意
ノードの位置は、パスで示される複数のノードを文書順に先頭から数えたときの順番で指定します。(1が先頭)。
位置指定の“last()”は、パスによって指し示されるノードの数を表します。位置指定として“last()”だけを指定した場合、位置指定を含むパスは、パスによって示されるノードを文書順に参照したときの最後のノードを指し示すことになります。
位置指定の“last()’の後に続く“-”と数値リテラルは減算を表します。これにより、パスによって示されるノードを最後から数えた順序でノードを指し示すことができます。
位置指定に指定した値が0以下、またはその値よりパスによって指し示されるノードの数より大きくなる場合、式は空を返します。
位置指定の数値リテラルに、符号(+,-)および小数は指定できません。
ListDefパラメタで定義したK略称を使用して、出力ファイルへの項目の出力順番をリターン式に定義します。
XML形式または自由な形式で出力したい場合は、リターン式の中に出力形式を指定します。出力形式を省略した場合には、CSV形式で出力されます。
図2.14 出力項目定義
注意
リターン式の中に出力形式を指定した場合には、OutFileパラメタに指定したスキーマ情報ファイルは、作成されません。
参照
リターン式の詳細については、“3.7.2 連結機能のリターン式”を参照してください。
入力ジャーナルファイルと入力マスタファイルの連結条件式を指定します。この連結条件式によって参照特定された入力マスタファイルの項目を連結結果として出力します。
連結条件式は、1つの入力マスタ(M略称)につき1つ指定します。
参照
連結にかかわる詳細については、“導入・運用ガイド”の“連結機能の注意事項”を参照してください。
連結条件式の詳細は、“3.3 連結条件式”を参照してください。
ポイント
連結機能では、入力ジャーナルファイルと入力マスタファイルの連結機能だけではなく、入力ジャーナルファイルのデータ形式を変換する機能もあります。
たとえば、XML形式の入力ジャーナルファイルをCSV形式に変換するなど。
その場合は、入力マスタファイルは不要なので、Jconditionパラメタも不要です。
処理例については、“導入・運用ガイド”の“データ形式を変換する”を参照してください。
出力先および出力方法を指定します。
出力ファイルタイプがCSVの場合で、見出し行とデータ行を別ファイルに分けて出力したいときは、以下のように指定します。
指定されたスキーマ情報ファイルには、見出し行だけを出力し、物理ファイルにはデータを出力します。
注意
スキーマ情報ファイルと物理ファイルの扱い
指定の組合せと出力先を以下に示します。
指定例 | 出力先 | |
---|---|---|
スキーマ情報ファイル | 物理ファイル | |
スキーマ情報ファイル名;物理ファイル名 | 指定したファイル | 指定したファイル |
;物理ファイル名 | 作成されない | 指定したファイル |
スキーマ情報ファイル名; | 指定したファイル | 標準出力 |
; | 作成されない | 標準出力 |
見出し行とデータ行に分けて標準出力へ出力することはできません。
スキーマ情報ファイル名と物理ファイル名には、セミコロン(;)を含むことはできません。
復帰値
復帰値 | 説明 |
---|---|
ASIS_SUCCESS | 関数が正常に終了したことを示します。 |
ASIS_ERROR | 関数の実行時に問題が検出されたことを示します。 |
関数の利用規則
OutFileパラメタで指定したファイルが存在する場合は上書きします。