1

我们正在尝试使用 CICS 4.1 将 COBOL 程序与 SOAP 服务集成。一个挑战是响应包含可变数量的返回代码,这使字帖变得复杂。

  1. DFHWS2LS程序在字帖中为响应结构生成两个 01 级别(请参阅下面的字帖片段)。这第二个 01 级别应该用于联动,还是应该将其视为工作存储字段?
  2. 当处理通过管道的单个容器时,CICS 程序需要执行许多活动(参见下面的示例)。当我们有两个容器时,这一切都必须做两次吗?

我搜索了 Internet 和 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.                              
4

1 回答 1

4

ReturnCodes-numpfcsO01-ReturnCodes告诉您在名为 in 的容器中有多少个实例ReturnCodes-cont

pfcsO01-ReturnCodes映射到一个实例。解决此问题的一种方法是放置pfcsO01-ReturnCodes在您的链接部分中,使用CEEGTSTEXEC CICS GETMAIN获取 size 的存储空间LENGTH OF pfcsO01-ReturnCodes * ReturnCodes-num,以及SET ADDRESS OF pfcsO01-ReturnCodes您新获得的存储空间。

如果您喜欢危险地生活,您可以将获得的地址的长度添加pfcsO01-ReturnCodes到在实例中移动的地址中,因为您重复SET ADDRESS OF pfcsO01-ReturnCodes增加的指针的长度。或者,如果您更喜欢安全地生活,您可以声明一个可变出现的pfcsO01-ReturnCodes(with Occurs Depending On) 数组并将 ODO 的对象设置为ReturnCodes-num

于 2015-12-04T01:08:53.143 回答