CICS - Sözde Programlama

Şu an itibariyle, dönüştürme ve dönüştürme programlarını ele aldık. Dönüşüm programlarının büyük bir dezavantajı vardır.think timeoldukça yüksektir. Bu sorunun üstesinden gelmek için, sözde dönüştürme programı devreye girdi. Şimdi sözde dönüştürme programları hakkında daha fazla tartışacağız.

Sözde Dönüştürme Programı

Bir sözde dönüştürme programında gerçekleşen olaylar dizisi aşağıdadır -

  • Step 1 - Sistem ekrana mesaj göndererek işlemi sonlandırarak kullanıcı girişi geldiğinde başlatılacak işlemi belirtir.

  • Step 2- Sistem, bu işlem tarafından kullanılan kaynakları sistemde çalışan diğer işlemlere tahsis eder. Bu nedenle, kullanıcı girdi verene kadar kaynakları sözde dönüştürme programında kullanabiliriz.

  • Step 3- Sistem, düzenli aralıklarla terminal girişini sorgular. Giriş alındığında, işlenir ve çıktı görüntülenir.

  • Step 4 - Uygulama programı gerektiğinde ana depoya yüklenir ve kullanılmadığında serbest bırakılır.

Sözde Dönüşüm Teknikleri

Sözde konuşmada dikkat edilmesi gereken önemli nokta, verilerin her görev arasında geçişidir. Verileri iletme teknikleri hakkında tartışacağız.

COMMAREA

COMMAREA iletişim alanı olarak bilinir. COMMAREA, görevler arasında veri aktarmak için kullanılır. Aşağıdaki örnek, Çalışma Depolama Bölümünde WSCOMMAREA ve WS-COMMAREA-LENGTH'nin bildirildiği COMMAREA'nın nasıl geçileceğini gösterir -

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

DFHCOMMAREA

DFHCOMMAREA, CICS tarafından her göreve sağlanan özel bir hafıza alanıdır.

  • Bir programdan diğerine veri aktarmak için kullanılır. Programlar aynı işlemde veya farklı işlemde de olabilir.

  • Programın Bağlantı Bölümünde 01 seviyesinde ilan edilmiştir.

  • WS-COMMAREA ile aynı resim maddesine sahip olmalıdır.

  • Veriler bir MOVE deyimi kullanılarak DFHCOMMAREA'dan WS-COMMAREA'ya geri taşınabilir.

MOVE DFHCOMMAREA TO WS-COMMAREA.

Misal

Haritayı gönderdikten sonra görev sona erer ve kullanıcının yanıt vermesini bekler. Bu aşamada verilerin kaydedilmesi gerekir, çünkü görev bitmesine rağmen işlem bitmemiştir. Bu işleme devam edileceği zaman, görevin önceki statüsünü gerektirecektir. Kullanıcı girişi girer. Bunun şimdi RECEIVE MAP komutu tarafından alınması ve ardından doğrulanması gerekir. Aşağıdaki örnek COMMAREA ve DFHCOMMAREA'nın nasıl ilan edileceğini gösterir -

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

Sözde Kod

Aşağıda, sözde programlamada kullandığımız sözde kod mantığı verilmiştir -

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

Misal

Aşağıdaki örnek bir sözde dönüştürme programını göstermektedir -

******************************************************************
* 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.

Sözde Dönüşümün Avantajları

Sözde dönüşümün avantajları aşağıdadır -

  • Kaynaklar en iyi şekilde kullanılır. Program geçici olarak askıya alınır alınmaz kaynaklar serbest bırakılır.

  • Sanki konuşma modundaymış gibi görünüyor.

  • Daha iyi yanıt süresine sahiptir.

İade İfadeleri

Aşağıda CICS'te kullanılan iki tür iade ifadesi verilmiştir -

Dönüş-1

Aşağıdaki koşulsuz iade ifadesi yayınlandığında, görev ve işlem (program) sonlandırılır.

EXEC CICS RETURN 
END-EXEC.

Dönüş-2

Aşağıdaki koşullu dönüş, yani TRANSID ifadesiyle geri dönüş verildiğinde, kontrol, yürütülecek bir sonraki transid ile CICS'e geri döner. Bir sonraki işlem, kullanıcı bir AID tuşuna bastığında başlar.

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