サービスの概要については、『EGL サービス』を参照してください。EGL
ファイルでサービスを宣言することができます。
詳細については、『EGL ソース形式』で説明されています。
サービス・パーツの構文図は、以下のとおりです。

- Service servicePartName ... end
- パーツをサービスとして識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
- implementsinterfaceName
- サービスが指定済みインターフェースを実装することを示します。第一義は、
サービスにインターフェースで説明されるすべての関数が含まれることです。
以下の事項も適用されます。
- 代入文では、インターフェース型の変数が、サービス型の変数を
受け取ることができます。
myInterface = myService;
- 同様に、関数呼び出しでは、インターフェース型のパラメーターは
サービス型の引数を受け取ることができます。
インターフェースを使用して、サービス内の関数にアクセスする場合でも、サービスは
インターフェースを実装する必要はありません。
- propertyList
- すべてのプロパティーはオプションです。
- @WSDL
- サービス・パーツに基づく変数が、Web サービスにバインドされる場合のみ意味があります。
Java™ JAX-RPC
ランタイム・コードとの相互作用で使用される Web サービス記述言語 (WSDL)
定義を、EGL が作成できるようにします。
プロパティー・フィールドおよびその型は以下のとおりです。
- elementName STRING
- このプロパティー・フィールドが存在する場合、値は以下の名前を設定します。
- WSDL 定義ファイル名
- WSDL portType エレメント内の名前
- バインディング・エレメントの名前。
ただし、エレメント名は接尾部 Binding も持ちます。
- サービス・エレメントの名前。
ただし、エレメント名は接尾部 Service も持ちます。
プロパティー・フィールドが存在しない場合、サービス・パーツの名前は
上記の目的で使用されます。
データは大/小文字の区別をします。
例えば、名前 myService は MYSERVICE とは異なります。
- nameSpace STRING
- WSDL 定義のグローバルなターゲット名前空間を設定します。このプロパティー・フィールドが存在しない場合、値は、
ストリング http:// で開始し、パッケージ名のすべての修飾子を逆転して作成されます。
例えば、パッケージ名が com.ibm.egl である場合、nameSpace の値は次のようになります。
http://egl.ibm.com
この値は、大/小文字の区別をします。
例えば、名前空間 http://egl.ibm.com は
http://EGL.IBM.com とは異なります。
- isLastParamReturnValue BooleanKind
- このプロパティー・フィールドは、サービス・パーツのコンテキストでは無視されます。
- alias STRING
- 生成された出力の名前に組み込まれるストリングを識別します。
alias プロパティーを設定しない場合、サービス・パーツ名が代わりに使用されます。
- localSQLScope BooleanKind
- SQL 結果セットおよび作成された文の識別子が、
他の EGL コードによる呼び出し中に、サービス・コードに対してローカルである (デフォルト)
かどうかを示します。値 yes をそのまま使用すると、異なる複数のプログラムが同じ識別子を独自に使用できます。
そのサービスを使用する EGL コードは、サービス内で使用されているのと同じ識別子を
独自に使用することができます。
no を指定すると、識別子はその実行単位全体で共用されます。
サービス内の SQL 文が呼び出されたときに作成された識別子は、
そのサービスを呼び出す他のコード内でも使用可能です。
ただし、他のコードは、localSQLScope = yes
を使用して、これらの識別子へのアクセスをブロックすることができます。
また、サービスは呼び出し側コードで作成される識別子を参照できます。
ただし、参照できるのは、SQL 関連文が既に他のコードで実行された場合、
およびその他のコードがアクセスをブロックしなかった場合だけです。
SQL 識別子を共用する効果は、次のとおりです。
- 1 つのコードで結果セットを開き、別のコードでその結果セットから行を取得できる。
- 1 つのコードで SQL 文を作成し、その文を別のコードで実行できる。
いずれの場合でも、プログラムまたは pageHandler がサービスにアクセスするときに使用可能な識別子は、
同じプログラムまたは pageHandler が同じサービス内の同じ関数または別の関数にアクセスするときに
使用可能です。
- useDeclaration
- dataTable またはライブラリーへのアクセスを容易にします。詳細については、『使用宣言』を参照してください。
- private
- 関数がサービスの外側では使用不可であることを示します。private
という用語を省略した場合、関数は使用可能です。
変数および定数は必ずしも専用ではありませんが、
修飾子は使用可能です。
- fieldName
- プリミティブ・フィールドの名前。
命名の規則については、『命名規則』を参照してください。
- primitiveType
- フィールドのプリミティブ型または (配列に関連付けられている) 配列エレメントのプリミティブ型。
- length
- パラメーターの長さ、または (配列に関して) 配列エレメントの長さ。この長さは、fieldName または (配列の場合は) dynamicArrayName のいずれかによって参照されるメモリー領域の文字数または桁数を表す整数です。
- decimals
- 数値型には、decimals を指定できます。これは、小数点以下の桁数を表す整数です。
小数部の桁の最大数は、18 または length で宣言された桁数の小さいほうです。小数点は、データとともに保管されません。
- "dateTimeMask"
- TIMESTAMP 型および INTERVAL 型には、"dateTimeMask" を指定できます。これは、日時値の特定の位置に意味 (「年の桁」など) を割り当てるものです。
マスクは、実行時にデータと共に存在します。
- dataItemPartName
- プログラムに対して可視の dataItem パーツ名。可視性についての詳細は、『パーツの参照』を参照してください。
パーツは、形式のモデルとして機能します。詳しくは、『Typedef』を参照してください。
- recordName
- レコードの名前。命名の規則については、『命名規則』を参照してください。
- recordPartName
- プログラムに対して可視のレコード・パーツ名。可視性についての詳細は、『パーツの参照』を参照してください。
パーツは、形式のモデルとして機能します。詳しくは、『Typedef』を参照してください。
- constantName literal
- 定数の名前および値。値は、引用符付きストリングまたは数値となります。命名の規則については、『命名規則』を参照してください。
- fieldProperty
- フィールド固有のプロパティーと値の組み。『EGL プロパティーとオーバーライドの概要』を参照してください。
- recordProperty
- レコード固有のプロパティーと値の組み。使用可能なプロパティーの詳細については、
必要なレコード・タイプに関する参照トピックを参照してください。
基本レコードにはプロパティーはありません。
- fieldName
- オーバーライドするプロパティーを持つレコード・フィールドの名前。『EGL プロパティーとオーバーライドの概要』を参照してください。
- arrayName
- 動的配列の名前。このオプションを使用する場合、右側の他のシンボル
(dataItemPartName、primitiveType など)
は配列の各エレメントを参照します。
- size
- 配列内のエレメント数。
エレメントの数を指定すると、配列は指定されたエレメント数に初期化されます。
- functionPart
- 関数。以下の制限事項が適用されます。
- 戻りの型を、ANY、BLOB、または CLOB の型にすることはできません。
- パラメーターは、ANY 型のフィールドを組み込むことができず、ANY、
BLOB、CLOB の型にすることができず、NUMBER などのルーズ型にすることができず、
field または nullable 修飾子を組み込むこともできません。
- 修飾子 OUT を持つパラメーターは、パラメーターのリストの最後に配置されていなければなりません。
以下の関数プロパティーはサービス・パーツでのみ有効で、
そのパーツに基づく変数が Web サービスにバインドされる場合のみ意味があります。
- @WSDL
- EGL が、Java JAX-RPC ランタイム・コードとの相互作用で使用するために、
Web サービス記述言語 (WSDL) 定義からのデータを抽出できるようにします。
プロパティー・フィールドおよびその型は以下のとおりです。
- elementName STRING
- このプロパティー・フィールドが存在する場合、値はその関数の WSDL 操作エレメント内の名前になります。
プロパティー・フィールドが存在しない場合、関数名が使用されます。
データは大/小文字の区別をします。例えば、名前 myFunction は
MYFUNCTION とは異なります。
- nameSpace STRING
- このプロパティー・フィールドは、関数のコンテキストでは無視されます。
- isLastParamReturnValue BooleanKind
- このプロパティー・フィールドは、関数のコンテキストでは無視されます。
詳細については、『EGL ソース形式の関数パーツ』を参照してください。