1 PACKAGE BODY igs_pe_stup_data_emt_pkg AS
2 /* $Header: IGSNI45B.pls 115.8 2002/11/29 01:24:36 nsidana ship $ */
3 l_rowid VARCHAR2(25);
4 old_references igs_pe_stup_data_emt_all%RowType;
5 new_references igs_pe_stup_data_emt_all%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_setup_data_element_id IN NUMBER DEFAULT NULL,
11 x_person_type_code IN VARCHAR2 DEFAULT NULL,
12 x_data_element IN VARCHAR2 DEFAULT NULL,
13 x_value IN VARCHAR2 DEFAULT NULL,
14 x_required_ind 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 : svenkata
25 Date Created By : 2000/05/11
26 Purpose : To set column values before inserting / updating a row
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_pe_stup_data_emt_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.setup_data_element_id := x_setup_data_element_id;
58 new_references.person_type_code := x_person_type_code;
59 new_references.data_element := x_data_element;
60 new_references.value := x_value;
61 new_references.required_ind := x_required_ind;
62 new_references.org_id := x_org_id;
63 IF (p_action = 'UPDATE') THEN
64 new_references.creation_date := old_references.creation_date;
65 new_references.created_by := old_references.created_by;
66 ELSE
67 new_references.creation_date := x_creation_date;
68 new_references.created_by := x_created_by;
69 END IF;
70 new_references.last_update_date := x_last_update_date;
71 new_references.last_updated_by := x_last_updated_by;
72 new_references.last_update_login := x_last_update_login;
73
74 END Set_Column_Values;
75
76 PROCEDURE Check_Constraints (
77 Column_Name IN VARCHAR2 DEFAULT NULL,
78 Column_Value IN VARCHAR2 DEFAULT NULL ) AS
79 /*************************************************************
80 Created By : svenkata
81 Date Created By : 2000/05/11
82 Purpose : Checks if constraints are satisfied before insertion or modification of a record
83 Know limitations, enhancements or remarks
84 Change History
85 Who When What
86
87 (reverse chronological order - newest change first)
88 ***************************************************************/
89
90 BEGIN
91
92 IF column_name IS NULL THEN
93 NULL;
94 ELSIF UPPER(column_name) = 'REQUIRED_IND' THEN
95 new_references.required_ind := column_value;
96 NULL;
97 END IF;
98
99
100
101 -- The following code checks for check constraints on the Columns.
102 IF Upper(Column_Name) = 'REQUIRED_IND' OR
103 Column_Name IS NULL THEN
104 IF NOT (new_references.required_ind IN ('M', 'P', 'N')) THEN
105 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
106 IGS_GE_MSG_STACK.ADD;
107 App_Exception.Raise_Exception;
108 END IF;
109 END IF;
110
111
112 END Check_Constraints;
113
114 PROCEDURE Check_Parent_Existance AS
115 /*************************************************************
116 Created By : svenkata
117 Date Created By : 2000/05/11
118 Purpose : Checks if a parent record exists before inserting or updating a row
119 Know limitations, enhancements or remarks
120 Change History
121 Who When What
122
123 (reverse chronological order - newest change first)
124 ***************************************************************/
125
126 BEGIN
127
128 IF (((old_references.person_type_code = new_references.person_type_code)) OR
129 ((new_references.person_type_code IS NULL))) THEN
130 NULL;
131 ELSIF NOT Igs_Pe_Person_Types_Pkg.Get_PK_For_Validation (
132 new_references.person_type_code
133 ) THEN
134 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
135 IGS_GE_MSG_STACK.ADD;
136 App_Exception.Raise_Exception;
137 END IF;
138
139 IF (((old_references.data_element = new_references.data_element)) OR
140 ((new_references.data_element IS NULL))) THEN
141 NULL;
142 ELSIF NOT Igs_Pe_Data_Element_Pkg.Get_PK_For_Validation (
143 new_references.data_element
144 ) THEN
145 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
146 IGS_GE_MSG_STACK.ADD;
147 App_Exception.Raise_Exception;
148 END IF;
149
150 END Check_Parent_Existance;
151
152 FUNCTION Get_PK_For_Validation (
153 x_setup_data_element_id IN NUMBER
154 ) RETURN BOOLEAN AS
155
156 /*************************************************************
157 Created By : svenkata
158 Date Created By : 2000/05/11
159 Purpose : Checks for duplicate Primary key
160 Know limitations, enhancements or remarks
161 Change History
162 Who When What
163
164 (reverse chronological order - newest change first)
165 ***************************************************************/
166
167 CURSOR cur_rowid IS
168 SELECT rowid
169 FROM igs_pe_stup_data_emt_all
170 WHERE setup_data_element_id = x_setup_data_element_id
171 FOR UPDATE NOWAIT;
172
173 lv_rowid cur_rowid%RowType;
174
175 BEGIN
176
177 Open cur_rowid;
178 Fetch cur_rowid INTO lv_rowid;
179 IF (cur_rowid%FOUND) THEN
180 Close cur_rowid;
181 Return(TRUE);
182 ELSE
183 Close cur_rowid;
184 Return(FALSE);
185 END IF;
186 END Get_PK_For_Validation;
187
188 PROCEDURE Get_FK_Igs_Pe_Person_Types (
189 x_person_type_code IN VARCHAR2
190 ) AS
191
192 /*************************************************************
193 Created By : svenkata
194 Date Created By : 2000/05/11
195 Purpose : Checks existance of child record
196 Know limitations, enhancements or remarks
197 Change History
198 Who When What
199
200 (reverse chronological order - newest change first)
201 ***************************************************************/
202
203 CURSOR cur_rowid IS
204 SELECT rowid
205 FROM igs_pe_stup_data_emt_all
206 WHERE person_type_code = x_person_type_code ;
207
208 lv_rowid cur_rowid%RowType;
209
210 BEGIN
211
212 Open cur_rowid;
213 Fetch cur_rowid INTO lv_rowid;
214 IF (cur_rowid%FOUND) THEN
215 Close cur_rowid;
216 Fnd_Message.Set_Name ('IGS', 'IGS_PE_PSDE_PT_FK');
217 IGS_GE_MSG_STACK.ADD;
218 App_Exception.Raise_Exception;
219 Return;
220 END IF;
221 Close cur_rowid;
222
223 END Get_FK_Igs_Pe_Person_Types;
224
225 PROCEDURE Get_FK_Igs_Pe_Data_Element (
226 x_data_element IN VARCHAR2
227 ) AS
228
229 /*************************************************************
230 Created By : svenkata
231 Date Created By : 2000/05/11
232 Purpose : Checks existance of child record
233 Know limitations, enhancements or remarks
234 Change History
235 Who When What
236
237 (reverse chronological order - newest change first)
238 ***************************************************************/
239
240 CURSOR cur_rowid IS
241 SELECT rowid
242 FROM igs_pe_stup_data_emt_all
243 WHERE data_element = x_data_element ;
244
245 lv_rowid cur_rowid%RowType;
246
247 BEGIN
248
249 Open cur_rowid;
250 Fetch cur_rowid INTO lv_rowid;
251 IF (cur_rowid%FOUND) THEN
252 Close cur_rowid;
253 Fnd_Message.Set_Name ('IGS', 'IGS_PE_PSDE_PDE_FK');
254 IGS_GE_MSG_STACK.ADD;
255 App_Exception.Raise_Exception;
256 Return;
257 END IF;
258 Close cur_rowid;
259
260 END Get_FK_Igs_Pe_Data_Element;
261
262 PROCEDURE Before_DML (
263 p_action IN VARCHAR2,
264 x_rowid IN VARCHAR2 DEFAULT NULL,
265 x_setup_data_element_id IN NUMBER DEFAULT NULL,
266 x_person_type_code IN VARCHAR2 DEFAULT NULL,
267 x_data_element IN VARCHAR2 DEFAULT NULL,
268 x_value IN VARCHAR2 DEFAULT NULL,
269 x_required_ind IN VARCHAR2 DEFAULT NULL,
270 x_creation_date IN DATE DEFAULT NULL,
271 x_created_by IN NUMBER DEFAULT NULL,
272 x_last_update_date IN DATE DEFAULT NULL,
273 x_last_updated_by IN NUMBER DEFAULT NULL,
274 x_last_update_login IN NUMBER DEFAULT NULL,
275 X_ORG_ID in NUMBER default NULL
276 ) AS
277 /*************************************************************
278 Created By : svenkata
279 Date Created By : 2000/05/11
280 Purpose : Executes steps to be carried out NOCOPY before any DML operation
281 Know limitations, enhancements or remarks
282 Change History
283 Who When What
284
285 (reverse chronological order - newest change first)
286 ***************************************************************/
287
288 BEGIN
289
290 Set_Column_Values (
291 p_action,
292 x_rowid,
293 x_setup_data_element_id,
294 x_person_type_code,
295 x_data_element,
296 x_value,
297 x_required_ind,
298 x_creation_date,
299 x_created_by,
300 x_last_update_date,
301 x_last_updated_by,
302 x_last_update_login ,
303 x_org_id
304 );
305
306 IF (p_action = 'INSERT') THEN
307 -- Call all the procedures related to Before Insert.
308 Null;
309 IF Get_Pk_For_Validation(
310 new_references.setup_data_element_id) THEN
311 Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
312 IGS_GE_MSG_STACK.ADD;
313 App_Exception.Raise_Exception;
314 END IF;
315 Check_Constraints;
316 Check_Parent_Existance;
317 ELSIF (p_action = 'UPDATE') THEN
318 -- Call all the procedures related to Before Update.
319 Null;
320 Check_Constraints;
321 Check_Parent_Existance;
322 ELSIF (p_action = 'DELETE') THEN
323 -- Call all the procedures related to Before Delete.
324 Null;
325 ELSIF (p_action = 'VALIDATE_INSERT') THEN
326 -- Call all the procedures related to Before Insert.
327 IF Get_PK_For_Validation (
328 new_references.setup_data_element_id) THEN
329 Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
330 IGS_GE_MSG_STACK.ADD;
331 App_Exception.Raise_Exception;
332 END IF;
333 Check_Constraints;
334 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
335 Check_Constraints;
336 ELSIF (p_action = 'VALIDATE_DELETE') THEN
337 Null;
338 END IF;
339
340 END Before_DML;
341
342 PROCEDURE After_DML (
343 p_action IN VARCHAR2,
344 x_rowid IN VARCHAR2
345 ) IS
346 /*************************************************************
347 Created By : svenkata
348 Date Created By : 2000/05/11
349 Purpose : Executes steps to be carried out NOCOPY after any DML operation
350 Know limitations, enhancements or remarks
351 Change History
352 Who When What
353
354 (reverse chronological order - newest change first)
355 ***************************************************************/
356
357 BEGIN
358
359 l_rowid := x_rowid;
360
361 IF (p_action = 'INSERT') THEN
362 -- Call all the procedures related to After Insert.
363 Null;
364 ELSIF (p_action = 'UPDATE') THEN
365 -- Call all the procedures related to After Update.
366 Null;
367 ELSIF (p_action = 'DELETE') THEN
368 -- Call all the procedures related to After Delete.
369 Null;
370 END IF;
371
372 END After_DML;
373
374 procedure INSERT_ROW (
375 X_ROWID in out NOCOPY VARCHAR2,
376 x_SETUP_DATA_ELEMENT_ID IN OUT NOCOPY NUMBER,
377 x_PERSON_TYPE_CODE IN VARCHAR2,
378 x_DATA_ELEMENT IN VARCHAR2,
379 x_VALUE IN VARCHAR2,
380 x_REQUIRED_IND IN VARCHAR2,
381 X_MODE in VARCHAR2 default 'R' ,
382 x_org_id IN NUMBER
383 ) AS
384 /*************************************************************
385 Created By : svenkata
386 Date Created By : 2000/05/11
387 Purpose : Inserts a row into a table
388 Know limitations, enhancements or remarks
389 Change History
390 Who When What
391
392 (reverse chronological order - newest change first)
393 ***************************************************************/
394
395 cursor C is select ROWID from igs_pe_stup_data_emt_all
396 where SETUP_DATA_ELEMENT_ID= X_SETUP_DATA_ELEMENT_ID
397 ;
398 X_LAST_UPDATE_DATE DATE ;
399 X_LAST_UPDATED_BY NUMBER ;
400 X_LAST_UPDATE_LOGIN NUMBER ;
401 begin
402 X_LAST_UPDATE_DATE := SYSDATE;
403 if(X_MODE = 'I') then
404 X_LAST_UPDATED_BY := 1;
405 X_LAST_UPDATE_LOGIN := 0;
406 elsif (X_MODE = 'R') then
407 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
408 if X_LAST_UPDATED_BY is NULL then
409 X_LAST_UPDATED_BY := -1;
410 end if;
411 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
412 if X_LAST_UPDATE_LOGIN is NULL then
413 X_LAST_UPDATE_LOGIN := -1;
414 end if;
415 else
416 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
417 IGS_GE_MSG_STACK.ADD;
418 app_exception.raise_exception;
419 end if;
420
421
422 SELECT IGS_PE_STUP_DATA_EMT_S.NEXTVAL INTO x_setup_data_element_id FROM DUAL;
423
424 Before_DML(
425 p_action=>'INSERT',
426 x_rowid=>X_ROWID,
427 x_setup_data_element_id=>X_SETUP_DATA_ELEMENT_ID,
428 x_person_type_code=>X_PERSON_TYPE_CODE,
429 x_data_element=>X_DATA_ELEMENT,
430 x_value=>X_VALUE,
431 x_required_ind=>X_REQUIRED_IND,
432 x_creation_date=>X_LAST_UPDATE_DATE,
433 x_created_by=>X_LAST_UPDATED_BY,
434 x_last_update_date=>X_LAST_UPDATE_DATE,
435 x_last_updated_by=>X_LAST_UPDATED_BY,
436 x_last_update_login=>X_LAST_UPDATE_LOGIN,
437 x_org_id=>igs_ge_gen_003.get_org_id
438 );
439 insert into igs_pe_stup_data_emt_all (
440 SETUP_DATA_ELEMENT_ID
441 ,PERSON_TYPE_CODE
442 ,DATA_ELEMENT
443 ,VALUE
444 ,REQUIRED_IND
445 ,CREATION_DATE
446 ,CREATED_BY
447 ,LAST_UPDATE_DATE
448 ,LAST_UPDATED_BY
449 ,LAST_UPDATE_LOGIN,
450 ORG_ID
451 ) values (
452 NEW_REFERENCES.SETUP_DATA_ELEMENT_ID
453 ,NEW_REFERENCES.PERSON_TYPE_CODE
454 ,NEW_REFERENCES.DATA_ELEMENT
455 ,NEW_REFERENCES.VALUE
456 ,NEW_REFERENCES.REQUIRED_IND
457 ,X_LAST_UPDATE_DATE
458 ,X_LAST_UPDATED_BY
459 ,X_LAST_UPDATE_DATE
460 ,X_LAST_UPDATED_BY
461 ,X_LAST_UPDATE_LOGIN,
462 NEW_REFERENCES.ORG_ID
463 );
464 open c;
465 fetch c into X_ROWID;
466 if (c%notfound) then
467 close c;
468 raise no_data_found;
469 end if;
470 close c;
471 After_DML (
472 p_action => 'INSERT' ,
473 x_rowid => X_ROWID );
474 end INSERT_ROW;
475
476 procedure LOCK_ROW (
477 X_ROWID in VARCHAR2,
478 x_SETUP_DATA_ELEMENT_ID IN NUMBER,
479 x_PERSON_TYPE_CODE IN VARCHAR2,
480 x_DATA_ELEMENT IN VARCHAR2,
481 x_VALUE IN VARCHAR2,
482 x_REQUIRED_IND IN VARCHAR2
483 ) AS
484 /*************************************************************
485 Created By : svenkata
486 Date Created By : 2000/05/11
487 Purpose : Locks a particular row in a table
488 Know limitations, enhancements or remarks
489 Change History
490 Who When What
491
492 (reverse chronological order - newest change first)
493 ***************************************************************/
494
495 cursor c1 is select
496 PERSON_TYPE_CODE
497 , DATA_ELEMENT
498 , VALUE
499 , REQUIRED_IND
500 from igs_pe_stup_data_emt_all
501 where ROWID = X_ROWID
502 for update nowait;
503 tlinfo c1%rowtype;
504 begin
505 open c1;
506 fetch c1 into tlinfo;
507 if (c1%notfound) then
508 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
509 IGS_GE_MSG_STACK.ADD;
510 close c1;
511 app_exception.raise_exception;
512 return;
513 end if;
514 close c1;
515 if ( ( tlinfo.PERSON_TYPE_CODE = X_PERSON_TYPE_CODE)
516 AND (tlinfo.DATA_ELEMENT = X_DATA_ELEMENT)
517 AND ((tlinfo.VALUE = X_VALUE)
518 OR ((tlinfo.VALUE is null)
519 AND (X_VALUE is null)))
520 AND ((tlinfo.REQUIRED_IND = X_REQUIRED_IND)
521 OR ((tlinfo.REQUIRED_IND is null)
522 AND (X_REQUIRED_IND is null)))
523 ) then
524 null;
525 else
526 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
527 IGS_GE_MSG_STACK.ADD;
528 app_exception.raise_exception;
529 end if;
530 return;
531 end LOCK_ROW;
532
533 Procedure UPDATE_ROW (
534 X_ROWID in VARCHAR2,
535 x_SETUP_DATA_ELEMENT_ID IN NUMBER,
536 x_PERSON_TYPE_CODE IN VARCHAR2,
537 x_DATA_ELEMENT IN VARCHAR2,
538 x_VALUE IN VARCHAR2,
539 x_REQUIRED_IND IN VARCHAR2,
540 X_MODE in VARCHAR2 default 'R'
541 ) AS
542 /*************************************************************
543 Created By : svenkata
544 Date Created By : 2000/05/11
545 Purpose : Updates a row in the table
546 Know limitations, enhancements or remarks
547 Change History
548 Who When What
549
550 (reverse chronological order - newest change first)
551 ***************************************************************/
552
553 X_LAST_UPDATE_DATE DATE ;
554 X_LAST_UPDATED_BY NUMBER ;
555 X_LAST_UPDATE_LOGIN NUMBER ;
556 begin
557 X_LAST_UPDATE_DATE := SYSDATE;
558 if(X_MODE = 'I') then
559 X_LAST_UPDATED_BY := 1;
560 X_LAST_UPDATE_LOGIN := 0;
561 elsif (X_MODE = 'R') then
562 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
563 if X_LAST_UPDATED_BY is NULL then
564 X_LAST_UPDATED_BY := -1;
565 end if;
566 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
567 if X_LAST_UPDATE_LOGIN is NULL then
568 X_LAST_UPDATE_LOGIN := -1;
569 end if;
570 else
571 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
572 IGS_GE_MSG_STACK.ADD;
573 app_exception.raise_exception;
574 end if;
575 Before_DML(
576 p_action=>'UPDATE',
577 x_rowid=>X_ROWID,
578 x_setup_data_element_id=>X_SETUP_DATA_ELEMENT_ID,
579 x_person_type_code=>X_PERSON_TYPE_CODE,
580 x_data_element=>X_DATA_ELEMENT,
581 x_value=>X_VALUE,
582 x_required_ind=>X_REQUIRED_IND,
583 x_creation_date=>X_LAST_UPDATE_DATE,
584 x_created_by=>X_LAST_UPDATED_BY,
585 x_last_update_date=>X_LAST_UPDATE_DATE,
586 x_last_updated_by=>X_LAST_UPDATED_BY,
587 x_last_update_login=>X_LAST_UPDATE_LOGIN
588 );
589 update igs_pe_stup_data_emt_all set
590 PERSON_TYPE_CODE = NEW_REFERENCES.PERSON_TYPE_CODE,
591 DATA_ELEMENT = NEW_REFERENCES.DATA_ELEMENT,
592 VALUE = NEW_REFERENCES.VALUE,
593 REQUIRED_IND = NEW_REFERENCES.REQUIRED_IND,
594 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
595 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
596 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
597 where ROWID = X_ROWID;
598 if (sql%notfound) then
599 raise no_data_found;
600 end if;
601
602 After_DML (
603 p_action => 'UPDATE' ,
604 x_rowid => X_ROWID
605 );
606 end UPDATE_ROW;
607
608 procedure ADD_ROW (
609 X_ROWID in out NOCOPY VARCHAR2,
610 x_SETUP_DATA_ELEMENT_ID IN OUT NOCOPY NUMBER,
611 x_PERSON_TYPE_CODE IN VARCHAR2,
612 x_DATA_ELEMENT IN VARCHAR2,
613 x_VALUE IN VARCHAR2,
614 x_REQUIRED_IND IN VARCHAR2,
615 X_MODE in VARCHAR2 default 'R' ,
616 X_ORG_ID in NUMBER
617 ) AS
618 /*************************************************************
619 Created By : svenkata
620 Date Created By : 2000/05/11
621 Purpose : Adds a new row to the table
622 Know limitations, enhancements or remarks
623 Change History
624 Who When What
625
626 (reverse chronological order - newest change first)
627 ***************************************************************/
628
629 cursor c1 is select ROWID from igs_pe_stup_data_emt_all
630 where SETUP_DATA_ELEMENT_ID= X_SETUP_DATA_ELEMENT_ID
631 ;
632 begin
633 open c1;
634 fetch c1 into X_ROWID;
635 if (c1%notfound) then
636 close c1;
637 INSERT_ROW (
638 X_ROWID,
639 X_SETUP_DATA_ELEMENT_ID,
640 X_PERSON_TYPE_CODE,
641 X_DATA_ELEMENT,
642 X_VALUE,
643 X_REQUIRED_IND,
644 X_MODE ,
645 x_org_id
646 );
647 return;
648 end if;
649 close c1;
650 UPDATE_ROW (
651 X_ROWID,
652 X_SETUP_DATA_ELEMENT_ID,
653 X_PERSON_TYPE_CODE,
654 X_DATA_ELEMENT,
655 X_VALUE,
656 X_REQUIRED_IND,
657 X_MODE
658 );
659 end ADD_ROW;
660 procedure DELETE_ROW (
661 X_ROWID in VARCHAR2
662 ) AS
663 /*************************************************************
664 Created By : svenkata
665 Date Created By : 2000/05/11
666 Purpose : Deletes a row from the table
667 Know limitations, enhancements or remarks
668 Change History
669 Who When What
670
671 (reverse chronological order - newest change first)
672 ***************************************************************/
673
674 begin
675 Before_DML (
676 p_action => 'DELETE',
677 x_rowid => X_ROWID
678 );
679 delete from igs_pe_stup_data_emt_all
680 where ROWID = X_ROWID;
681 if (sql%notfound) then
682 raise no_data_found;
683 end if;
684 After_DML (
685 p_action => 'DELETE',
686 x_rowid => X_ROWID
687 );
688 end DELETE_ROW;
689 END igs_pe_stup_data_emt_pkg;