MainframeMaster

COBOL Tutorial

COBOL RECORDING

The RECORDING concept represents comprehensive data logging and sophisticated audit trail management capabilities within COBOL programming environments, providing advanced activity tracking mechanisms for compliance applications, enhanced transaction logging features, and intelligent recording workflows that enable precise activity documentation, complex audit trail generation, and systematic compliance architectures. This concept embodies modern accountability principles by supporting comprehensive activity logging, enabling sophisticated audit trail creation, and facilitating precise compliance requirements while maintaining data integrity, ensuring reliable audit capabilities, and enabling flexible recording architectures across enterprise applications requiring exact activity tracking, compliance documentation capabilities, and reliable audit processing throughout sophisticated business accountability scenarios and regulatory compliance workflows.

RECORDING Implementation Patterns

Data Recording and Audit Trail Creation
cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
*> Recording structure definitions 01 WS-RECORDING-CONTROL. 05 WS-RECORDING-ENABLED PIC X VALUE 'Y'. 05 WS-RECORDING-LEVEL PIC 9 VALUE 3. *> 1-5 detail levels 05 WS-RECORDING-FORMAT PIC X(8) VALUE "STANDARD". 05 WS-RECORDING-DESTINATION PIC X(32) VALUE "AUDIT.LOG". *> Activity recording entry 01 WS-ACTIVITY-RECORD. 05 AR-TIMESTAMP PIC X(26). 05 AR-USER-ID PIC X(8). 05 AR-PROGRAM-ID PIC X(8). 05 AR-OPERATION-TYPE PIC X(12). 05 AR-RECORD-KEY PIC X(20). 05 AR-BEFORE-VALUE PIC X(100). 05 AR-AFTER-VALUE PIC X(100). 05 AR-TRANSACTION-ID PIC X(16). 05 AR-SESSION-ID PIC X(24). *> Recording transaction data changes RECORD-DATA-CHANGE. USING OPERATION-TYPE RECORD-KEY BEFORE-DATA AFTER-DATA IF WS-RECORDING-ENABLED = 'Y' MOVE FUNCTION CURRENT-DATE TO AR-TIMESTAMP MOVE WS-USER-ID TO AR-USER-ID MOVE PROGRAM-ID TO AR-PROGRAM-ID MOVE OPERATION-TYPE TO AR-OPERATION-TYPE MOVE RECORD-KEY TO AR-RECORD-KEY MOVE BEFORE-DATA TO AR-BEFORE-VALUE MOVE AFTER-DATA TO AR-AFTER-VALUE MOVE WS-TRANSACTION-ID TO AR-TRANSACTION-ID MOVE WS-SESSION-ID TO AR-SESSION-ID PERFORM WRITE-ACTIVITY-RECORD PERFORM UPDATE-RECORDING-STATISTICS END-IF. *> Business activity recording 01 WS-BUSINESS-RECORDING. 05 BR-CUSTOMER-ACTIVITIES OCCURS 1000 TIMES. 10 BR-CUSTOMER-ID PIC X(8). 10 BR-ACTIVITY-TYPE PIC X(16). 10 BR-ACTIVITY-TIME PIC X(26). 10 BR-ACTIVITY-DETAILS PIC X(200). 10 BR-AMOUNT-INVOLVED PIC 9(10)V99. 05 BR-ACTIVITY-COUNT PIC 9(4) VALUE 0. RECORD-CUSTOMER-ACTIVITY. USING CUSTOMER-ID ACTIVITY-TYPE ACTIVITY-DETAILS AMOUNT ADD 1 TO BR-ACTIVITY-COUNT MOVE CUSTOMER-ID TO BR-CUSTOMER-ID(BR-ACTIVITY-COUNT) MOVE ACTIVITY-TYPE TO BR-ACTIVITY-TYPE(BR-ACTIVITY-COUNT) MOVE FUNCTION CURRENT-DATE TO BR-ACTIVITY-TIME(BR-ACTIVITY-COUNT) MOVE ACTIVITY-DETAILS TO BR-ACTIVITY-DETAILS(BR-ACTIVITY-COUNT) MOVE AMOUNT TO BR-AMOUNT-INVOLVED(BR-ACTIVITY-COUNT) PERFORM LOG-CUSTOMER-ACTIVITY. *> Security event recording 01 WS-SECURITY-RECORDING. 05 SR-EVENT-TYPE PIC X(16). 05 SR-SEVERITY-LEVEL PIC 9. 05 SR-SOURCE-IP PIC X(15). 05 SR-USER-CONTEXT PIC X(50). 05 SR-EVENT-DESCRIPTION PIC X(300). RECORD-SECURITY-EVENT. USING EVENT-TYPE SEVERITY USER-ID EVENT-DETAILS MOVE EVENT-TYPE TO SR-EVENT-TYPE MOVE SEVERITY TO SR-SEVERITY-LEVEL MOVE WS-CLIENT-IP TO SR-SOURCE-IP MOVE USER-ID TO SR-USER-CONTEXT MOVE EVENT-DETAILS TO SR-EVENT-DESCRIPTION PERFORM WRITE-SECURITY-LOG IF SEVERITY >= 8 PERFORM ALERT-SECURITY-TEAM END-IF. *> Financial transaction recording 01 WS-FINANCIAL-RECORDING. 05 FR-TRANSACTION-TYPE PIC X(12). 05 FR-ACCOUNT-FROM PIC X(12). 05 FR-ACCOUNT-TO PIC X(12). 05 FR-AMOUNT PIC 9(10)V99. 05 FR-AUTHORIZATION-CODE PIC X(8). 05 FR-REGULATORY-CODE PIC X(4). RECORD-FINANCIAL-TRANSACTION. USING TRANS-TYPE ACCOUNT-FROM ACCOUNT-TO AMOUNT AUTH-CODE MOVE TRANS-TYPE TO FR-TRANSACTION-TYPE MOVE ACCOUNT-FROM TO FR-ACCOUNT-FROM MOVE ACCOUNT-TO TO FR-ACCOUNT-TO MOVE AMOUNT TO FR-AMOUNT MOVE AUTH-CODE TO FR-AUTHORIZATION-CODE MOVE WS-REGULATORY-CODE TO FR-REGULATORY-CODE PERFORM VALIDATE-FINANCIAL-RECORDING PERFORM WRITE-FINANCIAL-LOG PERFORM UPDATE-COMPLIANCE-TRACKER.
Data Logging
Audit Trail
Compliance

Comprehensive RECORDING Examples

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
IDENTIFICATION DIVISION. PROGRAM-ID. RECORDING-DEMO. DATA DIVISION. WORKING-STORAGE SECTION. *> Recording system control 01 WS-RECORDING-SYSTEM. 05 WS-RECORDING-STATUS PIC X(8) VALUE "ACTIVE". 05 WS-LOG-FILE-NAME PIC X(32) VALUE "ACTIVITY.LOG". 05 WS-AUDIT-FILE-NAME PIC X(32) VALUE "AUDIT.TRL". 05 WS-SECURITY-LOG-NAME PIC X(32) VALUE "SECURITY.LOG". 05 WS-COMPLIANCE-LOG-NAME PIC X(32) VALUE "COMPLY.LOG". *> Recording statistics 01 WS-RECORDING-STATS. 05 WS-TOTAL-RECORDINGS PIC 9(8) VALUE 0. 05 WS-ACTIVITY-RECORDINGS PIC 9(6) VALUE 0. 05 WS-SECURITY-RECORDINGS PIC 9(4) VALUE 0. 05 WS-FINANCIAL-RECORDINGS PIC 9(6) VALUE 0. 05 WS-ERROR-RECORDINGS PIC 9(4) VALUE 0. *> Customer data for recording demonstration 01 WS-CUSTOMER-DATA. 05 WS-CUSTOMER-ID PIC X(8) VALUE "CUST0001". 05 WS-OLD-BALANCE PIC 9(8)V99 VALUE 1500.00. 05 WS-NEW-BALANCE PIC 9(8)V99 VALUE 2750.00. 05 WS-TRANSACTION-AMOUNT PIC 9(6)V99 VALUE 1250.00. PROCEDURE DIVISION. MAIN-RECORDING-DEMO. DISPLAY "=== COBOL RECORDING DEMONSTRATION ===" DISPLAY SPACES PERFORM INITIALIZE-RECORDING-SYSTEM PERFORM DEMONSTRATE-ACTIVITY-RECORDING PERFORM DEMONSTRATE-SECURITY-RECORDING PERFORM DEMONSTRATE-FINANCIAL-RECORDING PERFORM DEMONSTRATE-ERROR-RECORDING PERFORM DEMONSTRATE-COMPLIANCE-RECORDING PERFORM DISPLAY-RECORDING-SUMMARY DISPLAY "=== RECORDING DEMONSTRATION COMPLETE ===" STOP RUN. INITIALIZE-RECORDING-SYSTEM. DISPLAY "=== INITIALIZING RECORDING SYSTEM ===" DISPLAY SPACES DISPLAY "Setting up recording infrastructure..." DISPLAY " ✓ Activity logging enabled" DISPLAY " ✓ Security monitoring active" DISPLAY " ✓ Financial recording configured" DISPLAY " ✓ Compliance tracking ready" DISPLAY SPACES. DEMONSTRATE-ACTIVITY-RECORDING. DISPLAY "=== ACTIVITY RECORDING DEMONSTRATION ===" DISPLAY SPACES DISPLAY "Recording customer account activities..." *> Record account login PERFORM RECORD-USER-LOGIN *> Record balance inquiry PERFORM RECORD-BALANCE-INQUIRY *> Record account update PERFORM RECORD-ACCOUNT-UPDATE *> Record transaction processing PERFORM RECORD-TRANSACTION-PROCESSING DISPLAY " 📊 Activity recording summary:" DISPLAY " Activities recorded: " WS-ACTIVITY-RECORDINGS DISPLAY SPACES. RECORD-USER-LOGIN. MOVE FUNCTION CURRENT-DATE TO AR-TIMESTAMP MOVE "LOGIN" TO AR-OPERATION-TYPE MOVE WS-CUSTOMER-ID TO AR-RECORD-KEY MOVE "USER_LOGIN_SUCCESSFUL" TO AR-AFTER-VALUE ADD 1 TO WS-ACTIVITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 📝 Recorded: Customer login - " WS-CUSTOMER-ID. RECORD-BALANCE-INQUIRY. MOVE FUNCTION CURRENT-DATE TO AR-TIMESTAMP MOVE "INQUIRY" TO AR-OPERATION-TYPE MOVE WS-CUSTOMER-ID TO AR-RECORD-KEY MOVE "BALANCE_INQUIRY" TO AR-AFTER-VALUE ADD 1 TO WS-ACTIVITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 📝 Recorded: Balance inquiry - " WS-CUSTOMER-ID. RECORD-ACCOUNT-UPDATE. MOVE FUNCTION CURRENT-DATE TO AR-TIMESTAMP MOVE "UPDATE" TO AR-OPERATION-TYPE MOVE WS-CUSTOMER-ID TO AR-RECORD-KEY MOVE WS-OLD-BALANCE TO AR-BEFORE-VALUE MOVE WS-NEW-BALANCE TO AR-AFTER-VALUE ADD 1 TO WS-ACTIVITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 📝 Recorded: Account update - Before: $" WS-OLD-BALANCE " After: $" WS-NEW-BALANCE. RECORD-TRANSACTION-PROCESSING. MOVE FUNCTION CURRENT-DATE TO AR-TIMESTAMP MOVE "TRANSACTION" TO AR-OPERATION-TYPE MOVE WS-CUSTOMER-ID TO AR-RECORD-KEY MOVE WS-TRANSACTION-AMOUNT TO AR-AFTER-VALUE ADD 1 TO WS-ACTIVITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 📝 Recorded: Transaction - Amount: $" WS-TRANSACTION-AMOUNT. DEMONSTRATE-SECURITY-RECORDING. DISPLAY "=== SECURITY RECORDING DEMONSTRATION ===" DISPLAY SPACES DISPLAY "Recording security events..." *> Record successful authentication PERFORM RECORD-SUCCESSFUL-AUTH *> Record failed login attempt PERFORM RECORD-FAILED-LOGIN *> Record privilege escalation PERFORM RECORD-PRIVILEGE-CHANGE DISPLAY " 🔒 Security recording summary:" DISPLAY " Security events recorded: " WS-SECURITY-RECORDINGS DISPLAY SPACES. RECORD-SUCCESSFUL-AUTH. MOVE "AUTH_SUCCESS" TO SR-EVENT-TYPE MOVE 2 TO SR-SEVERITY-LEVEL MOVE "192.168.1.100" TO SR-SOURCE-IP MOVE WS-CUSTOMER-ID TO SR-USER-CONTEXT MOVE "User authentication successful" TO SR-EVENT-DESCRIPTION ADD 1 TO WS-SECURITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 🔐 Recorded: Successful authentication - " WS-CUSTOMER-ID. RECORD-FAILED-LOGIN. MOVE "AUTH_FAILURE" TO SR-EVENT-TYPE MOVE 6 TO SR-SEVERITY-LEVEL MOVE "192.168.1.200" TO SR-SOURCE-IP MOVE "UNKNOWN_USER" TO SR-USER-CONTEXT MOVE "Failed login attempt detected" TO SR-EVENT-DESCRIPTION ADD 1 TO WS-SECURITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " ⚠️ Recorded: Failed login attempt - UNKNOWN_USER". RECORD-PRIVILEGE-CHANGE. MOVE "PRIVILEGE_CHANGE" TO SR-EVENT-TYPE MOVE 7 TO SR-SEVERITY-LEVEL MOVE "192.168.1.100" TO SR-SOURCE-IP MOVE WS-CUSTOMER-ID TO SR-USER-CONTEXT MOVE "User privileges modified" TO SR-EVENT-DESCRIPTION ADD 1 TO WS-SECURITY-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 🔑 Recorded: Privilege change - " WS-CUSTOMER-ID. DEMONSTRATE-FINANCIAL-RECORDING. DISPLAY "=== FINANCIAL RECORDING DEMONSTRATION ===" DISPLAY SPACES DISPLAY "Recording financial transactions..." *> Record deposit transaction PERFORM RECORD-DEPOSIT-TRANSACTION *> Record withdrawal transaction PERFORM RECORD-WITHDRAWAL-TRANSACTION *> Record transfer transaction PERFORM RECORD-TRANSFER-TRANSACTION DISPLAY " 💰 Financial recording summary:" DISPLAY " Financial records: " WS-FINANCIAL-RECORDINGS DISPLAY SPACES. RECORD-DEPOSIT-TRANSACTION. MOVE "DEPOSIT" TO FR-TRANSACTION-TYPE MOVE "EXTERNAL" TO FR-ACCOUNT-FROM MOVE WS-CUSTOMER-ID TO FR-ACCOUNT-TO MOVE 1250.00 TO FR-AMOUNT MOVE "AUTH001" TO FR-AUTHORIZATION-CODE MOVE "SOX" TO FR-REGULATORY-CODE ADD 1 TO WS-FINANCIAL-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 💵 Recorded: Deposit - $" FR-AMOUNT " to " FR-ACCOUNT-TO. RECORD-WITHDRAWAL-TRANSACTION. MOVE "WITHDRAWAL" TO FR-TRANSACTION-TYPE MOVE WS-CUSTOMER-ID TO FR-ACCOUNT-FROM MOVE "EXTERNAL" TO FR-ACCOUNT-TO MOVE 500.00 TO FR-AMOUNT MOVE "AUTH002" TO FR-AUTHORIZATION-CODE MOVE "SOX" TO FR-REGULATORY-CODE ADD 1 TO WS-FINANCIAL-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 💸 Recorded: Withdrawal - $" FR-AMOUNT " from " FR-ACCOUNT-FROM. RECORD-TRANSFER-TRANSACTION. MOVE "TRANSFER" TO FR-TRANSACTION-TYPE MOVE WS-CUSTOMER-ID TO FR-ACCOUNT-FROM MOVE "CUST0002" TO FR-ACCOUNT-TO MOVE 300.00 TO FR-AMOUNT MOVE "AUTH003" TO FR-AUTHORIZATION-CODE MOVE "SOX" TO FR-REGULATORY-CODE ADD 1 TO WS-FINANCIAL-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 🔄 Recorded: Transfer - $" FR-AMOUNT " from " FR-ACCOUNT-FROM " to " FR-ACCOUNT-TO. DEMONSTRATE-ERROR-RECORDING. DISPLAY "=== ERROR RECORDING DEMONSTRATION ===" DISPLAY SPACES DISPLAY "Recording system errors and exceptions..." *> Record validation error PERFORM RECORD-VALIDATION-ERROR *> Record system error PERFORM RECORD-SYSTEM-ERROR DISPLAY " ❌ Error recording summary:" DISPLAY " Error records: " WS-ERROR-RECORDINGS DISPLAY SPACES. RECORD-VALIDATION-ERROR. MOVE "VALIDATION_ERROR" TO SR-EVENT-TYPE MOVE 4 TO SR-SEVERITY-LEVEL MOVE "SYSTEM" TO SR-SOURCE-IP MOVE WS-CUSTOMER-ID TO SR-USER-CONTEXT MOVE "Invalid account number format" TO SR-EVENT-DESCRIPTION ADD 1 TO WS-ERROR-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " ⚠️ Recorded: Validation error - Invalid format". RECORD-SYSTEM-ERROR. MOVE "SYSTEM_ERROR" TO SR-EVENT-TYPE MOVE 8 TO SR-SEVERITY-LEVEL MOVE "SYSTEM" TO SR-SOURCE-IP MOVE "SYSTEM" TO SR-USER-CONTEXT MOVE "Database connection timeout" TO SR-EVENT-DESCRIPTION ADD 1 TO WS-ERROR-RECORDINGS ADD 1 TO WS-TOTAL-RECORDINGS DISPLAY " 🚨 Recorded: System error - Database timeout". DEMONSTRATE-COMPLIANCE-RECORDING. DISPLAY "=== COMPLIANCE RECORDING DEMONSTRATION ===" DISPLAY SPACES DISPLAY "Recording compliance and regulatory activities..." PERFORM RECORD-DATA-ACCESS-COMPLIANCE PERFORM RECORD-RETENTION-COMPLIANCE PERFORM RECORD-AUDIT-COMPLIANCE DISPLAY " 📋 Compliance recording complete" DISPLAY SPACES. RECORD-DATA-ACCESS-COMPLIANCE. DISPLAY " 📊 Recorded: Data access compliance check" DISPLAY " User: " WS-CUSTOMER-ID DISPLAY " Data accessed: Customer financial records" DISPLAY " Compliance status: APPROVED". RECORD-RETENTION-COMPLIANCE. DISPLAY " 📅 Recorded: Data retention compliance" DISPLAY " Record type: Financial transactions" DISPLAY " Retention period: 7 years" DISPLAY " Archive status: SCHEDULED". RECORD-AUDIT-COMPLIANCE. DISPLAY " 🔍 Recorded: Audit trail compliance" DISPLAY " Audit type: SOX compliance" DISPLAY " Coverage: Complete transaction history" DISPLAY " Status: COMPLIANT". DISPLAY-RECORDING-SUMMARY. DISPLAY "=== RECORDING SYSTEM SUMMARY ===" DISPLAY SPACES DISPLAY "Recording Statistics:" DISPLAY " 📊 Total recordings: " WS-TOTAL-RECORDINGS DISPLAY " 📝 Activity recordings: " WS-ACTIVITY-RECORDINGS DISPLAY " 🔒 Security recordings: " WS-SECURITY-RECORDINGS DISPLAY " 💰 Financial recordings: " WS-FINANCIAL-RECORDINGS DISPLAY " ❌ Error recordings: " WS-ERROR-RECORDINGS DISPLAY " " DISPLAY "RECORDING Features Demonstrated:" DISPLAY " ✓ Activity recording and logging" DISPLAY " ✓ Security event recording" DISPLAY " ✓ Financial transaction recording" DISPLAY " ✓ Error and exception recording" DISPLAY " ✓ Compliance documentation" DISPLAY " ✓ Audit trail generation" DISPLAY " ✓ Timestamp and user tracking" DISPLAY " ✓ Comprehensive activity monitoring" DISPLAY SPACES.

RECORDING Features and Capabilities

Activity Logging
  • • User activity tracking
  • • Transaction recording
  • • System event logging
  • • Data change documentation
Audit Trail Management
  • • Comprehensive audit trails
  • • Before/after value tracking
  • • Time-stamped entries
  • • User identification
Compliance Support
  • • Regulatory compliance logging
  • • Data retention policies
  • • Access control documentation
  • • Compliance reporting
Security Monitoring
  • • Security event recording
  • • Authentication logging
  • • Privilege change tracking
  • • Threat detection support

Best Practices