CICS - 伪编程

截至目前,我们已涵盖非转化和转化计划。转换计划有一个主要缺点,因为他们思考时间相当高。为了克服这个问题,伪转换编程进入了画面。我们现在将讨论有关伪转换程序的更多信息。

伪转换程序

以下是在伪转换中发生的事件序列转换计划 :

  • 第1步 : 系统向屏幕发送消息并终止交易,指定在收到用户输入时要启动的交易。
  • 步骤2 : 系统将此事务使用的资源分配给系统中运行的其他事务。因此,我们可以利用伪转换程序中的资源,直到用户提供输入。
  • 步骤3 : 系统定期轮询终端输入。收到输入后,将对其进行处理并显示输出。
  • 步骤4 : 应用程序在需要时加载到主存储器中,并在不使用时释放。

CICS Pseudo Conversion Program

伪转换技术

伪对话中需要注意的重点是在数据之间传递数据每一项任务。我们将讨论传递数据的技术。

COMMAREA

COMMAREA称为通信区域。 COMMAREA用于在任务之间传递数据。以下示例显示如何传递COMMAREA,其中WSCOMMAREA和WS-COMMAREA-LENGTH在工作存储部分和减号中声明;

 EXEC CICS RETURN
   TRANSID ('transaction-id')
   COMMAREA (WS-COMMAREA)
   LENGTH  (WS-COMMAREA-LENGTH)
END-EXEC.<

DFHCOMMAREA

DFHCOMMAREA是一个特殊的内存区域,由CICS提供给每个任务。

  • 它用于将数据从一个程序传递到另一个程序。程序可以存在于同一个事务中,也可以存在于不同的事务中。
  • 它在01级的程序的链接部分声明。
  • 它应该与WS-COMMAREA具有相同的图片子句。
  • 数据可以从DFHCOMMAREA使用MOVE语句到WS-COMMAREA。
 MOVE DFHCOMMAREA TO WS-COMMAREA.

示例

发送地图后,任务结束并等待用户响应。在此阶段,需要保存数据,因为虽然任务已经结束,但事务却没有。当要恢复此事务时,它将需要任务的先前状态。用户输入输入。现在必须由RECEIVE MAP命令接收,然后验证。以下示例显示如何声明COMMAREA和DFHCOMMAREA :

 
 WORKING-STORAGE SECTION.
01 WS-COMMAREA.
   05 WS-DATA PIC X(10).
   
LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LK-DATA PIC X(10).

伪代码

下面给出了我们在伪编程中使用的伪代码的逻辑 :

 将DFHCOMMAREA移至WS-COMMAREA 
如果EIBCALEN = 0 
第1步:发送地图
第2步:移动<内部-transaction-ID1&GT;到WS-COMMAREA 
第3步:问题条件返回
 ELSE 
如果WS-COMMAREA =< internal-transaction-id1> 
步骤4:接收映射
步骤5:处理数据
步骤6:发送输出映射
步骤7:移动< internal-transaction-ID2>到WS-COMMAREA 
第8步:问题有条件退货
 END-IF 
 END-IF 
第9步:重复第3步到第7步直到退出

示例

以下示例显示了伪转换程序 :

 
 ********************************************* ***************** 
 *计划举行虚假会议* 
 ***************** ************************************************* 
IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                         
01 WS-MESSAGE          PIC X(30).                                
01 WS-COMMAREA         PIC X(10) VALUE SPACES.                    
LINKAGE SECTION.                                                 
01 DFHCOMMAREA         PIC X(10).                                 
PROCEDURE DIVISION.
   MOVE DFHCOMMAREA TO WS-COMMAREA
   IF  WS-COMMAREA  =  SPACES   
 ************************* **************************************** 
 *交易获准执行第一次* 
 ******************************************* *********************** 
MOVE 'HELLO' TO WS-MESSAGE                               
   EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
   MOVE 'FIRST' TO WS-COMMAREA 
 ************************ ****************************************** 
 *任务结束为返回的结果。 IF AID KEY PRESSED,NEXT * 
 *交易应该是TP002。数据从WS-COMMAREA转到* 
 * DFHCOMMAREA * 
 ******************************* *********************************** 
   EXEC CICS RETURN                                         
      TRANSID('TP002')                                      
      COMMAREA(WS-COMMAREA)                                
   END-EXEC       
 *************************** *************************************** 
 *如果COMMAREA不是空的,然后TP002已经执行* 
 *已经,用户互动由接收方便* 
 ************************* ***************************************** 
   ELSE                                                         
      EXEC CICS RECEIVE                                        
         INTO(WS-MESSAGE)                                    
   END-EXEC
      EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC          
 ***************************** ************************************* 
 *作为退货结果的任务结束,没有指定的下一笔交易* 
 *待执行* 
 ******************************** ********************************** 
   EXEC CICS RETURN                                         
   END-EXEC                                                 
END-IF.

伪转换的优点

以下是伪转换的优点 :

  • 最佳利用资源。暂时暂停该计划后,资源即会被释放。
  • 看起来好像处于对话模式。
  • 响应时间更长。

返回语句

以下是在CICS&minus中使用的两种类型的return语句;

Return-1

当发出以下无条件return语句时,任务和交易(程序)终止。

 
 EXEC CICS RETURN 
 END-EXEC。

返回-2

当发出以下条件返回时,即返回TRANSID语句时,控件返回使用下一个transid执行到CICS。当用户按下AID键时,下一个事务开始。

 
 EXEC CICS RETURN
   TRANSID ('trans-id')
   [COMMAREA(WS-COMMAREA)]
END-EXEC.