[Home] [Help]
PACKAGE BODY: APPS.IGS_PR_MILESTONE_TYP_PKG
Source
1 package body IGS_PR_MILESTONE_TYP_PKG AS
2 /* $Header: IGSQI03B.pls 115.4 2003/05/19 04:46:22 ijeddy ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_PR_MILESTONE_TYP%RowType;
5 new_references IGS_PR_MILESTONE_TYP%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_milestone_type IN VARCHAR2 DEFAULT NULL,
11 x_description IN VARCHAR2 DEFAULT NULL,
12 x_ntfctn_imminent_days IN NUMBER DEFAULT NULL,
13 x_ntfctn_reminder_days IN NUMBER DEFAULT NULL,
14 x_ntfctn_re_reminder_days IN NUMBER DEFAULT NULL,
15 x_closed_ind IN VARCHAR2 DEFAULT NULL,
16 x_creation_date IN DATE DEFAULT NULL,
17 x_created_by IN NUMBER DEFAULT NULL,
18 x_last_update_date IN DATE DEFAULT NULL,
19 x_last_updated_by IN NUMBER DEFAULT NULL,
20 x_last_update_login IN NUMBER DEFAULT NULL
21 ) AS
22
23 CURSOR cur_old_ref_values IS
24 SELECT *
25 FROM IGS_PR_MILESTONE_TYP
26 WHERE rowid = x_rowid;
27
28 BEGIN
29
30 l_rowid := x_rowid;
31
32 -- Code for setting the Old and New Reference Values.
33 -- Populate Old Values.
34 Open cur_old_ref_values;
35 Fetch cur_old_ref_values INTO old_references;
36 IF (cur_old_ref_values%NOTFOUND) AND (p_action not in ('INSERT','VALIDATE_INSERT')) THEN
37 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38 IGS_GE_MSG_STACK.ADD;
39 Close cur_old_ref_values;
40 App_Exception.Raise_Exception;
41 Return;
42 END IF;
43 Close cur_old_ref_values;
44
45 -- Populate New Values.
46 new_references.milestone_type := x_milestone_type;
47 new_references.description := x_description;
48 new_references.ntfctn_imminent_days := x_ntfctn_imminent_days;
49 new_references.ntfctn_reminder_days := x_ntfctn_reminder_days;
50 new_references.ntfctn_re_reminder_days := x_ntfctn_re_reminder_days;
51 new_references.closed_ind := x_closed_ind;
52 IF (p_action = 'UPDATE') THEN
53 new_references.creation_date := old_references.creation_date;
54 new_references.created_by := old_references.created_by;
55 ELSE
56 new_references.creation_date := x_creation_date;
57 new_references.created_by := x_created_by;
58 END IF;
59 new_references.last_update_date := x_last_update_date;
60 new_references.last_updated_by := x_last_updated_by;
61 new_references.last_update_login := x_last_update_login;
62
63 END Set_Column_Values;
64
65 -- Trigger description :-
66 -- "OSS_TST".trg_mty_br_iu
67 -- BEFORE INSERT OR UPDATE
68 -- ON IGS_PR_MILESTONE_TYP
69 -- FOR EACH ROW
70
71 PROCEDURE BeforeRowInsertUpdate1(
72 p_inserting IN BOOLEAN DEFAULT FALSE,
73 p_updating IN BOOLEAN DEFAULT FALSE,
74 p_deleting IN BOOLEAN DEFAULT FALSE
75 ) AS
76 v_message_name varchar2(30);
77 BEGIN
78 IF p_inserting OR
79 (p_updating AND
80 (NVL(old_references.ntfctn_reminder_days,-1) <> NVL(new_references.ntfctn_reminder_days,-1) OR
81 NVL(old_references.ntfctn_re_reminder_days,-1) <>
82 NVL(new_references.ntfctn_re_reminder_days,-1))) THEN
83 IF IGS_RE_VAL_MTY.resp_val_mty_days(
84 new_references.ntfctn_reminder_days,
85 new_references.ntfctn_re_reminder_days,
86 v_message_name) = FALSE THEN
87 Fnd_Message.Set_Name('IGS',v_message_name);
88 IGS_GE_MSG_STACK.ADD;
89 App_Exception.Raise_Exception;
90 END IF;
91 END IF;
92
93
94 END BeforeRowInsertUpdate1;
95
96
97 PROCEDURE Check_Child_Existance AS
98 BEGIN
99
100 IGS_RE_DFLT_MS_SET_PKG.GET_FK_IGS_PR_MILESTONE_TYP (
101 old_references.milestone_type
102 );
103
104 IGS_PR_MILESTONE_PKG.GET_FK_IGS_PR_MILESTONE_TYPE (
105 old_references.milestone_type
106 );
107
108 END Check_Child_Existance;
109
110 FUNCTION Get_PK_For_Validation (
111 x_milestone_type IN VARCHAR2
112 ) RETURN BOOLEAN AS
113
114 CURSOR cur_rowid IS
115 SELECT rowid
116 FROM IGS_PR_MILESTONE_TYP
117 WHERE milestone_type = x_milestone_type
118 FOR UPDATE NOWAIT;
119
120 lv_rowid cur_rowid%RowType;
121
122 BEGIN
123
124 Open cur_rowid;
125 Fetch cur_rowid INTO lv_rowid;
126 IF (cur_rowid%FOUND) THEN
127 Close Cur_rowid;
128 Return(TRUE);
129 ELSE
130 Close cur_rowid;
131 Return(FALSE);
132 END IF;
133 END Get_PK_For_Validation;
134
135 PROCEDURE Before_DML (
136 p_action IN VARCHAR2,
137 x_rowid IN VARCHAR2 DEFAULT NULL,
138 x_milestone_type IN VARCHAR2 DEFAULT NULL,
139 x_description IN VARCHAR2 DEFAULT NULL,
140 x_ntfctn_imminent_days IN NUMBER DEFAULT NULL,
141 x_ntfctn_reminder_days IN NUMBER DEFAULT NULL,
142 x_ntfctn_re_reminder_days IN NUMBER DEFAULT NULL,
143 x_closed_ind IN VARCHAR2 DEFAULT NULL,
144 x_creation_date IN DATE DEFAULT NULL,
145 x_created_by IN NUMBER DEFAULT NULL,
146 x_last_update_date IN DATE DEFAULT NULL,
147 x_last_updated_by IN NUMBER DEFAULT NULL,
148 x_last_update_login IN NUMBER DEFAULT NULL
149 ) AS
150 BEGIN
151
152 Set_Column_Values (
153 p_action,
154 x_rowid,
155 x_milestone_type,
156 x_description,
157 x_ntfctn_imminent_days,
158 x_ntfctn_reminder_days,
159 x_ntfctn_re_reminder_days,
160 x_closed_ind,
161 x_creation_date,
162 x_created_by,
163 x_last_update_date,
164 x_last_updated_by,
165 x_last_update_login
166 );
167
168 IF (p_action = 'INSERT') THEN
169 -- Call all the procedures related to Before Insert.
170 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
171 IF Get_PK_For_Validation (
172 new_references.milestone_type
173 ) THEN
174 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
175 IGS_GE_MSG_STACK.ADD;
176 App_Exception.Raise_Exception;
177 END IF;
178 Check_Constraints;
179 ELSIF (p_action = 'UPDATE') THEN
180 -- Call all the procedures related to Before Update.
181 BeforeRowInsertUpdate1 ( p_updating => TRUE );
182 Check_Constraints;
183 ELSIF (p_action = 'DELETE') THEN
184 -- Call all the procedures related to Before Delete.
185 Check_Child_Existance;
186 ELSIF (p_action = 'VALIDATE_INSERT') THEN
187 -- Call all the procedures related to Before Insert.
188 IF Get_PK_For_Validation (
189 new_references.milestone_type
190 ) THEN
191 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
192 IGS_GE_MSG_STACK.ADD;
193 App_Exception.Raise_Exception;
194 END IF;
195 Check_Constraints;
196 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
197 -- Call all the procedures related to Before Update.
198 Check_Constraints;
199 ELSIF (p_action = 'VALIDATE_DELETE') THEN
200 -- Call all the procedures related to Before Delete.
201 Check_Child_Existance;
202 END IF;
203
204 /*
205 The (L_ROWID := null) was added by ijeddy on the 12-apr-2003 as
206 part of the bug fix for bug no 2868726, (Uniqueness Check at Item Level)
207 */
208
209 L_ROWID := null;
210
211 END Before_DML;
212
213
214 procedure INSERT_ROW (
215 X_ROWID in out NOCOPY VARCHAR2,
216 X_MILESTONE_TYPE in VARCHAR2,
217 X_DESCRIPTION in VARCHAR2,
218 X_NTFCTN_IMMINENT_DAYS in NUMBER,
219 X_NTFCTN_REMINDER_DAYS in NUMBER,
220 X_NTFCTN_RE_REMINDER_DAYS in NUMBER,
221 X_CLOSED_IND in VARCHAR2,
222 X_MODE in VARCHAR2 default 'R'
223 ) as
224 cursor C is select ROWID from IGS_PR_MILESTONE_TYP
225 where MILESTONE_TYPE = X_MILESTONE_TYPE;
226 X_LAST_UPDATE_DATE DATE;
227 X_LAST_UPDATED_BY NUMBER;
228 X_LAST_UPDATE_LOGIN NUMBER;
229 begin
230 X_LAST_UPDATE_DATE := SYSDATE;
231 if(X_MODE = 'I') then
232 X_LAST_UPDATED_BY := 1;
233 X_LAST_UPDATE_LOGIN := 0;
234 elsif (X_MODE = 'R') then
235 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
236 if X_LAST_UPDATED_BY is NULL then
237 X_LAST_UPDATED_BY := -1;
238 end if;
239 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
240 if X_LAST_UPDATE_LOGIN is NULL then
241 X_LAST_UPDATE_LOGIN := -1;
242 end if;
243 else
244 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
245 IGS_GE_MSG_STACK.ADD;
246 app_exception.raise_exception;
247 end if;
248
249 Before_DML (
250 p_action => 'INSERT',
251 x_rowid => x_rowid,
252 x_milestone_type => x_milestone_type,
253 x_description => x_description,
254 x_ntfctn_imminent_days => x_ntfctn_imminent_days,
255 x_ntfctn_reminder_days => x_ntfctn_reminder_days,
256 x_ntfctn_re_reminder_days => x_ntfctn_re_reminder_days,
257 x_closed_ind => nvl( x_closed_ind, 'N'),
258 x_creation_date => x_last_update_date,
259 x_created_by => x_last_updated_by,
260 x_last_update_date => x_last_update_date,
261 x_last_updated_by => x_last_updated_by,
262 x_last_update_login => x_last_update_login
263 );
264
265 insert into IGS_PR_MILESTONE_TYP (
266 MILESTONE_TYPE,
267 DESCRIPTION,
268 NTFCTN_IMMINENT_DAYS,
269 NTFCTN_REMINDER_DAYS,
270 NTFCTN_RE_REMINDER_DAYS,
271 CLOSED_IND,
272 CREATION_DATE,
273 CREATED_BY,
274 LAST_UPDATE_DATE,
275 LAST_UPDATED_BY,
276 LAST_UPDATE_LOGIN
277 ) values (
278 NEW_REFERENCES.MILESTONE_TYPE,
279 NEW_REFERENCES.DESCRIPTION,
280 NEW_REFERENCES.NTFCTN_IMMINENT_DAYS,
281 NEW_REFERENCES.NTFCTN_REMINDER_DAYS,
282 NEW_REFERENCES.NTFCTN_RE_REMINDER_DAYS,
283 NEW_REFERENCES.CLOSED_IND,
284 X_LAST_UPDATE_DATE,
285 X_LAST_UPDATED_BY,
286 X_LAST_UPDATE_DATE,
287 X_LAST_UPDATED_BY,
288 X_LAST_UPDATE_LOGIN
289 );
290
291 open c;
292 fetch c into X_ROWID;
293 if (c%notfound) then
294 close c;
295 raise no_data_found;
296 end if;
297 close c;
298
299 end INSERT_ROW;
300
301 procedure LOCK_ROW (
302 X_ROWID in VARCHAR2,
303 X_MILESTONE_TYPE in VARCHAR2,
304 X_DESCRIPTION in VARCHAR2,
305 X_NTFCTN_IMMINENT_DAYS in NUMBER,
306 X_NTFCTN_REMINDER_DAYS in NUMBER,
307 X_NTFCTN_RE_REMINDER_DAYS in NUMBER,
308 X_CLOSED_IND in VARCHAR2
309 ) as
310 cursor c1 is select
311 DESCRIPTION,
312 NTFCTN_IMMINENT_DAYS,
313 NTFCTN_REMINDER_DAYS,
314 NTFCTN_RE_REMINDER_DAYS,
315 CLOSED_IND
316 from IGS_PR_MILESTONE_TYP
317 where ROWID = X_ROWID for update nowait;
318 tlinfo c1%rowtype;
319
320 begin
321 open c1;
322 fetch c1 into tlinfo;
323 if (c1%notfound) then
324 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
325 IGS_GE_MSG_STACK.ADD;
326 close c1;
327 app_exception.raise_exception;
328 return;
329 end if;
330 close c1;
331
332 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
333 AND ((tlinfo.NTFCTN_IMMINENT_DAYS = X_NTFCTN_IMMINENT_DAYS)
334 OR ((tlinfo.NTFCTN_IMMINENT_DAYS is null)
335 AND (X_NTFCTN_IMMINENT_DAYS is null)))
336 AND ((tlinfo.NTFCTN_REMINDER_DAYS = X_NTFCTN_REMINDER_DAYS)
337 OR ((tlinfo.NTFCTN_REMINDER_DAYS is null)
338 AND (X_NTFCTN_REMINDER_DAYS is null)))
339 AND ((tlinfo.NTFCTN_RE_REMINDER_DAYS = X_NTFCTN_RE_REMINDER_DAYS)
340 OR ((tlinfo.NTFCTN_RE_REMINDER_DAYS is null)
341 AND (X_NTFCTN_RE_REMINDER_DAYS is null)))
342 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
343 ) then
344 null;
345 else
346 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
347 IGS_GE_MSG_STACK.ADD;
348 app_exception.raise_exception;
349 end if;
350 return;
351 end LOCK_ROW;
352
353 procedure UPDATE_ROW (
354 X_ROWID in VARCHAR2,
355 X_MILESTONE_TYPE in VARCHAR2,
356 X_DESCRIPTION in VARCHAR2,
357 X_NTFCTN_IMMINENT_DAYS in NUMBER,
358 X_NTFCTN_REMINDER_DAYS in NUMBER,
359 X_NTFCTN_RE_REMINDER_DAYS in NUMBER,
360 X_CLOSED_IND in VARCHAR2,
361 X_MODE in VARCHAR2 default 'R'
362 ) as
363 X_LAST_UPDATE_DATE DATE;
364 X_LAST_UPDATED_BY NUMBER;
365 X_LAST_UPDATE_LOGIN NUMBER;
366 begin
367 X_LAST_UPDATE_DATE := SYSDATE;
368 if(X_MODE = 'I') then
369 X_LAST_UPDATED_BY := 1;
370 X_LAST_UPDATE_LOGIN := 0;
371 elsif (X_MODE = 'R') then
372 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
373 if X_LAST_UPDATED_BY is NULL then
374 X_LAST_UPDATED_BY := -1;
375 end if;
376 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
377 if X_LAST_UPDATE_LOGIN is NULL then
378 X_LAST_UPDATE_LOGIN := -1;
379 end if;
380 else
381 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
382 IGS_GE_MSG_STACK.ADD;
383 app_exception.raise_exception;
384 end if;
385
386 Before_DML (
387 p_action => 'UPDATE',
388 x_rowid => x_rowid,
389 x_milestone_type => x_milestone_type,
390 x_description => x_description,
391 x_ntfctn_imminent_days => x_ntfctn_imminent_days,
392 x_ntfctn_reminder_days => x_ntfctn_reminder_days,
393 x_ntfctn_re_reminder_days => x_ntfctn_re_reminder_days,
394 x_closed_ind => x_closed_ind,
395 x_creation_date => x_last_update_date,
396 x_created_by => x_last_updated_by,
397 x_last_update_date => x_last_update_date,
398 x_last_updated_by => x_last_updated_by,
399 x_last_update_login => x_last_update_login
400 );
401
402
403 update IGS_PR_MILESTONE_TYP set
404 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
405 NTFCTN_IMMINENT_DAYS = NEW_REFERENCES.NTFCTN_IMMINENT_DAYS,
406 NTFCTN_REMINDER_DAYS = NEW_REFERENCES.NTFCTN_REMINDER_DAYS,
407 NTFCTN_RE_REMINDER_DAYS = NEW_REFERENCES.NTFCTN_RE_REMINDER_DAYS,
408 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
409 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
410 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
411 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
412 where ROWID = X_ROWID;
413 if (sql%notfound) then
414 raise no_data_found;
415 end if;
416
417
418 end UPDATE_ROW;
419
420 procedure ADD_ROW (
421 X_ROWID in out NOCOPY VARCHAR2,
422 X_MILESTONE_TYPE in VARCHAR2,
423 X_DESCRIPTION in VARCHAR2,
424 X_NTFCTN_IMMINENT_DAYS in NUMBER,
425 X_NTFCTN_REMINDER_DAYS in NUMBER,
426 X_NTFCTN_RE_REMINDER_DAYS in NUMBER,
427 X_CLOSED_IND in VARCHAR2,
428 X_MODE in VARCHAR2 default 'R'
429 ) as
430 cursor c1 is select rowid from IGS_PR_MILESTONE_TYP
431 where MILESTONE_TYPE = X_MILESTONE_TYPE
432 ;
433 begin
434 open c1;
435 fetch c1 into X_ROWID;
436 if (c1%notfound) then
437 close c1;
438 INSERT_ROW (
439 X_ROWID,
440 X_MILESTONE_TYPE,
441 X_DESCRIPTION,
442 X_NTFCTN_IMMINENT_DAYS,
443 X_NTFCTN_REMINDER_DAYS,
444 X_NTFCTN_RE_REMINDER_DAYS,
445 X_CLOSED_IND,
446 X_MODE);
447 return;
448 end if;
449 close c1;
450 UPDATE_ROW (
451 X_ROWID ,
452 X_MILESTONE_TYPE,
453 X_DESCRIPTION,
454 X_NTFCTN_IMMINENT_DAYS,
455 X_NTFCTN_REMINDER_DAYS,
456 X_NTFCTN_RE_REMINDER_DAYS,
457 X_CLOSED_IND,
458 X_MODE);
459 end ADD_ROW;
460
461 procedure DELETE_ROW (
462 X_ROWID in VARCHAR2
463 ) as
464 begin
465
466 Before_DML (
467 p_action => 'DELETE',
468 x_rowid => X_ROWID
469 );
470
471 delete from IGS_PR_MILESTONE_TYP
472 where ROWID = X_ROWID;
473 if (sql%notfound) then
474 raise no_data_found;
475 end if;
476
477 end DELETE_ROW;
478
479 PROCEDURE Check_Constraints (
480 Column_Name IN VARCHAR2 DEFAULT NULL,
481 Column_Value IN VARCHAR2 DEFAULT NULL
482 ) AS
483 BEGIN
484 IF Column_Name is null THEN
485 NULL;
486 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
487 new_references.CLOSED_IND:= COLUMN_VALUE ;
488
489 ELSIF upper(Column_name) = 'DESCRIPTION' THEN
490 new_references.DESCRIPTION:= COLUMN_VALUE ;
491
492 ELSIF upper(Column_name) = 'MILESTONE_TYPE' THEN
493 new_references.MILESTONE_TYPE:= COLUMN_VALUE ;
494
495 ELSIF upper(Column_name) = 'NTFCTN_IMMINENT_DAYS' THEN
496 new_references.NTFCTN_IMMINENT_DAYS:= IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
497
498 ELSIF upper(Column_name) = 'NTFCTN_REMINDER_DAYS' THEN
499 new_references.NTFCTN_REMINDER_DAYS:= IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
500
501 ELSIF upper(Column_name) = 'NTFCTN_RE_REMINDER_DAYS' THEN
502 new_references.NTFCTN_RE_REMINDER_DAYS:= IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
503
504 END IF ;
505
506 IF upper(Column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
507 IF new_references.CLOSED_IND<> upper(new_references.CLOSED_IND) then
508 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
509 IGS_GE_MSG_STACK.ADD;
510 App_Exception.Raise_Exception ;
511 END IF;
512
513 IF new_references.CLOSED_IND not in ('Y','N') then
514 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
515 IGS_GE_MSG_STACK.ADD;
516 App_Exception.Raise_Exception ;
517 END IF;
518
519 END IF ;
520
521
522
523 IF upper(Column_name) = 'MILESTONE_TYPE' OR COLUMN_NAME IS NULL THEN
524 IF new_references.MILESTONE_TYPE<> upper(new_references.MILESTONE_TYPE) then
525 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
526 IGS_GE_MSG_STACK.ADD;
527 App_Exception.Raise_Exception ;
528 END IF;
529
530 END IF ;
531
532 IF upper(Column_name) = 'NTFCTN_IMMINENT_DAYS' OR COLUMN_NAME IS NULL THEN
533 IF new_references.NTFCTN_IMMINENT_DAYS < 0 or new_references.NTFCTN_IMMINENT_DAYS > 999 then
534 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
535 IGS_GE_MSG_STACK.ADD;
536 App_Exception.Raise_Exception ;
537 END IF;
538
539 END IF ;
540
541 IF upper(Column_name) = 'NTFCTN_REMINDER_DAYS' OR COLUMN_NAME IS NULL THEN
542 IF new_references.NTFCTN_REMINDER_DAYS < 0 or new_references.NTFCTN_REMINDER_DAYS > 999 then
543 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
544 IGS_GE_MSG_STACK.ADD;
545 App_Exception.Raise_Exception ;
546 END IF;
547
548 END IF ;
549
550 IF upper(Column_name) = 'NTFCTN_RE_REMINDER_DAYS' OR COLUMN_NAME IS NULL THEN
551 IF new_references.NTFCTN_RE_REMINDER_DAYS < 0 or new_references.NTFCTN_RE_REMINDER_DAYS > 999 then
552 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
553 IGS_GE_MSG_STACK.ADD;
554 App_Exception.Raise_Exception ;
555 END IF;
556
557 END IF ;
558 END Check_Constraints;
559
560 end IGS_PR_MILESTONE_TYP_PKG;