[Home] [Help]
PACKAGE BODY: APPS.IGS_GE_S_ERROR_LOG_PKG
Source
1 package body IGS_GE_S_ERROR_LOG_PKG as
2 /* $Header: IGSMI07B.pls 115.3 2002/11/29 01:10:40 nsidana ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_GE_S_ERROR_LOG%RowType;
5 new_references IGS_GE_S_ERROR_LOG%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_sequence_number IN NUMBER DEFAULT NULL,
11 x_program_unit IN VARCHAR2 DEFAULT NULL,
12 x_sql_error_num IN NUMBER DEFAULT NULL,
13 x_sql_error_message IN VARCHAR2 DEFAULT NULL,
14 x_other_detail IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL
20 ) as
21
22 CURSOR cur_old_ref_values IS
23 SELECT *
24 FROM IGS_GE_S_ERROR_LOG
25 WHERE rowid = x_rowid;
26
27 BEGIN
28
29 l_rowid := x_rowid;
30
31 -- Code for setting the Old and New Reference Values.
32 -- Populate Old Values.
33 Open cur_old_ref_values;
34 Fetch cur_old_ref_values INTO old_references;
35 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
36 Close cur_old_ref_values;
37 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38 IGS_GE_MSG_STACK.ADD;
39 App_Exception.Raise_Exception;
40 Return;
41 END IF;
42 Close cur_old_ref_values;
43
44 -- Populate New Values.
45 new_references.sequence_number := x_sequence_number;
46 new_references.program_unit := x_program_unit;
47 new_references.sql_error_num := x_sql_error_num;
48 new_references.sql_error_message := x_sql_error_message;
49 new_references.other_detail := x_other_detail;
50 IF (p_action = 'UPDATE') THEN
51 new_references.creation_date := old_references.creation_date;
52 new_references.created_by := old_references.created_by;
53 ELSE
54 new_references.creation_date := x_creation_date;
55 new_references.created_by := x_created_by;
56 END IF;
57 new_references.last_update_date := x_last_update_date;
58 new_references.last_updated_by := x_last_updated_by;
59 new_references.last_update_login := x_last_update_login;
60
61 END Set_Column_Values;
62
63 FUNCTION GET_PK_FOR_VALIDATION (
64 x_sequence_number IN NUMBER
65 ) RETURN BOOLEAN as
66
67 CURSOR cur_rowid IS
68 SELECT rowid
69 FROM IGS_GE_S_ERROR_LOG
70 WHERE sequence_number = x_sequence_number
71 FOR UPDATE NOWAIT;
72
73 lv_rowid cur_rowid%RowType;
74
75 BEGIN
76
77 Open cur_rowid;
78 Fetch cur_rowid INTO lv_rowid;
79 IF (cur_rowid%FOUND) THEN
80 Close cur_rowid;
81 Return(TRUE);
82 ELSE
83 Close cur_rowid;
84 Return(FALSE);
85 END IF;
86
87 END Get_PK_For_Validation;
88
89 PROCEDURE Before_DML (
90 p_action IN VARCHAR2,
91 x_rowid IN VARCHAR2 DEFAULT NULL,
92 x_sequence_number IN NUMBER DEFAULT NULL,
93 x_program_unit IN VARCHAR2 DEFAULT NULL,
94 x_sql_error_num IN NUMBER DEFAULT NULL,
95 x_sql_error_message IN VARCHAR2 DEFAULT NULL,
96 x_other_detail IN VARCHAR2 DEFAULT NULL,
97 x_creation_date IN DATE DEFAULT NULL,
98 x_created_by IN NUMBER DEFAULT NULL,
99 x_last_update_date IN DATE DEFAULT NULL,
100 x_last_updated_by IN NUMBER DEFAULT NULL,
101 x_last_update_login IN NUMBER DEFAULT NULL
102 ) as
103 BEGIN
104
105 Set_Column_Values (
106 p_action,
107 x_rowid,
108 x_sequence_number,
109 x_program_unit,
110 x_sql_error_num,
111 x_sql_error_message,
112 x_other_detail,
113 x_creation_date,
114 x_created_by,
115 x_last_update_date,
116 x_last_updated_by,
117 x_last_update_login
118 );
119
120 IF (p_action = 'INSERT') THEN
121 -- Call all the procedures related to Before Insert.
122 IF Get_PK_For_Validation(
123 new_references.sequence_number
124 )THEN
125 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
126 IGS_GE_MSG_STACK.ADD;
127 App_Exception.Raise_Exception;
128 END IF;
129 ELSIF (p_action = 'UPDATE') THEN
130 -- Call all the procedures related to Before Update.
131 Null;
132 ELSIF (p_action = 'DELETE') THEN
133 -- Call all the procedures related to Before Delete.
134 Null;
135 ELSIF (p_action = 'VALIDATE_INSERT') THEN
136 IF Get_PK_For_Validation(
137 new_references.sequence_number
138 )THEN
139 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
140 IGS_GE_MSG_STACK.ADD;
141 App_Exception.Raise_Exception;
142 END IF;
143 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
144 Null;
145 ELSIF (p_action = 'VALIDATE_DELETE') THEN
146 Null;
147 END IF;
148
149 END Before_DML;
150
151 PROCEDURE After_DML (
152 p_action IN VARCHAR2,
153 x_rowid IN VARCHAR2
154 ) as
155 BEGIN
156
157 l_rowid := x_rowid;
158
159 IF (p_action = 'INSERT') THEN
160 -- Call all the procedures related to After Insert.
161 Null;
162 ELSIF (p_action = 'UPDATE') THEN
163 -- Call all the procedures related to After Update.
164 Null;
165 ELSIF (p_action = 'DELETE') THEN
166 -- Call all the procedures related to After Delete.
167 Null;
168 END IF;
169
170 END After_DML;
171
172
173 procedure INSERT_ROW (
174 X_ROWID in out NOCOPY VARCHAR2,
175 X_SEQUENCE_NUMBER in NUMBER,
176 X_PROGRAM_UNIT in VARCHAR2,
177 X_SQL_ERROR_NUM in NUMBER,
178 X_SQL_ERROR_MESSAGE in VARCHAR2,
179 X_OTHER_DETAIL in VARCHAR2,
180 x_creation_date IN DATE ,
181 x_created_by IN NUMBER ,
182 X_LAST_UPDATE_DATE IN DATE ,
183 X_LAST_UPDATED_BY IN NUMBER ,
184 X_LAST_UPDATE_LOGIN IN NUMBER ,
185 X_REQUEST_ID IN NUMBER ,
186 X_PROGRAM_ID IN NUMBER ,
187 X_PROGRAM_APPLICATION_ID IN NUMBER ,
188 X_PROGRAM_UPDATE_DATE IN DATE ,
189 X_MODE in VARCHAR2 default 'R'
190 ) as
191 cursor C is select ROWID from IGS_GE_S_ERROR_LOG
192 where SEQUENCE_NUMBER = X_SEQUENCE_NUMBER;
193
194
195 begin
196
197 Before_DML (
198 p_action => 'INSERT',
199 x_rowid => X_ROWID,
200 x_sequence_number => X_SEQUENCE_NUMBER,
201 x_program_unit => X_PROGRAM_UNIT,
202 x_sql_error_num => X_SQL_ERROR_NUM,
203 x_sql_error_message => X_SQL_ERROR_MESSAGE,
204 x_other_detail => X_OTHER_DETAIL,
205 x_created_by => X_LAST_UPDATED_BY,
206 x_creation_date => X_LAST_UPDATE_DATE,
207 x_last_updated_by => X_LAST_UPDATED_BY,
208 x_last_update_date => X_LAST_UPDATE_DATE,
209 x_last_update_login => X_LAST_UPDATE_LOGIN
210 );
211
212
213 insert into IGS_GE_S_ERROR_LOG (
214 SEQUENCE_NUMBER,
215 PROGRAM_UNIT,
216 SQL_ERROR_NUM,
217 SQL_ERROR_MESSAGE,
218 OTHER_DETAIL,
219 CREATION_DATE,
220 CREATED_BY,
221 LAST_UPDATE_DATE,
222 LAST_UPDATED_BY,
223 LAST_UPDATE_LOGIN,
224 REQUEST_ID,
225 PROGRAM_ID,
226 PROGRAM_APPLICATION_ID,
227 PROGRAM_UPDATE_DATE
228 ) values (
229 NEW_REFERENCES.SEQUENCE_NUMBER,
230 NEW_REFERENCES.PROGRAM_UNIT,
231 NEW_REFERENCES.SQL_ERROR_NUM,
232 NEW_REFERENCES.SQL_ERROR_MESSAGE,
233 NEW_REFERENCES.OTHER_DETAIL,
234 X_LAST_UPDATE_DATE,
235 X_LAST_UPDATED_BY,
236 X_LAST_UPDATE_DATE,
237 X_LAST_UPDATED_BY,
238 X_LAST_UPDATE_LOGIN,
239 X_REQUEST_ID,
240 X_PROGRAM_ID,
241 X_PROGRAM_APPLICATION_ID,
242 X_PROGRAM_UPDATE_DATE
243 );
244
245 open c;
246 fetch c into X_ROWID;
247 if (c%notfound) then
248 close c;
249 raise no_data_found;
250 end if;
251 close c;
252
253 After_DML (
254 p_action => 'INSERT',
255 x_rowid => X_ROWID
256 );
257 end INSERT_ROW;
258
259 procedure LOCK_ROW (
260 X_ROWID in VARCHAR2,
261 X_SEQUENCE_NUMBER in NUMBER,
262 X_PROGRAM_UNIT in VARCHAR2,
263 X_SQL_ERROR_NUM in NUMBER,
264 X_SQL_ERROR_MESSAGE in VARCHAR2,
265 X_OTHER_DETAIL in VARCHAR2
266 ) as
267 cursor c1 is select
268 PROGRAM_UNIT,
269 SQL_ERROR_NUM,
270 SQL_ERROR_MESSAGE,
271 OTHER_DETAIL
272 from IGS_GE_S_ERROR_LOG
273 where ROWID = X_ROWID
274 for update nowait;
275 tlinfo c1%rowtype;
276
277 begin
278 open c1;
279 fetch c1 into tlinfo;
280 if (c1%notfound) then
281 close c1;
282 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
283 IGS_GE_MSG_STACK.ADD;
284 app_exception.raise_exception;
285 return;
286 end if;
287 close c1;
288
289 if ( ((tlinfo.PROGRAM_UNIT = X_PROGRAM_UNIT)
290 OR ((tlinfo.PROGRAM_UNIT is null)
291 AND (X_PROGRAM_UNIT is null)))
292 AND ((tlinfo.SQL_ERROR_NUM = X_SQL_ERROR_NUM)
293 OR ((tlinfo.SQL_ERROR_NUM is null)
294 AND (X_SQL_ERROR_NUM is null)))
295 AND ((tlinfo.SQL_ERROR_MESSAGE = X_SQL_ERROR_MESSAGE)
296 OR ((tlinfo.SQL_ERROR_MESSAGE is null)
297 AND (X_SQL_ERROR_MESSAGE is null)))
298 AND ((tlinfo.OTHER_DETAIL = X_OTHER_DETAIL)
299 OR ((tlinfo.OTHER_DETAIL is null)
300 AND (X_OTHER_DETAIL is null)))
301 ) then
302 null;
303 else
304 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
305 IGS_GE_MSG_STACK.ADD;
306 app_exception.raise_exception;
307 end if;
308 return;
309 end LOCK_ROW;
310
311 procedure UPDATE_ROW (
312 X_ROWID in VARCHAR2,
313 X_SEQUENCE_NUMBER in NUMBER,
314 X_PROGRAM_UNIT in VARCHAR2,
315 X_SQL_ERROR_NUM in NUMBER,
316 X_SQL_ERROR_MESSAGE in VARCHAR2,
317 X_OTHER_DETAIL in VARCHAR2,
318 x_creation_date IN DATE ,
319 x_created_by IN NUMBER ,
320 X_LAST_UPDATE_DATE IN DATE ,
321 X_LAST_UPDATED_BY IN NUMBER ,
322 X_LAST_UPDATE_LOGIN IN NUMBER ,
323 X_REQUEST_ID IN NUMBER ,
324 X_PROGRAM_ID IN NUMBER ,
325 X_PROGRAM_APPLICATION_ID IN NUMBER ,
326 X_PROGRAM_UPDATE_DATE IN DATE ,
327 X_MODE in VARCHAR2 default 'R'
328 ) as
329
330 begin
331
332 Before_DML (
333 p_action => 'UPDATE',
334 x_rowid => X_ROWID,
335 x_sequence_number => X_SEQUENCE_NUMBER,
336 x_program_unit => X_PROGRAM_UNIT,
337 x_sql_error_num => X_SQL_ERROR_NUM,
338 x_sql_error_message => X_SQL_ERROR_MESSAGE,
339 x_other_detail => X_OTHER_DETAIL,
340 x_created_by => X_LAST_UPDATED_BY,
341 x_creation_date => X_LAST_UPDATE_DATE,
342 x_last_updated_by => X_LAST_UPDATED_BY,
343 x_last_update_date => X_LAST_UPDATE_DATE,
344 x_last_update_login => X_LAST_UPDATE_LOGIN
345 );
346
347 update IGS_GE_S_ERROR_LOG set
348 PROGRAM_UNIT = NEW_REFERENCES.PROGRAM_UNIT,
349 SQL_ERROR_NUM = NEW_REFERENCES.SQL_ERROR_NUM,
350 SQL_ERROR_MESSAGE = NEW_REFERENCES.SQL_ERROR_MESSAGE,
351 OTHER_DETAIL = NEW_REFERENCES.OTHER_DETAIL,
352 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
353 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
354 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
355 REQUEST_ID = X_REQUEST_ID,
356 PROGRAM_ID = X_PROGRAM_ID,
357 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
358 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE
359 where ROWID = X_ROWID
360 ;
361 if (sql%notfound) then
362 raise no_data_found;
363 end if;
364 After_DML (
365 p_action => 'UPDATE',
366 x_rowid => X_ROWID
367 );
368 end UPDATE_ROW;
369
370 procedure ADD_ROW (
371 X_ROWID in out NOCOPY VARCHAR2,
372 X_SEQUENCE_NUMBER in NUMBER,
373 X_PROGRAM_UNIT in VARCHAR2,
374 X_SQL_ERROR_NUM in NUMBER,
375 X_SQL_ERROR_MESSAGE in VARCHAR2,
376 X_OTHER_DETAIL in VARCHAR2,
377 x_creation_date IN DATE ,
378 x_created_by IN NUMBER ,
379 X_LAST_UPDATE_DATE IN DATE ,
380 X_LAST_UPDATED_BY IN NUMBER ,
381 X_LAST_UPDATE_LOGIN IN NUMBER ,
382 X_REQUEST_ID IN NUMBER ,
383 X_PROGRAM_ID IN NUMBER ,
384 X_PROGRAM_APPLICATION_ID IN NUMBER ,
385 X_PROGRAM_UPDATE_DATE IN DATE ,
386 X_MODE in VARCHAR2 default 'R'
387 ) as
388 cursor c1 is select rowid from IGS_GE_S_ERROR_LOG
389 where SEQUENCE_NUMBER = X_SEQUENCE_NUMBER
390 ;
391
392 begin
393 open c1;
394 fetch c1 into X_ROWID;
395 if (c1%notfound) then
396 close c1;
397 INSERT_ROW (
398 X_ROWID,
399 X_SEQUENCE_NUMBER,
400 X_PROGRAM_UNIT,
401 X_SQL_ERROR_NUM,
402 X_SQL_ERROR_MESSAGE,
403 X_OTHER_DETAIL,
404 x_creation_date ,
405 x_created_by ,
406 X_LAST_UPDATE_DATE ,
407 X_LAST_UPDATED_BY ,
408 X_LAST_UPDATE_LOGIN ,
409 X_REQUEST_ID ,
410 X_PROGRAM_ID ,
411 X_PROGRAM_APPLICATION_ID ,
412 X_PROGRAM_UPDATE_DATE ,
413 X_MODE);
414 return;
415 end if;
416 close c1;
417 UPDATE_ROW (
418 X_ROWID,
419 X_SEQUENCE_NUMBER,
420 X_PROGRAM_UNIT,
421 X_SQL_ERROR_NUM,
422 X_SQL_ERROR_MESSAGE,
423 X_OTHER_DETAIL,
424 x_creation_date ,
425 x_created_by ,
426 X_LAST_UPDATE_DATE ,
427 X_LAST_UPDATED_BY ,
428 X_LAST_UPDATE_LOGIN ,
429 X_REQUEST_ID ,
430 X_PROGRAM_ID ,
431 X_PROGRAM_APPLICATION_ID ,
432 X_PROGRAM_UPDATE_DATE ,
433 X_MODE);
434 end ADD_ROW;
435
436 procedure DELETE_ROW (
437 X_ROWID in VARCHAR2
438 ) as
439 begin
440 Before_DML (
441 p_action => 'DELETE',
442 x_rowid => X_ROWID
443 );
444
445 delete from IGS_GE_S_ERROR_LOG
446 where ROWID = X_ROWID;
447 if (sql%notfound) then
448 raise no_data_found;
449 end if;
450 After_DML (
451 p_action => 'DELETE',
452 x_rowid => X_ROWID
453 );
454
455 end DELETE_ROW;
456
457 end IGS_GE_S_ERROR_LOG_PKG;