[Home] [Help]
PACKAGE BODY: APPS.IGS_EN_MERGE_ID_ROWS_PKG
Source
1 package body IGS_EN_MERGE_ID_ROWS_PKG AS
2 /* $Header: IGSEI29B.pls 115.4 2002/11/28 23:38:55 nsidana ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_EN_MERGE_ID_ROWS%RowType;
6 new_references IGS_EN_MERGE_ID_ROWS%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_smir_id IN NUMBER DEFAULT NULL,
12 x_table_alias IN VARCHAR2 DEFAULT NULL,
13 x_obsolete_person_id IN NUMBER DEFAULT NULL,
14 x_obsolete_id_row_info IN VARCHAR2 DEFAULT NULL,
15 x_obsolete_id_rowid IN ROWID DEFAULT NULL,
16 x_obsolete_update_on IN DATE DEFAULT NULL,
17 x_current_person_id IN NUMBER DEFAULT NULL,
18 x_current_id_row_info IN VARCHAR2 DEFAULT NULL,
19 x_current_id_rowid IN ROWID DEFAULT NULL,
20 x_current_update_on IN DATE DEFAULT NULL,
21 x_creation_date IN DATE DEFAULT NULL,
22 x_created_by IN NUMBER DEFAULT NULL,
23 x_last_update_date IN DATE DEFAULT NULL,
24 x_last_updated_by IN NUMBER DEFAULT NULL,
25 x_last_update_login IN NUMBER DEFAULT NULL
26 ) AS
27
28 CURSOR cur_old_ref_values IS
29 SELECT *
30 FROM IGS_EN_MERGE_ID_ROWS
31 WHERE rowid = x_rowid;
32
33 BEGIN
34
35 l_rowid := x_rowid;
36
37 -- Code for setting the Old and New Reference Values.
38 -- Populate Old Values.
39 Open cur_old_ref_values;
40 Fetch cur_old_ref_values INTO old_references;
41 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ( 'INSERT','VALIDATE_INSERT' )) THEN
42 Close cur_old_ref_values;
43 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
44 IGS_GE_MSG_STACK.ADD;
45 App_Exception.Raise_Exception;
46 Return;
47 END IF;
48 Close cur_old_ref_values;
49
50 -- Populate New Values.
51 new_references.smir_id := x_smir_id;
52 new_references.table_alias := x_table_alias;
53 new_references.obsolete_person_id := x_obsolete_person_id;
54 new_references.obsolete_id_row_info := x_obsolete_id_row_info;
55 new_references.obsolete_id_rowid := x_obsolete_id_rowid;
56 new_references.obsolete_update_on := x_obsolete_update_on;
57 new_references.current_person_id := x_current_person_id;
58 new_references.current_id_row_info := x_current_id_row_info;
59 new_references.current_id_rowid := x_current_id_rowid;
60 new_references.current_update_on := x_current_update_on;
61 IF (p_action = 'UPDATE') THEN
62 new_references.creation_date := old_references.creation_date;
63 new_references.created_by := old_references.created_by;
64 ELSE
65 new_references.creation_date := x_creation_date;
66 new_references.created_by := x_created_by;
67 END IF;
68 new_references.last_update_date := x_last_update_date;
69 new_references.last_updated_by := x_last_updated_by;
70 new_references.last_update_login := x_last_update_login;
71
72 END Set_Column_Values;
73
74 procedure Check_constraints(
75 column_name IN VARCHAR2 DEFAULT NULL,
76 column_value IN VARCHAR2 DEFAULT NULL
77 )AS
78 begin
79 IF column_name is null then
80 NULL;
81 ELSIF upper(column_name) = 'TABLE_ALIAS' THEN
82 new_references.table_alias := column_value;
83 END IF;
84
85 IF upper(column_name) = 'TABLE_ALIAS' OR
86 Column_name is null THEN
87 IF new_references.table_alias <>
88 upper(new_references.table_alias) THEN
89 Fnd_Message.Set_Name ('IGS','IGS_GE_INVALID_VALUE');
90 IGS_GE_MSG_STACK.ADD;
91 App_Exception.Raise_Exception;
92 END IF;
93 END IF;
94
95 END check_constraints;
96
97 PROCEDURE Check_Parent_Existance AS
98 BEGIN
99
100 IF (((old_references.current_person_id = new_references.current_person_id)) OR
101 ((new_references.current_person_id IS NULL))) THEN
102 NULL;
103 ELSE
104 IF NOT IGS_PE_PERSON_PKG.Get_PK_For_Validation (
105 new_references.current_person_id
106 ) THEN
107 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
108 IGS_GE_MSG_STACK.ADD;
109 App_Exception.Raise_Exception;
110 END IF;
111
112 END IF;
113
114 IF (((old_references.obsolete_person_id = new_references.obsolete_person_id)) OR
115 ((new_references.obsolete_person_id IS NULL))) THEN
116 NULL;
117 ELSE
118 IF NOT IGS_PE_PERSON_PKG.Get_PK_For_Validation (
119 new_references.obsolete_person_id
120 ) THEN
121 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
122 IGS_GE_MSG_STACK.ADD;
123 App_Exception.Raise_Exception;
124 END IF;
125
126 END IF;
127
128 END Check_Parent_Existance;
129
130 PROCEDURE Check_Child_Existance AS
131 BEGIN
132
133 IGS_EN_MRG_ID_ACT_CH_PKG.GET_FK_IGS_EN_MERGE_ID_ROWS (
134 old_references.smir_id
135 );
136
137 END Check_Child_Existance;
138
139 FUNCTION Get_PK_For_Validation (
140 x_smir_id IN NUMBER
141 ) RETURN BOOLEAN AS
142
143 CURSOR cur_rowid IS
144 SELECT rowid
145 FROM IGS_EN_MERGE_ID_ROWS
146 WHERE smir_id = x_smir_id
147 FOR UPDATE NOWAIT;
148
149 lv_rowid cur_rowid%RowType;
150
151 BEGIN
152
153 Open cur_rowid;
154 Fetch cur_rowid INTO lv_rowid;
155 IF (cur_rowid%FOUND) THEN
156 Close cur_rowid;
157 return(TRUE);
158 else
159 Close cur_rowid;
160 Return(FALSE);
161 END IF;
162
163 END Get_PK_For_Validation;
164
165 PROCEDURE GET_FK_IGS_PE_PERSON (
166 x_person_id IN NUMBER
167 ) AS
168
169 CURSOR cur_rowid IS
170 SELECT rowid
171 FROM IGS_EN_MERGE_ID_ROWS
172 WHERE current_person_id = x_person_id
173 OR obsolete_person_id = x_person_id ;
174
175 lv_rowid cur_rowid%RowType;
176
177 BEGIN
178
179 Open cur_rowid;
180 Fetch cur_rowid INTO lv_rowid;
181 IF (cur_rowid%FOUND) THEN
182 Close cur_rowid;
183 Fnd_Message.Set_Name ('IGS', 'IGS_EN_SMIR_PE_FK');
184 IGS_GE_MSG_STACK.ADD;
185 App_Exception.Raise_Exception;
186 Return;
187 END IF;
188 Close cur_rowid;
189
190 END GET_FK_IGS_PE_PERSON;
191
192 PROCEDURE Before_DML (
193 p_action IN VARCHAR2,
194 x_rowid IN VARCHAR2 DEFAULT NULL,
195 x_smir_id IN NUMBER DEFAULT NULL,
196 x_table_alias IN VARCHAR2 DEFAULT NULL,
197 x_obsolete_person_id IN NUMBER DEFAULT NULL,
198 x_obsolete_id_row_info IN VARCHAR2 DEFAULT NULL,
199 x_obsolete_id_rowid IN VARCHAR2 DEFAULT NULL,
200 x_obsolete_update_on IN DATE DEFAULT NULL,
201 x_current_person_id IN NUMBER DEFAULT NULL,
202 x_current_id_row_info IN VARCHAR2 DEFAULT NULL,
203 x_current_id_rowid IN VARCHAR2 DEFAULT NULL,
204 x_current_update_on IN DATE DEFAULT NULL,
205 x_creation_date IN DATE DEFAULT NULL,
206 x_created_by IN NUMBER DEFAULT NULL,
207 x_last_update_date IN DATE DEFAULT NULL,
208 x_last_updated_by IN NUMBER DEFAULT NULL,
209 x_last_update_login IN NUMBER DEFAULT NULL
210 ) AS
211 BEGIN
212
213 Set_Column_Values (
214 p_action,
215 x_rowid,
216 x_smir_id,
217 x_table_alias,
218 x_obsolete_person_id,
219 x_obsolete_id_row_info,
220 CHARTOROWID(x_obsolete_id_rowid),
221 x_obsolete_update_on,
222 x_current_person_id,
223 x_current_id_row_info,
224 CHARTOROWID(x_current_id_rowid),
225 x_current_update_on,
226 x_creation_date,
227 x_created_by,
228 x_last_update_date,
229 x_last_updated_by,
230 x_last_update_login
231 );
232
233 IF (p_action = 'INSERT') THEN
234 -- Call all the procedures related to Before Insert.
235 Null;
236 IF Get_PK_For_Validation (
237 new_references.smir_id
238 ) then
239 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
240 IGS_GE_MSG_STACK.ADD;
241 App_Exception.Raise_Exception;
242 end if;
243 Check_constraints;
244 Check_Parent_Existance;
245 ELSIF (p_action = 'UPDATE') THEN
246 -- Call all the procedures related to Before Update.
247 Null;
248 Check_constraints;
249 Check_Parent_Existance;
250 ELSIF (p_action = 'DELETE') THEN
251 -- Call all the procedures related to Before Delete.
252 Null;
253 Check_Child_Existance;
254 ELSIF (p_action = 'VALIDATE_INSERT') then
255 IF Get_PK_For_Validation (
256 new_references.smir_id
257 ) then
258 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
259 IGS_GE_MSG_STACK.ADD;
260 App_Exception.Raise_Exception;
261 end if;
262 Check_constraints;
263 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
264 Check_constraints;
265 ELSIF (p_action = 'VALIDATE_DELETE') THEN
266 Check_Child_Existance;
267 END IF;
268
269 END Before_DML;
270
271 PROCEDURE After_DML (
272 p_action IN VARCHAR2,
273 x_rowid IN VARCHAR2
274 ) AS
275 BEGIN
276
277 l_rowid := x_rowid;
278
279 IF (p_action = 'INSERT') THEN
280 -- Call all the procedures related to After Insert.
281 Null;
282 ELSIF (p_action = 'UPDATE') THEN
283 -- Call all the procedures related to After Update.
284 Null;
285 ELSIF (p_action = 'DELETE') THEN
286 -- Call all the procedures related to After Delete.
287 Null;
288 END IF;
289
290 END After_DML;
291
292 procedure INSERT_ROW (
293 X_ROWID in out NOCOPY VARCHAR2,
294 X_SMIR_ID in NUMBER,
295 X_TABLE_ALIAS in VARCHAR2,
296 X_OBSOLETE_PERSON_ID in NUMBER,
297 X_OBSOLETE_ID_ROW_INFO in VARCHAR2,
298 X_OBSOLETE_ID_ROWID in VARCHAR2,
299 X_OBSOLETE_UPDATE_ON in DATE,
300 X_CURRENT_PERSON_ID in NUMBER,
301 X_CURRENT_ID_ROW_INFO in VARCHAR2,
302 X_CURRENT_ID_ROWID in VARCHAR2,
303 X_CURRENT_UPDATE_ON in DATE,
304 X_MODE in VARCHAR2 default 'R'
305 ) AS
306 cursor C is select ROWID from IGS_EN_MERGE_ID_ROWS
307 where SMIR_ID = X_SMIR_ID;
308 X_LAST_UPDATE_DATE DATE;
309 X_LAST_UPDATED_BY NUMBER;
310 X_LAST_UPDATE_LOGIN NUMBER;
311 begin
312 X_LAST_UPDATE_DATE := SYSDATE;
313 if(X_MODE = 'I') then
314 X_LAST_UPDATED_BY := 1;
315 X_LAST_UPDATE_LOGIN := 0;
316 elsif (X_MODE = 'R') then
317 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
318 if X_LAST_UPDATED_BY is NULL then
319 X_LAST_UPDATED_BY := -1;
320 end if;
321 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
322 if X_LAST_UPDATE_LOGIN is NULL then
323 X_LAST_UPDATE_LOGIN := -1;
324 end if;
325 else
326 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
327 IGS_GE_MSG_STACK.ADD;
328 app_exception.raise_exception;
329 end if;
330 Before_DML (
331 p_action => 'INSERT',
332 x_rowid => X_ROWID,
333 x_smir_id => X_SMIR_ID,
334 x_table_alias => X_TABLE_ALIAS,
335 x_obsolete_person_id => X_OBSOLETE_PERSON_ID,
336 x_obsolete_id_row_info => X_OBSOLETE_ID_ROW_INFO,
337 x_obsolete_id_rowid => chartorowid(X_OBSOLETE_ID_ROWID),
338 x_obsolete_update_on => X_OBSOLETE_UPDATE_ON,
339 x_current_person_id => X_CURRENT_PERSON_ID,
340 x_current_id_row_info => X_CURRENT_ID_ROW_INFO,
341 x_current_id_rowid => chartorowid(X_CURRENT_ID_ROWID),
342 x_current_update_on => X_CURRENT_UPDATE_ON,
343 x_creation_date => X_LAST_UPDATE_DATE ,
344 x_created_by => X_LAST_UPDATED_BY,
345 x_last_update_date => X_LAST_UPDATE_DATE,
346 x_last_updated_by => X_LAST_UPDATED_BY,
347 x_last_update_login => X_LAST_UPDATE_LOGIN
348 );
349 insert into IGS_EN_MERGE_ID_ROWS (
350 SMIR_ID,
351 TABLE_ALIAS,
352 OBSOLETE_PERSON_ID,
353 OBSOLETE_ID_ROW_INFO,
354 OBSOLETE_ID_ROWID,
355 OBSOLETE_UPDATE_ON,
356 CURRENT_PERSON_ID,
357 CURRENT_ID_ROW_INFO,
358 CURRENT_ID_ROWID,
359 CURRENT_UPDATE_ON,
360 CREATION_DATE,
361 CREATED_BY,
362 LAST_UPDATE_DATE,
363 LAST_UPDATED_BY,
364 LAST_UPDATE_LOGIN
365 ) values (
366 NEW_REFERENCES.SMIR_ID,
367 NEW_REFERENCES.TABLE_ALIAS,
368 NEW_REFERENCES.OBSOLETE_PERSON_ID,
369 NEW_REFERENCES.OBSOLETE_ID_ROW_INFO,
370 NEW_REFERENCES.OBSOLETE_ID_ROWID,
371 NEW_REFERENCES.OBSOLETE_UPDATE_ON,
372 NEW_REFERENCES.CURRENT_PERSON_ID,
373 NEW_REFERENCES.CURRENT_ID_ROW_INFO,
374 NEW_REFERENCES.CURRENT_ID_ROWID,
375 NEW_REFERENCES.CURRENT_UPDATE_ON,
376 X_LAST_UPDATE_DATE,
377 X_LAST_UPDATED_BY,
378 X_LAST_UPDATE_DATE,
379 X_LAST_UPDATED_BY,
380 X_LAST_UPDATE_LOGIN
381 );
382
383 open c;
384 fetch c into X_ROWID;
385 if (c%notfound) then
386 close c;
387 raise no_data_found;
388 end if;
389 close c;
390 After_DML (
391 p_action => 'INSERT',
392 x_rowid => X_ROWID
393 );
394 end INSERT_ROW;
395
396 procedure LOCK_ROW (
397 X_ROWID in VARCHAR2,
398 X_SMIR_ID in NUMBER,
399 X_TABLE_ALIAS in VARCHAR2,
400 X_OBSOLETE_PERSON_ID in NUMBER,
401 X_OBSOLETE_ID_ROW_INFO in VARCHAR2,
402 X_OBSOLETE_ID_ROWID in VARCHAR2,
403 X_OBSOLETE_UPDATE_ON in DATE,
404 X_CURRENT_PERSON_ID in NUMBER,
405 X_CURRENT_ID_ROW_INFO in VARCHAR2,
406 X_CURRENT_ID_ROWID in VARCHAR2,
407 X_CURRENT_UPDATE_ON in DATE
408 ) AS
409 cursor c1 is select
410 TABLE_ALIAS,
411 OBSOLETE_PERSON_ID,
412 OBSOLETE_ID_ROW_INFO,
413 OBSOLETE_ID_ROWID,
414 OBSOLETE_UPDATE_ON,
415 CURRENT_PERSON_ID,
416 CURRENT_ID_ROW_INFO,
417 CURRENT_ID_ROWID,
418 CURRENT_UPDATE_ON
419 from IGS_EN_MERGE_ID_ROWS
420 where ROWID = X_ROWID
424 begin
421 for update nowait;
422 tlinfo c1%rowtype;
423
425 open c1;
426 fetch c1 into tlinfo;
427 if (c1%notfound) then
428 close c1;
429 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
430 IGS_GE_MSG_STACK.ADD;
431 app_exception.raise_exception;
432 return;
433 end if;
434 close c1;
435
436 if ( (tlinfo.TABLE_ALIAS = X_TABLE_ALIAS)
437 AND (tlinfo.OBSOLETE_PERSON_ID = X_OBSOLETE_PERSON_ID)
438 AND ((tlinfo.OBSOLETE_ID_ROW_INFO = X_OBSOLETE_ID_ROW_INFO)
439 OR ((tlinfo.OBSOLETE_ID_ROW_INFO is null)
440 AND (X_OBSOLETE_ID_ROW_INFO is null)))
441 AND ((tlinfo.OBSOLETE_ID_ROWID = X_OBSOLETE_ID_ROWID)
442 OR ((tlinfo.OBSOLETE_ID_ROWID is null)
443 AND (X_OBSOLETE_ID_ROWID is null)))
444 AND ((tlinfo.OBSOLETE_UPDATE_ON = X_OBSOLETE_UPDATE_ON)
445 OR ((tlinfo.OBSOLETE_UPDATE_ON is null)
446 AND (X_OBSOLETE_UPDATE_ON is null)))
447 AND (tlinfo.CURRENT_PERSON_ID = X_CURRENT_PERSON_ID)
448 AND ((tlinfo.CURRENT_ID_ROW_INFO = X_CURRENT_ID_ROW_INFO)
449 OR ((tlinfo.CURRENT_ID_ROW_INFO is null)
450 AND (X_CURRENT_ID_ROW_INFO is null)))
451 AND ((tlinfo.CURRENT_ID_ROWID = X_CURRENT_ID_ROWID)
452 OR ((tlinfo.CURRENT_ID_ROWID is null)
453 AND (X_CURRENT_ID_ROWID is null)))
454 AND ((tlinfo.CURRENT_UPDATE_ON = X_CURRENT_UPDATE_ON)
455 OR ((tlinfo.CURRENT_UPDATE_ON is null)
456 AND (X_CURRENT_UPDATE_ON is null)))
457 ) then
458 null;
459 else
460 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
461 IGS_GE_MSG_STACK.ADD;
462 app_exception.raise_exception;
463 end if;
464 return;
465 end LOCK_ROW;
466
467 procedure UPDATE_ROW (
468 X_ROWID in VARCHAR2,
469 X_SMIR_ID in NUMBER,
470 X_TABLE_ALIAS in VARCHAR2,
471 X_OBSOLETE_PERSON_ID in NUMBER,
472 X_OBSOLETE_ID_ROW_INFO in VARCHAR2,
473 X_OBSOLETE_ID_ROWID in VARCHAR2,
474 X_OBSOLETE_UPDATE_ON in DATE,
475 X_CURRENT_PERSON_ID in NUMBER,
476 X_CURRENT_ID_ROW_INFO in VARCHAR2,
477 X_CURRENT_ID_ROWID in VARCHAR2,
478 X_CURRENT_UPDATE_ON in DATE,
479 X_MODE in VARCHAR2 default 'R'
480 ) AS
481 X_LAST_UPDATE_DATE DATE;
482 X_LAST_UPDATED_BY NUMBER;
483 X_LAST_UPDATE_LOGIN NUMBER;
484 begin
485 X_LAST_UPDATE_DATE := SYSDATE;
486 if(X_MODE = 'I') then
487 X_LAST_UPDATED_BY := 1;
488 X_LAST_UPDATE_LOGIN := 0;
489 elsif (X_MODE = 'R') then
490 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
491 if X_LAST_UPDATED_BY is NULL then
492 X_LAST_UPDATED_BY := -1;
493 end if;
494 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
495 if X_LAST_UPDATE_LOGIN is NULL then
496 X_LAST_UPDATE_LOGIN := -1;
497 end if;
498 else
499 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
500 IGS_GE_MSG_STACK.ADD;
501 app_exception.raise_exception;
502 end if;
503 Before_DML (
504 p_action => 'UPDATE',
505 x_rowid => X_ROWID,
506 x_smir_id => X_SMIR_ID,
507 x_table_alias => X_TABLE_ALIAS,
508 x_obsolete_person_id => X_OBSOLETE_PERSON_ID,
509 x_obsolete_id_row_info => X_OBSOLETE_ID_ROW_INFO,
510 x_obsolete_id_rowid => CHARTOROWID(X_OBSOLETE_ID_ROWID),
511 x_obsolete_update_on => X_OBSOLETE_UPDATE_ON,
512 x_current_person_id => X_CURRENT_PERSON_ID,
513 x_current_id_row_info => X_CURRENT_ID_ROW_INFO,
514 x_current_id_rowid => CHARTOROWID(X_CURRENT_ID_ROWID),
515 x_current_update_on => X_CURRENT_UPDATE_ON,
516 x_creation_date => X_LAST_UPDATE_DATE ,
517 x_created_by => X_LAST_UPDATED_BY,
518 x_last_update_date => X_LAST_UPDATE_DATE,
519 x_last_updated_by => X_LAST_UPDATED_BY,
520 x_last_update_login => X_LAST_UPDATE_LOGIN
521 );
522 update IGS_EN_MERGE_ID_ROWS set
523 TABLE_ALIAS = NEW_REFERENCES.TABLE_ALIAS,
524 OBSOLETE_PERSON_ID = NEW_REFERENCES.OBSOLETE_PERSON_ID,
525 OBSOLETE_ID_ROW_INFO = NEW_REFERENCES.OBSOLETE_ID_ROW_INFO,
526 OBSOLETE_ID_ROWID = NEW_REFERENCES.OBSOLETE_ID_ROWID,
527 OBSOLETE_UPDATE_ON = NEW_REFERENCES.OBSOLETE_UPDATE_ON,
528 CURRENT_PERSON_ID = NEW_REFERENCES.CURRENT_PERSON_ID,
529 CURRENT_ID_ROW_INFO = NEW_REFERENCES.CURRENT_ID_ROW_INFO,
530 CURRENT_ID_ROWID = NEW_REFERENCES.CURRENT_ID_ROWID,
531 CURRENT_UPDATE_ON = NEW_REFERENCES.CURRENT_UPDATE_ON,
532 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
533 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
534 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
535 where ROWID = X_ROWID
536 ;
537 if (sql%notfound) then
538 raise no_data_found;
539 end if;
540 After_DML (
541 p_action => 'UPDATE',
542 x_rowid => X_ROWID
543 );
544 end UPDATE_ROW;
545
546 procedure ADD_ROW (
547 X_ROWID in out NOCOPY VARCHAR2,
548 X_SMIR_ID in NUMBER,
549 X_TABLE_ALIAS in VARCHAR2,
550 X_OBSOLETE_PERSON_ID in NUMBER,
551 X_OBSOLETE_ID_ROW_INFO in VARCHAR2,
552 X_OBSOLETE_ID_ROWID in VARCHAR2,
553 X_OBSOLETE_UPDATE_ON in DATE,
554 X_CURRENT_PERSON_ID in NUMBER,
555 X_CURRENT_ID_ROW_INFO in VARCHAR2,
556 X_CURRENT_ID_ROWID in VARCHAR2,
557 X_CURRENT_UPDATE_ON in DATE,
558 X_MODE in VARCHAR2 default 'R'
559 ) AS
560 cursor c1 is select rowid from IGS_EN_MERGE_ID_ROWS
561 where SMIR_ID = X_SMIR_ID
562 ;
563 begin
564 open c1;
565 fetch c1 into X_ROWID;
566 if (c1%notfound) then
567 close c1;
568 INSERT_ROW (
569 X_ROWID,
570 X_SMIR_ID,
571 X_TABLE_ALIAS,
572 X_OBSOLETE_PERSON_ID,
573 X_OBSOLETE_ID_ROW_INFO,
574 X_OBSOLETE_ID_ROWID,
575 X_OBSOLETE_UPDATE_ON,
576 X_CURRENT_PERSON_ID,
577 X_CURRENT_ID_ROW_INFO,
578 X_CURRENT_ID_ROWID,
579 X_CURRENT_UPDATE_ON,
580 X_MODE);
581 return;
582 end if;
583 close c1;
584 UPDATE_ROW (
585 X_ROWID,
586 X_SMIR_ID,
587 X_TABLE_ALIAS,
588 X_OBSOLETE_PERSON_ID,
589 X_OBSOLETE_ID_ROW_INFO,
590 X_OBSOLETE_ID_ROWID,
591 X_OBSOLETE_UPDATE_ON,
592 X_CURRENT_PERSON_ID,
593 X_CURRENT_ID_ROW_INFO,
594 X_CURRENT_ID_ROWID,
595 X_CURRENT_UPDATE_ON,
596 X_MODE);
597 end ADD_ROW;
598
599 procedure DELETE_ROW (
600 X_ROWID in VARCHAR2
601 )AS
602 begin
603 Before_DML (
604 p_action => 'DELETE',
605 x_rowid => X_ROWID
606 );
607 delete from IGS_EN_MERGE_ID_ROWS
608 where ROWID = X_ROWID;
609 if (sql%notfound) then
610 raise no_data_found;
611 end if;
612 After_DML (
613 p_action => 'DELETE',
614 x_rowid => X_ROWID
615 );
616 end DELETE_ROW;
617
618 end IGS_EN_MERGE_ID_ROWS_PKG;