DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_DATA_ELEMENT_PKG

Source


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