Учебники

CICS — псевдопрограммирование

На данный момент мы рассмотрели программы без конвертации и конвертации. Конверсионные программы имеют большой недостаток, так как время их обдумывания значительно выше. Чтобы преодолеть эту проблему, пришло в голову программирование псевдо-преобразования. Теперь мы обсудим больше о программах псевдо-преобразования.

Программа псевдо-конверсии

Ниже приведена последовательность событий, происходящих в программе псевдо-преобразования.

  • Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.

  • Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.

  • Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.

  • Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.

Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.

Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.

Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.

Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.

Программа псевдо-конверсии CICS

Методы псевдо-преобразования

Важный момент, на который следует обратить внимание при псевдо-разговоре, — это передача данных между каждой задачей. Мы обсудим методы передачи данных.

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 в WS-COMMAREA с помощью оператора MOVE.

Он используется для передачи данных из одной программы в другую. Программы могут существовать в одной и той же транзакции или в другой транзакции.

Он объявлен в разделе «Связывание» программы на уровне 01.

Он должен иметь то же положение с картинкой, что и WS-COMMAREA.

Данные могут быть перемещены обратно из DFHCOMMAREA в WS-COMMAREA с помощью оператора MOVE.

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

Псевдокод

Ниже приведена логика псевдокода, который мы используем в псевдопрограммировании.

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

пример

В следующем примере показана программа псевдо-преобразования:

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

Преимущества псевдо-конверсии

Ниже приведены преимущества псевдо-преобразования:

  • Ресурсы лучше всего используются. Ресурсы освобождаются, как только программа временно приостанавливается.

  • Похоже, что он находится в диалоговом режиме.

  • У него лучшее время отклика.

Ресурсы лучше всего используются. Ресурсы освобождаются, как только программа временно приостанавливается.

Похоже, что он находится в диалоговом режиме.

У него лучшее время отклика.

Вернуться Заявления

Ниже приведены два типа операторов возврата, которые используются в CICS.

Возвратно-1

Когда выдается следующая безусловная инструкция возврата, задача и транзакция (программа) завершаются.

EXEC CICS RETURN 
END-EXEC.

Возвратно-2

При выполнении следующего условного возврата, т. Е. Оператора return с TRANSID, элемент управления возвращается в CICS со следующим выполненным транзакцией. Следующая транзакция начинается, когда пользователь нажимает клавишу AID.