65000 は
ゾーン 10 進数 : Trailing separate sign
符号 イ ン ジ ケータ が最終バ イ ト に 含まれ る 符号付き の
IBM
ゾーン10
進数形式。 最終バ イ ト には符号 イ ン ジ ケー タ のみが含まれ、 数値 と 分離 さ れ る。 長 さ 、 長 さ フ ィ ール ド、 区切 り 記号、 ま たは区切 り 記 号フ ィ ール ドを指定す る必要があ る。 長 さ ま たは長 さ フ ィ ール ドに は、 こ の フ ィ ール ドのサ イ ズ をバイ ト 数で指定する 。
ゾーン
10
進数:
符号な し 符号な し のIBM
ゾーン10
進数形 式。 長 さ 、 長 さ フ ィ ール ド 、 区切 り 記号、 ま たは区切 り 記号フ ィ ー ル ドを指定す る必要があ る 。 長 さ ま たは長 さ フ ィ ール ド には、 こ の フ ィ ール ドのサ イ ズ をバ イ ト 数で 指定する 。表 A-1 サポー ト される MFL データ型 (続き)
デー タ型 説明 例
表
A-2 COBOL
のデー タ型COBOL の型
サポー ト の有無BLANK WHEN ZERO (
ゾーン10
進数)
サポー ト するCOMP-1
、COMP-2 (
浮動小数点)
サポー ト するCOMP-3
、 パ ッ ク10
進数 サポー ト するCOBOL Copybook Importer
デー タ 型COMP
、COMP-4
、 バ イ ナ リ (整数) サポー ト するCOMP
、COMP-4
、 バ イ ナ リ (固定長) サポー ト するCOMP-5
、COMP-X
サポー ト するDISPLAY (
英数字)
サポー ト するDISPLAY
数値 (ゾーン10
進数) サポー ト する編集済み英数字 サポー ト する
編集済み浮動小数点数値 サポー ト する
編集済み数値 サポー ト する
グループレ コー ドサポー ト する
INDEX
サポー ト するJUSTIFIED RIGHT
無視 さ れ るOCCURS (
固定配列)
サポー ト するOCCURS DEPENDING (
可変長)
サポー ト するOCCURS INDEXED BY
無視 さ れ るOCCURS KEY IS
無視 さ れ るPOINTER
サポー ト するPROCEDURE-POINTER
サポー ト するREDEFINES
サポー ト するSIGN IS LEADING SEPARATE (
ゾーン10
進数)
サポー ト するSIGN IS TRAILING (
ゾーン10
進数)
サポー ト するSIGN IS TRAILING SEPARATE (
ゾーン10
進数)
サポー ト するSIGN IS LEADING (
ゾーン10
進数)
サポー ト する表 A-2 COBOL のデー タ型 (続き)
COBOL
の型 サポー ト の有無こ れ ら のデータ型のサポー ト は、 限定さ れています。 次のいずれかのフ ォーマ ッ ト で提供さ れたデータは、 符号な し 4 バイ ト 整数型にコ ンバー ト さ れます。
05 pic 9(5) comp-5 05 pic 9(5) comp-x
次のフ ォーマ ッ ト で提供 さ れるデータはエ ラーを発生さ せます。
05 pic X(5) comp-5 05 pic X(5) comp-x
上記のサンプルでは、pic9(5)を pic x(5)の代わ り に使用で き ます。
次の表に、 こ れ ら のデータ型サポー ト についての 3 つのレベルを定義し ます。
SYNCHRONIZED
無視 さ れ る66 RENAMES
無視 さ れ る66 RENAMES THRU
無視 さ れ る77
レベル サポー ト する88
レベル(
条件付き)
無視 さ れ る表
A-3
デー タ型サポー ト のレベル サポー ト のレベル 定義
サポー ト する こ のデータ 型は
Importer
に よ っ て正 し く 解析 さ れ、 メ ッ セージ フ ォーマ ッ ト フ ィ ール ドま たはグループに コ ンバー ト さ れ る 。 サポー ト し ない こ のデータ 型はサポー ト さ れず、Importer
に よ っ て コ ピーブ ック の イ ン ポー ト 時にエ ラ ーが報告 さ れ る。
無視 さ れ る こ のデータ 型は解析 さ れ、 メ ッ セージフ ォーマ ッ ト に コ メ ン ト が追加 さ れ る。 対応する フ ィ ール ド やグループは作成 さ れない。
表 A-2 COBOL のデー タ型 (続き)
COBOL
の型 サポー ト の有無メ タ デー タ の イ ン ポー ト か らの
C Structure Importer
ベンダ固有の一部の拡張子は、 Importer で認識さ れません。 ただ し 、 ANSI 標準
COBOL
に準拠する コ ピーブ ッ ク ス テー ト メ ン ト は正し く 解析さ れます。 IBM の メ イ ン フ レーム モデルを基に し た Importer のデフ ォル ト データ モデルをFormat Builder
で変更する こ と で、 文字セ ッ ト やデータ のエンデ ィ アン特性を補 正でき ます。こ れ ら のフ ィ ール ド は特定のデータ型 と し て 容易に識別でき ますが、 コ ピーブ ッ ク を イ ンポー ト する際、 Importer が こ れ ら のフ ィ ール ド を一般的に識別する こ と があ り ます。 こ のためにコ ピーブ ッ ク の Importer は、 コ ピーブ ッ ク 内の各 フ ィ ール ド に対し てコ メ ン ト を作成し ます。 MFL データ を編集する際、 こ の情 報は有用で、 元の コ ピーブ ッ ク のフ ォーマ ッ ト の改善に役立ち ます。 た と えば、
元の コ ピーブ ッ ク に次のエン ト リ があ る と し ます。
05 birth-date picxx/xx/xx
コ ピーブ ッ ク が イ ンポー ト さ れた後、 こ のエン ト リ は、 8 バ イ ト 長の EBCDIC型 のフ ィ ール ド に表示 さ れます。 よ く 調べる と 、 こ のエン ト リ が、 次のいずれかの 方法でフ ォーマ ッ ト で き る日付であ る こ と がわか り ます。
MM/DD/YY DD/MM/YY
メ タデータのイ ンポー ト からの C Structure Importer
C Structure Importer
では、 匿名ユニオン、 ビ ッ ト フ ィ ール ド 、 ま たはイ ン ラ イ ン アセンブ ラ コー ド を含むフ ァ イ ルは解析 さ れません。 以下のサポー ト さ れない 構造体のサンプルは #include <windows.h>ス テー ト メ ン ト を含む hello.c フ ァ イ ルのプ リ プ ロセ ッ サ出力か ら の ものです。匿名ユニオン
#line 353 “e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h”
typedef union_LARGE_INTEGER{
struct {
DWORD LowPart;
LONG HighPart;
};
struct {
DWORD LowPart;
LONG HighPart;
} u;
#line 363 “e:\\program files\\microsoft visual studio\\vc98\\include\\winnt.h”
LONGLONG QuadPart;
} LARGE_INTEGER ビ ッ ト フ ィ ール ド
typedef struct_LDT_ENTRY { WORD LimitLow;
WORD BaseLow;
union { struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
} Bytes;
struct
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
} Bits;
} HighWord;
} LDT_ENTRY, *PLDT_ENTRY;
イ ン ラ イ ン アセンブ ラ コー ド _inline ULONGLONG
_stdcall
Int64ShrlMod32(
ULONGLONG Value, DWORD ShiftCount )
{
_asm {
mov ecx, ShiftCount
mov eax, dword ptr [Value]
mov edx, dword ptr [Value+4]
shrd eax, edx, cl shr edx, cl
メ タ デー タ の イ ン ポー ト か らの
C Structure Importer
} }
B カス タム デー タ型の作成
WebLogic Integration
は、 データ統合を行 う 際、 XML に基づ く MFL (MessageFormat Language :
メ ッ セージ フ ォーマ ッ ト 言語 ) と 呼ばれ る メ タデータ言語を 使用し て、 バ イナ リ データの構造について記述し ます。 Format Builder は メ タ データ をデータ フ ァ イル と し て 、 すなわち MFL ド キ ュ メ ン ト と し て 作成し、 リ ポジ ト リ 内に維持し ます。MFL
では、 以下の メ タデータに よ り バ イナ リ フ ィ ール ド が記述さ れます。データ型
長さ / 区切 り 記号
省略可能 / 必須
デフ ォル ト 値
コー ド ページ エン コーデ ィ ング
こ の情報の う ち、 データ型が最 も重要です。 選択 さ れたデータ型に よ り 、 有効な メ タデータ属性 と その解釈方法が決ま り ます。
WebLogic Integration
の Data Integration コ ンポーネン ト には、 自分だけに必要な カ ス タ ム データ型を作成でき る ユーザ定義型機能が含まれます。 ユーザ定義型 機能に よ り 、 こ れ ら のカ ス タ ム データ型をデータ変換実行時エンジンにプ ラ グ イ ンで き ます。 いっ たんプ ラ グ イ ン さ れたユーザ定義のデータ型は、 特徴や機能 の面で組み込みデータ型 と 区別で き ません。以下の各節では、 ユーザ定義型の使用法について説明し ます。
ユーザ定義型のサンプル
ユーザ定義型の登録
ユーザ定義型の作成
Data Integration
プ ラ グ イ ン用ユーザ定義型の コ ン フ ィ グ レーシ ョ ンユーザ定義型コーデ ィ ン グ要件
com.bea.wlxt.mfl.MFLField
ク ラ スユーザ定義型のサンプル
次の表では、 ユーザ定義型を使用し てイ ン ス ト ール さ れたサンプル フ ァ イルに ついて説明し ます。 すべてのデ ィ レ ク ト リ 名は、 WebLogic Integration サンプル デ ィ レ ク ト リ (SAMPLES_HOME\integration) か ら の相対パスで示し ます。 こ
こ で、SAMPLES_HOME
は、 WebLogic Platform を イ ン ス ト ール し た位置にあ るサ
ンプル デ ィ レ ク ト リ を示し ます。表
B-1
ユーザ定義型のサンプルデ ィ レ ク ト リ フ ァ イル 説明
samples\di\userdef CapString.java 文字列を大文字に変換する ユーザデータ 型の ソ ース samples\di\userdef Dddmmyy.java 欧州の日付書式をサポー ト す
る ユーザ定義型の ソース samples\di\userdef Makefile サンプルソ ース を ビル ド す る
ための メ イ ク フ ァ イ ル samples\di\userdef ParseUserDef.java サンプルユーザ定義型の イ ン
ス ト ール と 実行時エン ジ ンで の使用を示す ソース
samples\di\userdef readme.txt サンプルを コ ンパ イ ル し て実 行す る方法に関す る説明 samples\di\userdef sample.data ParseUserDataサ ンプ ルの
デー タ
samples\di\userdef sample.mfl ParseUserDataサ ンプ ルに 関す る メ ッ セージフ ォーマ ッ
ト 言語 (
MFL
) フ ァ イルユーザ定義型の登録
ユーザ定義型の登録
新し いユーザ定義型を登録する手順は次の と お り です。
1. [
ス ター ト |プロ グ ラ ム| BEA WebLogic Platform 7.0 | WebLogicIntegration 7.0
| Format Builder] を選択し て Format Builder を呼び出し ます。Format Builder の メ イ ン ウ ィ ン ド ウ が表示さ れます。
2. [Tools
| User Defined Types] を選択し ます。 [Add/Remove User DefinedTypes]
ダ イ ア ロ グ ボ ッ ク スが表示 さ れます。図
B-1 [Add/Remove User Defined Types]
ダイ アログ ボ ッ ク ス3. [Class Name] フ ィ ール ド に、 指定し た型を実装する ク ラ スの ク ラ ス名を入力
し ます。注意
:
入力する ク ラ ス名には、 必ずモジ ュールの定義にあ るパ ッ ケージ名が 含まれます。 ま た、 命名さ れた ク ラ スは、 Format Builder のCLASSPATHに存在する必要があ り ます。 WebLogic Integration に よ り
Format Builder
が イ ン ス ト ール さ れる と 、 特にユーザ定義型を格納す る ための WLI_HOME/extデ ィ レ ク ト リ が作成 さ れます。 こ こ で、WLI_HOMEデ ィ レ ク ト リ は、 WebLogic Integration が イ ン ス ト ール さ れ て い るデ ィ レ ク ト リ です。
4. [View]
を ク リ ッ ク し ます。 指定 さ れた ク ラ スに関する情報が、 次の よ う に複 数の表示専用フ ィ ール ド に取 り 込まれます。図
B-2 [Add/Remove User Defined Types]
ダイアログボ ッ ク ス
[Type Name ] -
getTypeName()への呼び出し に よ っ て返 さ れる。
[Display Name] - リ テ ラ ル
User Defined:でプレ フ ィ ッ ク ス さ れた
getDisplayName()の戻 り 値。
[Description] -
getDescriptionText()に よ っ て戻さ れる。
指定さ れた ク ラ スが ロー ド で き ない場合、 あ る いはユーザ定義型の要件に準 拠し ない場合には、 エ ラー メ ッ セージが表示さ れます。 [OK] を ク リ ッ ク し
[Add/Remove User Defined Types]
ダ イ ア ロ グ ボ ッ ク スに戻 り ます。ユーザ定義型の作成 ユーザ定義型で使用で き る必須の イ ン タ フ ェース メ ソ ッ ド と 省略可能な イ ン タ フ ェース メ ソ ッ ド、 およびユーテ ィ リ テ ィ メ ソ ッ ド の一覧については、
「ユーザ定義型コーデ ィ ング要件」 を参照し て く だ さ い。
5.
有効なユーザ定義型が表示 さ れた ら、 [Add] を ク リ ッ ク し て Format Builder 内で使用で き る よ う に し ます。新し いデータ型を定義する と 、 フ ィ ール ド の詳細ウ ィ ン ド ウ の [Type] ド ロ ッ プ ダウ ン リ ス ト に新し い表示名が表れます。 [Type] ド ロ ッ プダウ ン リ ス ト ボ ッ ク スに表示さ れる ユーザ定義型にはすべて、 [DisplayName] テキ ス ト フ ィ ール ド と 同じ よ う に [User Defined] のプレ フ ィ ッ ク スが付き ます。
Format Builder
は、 ユーザ定義型で示 さ れる正確な型を認識で き ないので、 XML 出力の コ ンテン ツ モデルの記述のために生成 さ れる XML ス キーマでは、xsd::string型を使用し てユーザ定義型を表し ます。
こ のデータ型を使用する こ と は、 Format Tester に も影響を及ぼ し ます。 ユーザ 定義型を含む MFL ド キ ュ メ ン ト に対するデータ を生成する場合、 文字列データ が対応する フ ィ ール ド に対し て生成さ れます。 生成さ れたデータは、 ユーザ定義 型に応じ て解析で き る よ う に調整する必要があ り ます。
ユーザ定義型の作成
データ変換エンジンへの イ ン タ フ ェースは Java プロ グ ラ ムに よ っ て呼び出さ れ る API です。 プ ロセ ス エンジンの新し いユーザ定義型の作成は、
com.bea.wlxt.WLXT ク ラ スの静的 メ ソ ッ ド に よ っ て 実行さ れます。
データ変換エンジンでのユーザ定義型の イ ン ス ト ールは永続的ではあ り ません。
現在の JVM プ ロ セ スが終了する と 、 ユーザ定義型の コ ン フ ィ グ レーシ ョ ン情報 は破棄さ れます。 そのため、 ス タ ン ド ア ロ ン エンジン を使用する ク ラ イ アン ト では、 各プ ロ グ ラ ムの開始時にユーザ定義型をすべてイ ン ス ト ールする必要があ
り ます。
ユーザ定義型には、 以下のパブ リ ッ ク 機能が定義 さ れています。
public static void addNewDataType(String name, Bintype binType)
name
は、 MFL におけ る新し いデータ型の名前を指定する。
binTypeは、 新し いユーザ定義型オブジ ェ ク ト を参照する。