EGL ソース形式のサービス・パーツ

サービスの概要については、『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 も持ちます。

プロパティー・フィールドが存在しない場合、サービス・パーツの名前は 上記の目的で使用されます。

データは大/小文字の区別をします。 例えば、名前 myServiceMYSERVICE とは異なります。

nameSpace STRING
WSDL 定義のグローバルなターゲット名前空間を設定します。このプロパティー・フィールドが存在しない場合、値は、 ストリング http:// で開始し、パッケージ名のすべての修飾子を逆転して作成されます。 例えば、パッケージ名が com.ibm.egl である場合、nameSpace の値は次のようになります。
  http://egl.ibm.com

この値は、大/小文字の区別をします。 例えば、名前空間 http://egl.ibm.comhttp://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
動的配列の名前。このオプションを使用する場合、右側の他のシンボル (dataItemPartNameprimitiveType など) は配列の各エレメントを参照します。
size
配列内のエレメント数。 エレメントの数を指定すると、配列は指定されたエレメント数に初期化されます。
functionPart
関数。以下の制限事項が適用されます。
  • 戻りの型を、ANY、BLOB、または CLOB の型にすることはできません。
  • パラメーターは、ANY 型のフィールドを組み込むことができず、ANY、 BLOB、CLOB の型にすることができず、NUMBER などのルーズ型にすることができず、 field または nullable 修飾子を組み込むこともできません。
  • 修飾子 OUT を持つパラメーターは、パラメーターのリストの最後に配置されていなければなりません。
以下の関数プロパティーはサービス・パーツでのみ有効で、 そのパーツに基づく変数が Web サービスにバインドされる場合のみ意味があります。
@WSDL
EGL が、Java JAX-RPC ランタイム・コードとの相互作用で使用するために、 Web サービス記述言語 (WSDL) 定義からのデータを抽出できるようにします。 プロパティー・フィールドおよびその型は以下のとおりです。
elementName STRING
このプロパティー・フィールドが存在する場合、値はその関数の WSDL 操作エレメント内の名前になります。 プロパティー・フィールドが存在しない場合、関数名が使用されます。 データは大/小文字の区別をします。例えば、名前 myFunctionMYFUNCTION とは異なります。
nameSpace STRING
このプロパティー・フィールドは、関数のコンテキストでは無視されます。
isLastParamReturnValue BooleanKind
このプロパティー・フィールドは、関数のコンテキストでは無視されます。

詳細については、『EGL ソース形式の関数パーツ』を参照してください。

関連概念
EGL インターフェース
EGL サービスと Web サービス
ServiceBindingLibrary 型のライブラリー・パーツ

関連タスク
EGL インターフェース・パーツの作成
EGL サービス・パーツの作成
サービス・パーツからのインターフェース・パーツの作成

関連リファレンス
EGL でのサービスおよび関連インターフェースの最良実例
EGL ソース形式の関数パーツ
EGL ソース形式のインターフェース・パーツ
BasicInterface 型のインターフェース

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.