サービス・パーツの参照
サービス・パーツは、サービスに含まれる関数へのアクセスをリクエスターに提供します。 リクエスターは、ローカルまたはリモート・プログラム、ハンドラー、ライブラリー、または別のサービスです。
SOAP サービスとしてのデプロイメント用のサービス・パーツを開発する場合は、パラメーターが副構造を持つ構造化レコード・パーツに基づいているのであれば、EGL 生成の WSDL ファイルが関数パラメーターを表す方法を理解する必要があります。
以下にレコード・パーツの例を示します。
Record ORDER type BasicRecord
10 ORDERID char(5);
10 ORDERITEMS char(35)[10];
15 ITEMID char(5);
15 DESCRIPTION char(30);
end
データのランタイム転送を制御する WSDL ファイルの構成時には、EGL ジェネレーターは定義を「平坦化」します。
本質的に、WSDL 表記は以下のレコード・パーツに基づいています。
Record ORDER type BasicRecord
10 ORDERID char(5);
10 ITEMID char(5)[10];
10 DESCRIPTION char(30)[10];
end
あるフィールドの別のフィールドへの意図的なネストを保持するには、非構造化レコード・パーツに基づくレコードを使用します。
例えば、以下のコードは ORDERITEMS フィールドを保持します。
Record ORDER type BasicRecord
ORDERID char(5);
ORDERITEMS ANITEM[10];
end
Record ANITEM type BasicRecord
ITEMID char(5);
DESCRIPTION char(30);
end
サービス・ロジックで複合構造化レコードと非構造化レコードとの間でデータを転送する必要がある場合は、MOVE ステートメントを使用します。
サービス・パーツについて詳しくは、サービス: 全体的な概要を参照してください。
構文

- serviceName
- サービスに割り当てる名前。
- interfaceName
- このサービスが実装するインターフェースの名前。 この変数は、インターフェースに記述されたすべての関数がサービスに含まれていることを保証するものです。
- serviceContents
- サービスには、関数、変数、定数、および use 宣言を含めることができます。 関数に private 修飾子を組み込み、リクエスターがそれにアクセスできないようにすることが可能です。 変数および定数は、リクエスターには提供されません。
例
簡単なサービスを、次の例に示します。
Service EchoString
function returnString
(inputString string in)
returns (string)
return (inputString);
end
end
互換性
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | 生成されるサービスの名前の最大長は 7 文字です。 |
| IMS/VS、IMS™ BMP | サービス・パーツはサポートされません。 |
| Rich UI | 1 つの例外を除いて、サービス生成は Rich UI プロジェクトではサポートされていません。『EGL での SOA サポート』で説明されているように、その例外は専用サービスです。 EGL 一般プロジェクトまたは EGL Web プロジェクトでサービス・ロジックを記述して、そのロジックを SOAP Web サービスまたは REST サービス (EGL Web プロジェクト内に生成する必要があります) の基本として使用し、そのサービスを Web サーバーにデプロイして、デプロイされたサービスに Rich UI アプリケーションからアクセスできます。 |
| VSE | サービス・パーツはサポートされません。 |