DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PR_S_SCRATCH_PAD_PKG

Source


1 PACKAGE BODY igs_pr_s_scratch_pad_pkg AS
2 /* $Header: IGSQI27B.pls 115.9 2002/11/29 03:21:08 nsidana ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_pr_s_scratch_pad_all%RowType;
5   new_references igs_pr_s_scratch_pad_all%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_creation_dt IN DATE DEFAULT NULL,
12     x_key IN VARCHAR2 DEFAULT NULL,
13     x_message_name IN VARCHAR2 DEFAULT NULL,
14     x_text 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     x_org_id IN NUMBER DEFAULT NULL
21   ) AS
22 
23   /*************************************************************
24   Created By :
25   Date Created By :
26   Purpose :
27   Know limitations, enhancements or remarks
28   Change History
29   Who             When            What
30 
31   (reverse chronological order - newest change first)
32   ***************************************************************/
33 
34     CURSOR cur_old_ref_values IS
35       SELECT   *
36       FROM     IGS_PR_S_SCRATCH_PAD_ALL
37       WHERE    rowid = x_rowid;
38 
39   BEGIN
40 
41     l_rowid := x_rowid;
42 
43     -- Code for setting the Old and New Reference Values.
44     -- Populate Old Values.
45     Open cur_old_ref_values;
46     Fetch cur_old_ref_values INTO old_references;
47     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
48       Close cur_old_ref_values;
49       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
50       IGS_GE_MSG_STACK.ADD;
51       App_Exception.Raise_Exception;
52       Return;
53     END IF;
54     Close cur_old_ref_values;
55 
56     -- Populate New Values.
57     new_references.sequence_number := x_sequence_number;
58     new_references.creation_dt := x_creation_dt;
59     new_references.key := x_key;
60     new_references.message_name := x_message_name;
61     new_references.text := x_text;
62     new_references.org_id := x_org_id;
63 
64     IF (p_action = 'UPDATE') THEN
65       new_references.creation_date := old_references.creation_date;
66       new_references.created_by := old_references.created_by;
67     ELSE
68       new_references.creation_date := x_creation_date;
69       new_references.created_by := x_created_by;
70     END IF;
71     new_references.last_update_date := x_last_update_date;
72     new_references.last_updated_by := x_last_updated_by;
73     new_references.last_update_login := x_last_update_login;
74 
75   END Set_Column_Values;
76 
77   PROCEDURE Check_Constraints (
78 		 Column_Name IN VARCHAR2  DEFAULT NULL,
79 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
80   /*************************************************************
81   Created By :
82   Date Created By :
83   Purpose :
84   Know limitations, enhancements or remarks
85   Change History
86   Who             When            What
87 
88   (reverse chronological order - newest change first)
89   ***************************************************************/
90 
91   BEGIN
92 
93       IF column_name IS NULL THEN
94         NULL;
95         NULL;
96       END IF;
97 
98 
99 
100 
101   END Check_Constraints;
102 
103   FUNCTION Get_PK_For_Validation (
104     x_sequence_number IN NUMBER
105     ) RETURN BOOLEAN AS
106 
107   /*************************************************************
108   Created By :
109   Date Created By :
110   Purpose :
111   Know limitations, enhancements or remarks
112   Change History
113   Who             When            What
114 
115   (reverse chronological order - newest change first)
116   ***************************************************************/
117 
118     CURSOR cur_rowid IS
119       SELECT   rowid
120       FROM     igs_pr_s_scratch_pad_all
121       WHERE    sequence_number = x_sequence_number
122       FOR UPDATE NOWAIT;
123 
124     lv_rowid cur_rowid%RowType;
125 
126   BEGIN
127 
128     Open cur_rowid;
129     Fetch cur_rowid INTO lv_rowid;
130     IF (cur_rowid%FOUND) THEN
131       Close cur_rowid;
132       Return(TRUE);
133     ELSE
134       Close cur_rowid;
135       Return(FALSE);
136     END IF;
137   END Get_PK_For_Validation;
138 
139   PROCEDURE Before_DML (
140     p_action IN VARCHAR2,
141     x_rowid IN VARCHAR2 DEFAULT NULL,
142     x_sequence_number IN NUMBER DEFAULT NULL,
143     x_creation_dt IN DATE DEFAULT NULL,
144     x_key IN VARCHAR2 DEFAULT NULL,
145     x_message_name IN VARCHAR2 DEFAULT NULL,
146     x_text IN VARCHAR2 DEFAULT NULL,
147     x_creation_date IN DATE DEFAULT NULL,
148     x_created_by IN NUMBER DEFAULT NULL,
149     x_last_update_date IN DATE DEFAULT NULL,
150     x_last_updated_by IN NUMBER DEFAULT NULL,
151     x_last_update_login IN NUMBER DEFAULT NULL,
152     x_org_id IN NUMBER DEFAULT NULL
153   ) AS
154   /*************************************************************
155   Created By :
156   Date Created By :
157   Purpose :
158   Know limitations, enhancements or remarks
159   Change History
160   Who             When            What
161 
162   (reverse chronological order - newest change first)
163   ***************************************************************/
164 
165   BEGIN
166 
167     Set_Column_Values (
168       p_action,
169       x_rowid,
170       x_sequence_number,
171       x_creation_dt,
172       x_key,
173       x_message_name,
174       x_text,
175       x_creation_date,
176       x_created_by,
177       x_last_update_date,
178       x_last_updated_by,
179       x_last_update_login,
180       x_org_id
181     );
182 
183     IF (p_action = 'INSERT') THEN
184       -- Call all the procedures related to Before Insert.
185       Null;
186 	     IF Get_Pk_For_Validation(
187     		new_references.sequence_number)  THEN
188 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
189       IGS_GE_MSG_STACK.ADD;
190 	       App_Exception.Raise_Exception;
191 	     END IF;
192       Check_Constraints;
193     ELSIF (p_action = 'UPDATE') THEN
194       -- Call all the procedures related to Before Update.
195       Null;
196       Check_Constraints;
197     ELSIF (p_action = 'DELETE') THEN
198       -- Call all the procedures related to Before Delete.
199       Null;
200     ELSIF (p_action = 'VALIDATE_INSERT') THEN
201 	 -- Call all the procedures related to Before Insert.
202       IF Get_PK_For_Validation (
203     		new_references.sequence_number)  THEN
204 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
205       IGS_GE_MSG_STACK.ADD;
206 	       App_Exception.Raise_Exception;
207 	     END IF;
208       Check_Constraints;
209     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
210       Check_Constraints;
211     ELSIF (p_action = 'VALIDATE_DELETE') THEN
212       Null;
213     END IF;
214 
215   END Before_DML;
216 
217   PROCEDURE After_DML (
218     p_action IN VARCHAR2,
219     x_rowid IN VARCHAR2
220   ) IS
221   /*************************************************************
222   Created By :
223   Date Created By :
224   Purpose :
225   Know limitations, enhancements or remarks
226   Change History
227   Who             When            What
228 
229   (reverse chronological order - newest change first)
230   ***************************************************************/
231 
232   BEGIN
233 
234     l_rowid := x_rowid;
235 
236     IF (p_action = 'INSERT') THEN
237       -- Call all the procedures related to After Insert.
238       Null;
239     ELSIF (p_action = 'UPDATE') THEN
240       -- Call all the procedures related to After Update.
241       Null;
242     ELSIF (p_action = 'DELETE') THEN
243       -- Call all the procedures related to After Delete.
244       Null;
245     END IF;
246 
247   END After_DML;
248 
249  procedure INSERT_ROW (
250       X_ROWID in out NOCOPY VARCHAR2,
251        x_SEQUENCE_NUMBER IN NUMBER,
252        x_CREATION_DT IN DATE,
253        x_KEY IN VARCHAR2,
254        x_MESSAGE_NAME IN VARCHAR2,
255        x_TEXT IN VARCHAR2,
256       X_MODE in VARCHAR2 default 'R',
257        x_org_id IN NUMBER
258   ) AS
259   /*************************************************************
260   Created By :
261   Date Created By :
262   Purpose :
263   Know limitations, enhancements or remarks
264   Change History
265   Who             When            What
266 
267   (reverse chronological order - newest change first)
268   ***************************************************************/
269 
270     cursor C is select ROWID from IGS_PR_S_SCRATCH_PAD_ALL
271              where                 SEQUENCE_NUMBER= X_SEQUENCE_NUMBER
272 ;
273      X_LAST_UPDATE_DATE DATE ;
274      X_LAST_UPDATED_BY NUMBER ;
275      X_LAST_UPDATE_LOGIN NUMBER ;
276  begin
277      X_LAST_UPDATE_DATE := SYSDATE;
278       if(X_MODE = 'I') then
279         X_LAST_UPDATED_BY := 1;
280         X_LAST_UPDATE_LOGIN := 0;
281          elsif (X_MODE = 'R') then
282                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
283             if X_LAST_UPDATED_BY is NULL then
284                 X_LAST_UPDATED_BY := -1;
285             end if;
286             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
287          if X_LAST_UPDATE_LOGIN is NULL then
288             X_LAST_UPDATE_LOGIN := -1;
289           end if;
290        else
291         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
292       IGS_GE_MSG_STACK.ADD;
293           app_exception.raise_exception;
294        end if;
295    Before_DML(
296  		p_action=>'INSERT',
297  		x_rowid=>X_ROWID,
298  	       x_sequence_number=>X_SEQUENCE_NUMBER,
299  	       x_creation_dt=>X_CREATION_DT,
300  	       x_key=>X_KEY,
301  	       x_message_name=>X_MESSAGE_NAME,
302  	       x_text=>X_TEXT,
303 	       x_creation_date=>X_LAST_UPDATE_DATE,
304 	       x_created_by=>X_LAST_UPDATED_BY,
305 	       x_last_update_date=>X_LAST_UPDATE_DATE,
306 	       x_last_updated_by=>X_LAST_UPDATED_BY,
307 	       x_last_update_login=>X_LAST_UPDATE_LOGIN,
308 	       x_org_id=>igs_ge_gen_003.get_org_id);
309      insert into IGS_PR_S_SCRATCH_PAD_ALL (
310 		SEQUENCE_NUMBER
311 		,CREATION_DT
312 		,KEY
313 		,MESSAGE_NAME
314 		,TEXT
315 	        ,CREATION_DATE
316 		,CREATED_BY
317 		,LAST_UPDATE_DATE
318 		,LAST_UPDATED_BY
319 		,LAST_UPDATE_LOGIN
320 		,ORG_ID
321         ) values  (
322 	        NEW_REFERENCES.SEQUENCE_NUMBER
323 	        ,NEW_REFERENCES.CREATION_DT
324 	        ,NEW_REFERENCES.KEY
325 	        ,NEW_REFERENCES.MESSAGE_NAME
326 	        ,NEW_REFERENCES.TEXT
327 	        ,X_LAST_UPDATE_DATE
328 		,X_LAST_UPDATED_BY
329 		,X_LAST_UPDATE_DATE
330 		,X_LAST_UPDATED_BY
331 		,X_LAST_UPDATE_LOGIN
332 		,NEW_REFERENCES.ORG_ID
333 );
334 		open c;
335 		 fetch c into X_ROWID;
336  		if (c%notfound) then
337 		close c;
338  	     raise no_data_found;
339 		end if;
340  		close c;
341     After_DML (
342 		p_action => 'INSERT' ,
343 		x_rowid => X_ROWID );
344 end INSERT_ROW;
345  procedure LOCK_ROW (
346       X_ROWID in  VARCHAR2,
347        x_SEQUENCE_NUMBER IN NUMBER,
348        x_CREATION_DT IN DATE,
349        x_KEY IN VARCHAR2,
350        x_MESSAGE_NAME IN VARCHAR2,
351        x_TEXT IN VARCHAR2
352        ) AS
353   /*************************************************************
354   Created By :
355   Date Created By :
356   Purpose :
357   Know limitations, enhancements or remarks
358   Change History
359   Who             When            What
360 
361   (reverse chronological order - newest change first)
362   ***************************************************************/
363 
364    cursor c1 is select
365       CREATION_DT
366 ,      KEY
367 ,      MESSAGE_NAME
368 ,      TEXT
369     from IGS_PR_S_SCRATCH_PAD_ALL
370     where ROWID = X_ROWID
371     for update nowait;
372      tlinfo c1%rowtype;
373 begin
374   open c1;
375   fetch c1 into tlinfo;
376   if (c1%notfound) then
377     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
378       IGS_GE_MSG_STACK.ADD;
379     close c1;
380     app_exception.raise_exception;
381     return;
382   end if;
383   close c1;
384 if ( (  tlinfo.CREATION_DT = X_CREATION_DT)
385   AND (tlinfo.KEY = X_KEY)
386   AND ((tlinfo.MESSAGE_NAME = X_MESSAGE_NAME)
387  	    OR ((tlinfo.MESSAGE_NAME is null)
388 		AND (X_MESSAGE_NAME is null)))
389   AND ((tlinfo.TEXT = X_TEXT)
390  	    OR ((tlinfo.TEXT is null)
391 		AND (X_TEXT is null)))
392   ) then
393     null;
394   else
395     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
396       IGS_GE_MSG_STACK.ADD;
397     app_exception.raise_exception;
398   end if;
399   return;
400 end LOCK_ROW;
401  Procedure UPDATE_ROW (
402       X_ROWID in  VARCHAR2,
403        x_SEQUENCE_NUMBER IN NUMBER,
404        x_CREATION_DT IN DATE,
405        x_KEY IN VARCHAR2,
406        x_MESSAGE_NAME IN VARCHAR2,
407        x_TEXT IN VARCHAR2,
408       X_MODE in VARCHAR2 default 'R'
409   ) AS
410   /*************************************************************
411   Created By :
412   Date Created By :
413   Purpose :
414   Know limitations, enhancements or remarks
415   Change History
416   Who             When            What
417 
418   (reverse chronological order - newest change first)
419   ***************************************************************/
420 
421      X_LAST_UPDATE_DATE DATE ;
422      X_LAST_UPDATED_BY NUMBER ;
423      X_LAST_UPDATE_LOGIN NUMBER ;
424  begin
425      X_LAST_UPDATE_DATE := SYSDATE;
426       if(X_MODE = 'I') then
427         X_LAST_UPDATED_BY := 1;
428         X_LAST_UPDATE_LOGIN := 0;
429          elsif (X_MODE = 'R') then
430                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
431             if X_LAST_UPDATED_BY is NULL then
432                 X_LAST_UPDATED_BY := -1;
433             end if;
434             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
435          if X_LAST_UPDATE_LOGIN is NULL then
436             X_LAST_UPDATE_LOGIN := -1;
437           end if;
438        else
439         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
440       IGS_GE_MSG_STACK.ADD;
441           app_exception.raise_exception;
442        end if;
443    Before_DML(
444  		p_action=>'UPDATE',
445  		x_rowid=>X_ROWID,
446  	       x_sequence_number=>X_SEQUENCE_NUMBER,
447  	       x_creation_dt=>X_CREATION_DT,
448  	       x_key=>X_KEY,
449  	       x_message_name=>X_MESSAGE_NAME,
450  	       x_text=>X_TEXT,
451 	       x_creation_date=>X_LAST_UPDATE_DATE,
452 	       x_created_by=>X_LAST_UPDATED_BY,
453 	       x_last_update_date=>X_LAST_UPDATE_DATE,
454 	       x_last_updated_by=>X_LAST_UPDATED_BY,
455 	       x_last_update_login=>X_LAST_UPDATE_LOGIN
456 	       );
457    update IGS_PR_S_SCRATCH_PAD_ALL set
458       CREATION_DT =  NEW_REFERENCES.CREATION_DT,
459       KEY =  NEW_REFERENCES.KEY,
460       MESSAGE_NAME =  NEW_REFERENCES.MESSAGE_NAME,
461       TEXT =  NEW_REFERENCES.TEXT,
462 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
463 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
464 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
465 	  where ROWID = X_ROWID;
466 	if (sql%notfound) then
467 		raise no_data_found;
468 	end if;
469 
470  After_DML (
471 	p_action => 'UPDATE' ,
472 	x_rowid => X_ROWID
473 	);
474 end UPDATE_ROW;
475  procedure ADD_ROW (
476       X_ROWID in out NOCOPY VARCHAR2,
477        x_SEQUENCE_NUMBER IN NUMBER,
478        x_CREATION_DT IN DATE,
479        x_KEY IN VARCHAR2,
480        x_MESSAGE_NAME IN VARCHAR2,
481        x_TEXT IN VARCHAR2,
482       X_MODE in VARCHAR2 default 'R' ,
483        x_ORG_ID IN NUMBER
484   ) AS
485   /*************************************************************
486   Created By :
487   Date Created By :
488   Purpose :
489   Know limitations, enhancements or remarks
490   Change History
491   Who             When            What
492 
493   (reverse chronological order - newest change first)
494   ***************************************************************/
495 
496     cursor c1 is select ROWID from IGS_PR_S_SCRATCH_PAD_ALL
497              where     SEQUENCE_NUMBER= X_SEQUENCE_NUMBER
498 ;
499 begin
500 	open c1;
501 		fetch c1 into X_ROWID;
502 	if (c1%notfound) then
503 	close c1;
504     INSERT_ROW (
505       X_ROWID,
506        X_SEQUENCE_NUMBER,
507        X_CREATION_DT,
508        X_KEY,
509        X_MESSAGE_NAME,
510        X_TEXT,
511       X_MODE,
512        X_ORG_ID );
513      return;
514 	end if;
515 	   close c1;
516 UPDATE_ROW (
517       X_ROWID,
518        X_SEQUENCE_NUMBER,
519        X_CREATION_DT,
520        X_KEY,
521        X_MESSAGE_NAME,
522        X_TEXT,
523       X_MODE );
524 end ADD_ROW;
525 procedure DELETE_ROW (
526   X_ROWID in VARCHAR2
527 ) AS
528   /*************************************************************
529   Created By :
530   Date Created By :
531   Purpose :
532   Know limitations, enhancements or remarks
533   Change History
534   Who             When            What
535 
536   (reverse chronological order - newest change first)
537   ***************************************************************/
538 
539 begin
540 Before_DML (
541 p_action => 'DELETE',
542 x_rowid => X_ROWID
543 );
544  delete from IGS_PR_S_SCRATCH_PAD_ALL
545  where ROWID = X_ROWID;
546   if (sql%notfound) then
547     raise no_data_found;
548   end if;
549 After_DML (
550  p_action => 'DELETE',
551  x_rowid => X_ROWID
552 );
553 end DELETE_ROW;
554 END igs_pr_s_scratch_pad_pkg;