Мы пытаемся интегрировать программу COBOL с помощью службы SOAP с использованием CICS 4.1. Одна из проблем заключается в том, что ответ содержит переменное количество кодов возврата, что усложняет книгу.Обработка нескольких контейнеров по одной трубке в CICS-сервисе вызова из COBOL
- Программа
DFHWS2LS
генерирует два 01 уровней в прописи для структуры ответа (см тетрадной фрагмент ниже). Должен ли этот второй уровень 01 использоваться в связке или он должен рассматриваться как область рабочего хранения? - При работе с одним единственным контейнером, проходящим через трубу, необходимо выполнить ряд действий, которые должна выполнять программа CICS (см. Пример ниже). Когда у нас есть два контейнера, все это нужно сделать дважды?
Я искал документацию в Интернете и IBM, но не нашел пример того, как с этим справиться. Кажется, что это происходит в любое время, когда в схеме WSDL есть переменное число элементов. Пример использования 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.
Вот код, который мы используем, чтобы создать первый контейнер, и мы озадачены о том, как включить второй контейнер.
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.
Очень хороший ответ, спасибо. –