ページの先頭行へ戻る
Interstage Business Application Server アプリケーション開発ガイド
FUJITSU Software

13.4.1 IDLファイルの作成・修正

サーバアプリケーションのインタフェースをIDLファイルに記述します。なお、IDLファイルは任意のフォルダに作成または修正してください。また、C言語業務ロジック1関数あたりに1ファイル作成してください。

IDLファイルの記述形式を以下に示します。

注意

  • IDLファイル名に使用できる文字種を、以下に示します。

    • 半角英文字(大文字および小文字)

    • 半角数字

    • アンダースコア(_)

  • IDLファイル名に指定できる拡張子は“.idl”だけです。

  • IDLファイルの書式については、“Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)”を参照してください。

  • IDLファイルは、C言語業務ロジック1関数あたりに1ファイル作成してください。

  • オペレーション宣言で指定するメソッド名(オペレーション名)には、サーバアプリケーションの業務処理名を記述してください。

  • C言語実行基盤インタフェース生成ツールおよびbean生成ツールで使用するIDLファイルは、IDLの文法に準拠していますが、以下の制限があります。

    • モジュール宣言を入れ子にすることはできません。したがって、1つのIDLファイル内に、複数のモジュール宣言を定義することはできません。

    • 1つのIDLファイルに、複数のインタフェース宣言、およびオペレーション宣言は定義できません。

    • インタフェース宣言、およびオペレーション宣言は省略することはできません。

    • モジュール宣言は省略可能です。

    • 例外宣言、定数宣言、属性宣言は使用できません。

    • オペレーション宣言に指定するパラメタの方向はIN、INOUT、OUTが使用できます。ただし、oneway定義、およびraises定義は使用できません。

    • 使用できる型宣言については、“■データ型”を参照してください。また、非同期アプリケーション連携実行基盤では、構造体、および多次元配列は使用できません。

    • 型宣言は、すべてモジュール宣言の外側に定義してください。

    • COBOLで作成されたサーバアプリケーションと連携する際、COBOLでstringおよびwstringを使用する場合は、長さ指定を定義して使用してください。

    • プリプロセス機能は使用できません。

  • IDLファイルに記述する型名などの値には、以下の予約語は使用できません。なお、大文字と小文字は区別されません。

    any、apfw_result、apfwExcept、apfwSequenceOctet、attribute、boolean、case、char、const、context、default、double、enum、exception、fixed、float、in、inout、interface、long、longdouble、longlong、module、Object、octet、oneway、out、raises、readonly、sequence、short、string、struct、switch、TD_RTNVAL、typedef、union、unsigned、void、wchar、wstring、FALSE、TRUE

型宣言

オペレーション宣言の復帰値、およびパラメタで使用する型宣言について、書式と記述例を以下に示します。

基本データ型

[書式]

typedef  データ型  データ型名;

[記述例]

typedef  long  longdata;
typedef  string  stringdata;
シーケンス型

[書式]

typedef  sequence<octet>  データ型名;

[記述例]

typedef  sequence<octet>  seqdata;
配列

[書式]

typedef  データ型  データ型名[配列サイズ];

[記述例]

typedef  long  longarraydata[5];
typedef  string  stringarraydata[2][3];

注意

データ型に配列のデータ型名を定義しないでください。多次元配列を定義する場合は、記述例を参考にして定義してください。

構造体

[構造体宣言の書式]

struct  データ型名{
    構造体メンバ宣言
};

[構造体メンバ宣言の書式]

データ型  データ型名;

[記述例]

struct  str{
    string    mem1;
    long      mem2;
};

■データ型

IDLファイルで使用できるデータ型、および言語の違いによるIDLファイルのデータ型の対応について説明します。

サポートするデータ型

IDLファイルで使用できるデータ型を、以下に示します。

データ型

備考

基本データ型

整数型

short

  

long

  

long long

  

浮動小数点型

float

  

double

  

オクテット型

octet

  

ブーリアン型

boolean

  

文字列型

string

  

wstring

  

バイナリ

sequence

要素のデータ型に使用できるのはoctetだけです。

配列

array

sequence<octet>の配列は記述できません。

構造体

struct

  

言語の違いによるデータ型の対応

異なる言語で作成されたサーバアプリケーション、またはクライアントアプリケーションと連携する場合は、IDLファイルのデータ型は以下のように対応づけられます。
なお、異なる言語で作成されたサーバアプリケーション間のデータ変換規則については、“12.2.1 データ型の変換”を参照してください。

IDLデータ型

Java(クライアントアプリケーション)

C言語(サーバアプリケーション)

COBOL(サーバアプリケーション)

string

java.lang.String

char*

PIC X(n). (注5)

string (注2)

java.lang.String

char*

PIC S9(n). (注5)(注6)

PIC 9(n). (注5)(注6)

PIC S9(n) COMP-3. (注4)(注5)

PIC 9(n) COMP-3. (注4)(注5)

PIC S9(n) COMP.(注5)(注7)

PIC 9(n) COMP.(注5)(注7)

PIC S9(n) COMP-5.(注5)

PIC 9(n) COMP-5.(注5)

PIC S9(n)V9(m). (注5)(注6)(注8)

PIC 9(n)V9(m). (注5)(注6)(注8)

PIC S9(n)V9(m) COMP-3. (注5)(注8)

PIC 9(n)V9(m) COMP-3. (注5)(注8)

PIC S9(n)V9(m) COMP. (注5)(注7)(注8)

PIC 9(n)V9(m) COMP. (注5)(注7)(注8)

PIC S9(n)V9(m) COMP-5. (注5)(注8)

PIC 9(n)V9(m) COMP-5. (注5)(注8)

wstring

java.lang.String

unsigned short*

PIC N(n). (注5)

octet

byte(java.lang.Byte)(注10)

unsigned char

(注9)

boolean

boolean(java.lang.Boolean)(注10)

unsigned char

(注9)

short

short(java.lang.Short)(注10)

short

PIC S9(1~4) COMP-5. (注7)

short

short(java.lang.Short)(注10)

short

PIC S9(1~4) COMP.

long

int(java.lang.Integer)(注10)

int

PIC S9(5~9) COMP-5.

long

int(java.lang.Integer)(注10)

int

PIC S9(5~9) COMP.

float

float(java.lang.Float)(注10)

float

COMP-1.

double

double(java.lang.Double)10)

double

COMP-2.

struct(構造体型)

class

struct

集団項目

array(配列型) (注1)

array (注1)

array (注1)

OCCURS句

sequence<octet>

byte[]

特殊構造体

特殊集団項目

long long (注3)

long(java.lang.Long)(注10)

long long

PIC S9(10~18) COMP-5.

long long (注2)

long(java.lang.Long)(注10)

long long

PIC S9(10~18) COMP.

注1)IDLファイルのarrayを配列型として記述しています。配列の最大要素数は65535です。また、配列の最大次元数は5です。
注2)COBOLを使用する場合、IDLに変換できないデータ型についてはアプリケーション情報入力ファイルに判定情報(binary_as_stringタグ)を設定します。
注3)COBOLのPIC 9(10~18) COMP-5はIDLのlong longにマッピングされますが、C言語では存在しないデータ型であり、使用する場合はユーザアプリケーション間で値を意識する必要があります。
注4)USAGEはPACKED-DECIMALも指定できます。
注5)mおよびnは整数値を表します。
注6)USAGEはDISPLAYも指定できます。
注7)USAGEはBINARYも指定できます。
注8)mとnの値の合計は、18以下になります。可変部がnだけの場合も同様に18以下になります。
注9)COBOLではサポートしないデータ型です。
注10)同期アプリケーション連携実行基盤のクライアントで、Mapを利用する場合は、かっこで示すラッパークラスと対応します。