CICS 4.1 を使用して、COBOL プログラムを SOAP サービスと統合しようとしています。課題の 1 つは、応答に含まれるリターン コードの数が可変であり、コピーブックが複雑になることです。
- プログラムは、応答構造のコピーブックに 2 つの
DFHWS2LS01 レベルを生成します (以下のコピーブックのスニペットを参照)。この 2 番目の 01 レベルをリンケージで使用する必要がありますか、それとも作業領域フィールドと見なす必要がありますか? - パイプを通過する 1 つのコンテナーを処理する場合、CICS プログラムが実行する必要のあるアクティビティがいくつかあります (以下の例を参照)。コンテナが 2 つある場合、これをすべて 2 回行う必要がありますか?
インターネットと IBM のドキュメントを検索しましたが、これを処理する方法の例は見つかりませんでした。WSDL スキーマにさまざまな数の要素がある場合はいつでも発生するようです。誰かが同じパイプを通過する 2 つのコンテナーをどのように処理したかを示す COBOL の例が最も役に立ちます。
コピーブックのスニペットを次に示します (最初の 01 レベルはプログラムで提供されます)。
05 ObligationResponse.
10 ReturnCodes-num PIC S9(9) COMP-5 SYNC.
10 ReturnCodes-cont PIC X(16).
(other response structure elements deleted for brevity)
01 pfcsO01-ReturnCodes.
05 DiscrepancyCode PIC S9(9) COMP-5 SYNC.
05 DiscrepancyLevelCode PIC S9(9) COMP-5 SYNC.
これは、最初のコンテナーをセットアップするために使用しているコードであり、2 番目のコンテナーを組み込む方法について困惑しています。
PERFORM 2000-PUT-INPUT-INTO-CONTAINER
THRU 2000-EXIT.
PERFORM 6000-CHECK-CONTAINER-COMMAND
THRU 6000-EXIT.
PERFORM 3000-INVOKE-WEBSERVICES
THRU 3000-EXIT.
PERFORM 4000-CHECK-WEBSERVICE-COMMAND
THRU 4000-EXIT.
PERFORM 5000-RECEIVE-RESPONSE
THRU 5000-EXIT.
PERFORM 6000-CHECK-CONTAINER-COMMAND
THRU 6000-EXIT.
PERFORM 7000-USER-CODE-TO-FMT-OUTPUT
THRU 7000-EXIT.
PERFORM 9000-TERMINATE-CICS
THRU 9000-EXIT.
GOBACK.