【问题标题】:Handling multiple containers over one pipe in CICS web service call from COBOL在来自 COBOL 的 CICS Web 服务调用中通过一个管道处理多个容器
【发布时间】:2015-12-03 14:58:17
【问题描述】:

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

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

我搜索了 Internet 和 IBM 文档,但没有找到如何处理此问题的示例。似乎任何时候在 WSDL 模式中存在可变数量的元素时都会发生这种情况。一个关于某人如何处理通过同一管道的两个容器的 COBOL 示例将非常有帮助。

这里是字帖sn-p(程序中提供初始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.                              

【问题讨论】:

    标签: soap cobol cics


    【解决方案1】:

    ReturnCodes-num 告诉您在ReturnCodes-cont 命名的容器中存在多少pfcsO01-ReturnCodes

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多