DBA Data[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;