CICS - Lập trình giả

Hiện tại, chúng tôi đã bao gồm các chương trình chuyển đổi và không chuyển đổi. Các chương trình chuyển đổi có một nhược điểm lớn làthink timelà cao đáng kể. Để khắc phục vấn đề này, lập trình chuyển đổi giả đã ra đời. Bây giờ chúng ta sẽ thảo luận thêm về các chương trình chuyển đổi giả.

Chương trình chuyển đổi giả

Sau đây là chuỗi các sự kiện diễn ra trong một chương trình chuyển đổi giả -

  • Step 1 - Hệ thống gửi thông báo đến màn hình và kết thúc giao dịch, chỉ định giao dịch được bắt đầu khi nhận được thông tin nhập của người dùng.

  • Step 2- Hệ thống phân bổ tài nguyên được sử dụng bởi giao dịch này cho giao dịch khác đang chạy trong hệ thống. Vì vậy, chúng tôi có thể sử dụng các tài nguyên trong một chương trình chuyển đổi giả cho đến khi người dùng cung cấp đầu vào.

  • Step 3- Hệ thống thăm dò ý kiến ​​đầu vào của thiết bị đầu cuối theo khoảng thời gian đều đặn. Khi đầu vào được nhận, nó sẽ được xử lý và đầu ra được hiển thị.

  • Step 4 - Chương trình ứng dụng được tải vào bộ lưu trữ chính khi cần và giải phóng khi không sử dụng.

Kỹ thuật chuyển đổi giả

Điểm quan trọng cần lưu ý trong cuộc trò chuyện giả là chuyển dữ liệu giữa mọi tác vụ. Chúng ta sẽ thảo luận về các kỹ thuật truyền dữ liệu.

COMMAREA

COMMAREA được biết đến là khu vực truyền thông. COMMAREA được sử dụng để truyền dữ liệu giữa các tác vụ. Ví dụ sau cho thấy cách chuyển COMMAREA trong đó WSCOMMAREA và WS-COMMAREA-LENGTH được khai báo trong Phần lưu trữ làm việc -

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

DFHCOMMAREA

DFHCOMMAREA là một vùng bộ nhớ đặc biệt được CICS cung cấp cho mọi tác vụ.

  • Nó được sử dụng để truyền dữ liệu từ chương trình này sang chương trình khác. Các chương trình có thể tồn tại trong cùng một giao dịch hoặc trong các giao dịch khác nhau.

  • Nó được khai báo trong Phần liên kết của chương trình ở 01 cấp độ.

  • Nó phải có mệnh đề hình ảnh giống như WS-COMMAREA.

  • Dữ liệu có thể được di chuyển trở lại từ DFHCOMMAREA sang WS-COMMAREA bằng cách sử dụng câu lệnh MOVE.

MOVE DFHCOMMAREA TO WS-COMMAREA.

Thí dụ

Sau khi gửi bản đồ, nhiệm vụ kết thúc và chờ phản hồi của người dùng. Ở giai đoạn này, dữ liệu cần được lưu lại, bởi vì mặc dù nhiệm vụ đã kết thúc nhưng giao dịch vẫn chưa. Khi giao dịch này được tiếp tục, nó sẽ yêu cầu trạng thái trước đó của nhiệm vụ. Người dùng nhập đầu vào. Điều này bây giờ phải được nhận bằng lệnh RECEIVE MAP và sau đó được xác thực. Ví dụ sau đây cho thấy cách khai báo COMMAREA và DFHCOMMAREA:

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

Mã giả

Dưới đây là logic của mã giả mà chúng tôi sử dụng trong lập trình giả -

MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
   STEP1: SEND MAP
   STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
   STEP3: ISSUE CONDITIONAL RETURN
ELSE
   IF WS-COMMAREA = <internal-transaction-id1> 
      STEP4: RECEIVE MAP
      STEP5: PROCESS DATA
      STEP6: SEND OUTPUT MAP
      STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
      STEP8: ISSUE CONDITIONAL RETURN 
   END-IF
END-IF      
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT

Thí dụ

Ví dụ sau đây cho thấy một chương trình chuyển đổi giả:

******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION                     *
******************************************************************
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                                   
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME                *
******************************************************************
   MOVE 'HELLO' TO WS-MESSAGE                               
   EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
   MOVE 'FIRST' TO WS-COMMAREA                              
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT      *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO   *
* DFHCOMMAREA                                                    *
******************************************************************
   EXEC CICS RETURN                                         
      TRANSID('TP002')                                      
      COMMAREA(WS-COMMAREA)                                
   END-EXEC                                                 
******************************************************************
* IF  COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE  *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE            *
******************************************************************
   ELSE                                                         
      EXEC CICS RECEIVE                                        
         INTO(WS-MESSAGE)                                    
   END-EXEC
      EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED                                                 *
******************************************************************
   EXEC CICS RETURN                                         
   END-EXEC                                                 
END-IF.

Ưu điểm của Chuyển đổi giả

Sau đây là những ưu điểm của chuyển đổi giả -

  • Các nguồn tài nguyên được sử dụng tốt nhất. Tài nguyên được phát hành ngay sau khi chương trình bị tạm dừng hoạt động.

  • Có vẻ như nó đang ở chế độ trò chuyện.

  • Nó có thời gian phản hồi tốt hơn.

Báo cáo trả lại

Sau đây là hai loại câu lệnh trả về được sử dụng trong CICS:

Return-1

Khi câu lệnh trả về vô điều kiện sau được phát hành, tác vụ và giao dịch (chương trình) sẽ bị chấm dứt.

EXEC CICS RETURN 
END-EXEC.

Return-2

Khi trả về có điều kiện sau, tức là, trả về với câu lệnh TRANSID được đưa ra, điều khiển quay trở lại CICS với chuyển tiếp tiếp theo sẽ được thực hiện. Giao dịch tiếp theo bắt đầu khi người dùng nhấn một phím AID.

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