Project

General

Profile

json1.p

Test - Igor Skornyakov, 04/28/2023 04:05 PM

Download (14.5 KB)

 
1
DEFINE TEMP-TABLE tt-1 NO-UNDO
2
/*    NAMESPACE-URI "http://goldencode.com/testNamespace5"*/
3
//    NAMESPACE-PREFIX "fwdPrefix1"  
4
    FIELD a1char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char' // XML-NODE-TYPE 'attribute' 
5
    FIELD a1int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' // XML-NODE-TYPE  'attribute'
6
    FIELD f1char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
7
    FIELD f1charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
8
    FIELD f1decimal AS DECIMAL FORMAT "->>,>>9.99" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
9
    FIELD f1int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
10
    FIELD f1int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
11
    FIELD f1int64 AS INT64 FORMAT "99999" EXTENT 4 INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
12
    FIELD f1bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
13
//    FIELD f1date AS DATE INITIAL TODAY LABEL "date"
14
//    FIELD f1datetime AS DATETIME INITIAL NOW  LABEL "datetime"
15
//    FIELD f1datetime-tz AS DATETIME-TZ INITIAL NOW LABEL "datetime-tz"
16
//    FIELD f1datetime-tz1 AS DATETIME-TZ INITIAL "10/17/2022 13:47:48.426+03:00" LABEL "datetime-tz1"
17
    FIELD f1blob AS BLOB LABEL "blob" COLUMN-LABEL "blob-column"
18
    FIELD f1clob1 AS CLOB LABEL "clob1" TTCODEPAGE XML-NODE-TYPE 'hidden'
19
    FIELD f1clob2 AS CLOB LABEL "clob2" COLUMN-CODEPAGE 'ibm850' 
20
    FIELD f1recid AS RECID LABEL "recid" FORMAT "->,>>>,>>9"
21
    FIELD f1handle AS HANDLE LABEL "handle" FORMAT ">>>>>>9"
22
    FIELD f1com-handle AS COM-HANDLE LABEL "com-handle" FORMAT ">>>>>>9"
23
    FIELD f1raw AS RAW
24
    FIELD f1rowid AS ROWID
25
    FIELD a1int1 AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" // XML-NODE-TYPE  'attribute'
26
    FIELD f1d4 AS DEC DECIMALS 4
27
    INDEX i1dx1 f1char
28
    INDEX i1dx2 a1char DESC f1char DESC
29
    INDEX i1dx3 AS UNIQUE f1int 
30
.
31

    
32
DEFINE TEMP-TABLE tt2 NO-UNDO
33
/*    NAMESPACE-URI "http://goldencode.com/testNamespace2"*/
34
//    NAMESPACE-PREFIX "fwdPrefix2"
35
    FIELD a2char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char'  XML-NODE-TYPE 'attribute' 
36
    FIELD a2int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' XML-NODE-TYPE  'attribute'
37
    FIELD f2char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
38
    FIELD f2charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
39
    FIELD f2decimal AS DECIMAL FORMAT "->>,>>9.9999" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
40
    FIELD f2int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
41
    FIELD f2int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
42
    FIELD f2int64 AS INT64 FORMAT "99999" INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
43
    FIELD f2bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
44
    INDEX i2dx1 f2char
45
    INDEX i2dx2 a2char DESC f2char DESC
46
    INDEX i2dx3 AS UNIQUE f2int 
47
.
48

    
49
DEFINE TEMP-TABLE tt3 NO-UNDO
50
/*    NAMESPACE-URI "http://goldencode.com/testNamespace2"*/
51
/*    NAMESPACE-PREFIX "fwdPrefix3"*/
52
    FIELD a3char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char'  XML-NODE-TYPE 'attribute' 
53
    FIELD a3int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' XML-NODE-TYPE  'attribute'
54
    FIELD f3char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
55
    FIELD f3charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
56
    FIELD f3decimal AS DECIMAL FORMAT "->>,>>9.9999" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
57
    FIELD f3int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
58
    FIELD f3int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
59
    FIELD f3int64 AS INT64 FORMAT "99999" INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
60
    FIELD f3bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
61
    INDEX i3dx1 f3char
62
    INDEX i3dx2 a3char DESC f3char DESC
63
    INDEX i3dx3 AS UNIQUE f3int 
64
.
65

    
66
DEFINE TEMP-TABLE tt4 NO-UNDO
67
/*    NAMESPACE-URI "http://goldencode.com/testNamespace5"*/
68
//    NAMESPACE-PREFIX "fwdPrefix4"
69
    FIELD a4char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char' XML-NODE-TYPE 'attribute' 
70
    FIELD a4int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' XML-NODE-TYPE  'attribute'
71
    FIELD f4char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
72
    FIELD f4charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
73
    FIELD f4decimal AS DECIMAL FORMAT "->>,>>9.9999" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
74
    FIELD f4int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
75
    FIELD f4int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
76
    FIELD f4int64 AS INT64 FORMAT "99999" INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
77
    FIELD f4bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
78
    INDEX i4dx1 f4char
79
    INDEX i4dx2 a4char DESC f4char DESC
80
    INDEX i4dx3 AS UNIQUE f4int 
81
.
82

    
83
DEFINE TEMP-TABLE tt5 NO-UNDO
84
/*    NAMESPACE-URI "http://goldencode.com/testNamespace5"*/
85
/*    NAMESPACE-PREFIX "fwdPrefix5"                       */
86
    FIELD a5char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char'  XML-NODE-TYPE 'attribute' 
87
    FIELD a5int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' // XML-NODE-TYPE  'attribute'
88
    FIELD f5char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
89
    FIELD f5charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
90
    FIELD f5decimal AS DECIMAL FORMAT "->>,>>9.9999" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
91
    FIELD f5int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
92
    FIELD f5int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
93
    FIELD f5int64 AS INT64 FORMAT "99999" INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
94
    FIELD f5bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
95
    INDEX i5dx1 f5char
96
    INDEX i5dx2 a5char DESC f5char DESC
97
    INDEX i5dx3 AS PRIMARY f5int 
98
.
99

    
100
DEFINE TEMP-TABLE tt6 NO-UNDO
101
/*    NAMESPACE-URI "http://goldencode.com/testNamespace6"*/
102
/*    NAMESPACE-PREFIX "fwdPrefix6"                       */
103
    FIELD a6char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char-attr" XML-NODE-NAME 'pk' SERIALIZE-NAME 'char' XML-NODE-TYPE 'attribute' 
104
    FIELD a6int AS INT FORMAT "99999" INITIAL 1 LABEL "int-attr" XML-DATA-TYPE 'long' XML-NODE-TYPE  'attribute'
105
    FIELD f6char  AS CHAR FORMAT "XXXX" INITIAL '99aa' LABEL "char" XML-NODE-NAME 'char-node' SERIALIZE-NAME 'char-field'
106
    FIELD f6charcs  AS CHAR FORMAT "XXXX" INITIAL 'aa88' CASE-SENSITIVE LABEL "char-cs" 
107
    FIELD f6decimal AS DECIMAL FORMAT "->>,>>9.9999" HELP 'help' DECIMALS 2 LABEL "decimal" COLUMN-LABEL "decimal-column"
108
    FIELD f6int AS INT BGCOLOR 12 DCOLOR 9 FGCOLOR 14 PFCOLOR 16 FONT 1 MOUSE-POINTER 'cross' FORMAT "99999" INITIAL 1 LABEL "int" 
109
    FIELD f6int1 AS INT  INITIAL 1 LABEL "int1" XML-NODE-TYPE 'hidden' 
110
    FIELD f6int64 AS INT64 FORMAT "99999" INITIAL 4 LABEL "int64" SERIALIZE-NAME 'int64-field'  
111
    FIELD f6bool AS LOGICAL INITIAL TRUE LABEL "bool" SERIALIZE-NAME 'logical'
112
    INDEX i6dx1 f6char
113
    INDEX i6dx2 a6char DESC f6char DESC
114
    INDEX i6dx3 AS PRIMARY f6int 
115
.
116

    
117
DEFINE DATASET ds
118
    NAMESPACE-URI "http://goldencode.com/testNamespace" 
119
    NAMESPACE-PREFIX "fwdPrefix"
120
    FOR tt-1, tt2, tt3, tt4, tt5, tt6
121
    DATA-RELATION rel12 FOR tt-1, tt2 RELATION-FIELDS(f1int, f2int) NESTED FOREIGN-KEY-HIDDEN
122
    DATA-RELATION rel13 FOR tt-1, tt3 RELATION-FIELDS(f1int, f3int) NESTED FOREIGN-KEY-HIDDEN
123
    DATA-RELATION rel34 FOR tt3, tt4 RELATION-FIELDS(f3int, f4int) NESTED FOREIGN-KEY-HIDDEN
124
    DATA-RELATION rel51 FOR tt5, tt-1 RELATION-FIELDS(f5int, f1int) NESTED FOREIGN-KEY-HIDDEN
125
.
126
    
127
DEF VAR dsh AS HANDLE NO-UNDO.
128
DEF VAR hdss AS HANDLE NO-UNDO.
129
DEF VAR hdsx AS HANDLE NO-UNDO.
130
DEF VAR lRet AS LOGICAL NO-UNDO.
131
DEF VAR nmsg AS INTEGER NO-UNDO.
132
DEF VAR n AS INTEGER NO-UNDO.
133

    
134
OUTPUT TO 'json-test/json-marshal.txt'.
135

    
136
CREATE tt-1. tt-1.f1char = '1.1111'. tt-1.f1int = 11. tt-1.f1decimal = 3.1465. tt-1.f1d4 = 1234.5678.
137
CREATE tt-1. tt-1.f1char = '1.2222'. tt-1.f1int = 12. tt-1.f1decimal = 3.1415926.
138
CREATE tt-1. tt-1.f1char = '1.3333'. tt-1.f1int = 13. tt-1.f1decimal = 3.1415926.
139
CREATE tt-1. tt-1.f1char = '1.4444'. tt-1.f1int = 14. tt-1.f1decimal = 3.1415926.
140

    
141
CREATE tt2. tt2.f2char = '2.1111'. tt2.f2int = 11. tt2.f2decimal = 3.1415.
142
CREATE tt2. tt2.f2char = '2.2222'. tt2.f2int = 22. tt2.f2decimal = 3.141515926.
143

    
144
CREATE tt3. tt3.f3char = '3.1111'. tt3.f3int = 11. tt3.f3decimal = 3.1415.
145
CREATE tt3. tt3.f3char = '3.2222'. tt3.f3int = 32. tt3.f3decimal = 3.141515926.
146

    
147
CREATE tt4. tt4.f4char = '4.1111'. tt4.f4int = 11. tt4.f4decimal = 3.1415.
148
CREATE tt4. tt4.f4char = '4.2222'. tt4.f4int = 42. tt4.f4decimal = 3.141515926.
149

    
150
CREATE tt5. tt5.f5char = '5.1111'. tt5.f5int = 11. tt5.f5decimal = 3.1415.
151
CREATE tt5. tt5.f5char = '5.3333'. tt5.f5int = 13. tt5.f5decimal = 3.141515926.
152
CREATE tt5. tt5.f5char = '5.4444'. tt5.f5int = 14. tt5.f5decimal = 3.141515926.
153
CREATE tt5. tt5.f5char = '5.2222'. tt5.f5int = 12. tt5.f5decimal = 3.141515926.
154
CREATE tt5. tt5.f5char = '5.5555'. tt5.f5int = 51. tt5.f5decimal = 3.141515926.
155
CREATE tt5. tt5.f5char = '5.6666'. tt5.f5int = 62. tt5.f5decimal = 3.141515926.
156

    
157
CREATE tt6. tt6.f6char = '6.1111'. tt6.f6int = 61. tt6.f6decimal = 3.1415.
158
CREATE tt6. tt6.f6char = '6.3333'. tt6.f6int = 63. tt6.f6decimal = 3.141515926.
159
CREATE tt6. tt6.f6char = '6.4444'. tt6.f6int = 64. tt6.f6decimal = 3.141515926.
160
CREATE tt6. tt6.f6char = '6.2222'. tt6.f6int = 62. tt6.f6decimal = 3.141515926.
161
CREATE tt6. tt6.f6char = '6.5555'. tt6.f6int = 65. tt6.f6decimal = 3.141515926.
162
CREATE tt6. tt6.f6char = '6.6666'. tt6.f6int = 66. tt6.f6decimal = 3.141515926.
163

    
164

    
165
dsh = DATASET ds:HANDLE. 
166

    
167
lRet = dsh:WRITE-JSON('file', 'json-test/ds.json', TRUE, ?, FALSE, FALSE).
168
MESSAGE 'dsh:WRITE-JSON' lRet.
169

    
170

    
171
lRet = dsh:WRITE-XMLSCHEMA('file', 'json-test/ds.xsd', TRUE,  'UTF-8', FALSE, FALSE) NO-ERROR.
172
RUN show-error('dsh:WRITE-XMLSCHEMA').
173
MESSAGE 'dsh:WRITE-XMLSCHEMA' lRet.
174

    
175
lRet = dsh:WRITE-XML('file', 'json-test/ds.xml', TRUE,  'UTF-8', ?, FALSE, FALSE, ?, FALSE) NO-ERROR.
176
RUN show-error('dsh:WRITE-XML').
177
MESSAGE 'dsh:WRITE-XML' lRet.
178

    
179
CREATE DATASET hdss.
180

    
181
lRet = hdss:READ-JSON('file', 'json-test/ds.json', 'empty') NO-ERROR.
182
RUN show-error('hdss:READ-JSON').
183
MESSAGE 'hdss:READ-JSON' lRet.
184

    
185
RUN show-ds(hdss, "hdss").
186

    
187
dsh:SERIALIZE-HIDDEN = TRUE.
188

    
189
lRet = dsh:WRITE-XMLSCHEMA('file', 'json-test/xds.xsd', TRUE,  'UTF-8', FALSE, FALSE) NO-ERROR.
190
RUN show-error('dsh:WRITE-XMLSCHEMA').
191
MESSAGE 'dsh:WRITE-XMLSCHEMA SERIALIZE-HIDDEN' lRet.
192

    
193
lRet = dsh:WRITE-XML('file', 'json-test/xds.xml', TRUE,  'UTF-8', ?, FALSE, FALSE, ?, FALSE) NO-ERROR.
194
RUN show-error('dsh:WRITE-XML SERIALIZE-HIDDEN').
195
MESSAGE 'dsh:WRITE-XML SERIALIZE-HIDDEN' lRet.
196

    
197
lRet = dsh:WRITE-JSON('file', 'json-test/xds.json', TRUE, ?, FALSE, FALSE) NO-ERROR.
198
RUN show-error('dsh:WRITE-JSON SERIALIZE-HIDDEN').
199
MESSAGE 'dsh:WRITE-JSON SERIALIZE-HIDDEN' lRet.
200

    
201

    
202
CREATE DATASET hdsx.
203

    
204
lRet = hdsx:READ-JSON('file', 'json-test/xds.json', 'empty') NO-ERROR.
205
RUN show-error('hdsx:READ-JSON').
206
MESSAGE 'hdsx:READ-JSON' lRet.
207

    
208
RUN show-ds(hdsx, "hdsx").
209

    
210
OUTPUT CLOSE.
211

    
212
PROCEDURE show-ds:
213
    DEF INPUT PARAM hds AS HANDLE.
214
    DEF INPUT PARAM dsname AS CHAR.
215

    
216
    lRet = hds:WRITE-JSON('file', 'json-test/' + dsname + '.json', TRUE, ?, FALSE, FALSE).
217
    MESSAGE 'hds:WRITE-JSON' lRet.
218
    
219
    lRet = hds:WRITE-XMLSCHEMA('file', 'json-test/' + dsname + '.xsd', TRUE,  'UTF-8', FALSE, FALSE).
220
    MESSAGE 'hds:WRITE-XMLSCHEMA' lRet.
221
    
222
    lRet = hds:WRITE-XML('file', 'json-test/' + dsname + '.xml', TRUE,  'UTF-8', ?, FALSE, FALSE, ?, FALSE).
223
    MESSAGE 'hds:WRITE-XML' lRet.
224
    
225
    MESSAGE "hds:NAME:" hds:NAME "hds:XML-NODE-NAME:" hds:XML-NODE-NAME "hds:SERIALIZE-NAME:" hds:SERIALIZE-NAME "hds:SERIALIZE-HIDDEN:" hds:SERIALIZE-HIDDEN.  
226
    MESSAGE "hds:NUM-RELATIONS:" hds:NUM-RELATIONS "hds:NUM-BUFFERS:" hds:NUM-BUFFERS "hds:NUM-TOP-BUFFERS:" hds:NUM-TOP-BUFFERS.
227
    
228
    DEF VAR hb AS HANDLE NO-UNDO.
229
    DEF VAR hf AS HANDLE NO-UNDO.
230
    DEF VAR nf AS INTEGER NO-UNDO.
231
    n = 1.
232
    DO WHILE n <= hds:NUM-TOP-BUFFERS.
233
        hb = hds:GET-TOP-BUFFER(n).
234
        MESSAGE n "NAME:" hb:NAME "NUM-FIELDS:" hb:NUM-FIELDS.
235
        nf = 1.
236
        DO WHILE nf <= hb:NUM-FIELDS.
237
            hf = hb:BUFFER-FIELD(nf).
238
            MESSAGE nf "NAME:" hf:NAME "TYPE:" "SERIALIZE-HIDDEN:" hf:SERIALIZE-HIDDEN.
239
            nf = nf + 1.
240
        END.
241
        n = n + 1.
242
    END.
243
    
244
    DEF VAR hr AS HANDLE NO-UNDO.
245
    n = 1.
246
    DO WHILE n <= hds:NUM-RELATIONS.
247
        hr = hds:GET-RELATION(n).
248
        MESSAGE hr:NAME "NESTED:" "hr:REPOSITION:" hr:REPOSITION hr:NESTED "PARENT-ID-RELATION:" hr:PARENT-ID-RELATION "RELATION-FIELDS: [" + hr:RELATION-FIELDS + "]".
249
        n = n + 1.
250
    END.
251
    
252
    DEF VAR htt AS HANDLE NO-UNDO.
253
    n = 1.
254
    DO WHILE n <= hds:NUM-BUFFERS.
255
        htt = hds:GET-BUFFER-HANDLE(n).
256
        lRet = htt:WRITE-JSON('file', 'json-test/' + dsname + ':.1-' + STRING(n) + '.json', TRUE, ?, FALSE, FALSE).
257
        MESSAGE 'hds:' + STRING(n) + ':WRITE-JSON.1' lRet.
258
        n = n + 1.
259
    END.
260
END.
261

    
262
PROCEDURE show-error:
263
    DEF INPUT PARAM action AS CHAR.
264

    
265
    MESSAGE "After" action ": error =" ERROR-STATUS:ERROR 
266
            "num-messages =" ERROR-STATUS:NUM-MESSAGES 
267
            "type =" ERROR-STATUS:TYPE 
268
            .
269
    IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
270
        DO nmsg = 1 TO ERROR-STATUS:NUM-MESSAGES:
271
          MESSAGE "***" ERROR-STATUS:GET-NUMBER(nmsg) ':' ERROR-STATUS:GET-MESSAGE(nmsg).
272
        END.
273
    END.                      
274
END.