На данный момент мы рассмотрели программы без конвертации и конвертации. Конверсионные программы имеют большой недостаток, так как время их обдумывания значительно выше. Чтобы преодолеть эту проблему, пришло в голову программирование псевдо-преобразования. Теперь мы обсудим больше о программах псевдо-преобразования.
Программа псевдо-конверсии
Ниже приведена последовательность событий, происходящих в программе псевдо-преобразования.
-
Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.
-
Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.
-
Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.
-
Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.
Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.
Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.
Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.
Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.
Методы псевдо-преобразования
Важный момент, на который следует обратить внимание при псевдо-разговоре, — это передача данных между каждой задачей. Мы обсудим методы передачи данных.
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.