top - download
⟦32cb8aa1e⟧ Wang Wps File
Length: 64682 (0xfcaa)
Types: Wang Wps File
Notes: CPS/SDS/039
Names: »1526A «
Derivation
└─⟦fa4d101ea⟧ Bits:30005807 8" Wang WCS floppy, CR 0112A
└─ ⟦this⟧ »1526A «
WangText
…00……00……00……00……00……16……0a……00……00……16……0b……16……0e……16……0f……16…
…16… …16……06……16……07……15……08……15……09……15……0a……15……0b……15……0e……15……02……15……05……15……07……14……0a……14……0e……14……02……14… …14……06……13……08……13……0b……13……0d……13……00……13…
…13……06……12……0a……12……0c……12……0d……12……01……12……07……11……09……11……0a……11……0f……11……01……11……02……11…
…11… …11……05……11……06……11……07……10……08……10……09……10……0a……10……0e……10……01……10……86…1 …02… …02… …02…
…02…CPS/SDS/039
…02…JBS/820104…02……02…
USER VDU
DETAILED DESIGN SPECIFICATION…02……02…CAMPS
4.2.4 R̲e̲t̲r̲i̲e̲v̲e̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The R̲e̲t̲r̲ieve Subpackage (RETR) is responsible for reception
and treatment of retrieval answer from SAR.
4.2.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions included in this subpackage are the following:
- reception of off-line/on-line notification
- reception of retrieved items
The functional breakdown is shown in figure 4.2.4.1-1.
Retrieved items and off-line/on-line notifications
are received from SAR in the retrieve queue. After
analysis, the received item is sent to the destination.
Figure 4.2.4.1-1
4.2.4.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The retrieve subpackage consists of one coroutine.
The software structure of RETR is shown in figure 4.2.4.2-1.
RETR will wait on reception of a QEL in the Retrieve
Queue. The QEL will identify one of the following events:
- on-line/off-line notification
- on-line retrieval
- on-line append
- off-line retrieval
- off-line append.
Each of the events will constitute a main function.
A brief description of each function is given below:
a) On-line/Off-line Append:
The received buffer is sent to UFCO.
b) On-line Retrieval:
The received item is sent to UFCO.
c) On-line Append:
The received item is sent to UFCO.
d) Off-line Retrieval:
The received item is sent to the Response Queue.
e) Off-line Append:
The received item is sent to UMAM.
Figure 4.2.4.2-1 RETR Software Structure
4.2.4.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
4.2.4.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagram overleaf show the data flow of RETR.
4.2.4.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The control logic of RETR is shown in the module tree
refer figure 4.2.4.3-5.
Figure 4.2.4.3-1
Figure 4.2.4.3-2
Figure 4.2.4.2-3
Figure 4.2.4.3-4
Figure 4.2.4.3-5 RETR Module Tree
4.2.4.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.4.4.1 R̲E̲T̲R̲ ̲M̲A̲I̲N̲ ̲ ̲M̲o̲d̲u̲l̲e̲
4.2.4.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to receive input from
the retreive queue (VVS ̲ARR, subqueue 3) and to analyse
the received QEL-attributes (maintype, subtype).
4.2.4.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RETR ̲MAIN
b) RETR ̲MAIN (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 Link (dest)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
N/A
The procedure is a submodule which is only called by
the Coroutine Monitor.
4.2.4.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N̲/̲A̲
4.2.4.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
RETR ̲OP (4.1.4)
RETR ̲QEL (4.2.4.5.C)
RETR ̲QEL ̲ATTR (4.2.4.5.C)
VUS ̲ERROR (4.1.4)
PROFILE ̲FLAG (4.2.4.5.C)
VUS ̲S2 (4.1.4)
RETR ̲IDENT (4.1.4)
ONLINE ̲RESPONSE (4.1.4)
OFFLINE ̲RESPONSE) (4.1.4)
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲e̲
RETR ̲OP (m) (4.1.4)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
None
4.2.4.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Objects received in the retrieve queue are analysed.
The following actions are taken:
- Unknown QEL-types are sent to SSC.
- Online/Offline notifications QEL-types are signalled
to UFCO.
- Other QEL-types are treated by the RETR ̲QEL ̲INVEST,
module.
System error will be reported by calling the VUS ̲INTERNAL
̲ERROR procedure
RETR COROUTINE LOOP
CASE RECEIVE ̲FIRST ̲QEL (WAIT, RETR ̲Q)
(RETR ̲QEL ̲ATTR,SUBQUEUE,
CC): ERROR ̲OK
ERROR? -CASE ANALYZE ̲ERROR (CC, 1, QEL ̲PROFILE
̲CHECK)(LABEL1)
LABEL 1? - SET PROFILE ̲FLAG=TRUE
END CASE
OK?
END CASE
CASE RETR ̲QEL ̲ATTR.MAINTYPE OF
PLAINDRESS,
ABB ̲PLAINDRESS,
SC ̲PLAINDRESS,
SC ̲COMMENT,
COMMENT,
RELEASE ̲NOTIFICATION,
SYSTEM ̲CATALOGUE ̲DISPLAY? R̲E̲T̲R̲ ̲O̲N̲E̲ ̲I̲N̲S̲P̲E̲C̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲5̲-̲2̲)̲ ̲
ACKNOWLEDGE? R̲E̲T̲R̲ ̲T̲W̲O̲ ̲I̲N̲S̲P̲E̲C̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲5̲-̲3̲)̲
OTHERWISE? V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END RETR COROUTINE LOOP
Figure 4.2.4.4.1.5-1
RETR ̲ONE ̲INSPEC
CASE RETR ̲QEL ̲ATTR.SUBTYPE OF
FOR ̲DISPLAY? R̲E̲T̲R̲ ̲Q̲E̲L̲ ̲I̲N̲V̲E̲S̲T̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲)̲
OTHERWISE? V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.4.4.1.5-2
RETR ̲TWO ̲INSPEC
CASE RETR ̲QEL ̲ATTR. MAINTYPE OF
ONLINE ̲NOTIFICATION MOVE ONLINE ̲RESPONSE TO
RETR ̲OP. CMD
SIGNAL ̲OPSEM (VUS
̲S2,RETR ̲OP): OK
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲R̲E̲T̲R̲ ̲Q̲E̲L̲
̲(̲4̲.̲2̲.̲4̲.̲6̲.̲1̲)̲
O̲F̲F̲L̲I̲N̲E̲ N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲?̲ MOVE OFFLINE RESPONSE
TO RETR OP. CMD
SIGNAL ̲OPSEM (VUS
S2, RETR ̲OP) : OK
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲R̲E̲T̲R̲ ̲Q̲E̲L̲
̲(̲4̲.̲2̲.̲4̲.̲6̲.̲1̲)̲
ERROR ̲ACK? R̲E̲T̲R̲ ̲Q̲E̲L̲ ̲I̲N̲V̲E̲S̲T̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲)̲
OTHERWISE? V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.4.4.1.5-3
4.2.4.4.2 R̲E̲T̲R̲ ̲Q̲E̲L̲ ̲I̲N̲V̲E̲S̲T̲ ̲M̲o̲d̲u̲l̲e̲
4.2.4.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲
The RETR ̲QEL ̲INVEST module inspects the contents of
the flags received in the QEL-attributes.
4.2.4.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RETR ̲QEL ̲INVEST (RETR ̲QEL ̲ATTR: QEL ̲ATTRIBUTES
RETR ̲QEL : QEL ̲REFERENCE)
b) RETR ̲QEL ̲INVEST (R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 pointer to RETR ̲QEL ̲ATTR (DEST)
R2 RETR ̲QEL (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 (DEST)
4.2.4.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) S̲E̲N̲D̲ ̲T̲O̲ ̲M̲D̲C̲O̲
This procedure sends a nondeliverable object to
the MDCO. If the item cannot be sent then the CSF
procedure SEND ̲GARBLE is called.
4.2.4.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SEND PARAMS TYPE (CPS/PBD/001)
RETR ̲OP (4.1.4)
RETR ̲QEL (4.2.4.5.C)
RETR ̲QEL ̲ATTR (4.2.4.5.C)
VUS ̲ERROR (4.1.4.)
PROFILE ̲FLAG (4.2.4.5.C)
VUS ̲S2 (4.1.4)
RETR ̲IDENT (4.1.4)
RETR ̲RESPONSE (4.1.4)
APPEND ̲RESPONSE (4.1.4)
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
TRANSACTION ̲ID. SERIAL ̲NO (4.1.4)
VUS ̲SEND ̲PARAMS (4.1.4)
c )L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
RETR ̲FLAG ̲VALUE ̲TYPE = (OFFLINE ̲RETR,
OFFLINE ̲APPEND,
ONLINE ̲RETR,
ONLINE ̲APPEND)
4.2.4.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The contents of the QEL flags is inspected.
For online retrieval/append it is checked if a new
user is signed on. If so, the received item is treated
as offline retrieval/append.
Online retrieval/append QEL-types are signalled to
UFCO.
Items retrieved for offline append are ent to UMAM.
Offline retrieved items are sent to the Response queue
(VUS ̲ARR, subqueue 2)
RETR ̲QEL ̲INVEST
CASE RETR ̲QEL ̲ATTR. RETR ̲FLAGS OF
OFFLINE ̲RETR? O̲F̲F̲L̲I̲N̲E̲
̲R̲E̲T̲R̲
̲H̲A̲N̲D̲L̲I̲N̲G̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲4̲)̲
OFFLINE ̲APPEND? O̲F̲F̲L̲I̲N̲E̲
̲A̲P̲P̲E̲N̲D̲
̲H̲A̲N̲D̲L̲I̲N̲G̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲5̲)̲
ONLINE ̲RETR? O̲N̲L̲I̲N̲E̲
̲R̲E̲T̲R̲
̲H̲A̲N̲D̲L̲I̲N̲G̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲2̲
ONLINE APPEND? O̲N̲L̲I̲N̲E̲
̲A̲P̲P̲E̲N̲D̲
̲H̲A̲N̲D̲L̲I̲N̲G̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲3̲)̲
OTHERWISE? V̲U̲S̲
̲Q̲U̲E̲U̲E̲
̲E̲R̲R̲O̲R̲
̲(̲G̲I̲V̲E̲
̲U̲P̲)̲
̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.4.4.2.5-1
ONLINE ̲RETR ̲HANDLING
START
RECEIVED TRANS ̲SER ̲NO NE TRANSACTION ̲O.SERIAL ̲NO?
O̲F̲F̲L̲I̲N̲E̲ ̲R̲E̲T̲R̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲4̲)̲
PROFILE ̲FLAG=TRUE? VUS
QUEUE
ERROR
(GIVE
UP)
(4.1.5.1)
MOVE RETR ̲QEL ̲ATTRIBUTES TO UFCO ̲RETR ̲ATTRIBUTES
MOVE RETR ̲RESPONSE TO RETR ̲OP ̲CMD
MOVE RETR ̲QEL TO RETR ̲OP. PARA
SIGNAL ̲OPSEM (VUS.S2, RETR ̲OP):OK
END
Figure 4.2.4.4.2.5-2
ONLINE ̲APPEND ̲HANDLING
START
RECEIVED TRANS ̲SER ̲NO
NE TRANSACTION ̲ID. SERIAL ̲NO? O̲F̲F̲L̲I̲N̲E̲ ̲A̲P̲P̲E̲N̲D̲
̲
H̲A̲N̲D̲L̲I̲N̲G̲
̲(̲4̲.̲2̲.̲4̲.̲4̲.̲2̲.̲5̲-̲5̲)̲
PROFILE ̲FLAG=TRUE? V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲
̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
MOVE RETR ̲QEL ̲ATTR TO UFCO ̲RETR ̲ATTRIBUTES
MOVE RETR ̲QEL TO RETR ̲OP.PARA
MOVE APPEND ̲RESPONSE TO RETR ̲OP.CMD
SIGNAL ̲OPSEM (VUS ̲S2, RETR ̲OP):OK
END
Figure 4.2.4.4.2.5-3
OFFLINE ̲RETR ̲HANDLING
RETR ̲QEL.OBJECT ̲TYPE=BUFFER? SET CP ̲STATUS=FALSE
SET CP ̲STATUS=TRUE
MOVE DATA TO VUS ̲SEND ̲PARAMS
CASE SEND (VUS ̲SEND ̲PARAMS, RETR ̲QEL, RESPQ)
(VUS ̲SEND ̲PARAMS, CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR (CC, 2, QEL ̲PROFILE
̲CHECK,
BLOCKED)
(LABEL
̲2,
LABEL
̲3)
LABEL ̲2?
LABEL ̲3?…02…SEND TO MDCO
END CASE
OK?
END CASE
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲R̲E̲T̲R̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲6̲.̲1̲)̲
Figure 4.2.4.4.2.5-4)
OFFLINE ̲APPEND HANDLING
RETR ̲QEL.OBJECT ̲TYPE=BUFFER? SET CP ̲STATUS=FALSE
SET CP ̲STATUS=TRUE
MOVE DATA TO VUS ̲SEND ̲PARAMS
CASE SEND (VUS ̲SEND ̲PARAMS, RETR ̲QEL, UMAM ̲PREPQ)
(VUS ̲SEND ̲PARAMS, CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC, O)
OK
END CASE
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲R̲E̲T̲R̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲6̲.̲1̲)̲
Figure 4.2.4.4.2.5-5
4.2.4.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲o̲
a) D̲a̲t̲o̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QEL ̲REFERENCE ̲TYPE (CPS/DBD/001)
QEL ̲ATTRIBUTES ̲TYPE (CPS/DBD/001)
b E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲o̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR PROFILE ̲FLAG :BOOLEAN
VAR RETR ̲QEL ̲ATTR :QEL ̲ATTRIBUTES ̲TYPE
VAR RETR ̲QEL :QEL ̲REFERENCE ̲TYPE
INIT PROFILE ̲FLAG =FALSE
4.2.4.6 C̲O̲M̲M̲O̲N̲ ̲S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲
4.2.4.6.1 D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲R̲E̲T̲R̲ ̲Q̲E̲L̲
4.2.4.6.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The DISMANTLE ̲RETR ̲QEL procedure dismantles a QEL.
4.2.4.6.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲s̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
DISMANTLE ̲RETR ̲QEL (RETR ̲QEL ̲ATTR: QEL attribute
RETR ̲QEL : QEL reference)
DISMANTLE ̲RETR ̲QEL (R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲r̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 pointes to RETR ̲QEL ̲ATTR (DEST)
R2 RETR ̲QEL (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0-R7 (DEST)
4.2.4.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) R̲e̲f̲e̲r̲e̲n̲c̲e̲ ̲D̲a̲t̲a̲
RETR ̲QEL ̲ATTR (4.2.4.5.C)
RETR ̲QEL (4.2.4.5.C)
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲o̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.4.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
DISMANTLE ̲RETR ̲QEL
CASE RETR ̲QEL ̲ATTR.OBJECT ̲TYPE OF
VIEW? CASE DISMANTLE ̲VIEW (RETR ̲QEL)
(CC):ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
BUFFER? - CASE DISMANTLE ̲BUFFER(RETR ̲QEL)(CC):ERROR
̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
SINGLE ̲QEL? DISMANTLE (RETR ̲QEL) (CC): OK
OTHERWISE? V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.4.6-1
4.2.4.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.4.7.1 R̲E̲T̲R̲-̲U̲M̲A̲M̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Refer CPS/ICD/009.
4.2.4.7.2 R̲E̲T̲R̲-̲U̲F̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
The following notifications are sent from RETR to UFCO
via operation semaphore VUS ̲S2:
ONLINE ̲NOTIFICATION
OFFLINE ̲NOTIFICATION
RETRIEVAL ̲NOTIFICATION
APPEND ̲NOTIFICATION
4.2.5 U̲s̲e̲r̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲A̲c̲c̲e̲s̲s̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The U̲ser M̲essage A̲ccess M̲onitoring (UMAM) process has
the responsibility for the status collecting and status
generating. Furthermore, UMAM performs the access control
to the preparation database.
4.2.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The following functions are included in this subpackage
(refer figure 4.2.5.1-1):
- collect status
- generate status
- message access control
- error handling
4.2.5.1.1 C̲o̲l̲l̲e̲c̲t̲ ̲S̲t̲a̲t̲u̲s̲
Status update requests are received from VUP in the
Request Queue. The QEL will identify the type of status.
They are:
- delivery message status
- release status
- outgoing message status
- service message status
Fig. 4.2.1.1-1 Functional Specification
4.2.5.1.2 G̲e̲n̲e̲r̲a̲t̲e̲ ̲S̲t̲a̲t̲u̲s̲
Two types of status are generated. They are:
- user requested status
- periodic generated status.
4.2.5.1.2.1 U̲s̲e̲r̲ ̲R̲e̲q̲u̲e̲s̲t̲e̲d̲ ̲S̲t̲a̲t̲u̲s̲
Upon request from a user or operator, a status is generated.
There are four types of status which can be requested:
- outgoing message status
- message release status
- delivery status
- service message status.
Information about the terminal is looked up in the
File Directory. The relevant records are then transferred
from the status file to a temporary CIF and sent to
the requestor. the CIF is then sent to the requestor.
4.2.5.1.2.2 P̲e̲r̲i̲o̲d̲i̲c̲ ̲G̲e̲n̲e̲r̲a̲t̲e̲d̲ ̲S̲t̲a̲t̲u̲s̲
A summary status is generated each day at 00.00 hours
and sent to the supervisor.
The status is generated per terminal/device
When status has been generated for all terminals/devices,
then the status files will be cleared and the file
directories will be reset.
4.2.5.1.3 M̲e̲s̲s̲a̲g̲e̲ ̲A̲c̲c̲e̲s̲s̲-̲C̲o̲n̲t̲r̲o̲l̲
Deletion requests, edit requests and VDV page retrieval
requests inserted by a user or operator are received
in the Request Queue.
a) Deletion
Depending on the message status, the deletion request
is either sent to the supervisor or the referenced
item is deleted from the Preparation File
b) Edit
If the reference message is in a state where it
is available for editing, then the message is sent
to the requesting terminal. If the SEND command
is rejected by QMON due to profile fault, then
the message is deleted and a response message is
returned. If the user does not have access to the
message, then a response message is returned to
the requestor.
c) VDU-page retrieval
If the referenced display name can be found in
the Display table, then a copy of te stored VDU-page
will be sent to the requestor.
4.2.5.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The software structure of UMAM is shown in figure 4.2.5.2-1.
UMAM will wait on reception of a QEL in either the
Command Queue or the Request Queue.
The QEL will identify on of the following events:
- SSC Command
- Timeout
- Status request
- Edit request
- Delete request
- VDV page retrieval
- VDV page storage
- status changes
- status delivery
Each of the events will constitute a main function.
A brief description of each function is given below:
For a detailed description refer 4.2.5.4.17.
Figure 4.2.5.4.1-1
4.2.5.2.1 C̲o̲m̲m̲a̲n̲d̲ ̲Q̲u̲e̲u̲e̲ ̲I̲t̲e̲m̲s̲ ̲(̲1̲.̲0̲)̲
a) S̲S̲C̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲(̲1̲.̲1̲)̲
The commands to be executed are:
- Stop UMAM
b) T̲i̲m̲e̲o̲u̲t̲ ̲E̲v̲e̲n̲t̲s̲(̲1̲.̲2̲)̲
A periodic timeout is received every day at 00.00
hour. A Release, Delivery, Outgoing and Service
Message Status are generated.
4.2.5.2.2 C̲o̲l̲l̲e̲c̲t̲ ̲Q̲u̲e̲u̲e̲ ̲I̲t̲e̲m̲s̲ ̲(̲2̲.̲0̲)̲
a) S̲t̲a̲t̲u̲s̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲ ̲(̲2̲.̲1̲)̲
A Release, Delivery, Outgoing or Service Message
status is generated and returned to the requestor.
b) E̲d̲i̲t̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲ ̲(̲2̲.̲2̲)̲
A message or VDV-page are looked up. If the requestor
has access to the CIF, then the CIF will be returned.
c) D̲e̲l̲e̲t̲e̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲ ̲(̲2̲.̲3̲)̲
The referenced CIF is looked up. If the CIF is
available for deletion, then it is deleted.
d) V̲D̲U̲ ̲P̲a̲g̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲(̲2̲.̲4̲)̲
A VDV-page is looked up. If the requestor has access
to the CIF, then the CIF will be returned.
e) V̲D̲U̲ ̲P̲a̲g̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲(̲2̲.̲5̲)̲
The VDU-page will be stored if the Display name
is recognized.
f) S̲t̲a̲t̲u̲s̲ ̲C̲h̲a̲n̲g̲e̲s̲
The referenced status record will be changed.
g) S̲t̲a̲t̲u̲s̲ ̲U̲p̲d̲a̲t̲i̲n̲g̲
The delivered status record will be included in
the status file.
4.2.5.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
4.2.5.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagrams overleaf show the date flow of UMAM
4.2.5.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The control logic of UMAM is shown in the module
tree refer figure 4.2.5.3-9.
Figure 4.2.5.3-1
Figure 4.2.5.3-2
Figure 4.2.5.3-3
Figure 4.2.5.3-4
Figure 4.2.5.3-5
Figure 4.2.5.3-6
Figure 4.2.5.3-7
Figure 4.2.5.3-8
Figure 4.2.5.3-9
4.2.5.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.5.4.1 U̲M̲A̲M̲ ̲M̲A̲I̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module is the main module of UMAM. The tasks of
the module are to receive input from the queues of
UMAM. The input is validated and the corresponding
procedure is called.
4.2.5.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
N/A (The module is a mainmodule)
4.2.5.4.1.3 ̲M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) CHANGE ̲STATUS ̲FILES
This procedure changes th names of the Delivery,
Release and Outstanding Files and the file directory.
The OLD-files are used when the midnight status
is generated. The CURRENT - files are used to collect
status.
4.2.5.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE refer CPS/DBD/001
QEL ̲REFERENCE refer CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/001
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYP refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲COLQ refer 4.2.5.5
UMAM ̲CMDQ refer 4.2.5.5
QEL ̲ATTR (M) refer 4.2.5.5
QEL1 (M) refer 4.2.5.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR UREF1
VAR UREF2
VAR SYSREF1
VAR SYSREF2
TYPE SUBQ=(DUMMY, SUBQ ̲1, SUBQ ̲2, SUBQ ̲3, SUBQ
̲4, SUBQ ̲5, SUBQ ̲6)
4.2.5.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The QELs received in the Command and Collect queues
are analysed. If an error is found then it is reported
to the SSC.
E̲X̲E̲C̲U̲T̲E̲ ̲S̲T̲A̲R̲T̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲)̲
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, UMAM ̲CMDQ, QEL
̲ATTR, UREF2)
(SYSREF 1, CC):
ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
CASE INIT ̲RECEIVE ̲FIRST ̲QEL (WAIT, UMAM ̲COL Q, QEL
̲ATTR, UREF2)
(SYSREF2,
CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
WAIT LOOP
WAIT ̲NEXT ̲OPERATION ( ) (VREF, SYSREF): OK
E̲X̲E̲C̲U̲T̲E̲ ̲P̲E̲N̲D̲I̲N̲G̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲-̲2̲)̲
END WAIT LOOP
Figure 4.2.5.4.1-1
CASE UREF OF
UREF1? CASE WAIT ̲SYSTEM ̲CALL(SYSREF1)
(QEL ̲ATTR, QEL1, SUBQ, (CC):ERROR
̲OK
ERROR? ̲ ANALYZE ̲ERROR(CC,O)
OK? I̲N̲S̲P̲E̲C̲T̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲3̲)̲
END CASE
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,UMAM
̲CMDQ
QEL ̲ATTR,UREF1)(SYSREF1,CC):ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
ENO CASE
UREF2? CASE WAIT ̲SYSTEM ̲CALL(SYSREF2)
(QEL ̲ATTR,QEL1,SUBQ,CC):ERROR
̲OK
ERROR? ̲ANALYZE ̲ERROR(CC,0)
OK? I̲N̲S̲P̲E̲C̲T̲ ̲C̲O̲L̲Q̲ ̲Q̲E̲L̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲4̲)̲
END CASE
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,UMAM
̲COLQ
QEL ̲ATTR, UREF2)(SYSREF2,CC):ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲.̲1̲)̲
END CASE
Fig. 4.2.5.4.1-2
CASE QEL ̲ATTR.MAINTYPE OF
SSC ̲CMD? CASE QEL ̲ATTR.SUBTYPE OF
STOP? S̲T̲O̲P̲ ̲U̲M̲A̲M̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲5̲)̲
EXIT WAIT LOOP
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
TIMER EVERT? CASE QEL ̲ATTR.SUBTYPE OF
PERIODIC? S̲O̲R̲T̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲)̲
C̲H̲A̲N̲G̲E̲ ̲S̲T̲A̲T̲U̲S̲ ̲F̲I̲L̲E̲S̲
P̲E̲R̲I̲O̲D̲I̲C̲ ̲S̲T̲A̲T̲U̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲8̲)̲
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? U̲Q̲ ̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
Fig. 4.2.5.4.1-3
CASE QEL ̲ATTRR.SUBQUEUE OF
SUBQ ̲1? S̲U̲B̲Q̲ ̲O̲N̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲)̲
SUBQ ̲2? S̲U̲B̲Q̲ ̲T̲W̲O̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲)̲
SUBQ ̲3? S̲U̲B̲Q̲ ̲T̲H̲R̲E̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲5̲)̲
SUBQ ̲4? S̲U̲B̲Q̲ ̲F̲O̲U̲R̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲6̲)̲
SUBQ ̲5? S̲U̲B̲Q̲ ̲F̲I̲V̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲7̲)̲
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲.̲1̲)̲
END CASE
Fig. 4.2.5.4.1-4
4.2.5.4.2 E̲X̲E̲C̲U̲T̲E̲ ̲S̲T̲A̲R̲T̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
TBD
4.2.5.4.3 S̲U̲B̲Q̲ ̲O̲N̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure inspects the content of the QEL's received
in subqueue ̲one of the Collect queue. The following
requests are received:
- edit request
- delete request
- VDU ̲page retrieval.
If the requested CIF is found then it is sent to the
requestor. If the CIF can not be found or the required
function cannot be performed then a response is returned.
This function is repeated until the subqueue is empty.
4.2.5.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUBQ ̲ONE ̲ACTION (QEL: QEL reference type
QEL ̲ATTR : QEL attributes type)
b) SUBQ ̲ONE ̲ACTION(R1,R2,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL1 (DEST)
R2 pointer to QEL ̲ATTR (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 (DEST)
4.2.5.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) C̲h̲e̲c̲k̲ ̲P̲r̲e̲f̲i̲l̲e̲
The access profile of the active CIF is compared
against the profile of the requestor
4.2.5.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
EDIT ̲REQ ̲TYPE refer 4.2.5.5
EDIT ̲ANS ̲TYPE refer 4.2.5.5
STATUS ̲TYPE refer 4.2.5.5
SEND ̲PARAMS ̲TYPE CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SEND ̲PARAMS refer 4.2.5.5
PREP ̲REC refer 4.2.5.5
PREP refer 4.2.5.5
FOUND refer 4.2.5.5
APPEND ADDR refer 4.2.5.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
VAR APP ̲FOUND BOOLEAN
VAR STATUS ̲AREA BOOLEAN
4.2.5.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲ ̲
The SUBTYPE and EDIT ̲REQ ̲TYPE are inspected. The requested
CIF is looked up and made achive. IF the CIF is found
it is checked whether it is available for editing or
not. If the status is identical to Append-completed
then the CIF which shall be appended is sent to the
requester too. If the requested data cannot be found
then a response message is returned to the requestor.
SUBQ ̲ONE ̲ACTION
S̲U̲B̲ ̲Q̲ ̲O̲N̲E̲ ̲Q̲E̲L̲ ̲I̲N̲S̲P̲E̲C̲T̲I̲O̲N̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲2̲)̲
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
REC NEXT LOOP
CASE RECEIVE ̲FIRST ̲QEL(WAIT=FALSE, UMAM ̲COLQ
̲SUB2, UMAM ̲ATTR)
(UMAM ̲ATTR,QEL1,SUBQ,CC):ERROR
̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,1, SUBQUEUE ̲EMPTY):(LA1)
LA1? EXIT REC NEXT LOOP
END CASE
OK? S̲U̲B̲Q̲ ̲O̲N̲E̲ ̲Q̲E̲L̲ ̲I̲N̲S̲P̲E̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲2̲)̲
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
END CASE
END RECNEXT LOOP
Fig. 4.2.5.4.3-1
SUBQ ̲ONE ̲QEL ̲INSPECTION
CASE QEL ̲ATTR.MAINTYPE OF
TEP ̲INTERNAL? CASE QEL ̲ATTR.SUBTYPE OF
EDIT ̲REQ? E̲D̲I̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲3̲)̲
DELETE ̲REQ? D̲E̲L̲E̲T̲E̲ ̲R̲E̲Q̲U̲E̲S̲T̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲4̲)̲
VDU ̲RETR? V̲D̲U̲ ̲P̲A̲G̲E̲ ̲R̲E̲Q̲U̲E̲S̲T̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲7̲)̲
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
Fig. 4.2.5.4.3-2
EDIT REQ
CASE QEL ̲ATTR.FLAG ̲VALUE OF
VDV ̲PAGE? V̲D̲U̲ ̲P̲A̲G̲E̲ ̲L̲O̲O̲K̲U̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲)̲
FOUND EQ TRUE? MOVE DATA TO SEND
̲PARAMS
C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
MOVE NOT ̲FOUND CODE TO SEND ̲PARAMS
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
MSG, COMMENT,
SVC? L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲.̲1̲)̲
FOUND EQ TRUE? (̲C̲H̲E̲C̲K̲ ̲S̲T̲A̲T̲U̲S̲
̲ ̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲4̲)̲
MOVE NOT ̲FOUND CODE TO SEND ̲PARAMS
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OTHERWISE U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
Fig. 4.2.5.4.3-3
STATUS EQ APPEND ̲COMPETE? A̲P̲P̲E̲N̲D̲ ̲A̲C̲T̲I̲O̲N̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲5̲)̲
NOT AVAIABLE FOR EDITING? MOVE NOT ̲AVAIB.
TO: ̲RESEND ̲PARAMS
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
L̲O̲C̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
FOUND EQ TRUE? MOVE FOUND DATA TO SEND
̲PARAMS
C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
SET SATUS = DELETED
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲3̲)̲
CLEAR STATUS RECORD
PROP EQ TRUE? S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲4̲.̲6̲.̲2̲4̲)̲
MOVE NOT ̲FOUND TO SEND ̲PARAMS
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
Fig. 4.2.5.4.3-4
PREP EQ TRUE? SET STATUS ̲AREA = TRUE
SET STATUS ̲AREA = FALSE
MOVE RECORD ̲ADDRESS TO APPEND ̲ADDR
L̲O̲O̲K̲U̲P̲ ̲A̲P̲P̲E̲N̲D̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲6̲)̲
L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
FOUND? - APP ̲FOUND EQ TRUE? - MOVE APP
̲COM TO SEND ̲PARAM
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲3̲.̲5̲.̲3̲)̲
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
MOVE APP ̲NOT ̲COM TO SEND PARAMS
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
APP ̲FOUND EQ TRUE? U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
SEA STATUS = DELETED
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲
STATUS ̲AREA EQ TRUE? PROP EQ TRUE?
EXPAND EQ TRUE? I̲N̲P̲U̲T̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲2̲)̲
I̲N̲P̲U̲T̲ ̲E̲X̲P̲A̲N̲D̲ ̲A̲R̲E̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲3̲)̲
CLEAR STATUS REC
PREP EQ TRUE? S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)̲
Fig. 4.2.5.4.3-5
L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
APP ̲FOUND = FALSE FOUND EQ TRUE? APP
̲FOUND = TRUE
U̲N̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲
̲C̲I̲F̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲8̲)̲
APP ̲FOUND = FALSE
CLEAR STATUS RECORD
PREP EQ TRUE? S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲
̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲.̲4̲)̲
Fig. 4.2.5.4.3-6
VDU ̲PAGE ̲REQUEST
V̲D̲U̲ ̲P̲A̲G̲E̲ ̲L̲O̲O̲K̲U̲P̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲)̲
FOUND EQ TRUE? MOVE DATA TO SEND ̲PARAMS
C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲
S̲E̲N̲D̲ ̲I̲T̲E̲M̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
MOVE NOT ̲FOUND DATA TO SEND ̲PARAMS
S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
Fig. 4.2.5.4.3-7
4.2.5.4.4 S̲U̲B̲Q̲ ̲T̲W̲O̲ ̲A̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure impacts the content of
the QELs received in the PREP-queue.
The input in the queue are:
- status changes
Status concerning released messages will
be sent in a buffer while other status
types will be sent in a QEL.
Final status types will be stored in the
Intermediate File while other status types
will be stored in the Preparation File.
4.2.5.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUBQ ̲TWO ̲ACTION (QEL : reference type
QEL ̲ATTR : QEL attributes
type)
b) SUBQ ̲TWO ̲ACTION(R1,R2,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL1
(DEST)
R2 pointer to QEL ̲ATTR
(DEST)
R6 LINK
(DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7
(DEST)
4.2.5.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
MAINTYPE refer CPS/DBD/001
SUBTYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
STATUS ̲TYPE refer 4.2.5.5
STATUS ̲STATE ̲TYPE refer 4.2.5.5
REL ̲BUF ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲
PREP ̲REC refer 4.2.5.3
UMAM ̲CIF ̲ATTR(m) refer 4.2.5.3
FOUND (m) refer 4.2.5.3
UMAM ̲VIEW ̲NAME (m) refer 4.2.5.3
PREP refer 4.2.5.3
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE REL ̲BUF : REL ̲BUF ̲TYPE
4.2.5.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲ ̲
The SUBTYPE, STATUS ̲TYPE and STATUS ̲STATE are inspected.
Depending on the combination of the variables different
actions are taken. All status changes except "message-
released are reported in a QEL. The "message-released"
information is delivered in a buffer. Final entries
are stored in the Intermediate File while other entries
are stored in the Preparation File.
SUBQ ̲TWO ̲ACTION
S̲U̲B̲Q̲ ̲T̲W̲O̲ ̲Q̲E̲L̲ ̲I̲N̲S̲P̲E̲C̲T̲I̲O̲N̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲2̲)̲
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲
REC ̲NEXT LOOP
CASE RECEIVE ̲FIRST ̲QEL(WAIT=FALSE,UMAM ̲COL ̲SUB2,
UMAM ̲ATTR)
(UMAM ̲ATTR,QEL1, SUBQ, CC):
ERROR ̲OK
ERROR? - CASE ANALYZE ̲ERROR(CC, 1, QUEUE ̲EMPTY):(LA2)
LA2? - EXIT REC NEXT LOOP
END CASE
OK? - S̲U̲B̲Q̲ ̲T̲W̲O̲ ̲Q̲E̲L̲ ̲I̲N̲S̲P̲E̲C̲T̲I̲O̲N̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲2̲
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
END CASE
END REC NEXT LOOP
FIG. 4.2.5.4.4-1
SUBQ TWO QEL INSPECTION
CASE QEL ̲ATTR. MAINTYPE OF
PLAINDRESS, PLAINDRESS ̲DATA, PLAINDRESS ̲SERVICE,
PLAINDRESS ̲ABB ̲SERVICE, ABB ̲SERVICE,
COMMENT? - CASE QEL ̲ATTR SUBTYPE OF
DEFERED/SUBSPENDED- O̲U̲T̲ ̲S̲T̲A̲ ̲U̲P̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲4̲)̲
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
TEP ̲INT? - CASE QEL ̲ATTR.SUBTYPE OF
STATUS ̲CHANGE? - C̲H̲A̲N̲G̲E̲ ̲I̲N̲V̲E̲S̲T̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲3̲)̲
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? - V̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲
END CASE
FIG. 4.2.5.4.4-2
CHANGE INVEST
CASE STATUS ̲TYPE OF
RELEASED? - R̲E̲L̲ ̲S̲T̲A̲ ̲U̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲6̲)̲
APPEND ̲COMPLETED? - L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? - CHANGE
STATUS
S̲E̲N̲D̲
̲R̲E̲S̲P̲O̲N̲S̲E̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
I̲N̲C̲L̲U̲D̲E̲
̲I̲N̲
̲P̲R̲E̲P̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲7̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
APPEND ̲ABNORMAL? - L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? - CHANGE STATUS
S̲E̲N̲D̲
̲R̲E̲S̲P̲O̲N̲S̲E̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
FIG.4.2.5.4.4-3
OUT STA UP
CASE GET ̲VIEW ̲ATTRIBUTES(UMAM ̲CIF ̲ATTR, QEL1)
(CC):ERROR
̲OK
ERROR? - ANALYZE ̲ERROR(CC,O)
OK?
END CASE
CASE QEL ̲ATTR.FLAG ̲VALUE 0F
FIRST ̲FINAL? - I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
FIRST ̲NOTFINAL? - I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲P̲R̲E̲P̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲7̲)̲
NOTFIRST ̲FINAL? - L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)
FOUND EQ TRUE? - I̲N̲C̲L̲U̲D̲E̲
̲I̲N̲ ̲I̲N̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
E̲X̲C̲L̲U̲D̲E̲
̲F̲R̲O̲M̲
̲P̲R̲E̲P̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲7̲)̲
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
NOTFIRST ̲NOTFINAL? - R̲E̲C̲R̲G̲ ̲S̲T̲A̲T̲U̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲5̲)̲
O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲ ̲-̲ ̲U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
FIG. 4.2.5.4.4-4
REORG STATUS
STATUS EQ DEF/REJ ̲RELEASE?
L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? - C̲H̲A̲N̲G̲E̲ ̲V̲I̲E̲W̲ ̲N̲A̲M̲E̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲2̲)̲
INCLUDE IN INTA (4.2.5.4.15)
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲P̲R̲E̲P̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲7̲)
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? - C̲H̲A̲N̲G̲E̲ ̲V̲I̲E̲W̲ ̲N̲A̲M̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲7̲)̲
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲P̲R̲E̲P̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲7̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
F̲I̲G̲.̲ ̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲5̲
REL STA UP
EQUIVALENCE(LITTLE ̲BUF(1), REL ̲BUF: REL ̲BUF ̲TYPE)
CASE READ ̲BUFFER(QEL1, LITTLE ̲BUF(1), SIZE(REL ̲BUF),
REL ̲BUF ̲OFFSET)
(SIZE, CC): ERROR ̲OK
ERROR? - CASE ANALYZE ̲ERROR(CC, 1, SIZE ̲ERROR):
(LA1)
LA1? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OK? - L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲
FOUND EQ TRUE? - I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
E̲X̲C̲L̲U̲D̲E̲ ̲F̲R̲O̲M̲ ̲P̲R̲E̲P̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲7̲)̲
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
FIG. 4.2.5.4.4-6
L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
FOUND EQ TRUE? - U̲N̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲S̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲8̲)̲
CASE LOCK ̲VIEW(QEL1)(VIEW ̲NAME,CC):ERROR ̲OK
ERROR? - ANALYZE-ERROR(CC, O)
OK? - UPDATE STATUS RECORD
END CASE
PREP EQ TRUE? - S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
S̲T̲O̲R̲E̲ ̲E̲ ̲x̲ ̲P̲A̲N̲D̲ ̲A̲R̲E̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)̲
F̲I̲G̲.̲ ̲4̲.̲2̲.̲5̲.̲4̲.̲4̲-̲7̲
4.2.5.4.5 S̲U̲B̲Q̲ ̲T̲H̲R̲E̲E̲ ̲A̲c̲t̲i̲o̲n̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to store VDU-pages. If
the DISPLAY ̲NAME is not recognised then the message
will be sent to the MDCO.
4.2.5.4.5.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUBQ ̲THREE ̲ACTION(QEL:QEL reference type
QEL ̲ATTR: QEL attributes type
b) SUBQ ̲THREE ̲ACTION(R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲r̲r̲e̲c̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL 1 (DEST)
R2 pointer to QEL ̲ATTR (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.5.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲-̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
TABLE ̲TYPE refer CPS/DBD/001
VIEW ̲NAME ̲TYPE refer CPS/DBD/001
TMP ̲UPDATE ̲REC ̲TYPE refer CPS/DBD/001
DISP ̲NAME ̲TYPE refer CPS/DBD/001
FIELD LIST ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲TABLE ̲REC refer 4.2.5.5
FOUND refer 4.2.5.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE PAS ̲VIEW ̲NAME VIEW ̲NAME ̲TYPE
TYPE DISP ̲NAME DISP ̲NAME ̲TYPE
TYPE UCIF ̲LIST FIELD ̲LIST ̲TYPE
TYPE UNAM ̲TABLE ̲UPDATE ̲REC TMD UPDATE REC TYPE
CONST DISP ̲ADDR =
CONST DISP ̲LENGTH = SIZE(DISP ̲NAME ̲
4.2.5.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The input from the queue is analysed. If the Display
Name is known by the system (validated via TMP) then
the new Display NAME will be stored instead of the
old name. If the name is not recognised then the CIF
will be sent to the MDCO.
SUBQ ̲THREE ̲ACTION
CASE ̲QEL ̲ATTR.MAINTYPE OF
VDU ̲PAGE? - CASE QEL ̲ATTR.SUBTYPE OF
FOR STORAGE? - G̲E̲T̲ ̲D̲I̲S̲P̲ ̲N̲A̲M̲E̲(̲4̲2̲5̲4̲5̲-̲2̲)̲
C̲H̲A̲N̲G̲E̲
̲D̲I̲S̲P̲ ̲N̲A̲M̲E̲(̲4̲2̲5̲4̲5̲-̲3̲)̲
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲
END CASE
OTHERWISE? - V̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
FIG. 4.2.5.4.5-1
GET DISP NAME
EQUIVALENCE(LITTLE ̲BUF(1), DISP ̲NAME: DISP:̲NAME ̲TYPE)
CASE OPEN ̲VIEW(QEL1)(CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
EQ (LITTLEBUFFER(20), UCIF ̲LIST:FIELD ̲LIST ̲TYPE
INSERT DISP ̲ADDR + DISP ̲LENGTH IN UCIF ̲LIST
CASE READ ̲VIEW(DISP ̲LENGTH, UCIF ̲LIST, QEL1, DISP
̲BUF)
(CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC, 0
OK?
END CASE
…02…CASE CLOSE ̲VIEW(QEL1)(CC):ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
FIG. 4.2.5.4.5-2
MOVE DISPLAY ̲TABLE ̲ID and DISP ̲NAME TO UMAM ̲TABLE
̲REC
CASE TMP ̲SEARCH(DISPLAY ̲TABLE, DISP ̲NAME)
(PAS ̲VIEW ̲NAME, CC): ERROR ̲OK
ERROR? ̲ CASE ANALYZE ERROR(CC,1, NOT ̲FOUND)(LA9)
LA9? - SET FOUND = FALSE
END CASE
OK? - SET FOUND = TRUE
END CASE
FOUND EQ FALSE? - S̲E̲N̲D̲ ̲C̲I̲F̲ ̲T̲O̲ ̲M̲D̲C̲O̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲0̲)̲
L̲O̲C̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲(̲ ̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
FOUND EQ FALSE?
U̲N̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲8̲)̲
CASE LOCK ̲VIEW(QEL 1)
(VIEW ̲NAME, CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
CASE TMP ̲UPDATE (DISPLAY ̲TABLE, DISP ̲NAME, VIEW ̲NAME)
(CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
FIG. 4.2.5.4.5-3
4.2.5.4.6 S̲U̲B̲Q̲ ̲F̲O̲U̲R̲ ̲A̲C̲T̲I̲O̲N̲ ̲M̲O̲D̲U̲L̲E̲
4.2.5.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to validate the requests
received in subqueue four.
The following status requests are received
- outgoing message status
- release message status
- delivery status
- service message status
- periodic status
4.2.5.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUBQ ̲FOUR ̲ACTION(QEL: QEL reference type
QEL ̲ATTR: QEL attributes type)
b) SUBQ ̲FORU ̲ACTION (R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QE 1 (DEST)
R2 pointer to QEL ̲ATTR (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R1 - R7 (DEST)
4.2.5.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.6.6 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
STATUS ̲IDENT ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲e̲
REQUIRED ̲STA(m) refer 4.2.5.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.5.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
SUBQ ̲FOUR ̲ACTION
CASE QEL ̲ATTR.MAINTYPE OF
TEP ̲INT? ̲CASE QEL ̲ATTR.SUBTYPE OF
STATUS REC? - SET REQUIRED ̲STA
= NORMAL
CASE QEL ̲ATTR. FLAG VALUE OF
OUTGOING ? - G̲E̲N̲ ̲O̲U̲T̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲)̲
RELEASE ? - G̲E̲N̲ ̲R̲E̲C̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲9̲)̲
DELIVERY ? - G̲E̲N̲ ̲D̲E̲L̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲0̲)̲
SERVICE ? - G̲E̲N̲ ̲S̲V̲C̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲4̲.̲5̲.̲1̲3̲)̲
PERIODIC ? - P̲E̲R̲I̲O̲D̲I̲C̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲4̲.̲5̲.̲8̲)̲
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
FIG. 4.2.5.4.6
4.2.5.4.4.7 S̲U̲B̲Q̲ ̲F̲I̲V̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to initiate a delivery
status updating.
4.2.5.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUBQ ̲FIVE ̲ACTION (QEL : QEL reference type
QEL ̲ATTR: QEL attributes type)
b) SUBQ ̲FIVE ̲ACTION (R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL1 (DEST)
R2 pointer to QEL ̲ATTR (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R1 - R7 (DEST)
4.2.5.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/SDS/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE -"-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
DELIVERY ̲BUFFER ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE DEL ̲BUF: DELIVERY ̲BUFFER ̲TYPE
4.2.5.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
SUBQ FIVE ACTION
EQUIVALENCE(LITTLE ̲BUF(1), OEL ̲BUF: DELIVERY ̲BUFFER
̲TYPE)
CASE QEL ̲ATTR.MAINTYPE of
TEP ̲INT? - CASE QEL ̲ATTR. SUBTYPE OF
STATUS ̲UP? - D̲E̲L̲ ̲S̲T̲A̲ ̲U̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲7̲-̲2̲)̲
OTHERWISE? ̲ U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲
END CASE
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
U̲M̲A̲N̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
FIG. 4.2.5.4.7-1
DEL ̲STA ̲UP
EQUIVALENCE(LITTLE ̲BUF(1), DELIVERY ̲BUF: DEL ̲BUF ̲TYPE
CASE READ ̲BUFFER(QEL1, DELIVERY ̲BUFFER, DEL ̲BUF ̲SIZE,
1)
(SIZE, CC): ERROR ̲OK
ERROR?- CASE ANALYZE ̲ERROR(CC, 1, SIZE ̲ERROR): (LA8)
LA8? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OK? - I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
END CASE
FIG. 4.2.5.4.7-2
4.2.5.4.8 P̲E̲R̲I̲O̲D̲I̲C̲ ̲S̲T̲A̲T̲U̲S̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to generate a periodic
status.
If the received designator in a terminal designator
then the following status will be generated:
- service message status
- release message status
- delivery status
- outgoing message status
If the designator in a device desigantor then a delivery
status is generated.
4.2.5.4.8.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) PERIODIC ̲STATUS(QEL: QEL reference type
QEL ̲ATTR: QEL attributes type
b) PERIODIC ̲STATUS (R1, R2, R6
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL (KEPT)
R2 pointer to QEL ̲ATTR (KEPT)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R3 - R7 (DEST)
4.2.5.4.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.8.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE -"-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
DESIGNATOR ̲TYPE -"-
TABLE ̲TYPE -"-
TERMINAL ̲PROFILE ̲TYPE -"-
DEVICE ̲PROFILE ̲TYPE -"-
REQ ̲DIR ̲TYPE -"-
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲e̲
UMAM ̲TABLE ̲REC(m) refer 4.2.5.5
FILE ̲DIRECTORY(m) -"-
NEXT ̲LTD (m) -"-
LDO ̲NO -"-
REQUIRED ̲STA(m) -"-
c) L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲
TYPE UMAM ̲TERMINAL ̲PROFILE TERMINAL ̲PROFILE ̲TYPE
TYPE UMAM DEVICE ̲PROFILE DEVICE ̲PROFILE ̲TYPE
4.2.5.4.8.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This procedure generates a set of status CIF's for
a terminal/deivce.
If the terminal/device is not connected and the status
count is equal zero then no status will be generated.
PERIOCID STATUS
SET REQUIRED ̲STA = MIDNIGHT
I̲N̲P̲U̲T̲ ̲F̲I̲L̲E̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲Y̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲5̲)̲
GET FILE ̲DIRECTORY.NEXT ̲LTD
LOOP
NEXT ̲LTD GT NO ̲OF ̲VDUS? - G̲E̲N̲ ̲D̲E̲V̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲8̲-̲2̲)̲-
CEXIT LOOP
CASE TMP ̲SEARCH(TERMINAL ̲PROFILE, SEARCH ̲LTD)(CC):
ERROR ̲OK
ERROR? -ANALYZE ̲ERROR(CC, C)
OK?
END CASE
BLOCKED? - STATUS ̲COUNT EQ 0?
SVC CAPABILITY?
SVC ̲COUNT NE O? - G̲E̲N̲ ̲S̲V̲C̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲3̲)̲
G̲E̲N̲ ̲R̲E̲L̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲9̲)̲
G̲E̲N̲ ̲D̲E̲L̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲0̲)̲
G̲E̲N̲ ̲O̲U̲T̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲)̲
E̲X̲I̲T̲ ̲L̲O̲O̲P̲
INCREMENT NEXT-LTD
END LOOP
INCREMENT NEXT
S̲E̲A̲R̲C̲H̲ LTD
NEXT ̲LTD LE(NO ̲OF ̲VDUS)+(NO ̲OF ̲MTP ̲ROPS)+(NO ̲OF LTPs)?
SET NEXT ̲LTD = 1
S̲T̲O̲R̲E̲ ̲F̲I̲L̲E̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲Y̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲8̲)̲
FIG. 4.2.5.4.8-1
GEN ̲DEVICE ̲STA
DEV LOOP
LDD ̲NO = NEXT ̲LTD - NO ̲OF ̲VDUS
CASE TMP ̲SEARCH(DEVICE ̲PROFILE, LDD ̲NO)(CC):ERROR
̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
BLOCKED? - DEL ̲STA ̲COUNT EQ O?
G̲E̲N̲ ̲D̲E̲L̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲0̲)̲
EXIT DEV LOOP
NEXT ̲LTD NE NO ̲OF ̲VOUS + NO ̲OF ̲MTP ̲ROPS + NO ̲OF
̲LTPS?
EXIT DEV LOOP
INCREMENT NEXT ̲LTD
END DEV LOOP
FIG. 4.2.5.4.8-2
4.2.5.4.9 G̲E̲N̲ ̲R̲E̲L̲ ̲S̲T̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The task of the GEN ̲REL ̲STA module is to generate a
Release Message status. The status records stored in
the Intermediate File and the Release File are read
and sorted.
4.2.5.4.9.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GEN ̲REL ̲STA(QEL : QEL reference type
QEL ̲ATTR: QEL attributes type
NEXT ̲LTD: designator type)
b) GEN ̲REL ̲STA (R1, R2, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s
R1 QEL1 (KEPT)
R2 pointer to QEL ̲ATTR (KEPT)
R3 NEXT ̲LTD (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R3 - R7 (DEST)
4.2.5.4.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.9.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/DBD/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE -"-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
STATUS ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲FILE ̲ADDR (m) refer 4.2.5.5
UMAM ̲BLE (m) -"-
UCIF ̲LIST (m) -"-
STA ̲ADM (m) -"-
SEARCH ̲LTD -"-
FILE ̲DIRECTORY (m) -"-
REL ̲FILE ̲ID -"-
SORT -"-
OLD ̲REST (m) -".
NEW ̲REST (m) -"-
SORT ̲COUNT (m) -"-
TRANS ̲COUNT (m) -"-
NO ̲OF ̲INTA ̲REC -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
CONST MAX ̲REL ̲REC =
4.2.5.4.9.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module generates a Release Message status. If
the Release File is used then the status records are
read and sorted.
The Intermediate File is read and the status records
are sorted.
Upon completion the generated status is sent either
to a VDU or to a printer.
GEN ̲REL ̲STA
C̲R̲E̲A̲T̲E̲/̲O̲P̲E̲N̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲5̲)̲
INT ̲CHANGES GT 0? - S̲T̲O̲R̲E̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)̲
PREP CHANGES GT 0 - S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
EQUIVALENCE(LITTLE ̲BUF(1), UCIF ̲LIST: FIELD ̲LIST ̲TYPE)
EQUIVALENCE(LITTLE ̲BUF(14 SIZE(FIELD ̲LIST ̲TYPE),
STA ̲ADM: STA ̲ADM ̲TYPE)
C̲O̲N̲V̲E̲R̲T̲/̲S̲T̲O̲R̲E̲ ̲L̲T̲D̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲5̲)̲
SET STA ̲ADM.COUNTERS = 0
SET U ̲CIF ̲LIST.OFFSET = 0
SET U ̲CIF ̲LIST.LENGTH = 0
I̲N̲P̲U̲T̲ ̲F̲I̲L̲E̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲Y̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)̲
LTD.REL COUNT EQ 0?
MOVE REL ̲COUNT TO OLD ̲RESET
R̲E̲A̲D̲ ̲R̲E̲L̲ ̲S̲T̲A̲ ̲F̲I̲L̲E̲(̲4̲.̲2̲.̲5̲.̲4̲.̲9̲-̲2̲)̲
I̲N̲P̲U̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲9̲)̲
MOVE NO ̲OF ̲INTA ̲REC TO TRANS ̲COUNT
S̲O̲R̲T̲ ̲R̲E̲L̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲9̲-̲3̲)̲
STATUS ̲REQ EQ MIDNIGHT? - C̲L̲O̲S̲E̲/̲R̲E̲A̲D̲ ̲M̲I̲D̲N̲I̲G̲H̲T̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲9̲)̲
C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲ ̲(̲5̲.̲2̲.̲5̲.̲6̲.̲6̲)̲
FIG. 4.2.5.4.9-1
UMAM ̲OLE.ADDRESS ̲BIG ̲BUFFER(1)
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = (LTD-1) * REL ̲AREA ̲SIZE
LOOP
OLD ̲REST LT MAX ̲REL ̲REC? - MOVE OLD ̲REST TO TRANS
̲COUNT
MOVE MAX ̲REL ̲REC TO TRANS ̲COUNT
BUFFER ̲SIZE = SIZE(REL ̲REC) * TRANS ̲COUNT
UMAM ̲FILE ̲ADDR.BYTE.COUNT = BUFFER ̲SIZE
UMAM ̲BLE.BYTE ̲SIZE = BUFFER ̲SIZE
CASE READBYTES(REL ̲FILE ̲ID, UMAM ̲FILE ̲ADDR, UMAM
̲BLE)
(UMAM ̲FILE ̲ADDR, CC) : ERROR ̲OK
ERROR? - ANALYZE - ERROR(CC, 0)
OK? - PREP = INT = FALSE
END CASE
ADD UMAM ̲FILE ̲ADDR.BYTE ̲COUNT TO UMAM ̲FILE ̲ADDR.FIRST
̲BYTE
S̲O̲R̲T̲ ̲R̲E̲L̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲9̲-̲3̲)̲
MOVE OLD ̲REST- TRANS ̲COUNT TO NEW ̲REST
NEW ̲REST EQ 0? - EXIT LOOP
MOVE NEW ̲REST TO OLD ̲REST
END LOOP
FIG. 4.2.5.4.9-2
SET SORT ̲COUNT = 1
SET SEARCH ̲ONE = MSG ̲RELEASED
SET SEARCH ̲TWO = DUMMY
SET UCF ̲LIST(F1).LENGTH = SIZE(STA ̲ADM)
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = REJECTED ̲RELEASE
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = DEFERRED ̲RELEASE
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SORT ̲COUNT EQ 1?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
FIG. 4.2.5.4.9-3
4.2.5.4.10 G̲E̲N̲ ̲D̲E̲L̲ ̲S̲T̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The task of the GEN ̲REL ̲STA module is to generate a
Delivery status. The status records stored in the Intermediate
File and the Delivery File are read and sorted.
4.2.5.4.10.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GEN ̲DEL ̲STA(QEL : QEL reference type
(QEL ̲ATTR: QEL attributes type
NEXT ̲LTD: designator type)
b) GEN ̲DEL ̲STA (R1, R2, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s
R1 QEL1 (KEPT)
R2 pointer to QEL ̲ATTR (KEPT)
R3 NEXT ̲LTD (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R3 - R7 (DEST)
4.2.5.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.10.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MAINTYPE refer CPS/SDS/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE "-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
STATUS ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲FILE ̲ADDR (m) refer 4.2.5.5
UMAM ̲BLE (m) -"-
UCIF ̲LIST (m) -"-
STA ̲ADM (m) -"-
SEARCH ̲LTD -"-
FILE ̲DIRECTORY (m) -"-
REL ̲FILE ̲ID -"-
SORT -"-
OLD ̲REST (m) -".
NEW ̲REST (m) -"-
SORT ̲COUNT (m) -"-
TRANS ̲COUNT (m) -"-
NO ̲OF ̲INTA ̲REC -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
CONST MAX ̲DEL ̲REC =
4.2.5.4.10.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module generates a Delivery Message status. If
the Delivery File is used then the status records are
read and sorted.
The Intermediate File is read and the status records
are sorted.
Upon completion the generated status is sent either
to a VDU or to a printer.
GEN ̲DEL ̲STA
C̲R̲E̲A̲T̲E̲/̲O̲P̲E̲N̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲5̲)̲
INT ̲CHANGES GT 0? - S̲T̲O̲R̲E̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)̲
PREP ̲CHANGES GT 0? - S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
EQUIVALENCE(LITTLE ̲BUF (1), UCIF ̲LIST: FIELD ̲LIST ̲TYPE)
EQUIVALENCE(LITTLE ̲BUF (1 + SIZE(FIELD ̲LIST ̲TYPE)),
STA ̲ADM: STA ̲ADM ̲TYPE)
C̲O̲N̲V̲E̲R̲T̲/̲S̲T̲O̲R̲E̲ ̲L̲T̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲5̲)̲
SET STA ̲ADM.COUNTERS = 0
SET UCIF ̲LIST.OFF SET = 0
SET UCIF ̲LIST.LENGTH = 0
I̲N̲P̲U̲T̲ ̲F̲I̲L̲E̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲Y̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)̲
LTD.DEL ̲COUNT EQ 0?
MOVE DEL ̲COUNT TO OLD ̲REST
R̲E̲A̲D̲ ̲D̲E̲L̲ ̲S̲T̲A̲ ̲F̲I̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲0̲-̲2̲)̲
I̲N̲P̲U̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲9̲)̲
MOVE ̲NO ̲OF ̲INTA ̲REC TO TRANS ̲COUNT
S̲O̲R̲T̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲-̲3̲)̲
STATUS ̲REQ EQ MIDNIGHT? - C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲M̲I̲D̲N̲I̲G̲H̲T̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲9̲)̲
C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲6̲)̲
FIG. 4.2.5.4.10-1
READ ̲DEL ̲STA ̲FILE
STORE AREA = UMAM ̲BLE.ADDRESS = BIG ̲BUFFER(1)
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = (LTD-1) * DEL ̲AREA ̲SIZE
LOOP
OLD ̲REST LT MAX ̲DEL ̲REC? - MOVE OLD ̲REST TO TRANS
̲COUNT
MOVE MAX ̲DEL ̲REC TO TRANS ̲COUNT
STORE ̲AREA ̲SIZE = SIZE(DEL ̲REC) * TRANS ̲COUNT
UMAM ̲FILE ̲ADDR.BYTE ̲COUNT = STORE-AREA ̲SIZE
UMAM ̲BLE.BYTE ̲SIZE = STORE ̲AREA ̲SIZE
CASE READBYTES(DELIVERY ̲FILE.ID, UMAM ̲FILE ̲ADDR,
UMAM ̲BLE)
(UMAM ̲FILE ̲ADDR, CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC, 0)
OK? - SET PREP = INT = FALSE
END CASE
ADD UMAM ̲FILE ̲ADDR.BYTE ̲COUNT TO UMAM ̲FILE ̲ADDR.FIRST
̲BYTE
ADD TRANS ̲COUNT TO ADM ̲FIELD.COUNT
MOVE STORE ̲AREA ̲SIZE TO STA ̲FIELD ̲LIST.LENGTH
CASE WRITE ̲VIEW(STORE ̲AREA SIZE, STA ̲FIELD ̲LIST,
CREATE ̲QEL,
STORE ̲AREA (CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
END CASE
SET UCIF ̲LIST.LENGTH = 0
MOVE OLD ̲REST-TRANS ̲COUNT TO NEW ̲REST
NEW ̲REST EQ 0? - EXIT LOOP
MOVE NEW ̲REST TO OLD ̲REST
END LOOP
FIG. 4.2.5.4.10-2
SET SORT ̲COUNT = 1
SET SEARCH ̲ONE = MSG ̲RELEASED
SET SEARCH ̲TWO = DUMMY
SET UCIF ̲LIST(F1) = SIZE(STA ̲ADM)
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
4.2.5.4.11 G̲E̲N̲ ̲O̲U̲T̲ ̲S̲T̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The task of the GEN ̲OUT ̲STA module is to generate a
Outgoing Message status. The status records stored
in the Outgoing File, Intermediate File and the Preparation
File are read and sorted.
4.2.5.4.11.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GEN ̲OUT ̲STA(QEL : QEL reference type
(QEL ̲ATTR: QEL attributes type
NEXT ̲LTD: designator type)
b) GEN ̲OUT ̲STA (R1, R2, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s
R1 QEL 1 (KEPT)
R2 pointer to QEL ̲ATTR (KEPT)
R3 NEXT ̲LTD (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R3 - R7 (DEST)
4.2.5.4.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.11.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) Data References
MAIN TYPE refer CPS/SDS/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE -"-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
STATUS ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲FILE ̲ADDR (m) refer 4.2.5.5
UMAM ̲BLE (m) -"-
UCIF ̲LIST (m) -"-
STA ̲ADM (m) -"-
SEARCH ̲LTD -"-
FILE ̲DIRECTORY (m) -"-
REL ̲FILE ̲ID -"-
SORT -"-
OLD ̲REST (m) -".
NEW ̲REST (m) -"-
SORT ̲COUNT (m) -"-
TRANS ̲COUNT (m) -"-
NO ̲OF ̲INTA ̲REC -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
CONST MAX ̲OUT ̲REC =
4.2.5.4.11.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module generates a Outgoing Message status. If
the Outgoing File is used then the status records are
read and sorted.
The Intermediate File and the Preparation File are
read and the status records are sorted.
Upon completion the generated status is sent either
to a VDU or to a printer.
C̲R̲E̲A̲T̲E̲/̲O̲P̲E̲N̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲(̲4̲.̲2̲.̲5̲.̲6̲.̲5̲)̲
INT ̲CHANGES GT O? - S̲T̲O̲R̲E̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)̲
PREP ̲CHANGES GT O? - S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)̲
EQUIVALENCE(LITTLE ̲BUF(1), STA ̲FIELD ̲LIST: FIELD ̲LIST
̲TYPE
EQUIVALENCE(LITTLE ̲BUF(1+SIZE(STA ̲FIELD ̲LIST))
STA ̲ADM: STA ̲ADM ̲TYPE)
C̲O̲N̲V̲E̲R̲T̲/̲S̲T̲O̲R̲E̲ ̲L̲T̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲5̲)̲
SET STA ̲ADM.COUNTERS = 0
SET STA ̲FIELD ̲LIST.OFFSET = 0
SET STA ̲FIELD ̲LIST.LENGTH = 0
I̲N̲P̲U̲T̲ ̲F̲I̲L̲E̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲Y̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)̲
LTD.OUT ̲COUNT EQ 0?
MOVE OUT ̲COUNT TO OLD ̲REST
R̲E̲A̲D̲ ̲O̲U̲T̲ ̲S̲T̲A̲ ̲F̲I̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲-̲2̲)̲
I̲N̲P̲U̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲9̲)̲
MOVE NO ̲OF ̲INTA ̲REC TO TRANS ̲COUNT
S̲O̲R̲T̲ ̲O̲U̲T̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲-̲3̲)̲
I̲N̲P̲U̲T̲ ̲P̲R̲E̲P̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲7̲)̲
S̲O̲R̲T̲ ̲P̲R̲E̲P̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲-̲4̲)̲
STATUS ̲REQ EQ MIDNIGHT? - C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲M̲I̲D̲N̲I̲G̲H̲T̲ ̲S̲T̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲9̲)̲
C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲6̲)̲
FIG. 4.2.5.4.11-1
READ ̲OUT ̲SIZE ̲FILE
UMAM ̲BLE. ADDRESS = BIG ̲BUFFER(1)
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = (LTD-1) * OUT ̲AREA ̲SIZE
LOOP
OLD ̲REST LT MAX ̲OUT REC? - MOVE OLD ̲REST TO TRANS
̲COUNT
MOVE MAX ̲OUT ̲REC TO TRANS ̲COUNT
BUFFER ̲SIZE = SIZE (OUT ̲REC) * TRANS ̲COUNT
UMAM ̲FILE ̲ADDR.BYTE ̲COUNT = BUFFER ̲SIZE
UMAM ̲BLE.BYTE ̲SIZE = BUFFER ̲SIZE
CASE READBYTES(OUT ̲FILE ̲ID, UMAM ̲FILE ̲ADDR, UMAM
̲BLE)
(UMAM ̲FILE ̲ADDR, CC) : ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK? - SET PREP = INT = FALSE
END CASE
ADD UMAM ̲FILE ̲ADDR.BYTE ̲COUNT TO UMAM ̲FILE ̲ADDR.FIRST
̲BYTE
S̲O̲R̲T̲ ̲O̲U̲T̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲1̲-̲3̲)̲
MOVE OLD ̲REST-TRANS ̲COUNT TO NEW ̲REST
NEW ̲REST EQ 0? - EXIT LOOP
MOVE NEW ̲REST TO OLD ̲REST
END LOOP
FIG. 4.2.5.4.11-2
SORT ̲OUT ̲STA
SET SORT ̲COUNT = 1
SET SEARCH ̲ONE = MSG ̲RELEASED
SET SEARCH ̲TWO = DUMMY
SET STA ̲FIELD ̲LIST(F1). LENGTH = SIZE(STA ̲ADM)
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SORT ̲COUNT EQ 1?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
SET SORT ̲COUNT = 1
SET SEARCH ̲ONE = MSG ̲DELETED
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = COMMENT ̲SENT
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = COMMENT ̲DELETED
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SORT ̲COUNT EQ 1?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
SET SORT ̲COUNT = 1
FIG. 4.2.5.4.11-3
SORT PREP RECORDS
SET SEARCH ̲ONE = SENT ̲FOR ̲RELEASE
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = SENT ̲FOR ̲COORDINATION
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = MSG ̲SUSPEND ̲CONT, SEARCH ̲TWO = MSG
̲SUSPEND ̲DRAFT
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = MSG DEFERRED, SEARCH-TWO = DUMMY
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = AWAITING ̲APP ̲CONT, SEARCH ̲TWO-AWAITING
̲APP ̲DRAFT
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SET SEARCH ̲ONE = COMMENT ̲SUSPEND ̲CONT, SEARCH ̲TWO =
COM ̲SUSPEND ̲DRAFT
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SORT ̲COUNT EQ 1?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
SET SORT ̲COUNT = 1
SET SEARCH ̲ONE = REJECTED ̲RELEASE, SEARCH ̲TWO = DUMMY
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲2̲)̲
SET SEARCH ̲ONE = DEFERRED ̲RELEASE
S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲)̲
SORT ̲COUNT EQ 1?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
FIG. 4.2.5.4.11-4
4.2.5.4.12 S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to sort the data read
from the status files.
The records which fulfil the search criteria are moved
to a buffer area. When the buffer gets full then the
status records are stored in a CIF.
4.2.5.4.12.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SORT RECORDS(QEL : QEL reference type
PREP ̲COUNT: counter type
STATUS ̲COUNT: counter type
LENGTH: FIELD LENGTH type
b) SORT ̲RECORDS (R1, R3, R4, R5, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 QEL (KEPT)
R3 pointer to ADM ̲FIELD.MSG ̲PREP (DEST)
R4 pointer to ADM ̲FIELD.STATUS ̲COUNT (DEST)
R5 pointer to UCIF.LENGTH (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R2 - R7 (DEST)
4.2.5.4.12.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.12.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QEL ̲REFERENCE ̲TYPE refer CPS/SDS/001
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
FIELD ̲LIST ̲TYPE -"-
ADM ̲FIELD ̲TYPE refer 4.2.5.5
SOURCE ̲BUF ̲TYPE -"-
DEST ̲BUF ̲TYPE -"-
INT ̲AREA ̲TYPE -"-
PREP ̲AREA ̲TYPE -"-
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲TIME refer 4.2.5.5
SORT -"-
SOURT ̲COUNT -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST MAX ̲SORT ̲REC =
TYPE INT ̲AREA ; INT ̲AREA ̲TYPE
TYPE PREP ̲AREA ; PREP ̲AREA ̲TYPE
4.2.5.4.12.3 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The status records read are sorted by this module.
Depending of the status type a data description is
impressed the source- and destination buffer area.
The reason for having two search keys are:
The ADM ̲FIELD.MSG ̲PREP shall contain the number of
messages prepared since midnight, i.e. messages retrievable
in either draft or released version. Records which
fulfil the search criteria are moved to the destination
buffer. When the destinationd area gets full the contents
will be stored in the status-CIF.
SORT RECORDS
CASE SOURCE ̲BUF OF
INT ̲BUF? - EQUIVALENCE(BIG ̲BUFFER(1),
INT ̲BUF: INT ̲AREA ̲TYPE)
S̲O̲R̲T̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲-̲2̲
PREP ̲BUF? - EQUIVALENCE(BIG ̲BUFFER(1)
PREP ̲BUF: PREP ̲AREA
̲TYPE)
S̲O̲R̲T̲ ̲P̲R̲E̲P̲ ̲A̲R̲E̲A̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲-̲4̲)̲
OTHERWISE? -I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲1̲)̲
END CASE
FIG. 4.2.5.4.12-1
LOOP
GET INT ̲BUF(START ̲REC)
LTD NE SEARCH ̲ONE? - SEARCH ̲TWO EQ DUMMY?
STATUS NE SEARCH-TWO?
MSG NOT FROM TODAY?
INCREMENT ADM ̲FIELD.MSG ̲PREP
INCREMENT ADM ̲FIELD.COUNT
M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲2̲-̲3̲
UPDATE UMAM ̲CIF ̲FIELD ̲LIST.LENGTH
SORT ̲COUNT EQ MAX ̲SORT ̲REC? - S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲
̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
INCREMENT SORT ̲COUNT SET SORT ̲COUNT = 1
INCREMENT START ̲REC
START ̲REC GT STOP ̲REC? - EXIT LOOP
END LOOP
FIG. 4.2.5.4.12-2
LITTLE START = 1 + SIZE(FIELD ̲LIST ̲TYPE)+ SIZE(ADM
̲FIELD ̲TYPE)
CASE DEST ̲BUF OF
RELE? - EQUIVALENCE(LITTLE ̲BUF(LITTLE ̲START),
REL ̲BUF: REL ̲BUF ̲TYPE)
MOVE INT ̲BUF(START ̲REC) TO REL ̲BUF(SORT COUNT)
DEL I? - EQUIVALENCE(LITTLE ̲BUF(LITTLE ̲START),
DEL I-BUF: DELI-BUF ̲TYPE)
MOVE INT ̲BUF(START ̲REC) TO DELI-BUF(SORT
̲COUNT)
ABEY? - EQUIVALENCE(LITTLE ̲BUF(LITTLE ̲START),
ABEY ̲BUF: ABEY ̲BUF ̲TYPE)
MOVE INT ̲BUF(START ̲REC) TO ABEY ̲BUF(SORT
̲COUNT)
OTHERWISE? - U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲1̲
END CASE
FIG. 4.2.5.4.13-3
SORT PREP AREA
LOOP
GET PREP ̲BUF(START ̲REC)
LTD NE SEARCH ̲LTD?
STATUS NE SEARCH ̲ONE? - SEARCH ̲TWO EQ DUMMY?
MSG NOT FROM TODAY? STATUS NE SEARCH ̲TWO?
INCR ADM ̲FIELD. MSG ̲PREP
INCR ADM ̲FIELD.COUNT
LITTLE ̲START = 1 + SIZE(FIELD ̲LIST ̲TYPE) + SIZE(ADM
̲FIELD ̲TYPE)
CASE DEST ̲BUF OF
RELE? - EQUIVALENCE(LITTLE ̲BUF(LITTLE ̲START),
REL ̲BUF:REL ̲BUF TYPE)
MOVE PREP ̲BUF(START ̲REC)TO REL ̲BUF(SORT
̲COUNT)
ABEY? - EQUIVALENCE(LITTLE ̲BUF(LITTLE START)
ABEY ̲BUF: ABEY ̲BUF
̲TYPE)
MOVE PREP ̲BUF (START ̲REC)TO ABEY ̲BUF(SORT
̲COUNT)
END CASE
UPDATE UCIF ̲LIST.LENGTH
SORT ̲COUNT EQ MAX ̲SORT ̲REC? - S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)̲
INCREMENT SORT ̲COUNT SET SORT ̲COUNT = 1
INCREMENT START ̲REC
START ̲REC GT STOP ̲REC - EXIT LOOP
END LOOP
FIG. 4.2.5.4.12-4
4.2.5.4.13 G̲E̲N̲ ̲S̲V̲C̲ ̲S̲T̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.13.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The task of the GEN ̲SVC ̲STA module is to generate a
Service Message status. The status records stored in
the Outgoing File, Intermediate File and the Release
File are read and sorted.
4.2.5.4.13.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GEN ̲SVC ̲STA(QEL : QEL reference type
(QEL ̲ATTR: QEL attributes type
SEARCH ̲LTD: designator type)
b) GEN ̲SVC ̲STA (R1, R2, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s
R1 QEL (KEPT)
R2 pointer to QEL ̲ATTR (KEPT)
R3 NEXT ̲LTD (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 (DEST)
R3 - R7 (DEST)
4.2.5.4.13.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
NA
4.2.5.4.13.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) Data References
MAIN TYPE refer CPS/SDS/001
SUBTYPE -"-
QEL ̲REFERENCE ̲TYPE -"-
QEL ̲ATTRIBUTES ̲TYPE "-
USER ̲ACTION ̲TYPE -"-
GAQ ̲INFO ̲TYPE -"-
STATUS ̲TYPE refer 4.2.5.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲FILE ̲ADDR (m) refer 4.2.5.5
UMAM ̲BLE (m) -"-
UCIF ̲LIST (m) -"-
STA ̲ADM (m) -"-
SEARCH ̲LTD -"-
FILE ̲DIRECTORY (m) -"-
REL ̲FILE ̲ID -"-
SORT -"-
OLD ̲REST (m) -".
NEW ̲REST (m) -"-
SORT ̲COUNT (m) -"-
TRANS ̲COUNT (m) -"-
NO ̲OF ̲INTA ̲REC -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
CONST MAX ̲OUT ̲REC =
4.2.5.4.13.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module generates a Outgoing Message status. If
the Outgoing File is used then the status records are
read and sorted.
The Intermediate File and the Preparation File are
read and the status records are sorted.
Upon completion the generated status is sent either
to a VDU or to a printer.