DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_VALIDATE

Source


1 PACKAGE BODY MRP_Validate AS
2 /* $Header: MRPSVATB.pls 115.10 99/07/26 17:07:28 porting ship  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'MRP_Validate';
7 
8 --  Procedure Get_Attr_Tbl.
9 --
10 --  Used by generator to avoid overriding or duplicating existing
11 --  validation functions.
12 --
13 --  DO NOT REMOVE
14 
15 PROCEDURE Get_Attr_Tbl
16 IS
17 I                             NUMBER:=0;
18 BEGIN
19 
20     FND_API.g_attr_tbl.DELETE;
21 
22 --  START GEN attributes
23 
24 --  Generator will append new attributes before end generate comment.
25 
26     I := I + 1;
27     FND_API.g_attr_tbl(I).name     := 'Desc_Flex';
28     I := I + 1;
29     FND_API.g_attr_tbl(I).name     := 'alternate_bom_designator';
30     I := I + 1;
31     FND_API.g_attr_tbl(I).name     := 'alternate_routing_desig';
32     I := I + 1;
33     FND_API.g_attr_tbl(I).name     := 'bom_revision';
34     I := I + 1;
35     FND_API.g_attr_tbl(I).name     := 'bom_revision_date';
36     I := I + 1;
37     FND_API.g_attr_tbl(I).name     := 'build_sequence';
38     I := I + 1;
39     FND_API.g_attr_tbl(I).name     := 'class';
40     I := I + 1;
41     FND_API.g_attr_tbl(I).name     := 'completion_locator';
42     I := I + 1;
43     FND_API.g_attr_tbl(I).name     := 'completion_subinventory';
44     I := I + 1;
45     FND_API.g_attr_tbl(I).name     := 'created_by';
46     I := I + 1;
47     FND_API.g_attr_tbl(I).name     := 'creation_date';
48     I := I + 1;
49     FND_API.g_attr_tbl(I).name     := 'date_closed';
50     I := I + 1;
51     FND_API.g_attr_tbl(I).name     := 'demand_class';
52     I := I + 1;
53     FND_API.g_attr_tbl(I).name     := 'demand_source_delivery';
54     I := I + 1;
55     FND_API.g_attr_tbl(I).name     := 'end_item_unit_number';
56     I := I + 1;
57     FND_API.g_attr_tbl(I).name     := 'quantity_scrapped ';
58     I := I + 1;
59     FND_API.g_attr_tbl(I).name     := 'demand_source_header';
60     I := I + 1;
61     FND_API.g_attr_tbl(I).name     := 'demand_source_line';
62     I := I + 1;
63     FND_API.g_attr_tbl(I).name     := 'demand_source_type';
64     I := I + 1;
65     FND_API.g_attr_tbl(I).name     := 'last_updated_by';
66     I := I + 1;
67     FND_API.g_attr_tbl(I).name     := 'last_update_date';
68     I := I + 1;
69     FND_API.g_attr_tbl(I).name     := 'last_update_login';
70     I := I + 1;
71     FND_API.g_attr_tbl(I).name     := 'line';
72     I := I + 1;
73     FND_API.g_attr_tbl(I).name     := 'material_account';
74     I := I + 1;
75     FND_API.g_attr_tbl(I).name     := 'material_overhead_account';
76     I := I + 1;
77     FND_API.g_attr_tbl(I).name     := 'material_variance_account';
78     I := I + 1;
79     FND_API.g_attr_tbl(I).name     := 'mps_net_quantity';
80     I := I + 1;
81     FND_API.g_attr_tbl(I).name     := 'mps_scheduled_comp_date';
82     I := I + 1;
83     FND_API.g_attr_tbl(I).name     := 'organization';
84     I := I + 1;
85     FND_API.g_attr_tbl(I).name     := 'outside_processing_acct';
86     I := I + 1;
87     FND_API.g_attr_tbl(I).name     := 'outside_proc_var_acct';
88     I := I + 1;
89     FND_API.g_attr_tbl(I).name     := 'overhead_account';
90     I := I + 1;
91     FND_API.g_attr_tbl(I).name     := 'overhead_variance_account';
92     I := I + 1;
93     FND_API.g_attr_tbl(I).name     := 'planned_quantity';
94     I := I + 1;
95     FND_API.g_attr_tbl(I).name     := 'primary_item';
96     I := I + 1;
97     FND_API.g_attr_tbl(I).name     := 'program_application';
98     I := I + 1;
99     FND_API.g_attr_tbl(I).name     := 'program';
100     I := I + 1;
101     FND_API.g_attr_tbl(I).name     := 'program_update_date';
102     I := I + 1;
103     FND_API.g_attr_tbl(I).name     := 'project';
104     I := I + 1;
105     FND_API.g_attr_tbl(I).name     := 'quantity_completed';
106     I := I + 1;
107     FND_API.g_attr_tbl(I).name     := 'request';
108     I := I + 1;
109     FND_API.g_attr_tbl(I).name     := 'resource_account';
110     I := I + 1;
111     FND_API.g_attr_tbl(I).name     := 'resource_variance_account';
112     I := I + 1;
113     FND_API.g_attr_tbl(I).name     := 'routing_revision';
114     I := I + 1;
115     FND_API.g_attr_tbl(I).name     := 'routing_revision_date';
116     I := I + 1;
117     FND_API.g_attr_tbl(I).name     := 'scheduled_completion_date';
118     I := I + 1;
119     FND_API.g_attr_tbl(I).name     := 'scheduled';
120     I := I + 1;
121     FND_API.g_attr_tbl(I).name     := 'scheduled_start_date';
122     I := I + 1;
123     FND_API.g_attr_tbl(I).name     := 'schedule_group';
124     I := I + 1;
125     FND_API.g_attr_tbl(I).name     := 'schedule_number';
126     I := I + 1;
127     FND_API.g_attr_tbl(I).name     := 'status';
128     I := I + 1;
129     FND_API.g_attr_tbl(I).name     := 'std_cost_adjustment_acct';
130     I := I + 1;
131     FND_API.g_attr_tbl(I).name     := 'task';
132     I := I + 1;
133     FND_API.g_attr_tbl(I).name     := 'wip_entity';
134 
135     I := I + 1;
136     FND_API.g_attr_tbl(I).name     := 'Assignment_Set';
137     I := I + 1;
138     FND_API.g_attr_tbl(I).name     := 'Assignment';
139     I := I + 1;
140     FND_API.g_attr_tbl(I).name     := 'Sourcing_Rule';
141     I := I + 1;
142     FND_API.g_attr_tbl(I).name     := 'Receiving_Org';
143     I := I + 1;
144     FND_API.g_attr_tbl(I).name     := 'Shipping_Org';
145 --  END GEN attributes
146 
147 END Get_Attr_Tbl;
148 
149 --  Prototypes for validate functions.
150 
151 --  START GEN validate
152 
153 --  Generator will append new prototypes before end generate comment.
154 
155 
156 FUNCTION Desc_Flex ( p_flex_name IN VARCHAR2 )
157 RETURN BOOLEAN
158 IS
159 BEGIN
160 
161     --  Call FND validate API.
162 
163 
164     --  This call is temporarily commented out
165 
166 /*
167     IF	FND_FLEX_DESCVAL.Validate_Desccols
168         (   appl_short_name               => 'MRP'
169         ,   desc_flex_name                => p_flex_name
170         )
171     THEN
172         RETURN TRUE;
173     ELSE
174 
175         --  Prepare the encoded message by setting it on the message
176         --  dictionary stack. Then, add it to the API message list.
177 
178         FND_MESSAGE.Set_Encoded(FND_FLEX_DESCVAL.Encoded_Error_Message);
179 
180         FND_MSG_PUB.Add;
181 
182         --  Derive return status.
183 
184         IF FND_FLEX_DESCVAL.value_error OR
185             FND_FLEX_DESCVAL.unsupported_error
186         THEN
187 
188             --  In case of an expected error return FALSE
189 
190             RETURN FALSE;
191 
192         ELSE
193 
194             --  In case of an unexpected error raise an exception.
195 
196             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
197 
198         END IF;
199 
200     END IF;
201 */
202 
203     RETURN TRUE;
204 
205 END Desc_Flex;
206 
207 FUNCTION Alternate_Bom_Designator ( p_alternate_bom_designator IN VARCHAR2 )
208 RETURN BOOLEAN
209 IS
210 l_dummy                       VARCHAR2(10);
211 BEGIN
212 
213     IF p_alternate_bom_designator IS NULL OR
214         p_alternate_bom_designator = FND_API.G_MISS_CHAR
215     THEN
216         RETURN TRUE;
217     END IF;
218 
219     --  SELECT  'VALID'
220     --  INTO     l_dummy
221     --  FROM     DB_TABLE
222     --  WHERE    DB_COLUMN = p_alternate_bom_designator;
223 
224     RETURN TRUE;
225 
226 EXCEPTION
227 
228     WHEN NO_DATA_FOUND THEN
229 
230         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
231         THEN
232 
233             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ALT_BOM_DESIG');
234             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_alternate_bom_designator);
235             FND_MSG_PUB.Add;
236 
237         END IF;
238 
239         RETURN FALSE;
240 
241     WHEN OTHERS THEN
242 
243         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
244         THEN
245             FND_MSG_PUB.Add_Exc_Msg
246             (   G_PKG_NAME
247             ,   'Alternate_Bom_Designator'
248             );
249         END IF;
250 
251         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252 
253 END Alternate_Bom_Designator;
254 
255 FUNCTION Alternate_Routing_Desig ( p_alternate_routing_desig IN VARCHAR2 )
256 RETURN BOOLEAN
257 IS
258 l_dummy                       VARCHAR2(10);
259 BEGIN
260 
261     IF p_alternate_routing_desig IS NULL OR
262         p_alternate_routing_desig = FND_API.G_MISS_CHAR
263     THEN
264         RETURN TRUE;
265     END IF;
266 
267     --  SELECT  'VALID'
268     --  INTO     l_dummy
269     --  FROM     DB_TABLE
270     --  WHERE    DB_COLUMN = p_alternate_routing_desig;
271 
272     RETURN TRUE;
273 
274 EXCEPTION
275 
276     WHEN NO_DATA_FOUND THEN
277 
278         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
279         THEN
280 
281             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ALT_RTG_DESIG');
282             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_alternate_routing_desig);
283             FND_MSG_PUB.Add;
284 
285         END IF;
286 
287         RETURN FALSE;
288 
289     WHEN OTHERS THEN
290 
291         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
292         THEN
293             FND_MSG_PUB.Add_Exc_Msg
294             (   G_PKG_NAME
295             ,   'Alternate_Routing_Desig'
296             );
297         END IF;
298 
299         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
300 
301 END Alternate_Routing_Desig;
302 
303 FUNCTION Bom_Revision ( p_bom_revision IN VARCHAR2 )
304 RETURN BOOLEAN
305 IS
306 l_dummy                       VARCHAR2(10);
307 BEGIN
308 
309     IF p_bom_revision IS NULL OR
310         p_bom_revision = FND_API.G_MISS_CHAR
311     THEN
312         RETURN TRUE;
313     END IF;
314 
315     --  SELECT  'VALID'
316     --  INTO     l_dummy
317     --  FROM     DB_TABLE
318     --  WHERE    DB_COLUMN = p_bom_revision;
319 
320     RETURN TRUE;
321 
322 EXCEPTION
323 
324     WHEN NO_DATA_FOUND THEN
325 
326         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
327         THEN
328 
329             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_BOM_REV');
330             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_bom_revision);
331             FND_MSG_PUB.Add;
332 
333         END IF;
334 
335         RETURN FALSE;
336 
337     WHEN OTHERS THEN
338 
339         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
340         THEN
341             FND_MSG_PUB.Add_Exc_Msg
342             (   G_PKG_NAME
343             ,   'Bom_Revision'
344             );
345         END IF;
346 
347         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
348 
349 END Bom_Revision;
350 
351 FUNCTION Bom_Revision_Date ( p_bom_revision_date IN DATE )
352 RETURN BOOLEAN
353 IS
354 l_dummy                       VARCHAR2(10);
355 BEGIN
356 
357     IF p_bom_revision_date IS NULL OR
358         p_bom_revision_date = FND_API.G_MISS_DATE
359     THEN
360         RETURN TRUE;
361     END IF;
362 
363     --  SELECT  'VALID'
364     --  INTO     l_dummy
365     --  FROM     DB_TABLE
366     --  WHERE    DB_COLUMN = p_bom_revision_date;
367 
368     RETURN TRUE;
369 
370 EXCEPTION
371 
372     WHEN NO_DATA_FOUND THEN
373 
374         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
375         THEN
376 
377             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
378             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','bom_revision_date');
379             FND_MSG_PUB.Add;
380 
381         END IF;
382 
383         RETURN FALSE;
384 
385     WHEN OTHERS THEN
386 
387         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
388         THEN
389             FND_MSG_PUB.Add_Exc_Msg
390             (   G_PKG_NAME
391             ,   'Bom_Revision_Date'
392             );
393         END IF;
394 
395         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
396 
397 END Bom_Revision_Date;
398 
399 FUNCTION Build_Sequence ( p_build_sequence IN NUMBER )
400 RETURN BOOLEAN
401 IS
402 l_dummy                       VARCHAR2(10);
403 BEGIN
404 
405     IF p_build_sequence IS NULL OR
406         p_build_sequence = FND_API.G_MISS_NUM
407     THEN
408         RETURN TRUE;
409     END IF;
410 
411     SELECT  'VALID'
412     INTO     l_dummy
413     FROM     DUAL
414     WHERE    p_build_sequence > 0;
415 
416     RETURN TRUE;
417 
418 EXCEPTION
419 
420     WHEN NO_DATA_FOUND THEN
421 
422         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
423         THEN
424 
425             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_SEQUENCE');
426             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_build_sequence);
427             FND_MSG_PUB.Add;
428 
429         END IF;
430 
431         RETURN FALSE;
432 
433     WHEN OTHERS THEN
434 
435         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
436         THEN
437             FND_MSG_PUB.Add_Exc_Msg
438             (   G_PKG_NAME
439             ,   'Build_Sequence'
440             );
441         END IF;
442 
443         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444 
445 END Build_Sequence;
446 
447 FUNCTION Class ( p_class_code IN VARCHAR2 )
448 RETURN BOOLEAN
449 IS
450 l_dummy                       VARCHAR2(10);
451 BEGIN
452 
453     IF p_class_code IS NULL OR
454         p_class_code = FND_API.G_MISS_CHAR
455     THEN
456         RETURN TRUE;
457     END IF;
458 
459     --  SELECT  'VALID'
460     --  INTO     l_dummy
461     --  FROM     DB_TABLE
462     --  WHERE    DB_COLUMN = p_class_code;
463 
464     RETURN TRUE;
465 
466 EXCEPTION
467 
468     WHEN NO_DATA_FOUND THEN
469 
470         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
471         THEN
472 
473             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_CLASS_CODE');
474             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_class_code);
475             FND_MSG_PUB.Add;
476 
477         END IF;
478 
479         RETURN FALSE;
480 
481     WHEN OTHERS THEN
482 
483         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
484         THEN
485             FND_MSG_PUB.Add_Exc_Msg
486             (   G_PKG_NAME
487             ,   'Class'
488             );
489         END IF;
490 
491         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
492 
493 END Class;
494 
495 FUNCTION Completion_Locator ( p_completion_locator_id IN NUMBER )
496 RETURN BOOLEAN
497 IS
498 l_dummy                       VARCHAR2(10);
499 BEGIN
500 
501     IF p_completion_locator_id IS NULL OR
502         p_completion_locator_id = FND_API.G_MISS_NUM
503     THEN
504         RETURN TRUE;
505     END IF;
506 
507     --  SELECT  'VALID'
508     --  INTO     l_dummy
509     --  FROM     DB_TABLE
510     --  WHERE    DB_COLUMN = p_completion_locator_id;
511 
512     RETURN TRUE;
513 
514 EXCEPTION
515 
516     WHEN NO_DATA_FOUND THEN
517 
518         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
519         THEN
520 
521             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_COMP_LOC_ID');
522             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_completion_locator_id);
523             FND_MSG_PUB.Add;
524 
525         END IF;
526 
527         RETURN FALSE;
528 
529     WHEN OTHERS THEN
530 
531         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
532         THEN
533             FND_MSG_PUB.Add_Exc_Msg
534             (   G_PKG_NAME
535             ,   'Completion_Locator'
536             );
537         END IF;
538 
539         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
540 
541 END Completion_Locator;
542 
543 FUNCTION Completion_Subinventory ( p_completion_subinventory IN VARCHAR2 )
544 RETURN BOOLEAN
545 IS
546 l_dummy                       VARCHAR2(10);
547 BEGIN
548 
549     IF p_completion_subinventory IS NULL OR
550         p_completion_subinventory = FND_API.G_MISS_CHAR
551     THEN
552         RETURN TRUE;
553     END IF;
554 
555     --  SELECT  'VALID'
556     --  INTO     l_dummy
557     --  FROM     DB_TABLE
558     --  WHERE    DB_COLUMN = p_completion_subinventory;
559 
560     RETURN TRUE;
561 
562 EXCEPTION
563 
564     WHEN NO_DATA_FOUND THEN
565 
566         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
567         THEN
568 
569             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_COMP_SUBINV');
570             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_completion_subinventory);
571             FND_MSG_PUB.Add;
572 
573         END IF;
574 
575         RETURN FALSE;
576 
577     WHEN OTHERS THEN
578 
579         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
580         THEN
581             FND_MSG_PUB.Add_Exc_Msg
582             (   G_PKG_NAME
583             ,   'Completion_Subinventory'
584             );
585         END IF;
586 
587         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588 
589 END Completion_Subinventory;
590 
591 FUNCTION Created_By ( p_created_by IN NUMBER )
592 RETURN BOOLEAN
593 IS
594 l_dummy                       VARCHAR2(10);
595 BEGIN
596 
597     IF p_created_by IS NULL OR
598         p_created_by = FND_API.G_MISS_NUM
599     THEN
600         RETURN TRUE;
601     END IF;
602 
603     --  SELECT  'VALID'
604     --  INTO     l_dummy
605     --  FROM     DB_TABLE
606     --  WHERE    DB_COLUMN = p_created_by;
607 
608     RETURN TRUE;
609 
610 EXCEPTION
611 
612     WHEN NO_DATA_FOUND THEN
613 
614         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
615         THEN
616 
617             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
618             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','created_by');
619             FND_MSG_PUB.Add;
620 
621         END IF;
622 
623         RETURN FALSE;
624 
625     WHEN OTHERS THEN
626 
627         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
628         THEN
629             FND_MSG_PUB.Add_Exc_Msg
630             (   G_PKG_NAME
631             ,   'Created_By'
632             );
633         END IF;
634 
635         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
636 
637 END Created_By;
638 
639 FUNCTION Creation_Date ( p_creation_date IN DATE )
640 RETURN BOOLEAN
641 IS
642 l_dummy                       VARCHAR2(10);
643 BEGIN
644 
645     IF p_creation_date IS NULL OR
646         p_creation_date = FND_API.G_MISS_DATE
647     THEN
648         RETURN TRUE;
649     END IF;
650 
651     --  SELECT  'VALID'
652     --  INTO     l_dummy
653     --  FROM     DB_TABLE
654     --  WHERE    DB_COLUMN = p_creation_date;
655 
656     RETURN TRUE;
657 
658 EXCEPTION
659 
660     WHEN NO_DATA_FOUND THEN
661 
662         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
663         THEN
664 
665             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
666             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','creation_date');
667             FND_MSG_PUB.Add;
668 
669         END IF;
670 
671         RETURN FALSE;
672 
673     WHEN OTHERS THEN
674 
675         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
676         THEN
677             FND_MSG_PUB.Add_Exc_Msg
678             (   G_PKG_NAME
679             ,   'Creation_Date'
680             );
681         END IF;
682 
683         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
684 
685 END Creation_Date;
686 
687 FUNCTION Date_Closed ( p_date_closed IN DATE )
688 RETURN BOOLEAN
689 IS
690 l_dummy                       VARCHAR2(10);
691 BEGIN
692 
693     IF p_date_closed IS NULL OR
694         p_date_closed = FND_API.G_MISS_DATE
695     THEN
696         RETURN TRUE;
697     END IF;
698 
699     --  SELECT  'VALID'
700     --  INTO     l_dummy
701     --  FROM     DB_TABLE
702     --  WHERE    DB_COLUMN = p_date_closed;
703 
704     RETURN TRUE;
705 
706 EXCEPTION
707 
708     WHEN NO_DATA_FOUND THEN
709 
710         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
711         THEN
712 
713             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
714             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','date_closed');
715             FND_MSG_PUB.Add;
716 
717         END IF;
718 
719         RETURN FALSE;
720 
721     WHEN OTHERS THEN
722 
723         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
724         THEN
725             FND_MSG_PUB.Add_Exc_Msg
726             (   G_PKG_NAME
727             ,   'Date_Closed'
728             );
729         END IF;
730 
731         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
732 
733 END Date_Closed;
734 
735 FUNCTION Demand_Class ( p_demand_class IN VARCHAR2 )
736 RETURN BOOLEAN
737 IS
738 l_dummy                       VARCHAR2(10);
739 BEGIN
740 
741     IF p_demand_class IS NULL OR
742         p_demand_class = FND_API.G_MISS_CHAR
743     THEN
744         RETURN TRUE;
745     END IF;
746 
747     SELECT  'VALID'
748     INTO     l_dummy
749     FROM     FND_COMMON_LOOKUPS
750     WHERE    LOOKUP_CODE = p_demand_class
751     AND      LOOKUP_TYPE = 'DEMAND_CLASS'
752     AND      ENABLED_FLAG = 'Y'
753     AND      SYSDATE BETWEEN NVL(START_DATE_ACTIVE,SYSDATE) AND
754                              NVL(END_DATE_ACTIVE,SYSDATE);
755 
756     RETURN TRUE;
757 
758 EXCEPTION
759 
760     WHEN NO_DATA_FOUND THEN
761 
762         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
763         THEN
764 
765             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_DEMAND_CLASS');
766             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_demand_class);
767             FND_MSG_PUB.Add;
768 
769         END IF;
770 
771         RETURN FALSE;
772 
773     WHEN OTHERS THEN
774 
775         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
776         THEN
777             FND_MSG_PUB.Add_Exc_Msg
778             (   G_PKG_NAME
779             ,   'Demand_Class'
780             );
781         END IF;
782 
783         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
784 
785 END Demand_Class;
786 
787 FUNCTION Demand_Source_Delivery ( p_demand_source_delivery IN VARCHAR2 )
788 RETURN BOOLEAN
789 IS
790 l_dummy                       VARCHAR2(10);
791 BEGIN
792 
793     IF p_demand_source_delivery IS NULL OR
794         p_demand_source_delivery = FND_API.G_MISS_CHAR
795     THEN
796         RETURN TRUE;
797     END IF;
798 
799     --  SELECT  'VALID'
800     --  INTO     l_dummy
801     --  FROM     DB_TABLE
802     --  WHERE    DB_COLUMN = p_demand_source_delivery;
803 
804     RETURN TRUE;
805 
806 EXCEPTION
807 
808     WHEN NO_DATA_FOUND THEN
809 
810         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
811         THEN
812 
813             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
814             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','demand_source_delivery');
815             FND_MSG_PUB.Add;
816 
817         END IF;
818 
819         RETURN FALSE;
820 
821     WHEN OTHERS THEN
822 
823         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
824         THEN
825             FND_MSG_PUB.Add_Exc_Msg
826             (   G_PKG_NAME
827             ,   'Demand_Source_Delivery'
828             );
829         END IF;
830 
831         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
832 
833 END Demand_Source_Delivery;
834 
835 FUNCTION Demand_Source_Header ( p_demand_source_header_id IN NUMBER )
836 RETURN BOOLEAN
837 IS
838 l_dummy                       VARCHAR2(10);
839 BEGIN
840 
841     IF p_demand_source_header_id IS NULL OR
842         p_demand_source_header_id = FND_API.G_MISS_NUM
843     THEN
844         RETURN TRUE;
845     END IF;
846 
847     --  SELECT  'VALID'
848     --  INTO     l_dummy
849     --  FROM     DB_TABLE
850     --  WHERE    DB_COLUMN = p_demand_source_header_id;
851 
852     RETURN TRUE;
853 
854 EXCEPTION
855 
856     WHEN NO_DATA_FOUND THEN
857 
858         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
859         THEN
860 
861             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
862             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','demand_source_header');
863             FND_MSG_PUB.Add;
864 
865         END IF;
866 
867         RETURN FALSE;
868 
869     WHEN OTHERS THEN
870 
871         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
872         THEN
873             FND_MSG_PUB.Add_Exc_Msg
874             (   G_PKG_NAME
875             ,   'Demand_Source_Header'
876             );
877         END IF;
878 
879         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
880 
881 END Demand_Source_Header;
882 
883 FUNCTION Demand_Source_Line ( p_demand_source_line IN VARCHAR2 )
884 RETURN BOOLEAN
885 IS
886 l_dummy                       VARCHAR2(10);
887 BEGIN
888 
889     IF p_demand_source_line IS NULL OR
890         p_demand_source_line = FND_API.G_MISS_CHAR
891     THEN
892         RETURN TRUE;
893     END IF;
894 
895     --  SELECT  'VALID'
896     --  INTO     l_dummy
897     --  FROM     DB_TABLE
898     --  WHERE    DB_COLUMN = p_demand_source_line;
899 
900     RETURN TRUE;
901 
902 EXCEPTION
903 
904     WHEN NO_DATA_FOUND THEN
905 
906         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
907         THEN
908 
909             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
910             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','demand_source_line');
911             FND_MSG_PUB.Add;
912 
913         END IF;
914 
915         RETURN FALSE;
916 
917     WHEN OTHERS THEN
918 
919         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
920         THEN
921             FND_MSG_PUB.Add_Exc_Msg
922             (   G_PKG_NAME
923             ,   'Demand_Source_Line'
924             );
925         END IF;
926 
927         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
928 
929 END Demand_Source_Line;
930 
931 FUNCTION Demand_Source_Type ( p_demand_source_type IN NUMBER )
932 RETURN BOOLEAN
933 IS
934 l_dummy                       VARCHAR2(10);
935 BEGIN
936 
937     IF p_demand_source_type IS NULL OR
938         p_demand_source_type = FND_API.G_MISS_NUM
939     THEN
940         RETURN TRUE;
941     END IF;
942 
943 --    SELECT  'VALID'
944 --    INTO     l_dummy
945 --    FROM     MFG_LOOKUPS
946 --    WHERE    LOOKUP_CODE = p_demand_source_type
947 --    AND      LOOKUP_TYPE = 'MTL_SUPPLY_DEMAND_SOURCE_TYPE'
948 --    AND      ENABLED_FLAG = 'Y'
949 --    AND      SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
950 --                     AND NVL(END_DATE_ACTIVE, SYSDATE);
951 
952     RETURN TRUE;
953 
954 EXCEPTION
955 
956     WHEN NO_DATA_FOUND THEN
957 
958         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
959         THEN
960 
961             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
962             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','demand_source_type');
963             FND_MSG_PUB.Add;
964 
965         END IF;
966 
967         RETURN FALSE;
968 
969     WHEN OTHERS THEN
970 
971         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
972         THEN
973             FND_MSG_PUB.Add_Exc_Msg
974             (   G_PKG_NAME
975             ,   'Demand_Source_Type'
976             );
977         END IF;
978 
979         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
980 
981 END Demand_Source_Type;
982 
983 FUNCTION Last_Updated_By ( p_last_updated_by IN NUMBER )
984 RETURN BOOLEAN
985 IS
986 l_dummy                       VARCHAR2(10);
987 BEGIN
988 
989     IF p_last_updated_by IS NULL OR
990         p_last_updated_by = FND_API.G_MISS_NUM
991     THEN
992         RETURN TRUE;
993     END IF;
994 
995     --  SELECT  'VALID'
996     --  INTO     l_dummy
997     --  FROM     DB_TABLE
998     --  WHERE    DB_COLUMN = p_last_updated_by;
999 
1000     RETURN TRUE;
1001 
1002 EXCEPTION
1003 
1004     WHEN NO_DATA_FOUND THEN
1005 
1006         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1007         THEN
1008 
1009             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1010             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','last_updated_by');
1011             FND_MSG_PUB.Add;
1012 
1013         END IF;
1014 
1015         RETURN FALSE;
1016 
1017     WHEN OTHERS THEN
1018 
1019         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1020         THEN
1021             FND_MSG_PUB.Add_Exc_Msg
1022             (   G_PKG_NAME
1023             ,   'Last_Updated_By'
1024             );
1025         END IF;
1026 
1027         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1028 
1029 END Last_Updated_By;
1030 
1031 FUNCTION Last_Update_Date ( p_last_update_date IN DATE )
1032 RETURN BOOLEAN
1033 IS
1034 l_dummy                       VARCHAR2(10);
1035 BEGIN
1036 
1037     IF p_last_update_date IS NULL OR
1038         p_last_update_date = FND_API.G_MISS_DATE
1039     THEN
1040         RETURN TRUE;
1041     END IF;
1042 
1043     --  SELECT  'VALID'
1044     --  INTO     l_dummy
1045     --  FROM     DB_TABLE
1046     --  WHERE    DB_COLUMN = p_last_update_date;
1047 
1048     RETURN TRUE;
1049 
1050 EXCEPTION
1051 
1052     WHEN NO_DATA_FOUND THEN
1053 
1054         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1055         THEN
1056 
1057             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1058             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','last_update_date');
1059             FND_MSG_PUB.Add;
1060 
1061         END IF;
1062 
1063         RETURN FALSE;
1064 
1065     WHEN OTHERS THEN
1066 
1067         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1068         THEN
1069             FND_MSG_PUB.Add_Exc_Msg
1070             (   G_PKG_NAME
1071             ,   'Last_Update_Date'
1072             );
1073         END IF;
1074 
1075         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1076 
1077 END Last_Update_Date;
1078 
1079 FUNCTION Last_Update_Login ( p_last_update_login IN NUMBER )
1080 RETURN BOOLEAN
1081 IS
1082 l_dummy                       VARCHAR2(10);
1083 BEGIN
1084 
1085     IF p_last_update_login IS NULL OR
1086         p_last_update_login = FND_API.G_MISS_NUM
1087     THEN
1088         RETURN TRUE;
1089     END IF;
1090 
1091     --  SELECT  'VALID'
1092     --  INTO     l_dummy
1093     --  FROM     DB_TABLE
1094     --  WHERE    DB_COLUMN = p_last_update_login;
1095 
1096     RETURN TRUE;
1097 
1098 EXCEPTION
1099 
1100     WHEN NO_DATA_FOUND THEN
1101 
1102         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1103         THEN
1104 
1105             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1106             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','last_update_login');
1107             FND_MSG_PUB.Add;
1108 
1109         END IF;
1110 
1111         RETURN FALSE;
1112 
1113     WHEN OTHERS THEN
1114 
1115         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1116         THEN
1117             FND_MSG_PUB.Add_Exc_Msg
1118             (   G_PKG_NAME
1119             ,   'Last_Update_Login'
1120             );
1121         END IF;
1122 
1123         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1124 
1125 END Last_Update_Login;
1126 
1127 FUNCTION Line ( p_line_id IN NUMBER )
1128 RETURN BOOLEAN
1129 IS
1130 l_dummy                       VARCHAR2(10);
1131 BEGIN
1132 
1133     IF p_line_id IS NULL OR
1134         p_line_id = FND_API.G_MISS_NUM
1135     THEN
1136         RETURN TRUE;
1137     END IF;
1138 
1139     --  SELECT  'VALID'
1140     --  INTO     l_dummy
1141     --  FROM     DB_TABLE
1142     --  WHERE    DB_COLUMN = p_line_id;
1143 
1144     RETURN TRUE;
1145 
1146 EXCEPTION
1147 
1148     WHEN NO_DATA_FOUND THEN
1149 
1150         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1151         THEN
1152 
1153             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1154             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','line');
1155             FND_MSG_PUB.Add;
1156 
1157         END IF;
1158 
1159         RETURN FALSE;
1160 
1161     WHEN OTHERS THEN
1162 
1163         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1164         THEN
1165             FND_MSG_PUB.Add_Exc_Msg
1166             (   G_PKG_NAME
1167             ,   'Line'
1168             );
1169         END IF;
1170 
1171         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1172 
1173 END Line;
1174 
1175 FUNCTION Material_Account ( p_material_account IN NUMBER )
1176 RETURN BOOLEAN
1177 IS
1178 l_dummy                       VARCHAR2(10);
1179 BEGIN
1180 
1181     IF p_material_account IS NULL OR
1182         p_material_account = FND_API.G_MISS_NUM
1183     THEN
1184         RETURN TRUE;
1185     END IF;
1186 
1187     --  SELECT  'VALID'
1188     --  INTO     l_dummy
1189     --  FROM     DB_TABLE
1190     --  WHERE    DB_COLUMN = p_material_account;
1191 
1192     RETURN TRUE;
1193 
1194 EXCEPTION
1195 
1196     WHEN NO_DATA_FOUND THEN
1197 
1198         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1199         THEN
1200 
1201             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1202             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','material_account');
1203             FND_MSG_PUB.Add;
1204 
1205         END IF;
1206 
1207         RETURN FALSE;
1208 
1209     WHEN OTHERS THEN
1210 
1211         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1212         THEN
1213             FND_MSG_PUB.Add_Exc_Msg
1214             (   G_PKG_NAME
1215             ,   'Material_Account'
1216             );
1217         END IF;
1218 
1219         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1220 
1221 END Material_Account;
1222 
1223 FUNCTION Material_Overhead_Account ( p_material_overhead_account IN NUMBER )
1224 RETURN BOOLEAN
1225 IS
1226 l_dummy                       VARCHAR2(10);
1227 BEGIN
1228 
1229     IF p_material_overhead_account IS NULL OR
1230         p_material_overhead_account = FND_API.G_MISS_NUM
1231     THEN
1232         RETURN TRUE;
1233     END IF;
1234 
1235     --  SELECT  'VALID'
1236     --  INTO     l_dummy
1237     --  FROM     DB_TABLE
1238     --  WHERE    DB_COLUMN = p_material_overhead_account;
1239 
1240     RETURN TRUE;
1241 
1242 EXCEPTION
1243 
1244     WHEN NO_DATA_FOUND THEN
1245 
1246         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1247         THEN
1248 
1249             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1250             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','material_overhead_account');
1251             FND_MSG_PUB.Add;
1252 
1253         END IF;
1254 
1255         RETURN FALSE;
1256 
1257     WHEN OTHERS THEN
1258 
1259         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1260         THEN
1261             FND_MSG_PUB.Add_Exc_Msg
1262             (   G_PKG_NAME
1263             ,   'Material_Overhead_Account'
1264             );
1265         END IF;
1266 
1267         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1268 
1269 END Material_Overhead_Account;
1270 
1271 FUNCTION Material_Variance_Account ( p_material_variance_account IN NUMBER )
1272 RETURN BOOLEAN
1273 IS
1274 l_dummy                       VARCHAR2(10);
1275 BEGIN
1276 
1277     IF p_material_variance_account IS NULL OR
1278         p_material_variance_account = FND_API.G_MISS_NUM
1279     THEN
1280         RETURN TRUE;
1281     END IF;
1282 
1283     --  SELECT  'VALID'
1284     --  INTO     l_dummy
1285     --  FROM     DB_TABLE
1286     --  WHERE    DB_COLUMN = p_material_variance_account;
1287 
1288     RETURN TRUE;
1289 
1290 EXCEPTION
1291 
1292     WHEN NO_DATA_FOUND THEN
1293 
1294         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1295         THEN
1296 
1297             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1298             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','material_variance_account');
1299             FND_MSG_PUB.Add;
1300 
1301         END IF;
1302 
1303         RETURN FALSE;
1304 
1305     WHEN OTHERS THEN
1306 
1307         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1308         THEN
1309             FND_MSG_PUB.Add_Exc_Msg
1310             (   G_PKG_NAME
1311             ,   'Material_Variance_Account'
1312             );
1313         END IF;
1314 
1315         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1316 
1317 END Material_Variance_Account;
1318 
1319 FUNCTION Mps_Net_Quantity ( p_mps_net_quantity IN NUMBER )
1320 RETURN BOOLEAN
1321 IS
1322 l_dummy                       VARCHAR2(10);
1323 BEGIN
1324 
1325     IF p_mps_net_quantity IS NULL OR
1326         p_mps_net_quantity = FND_API.G_MISS_NUM
1327     THEN
1328         RETURN TRUE;
1329     END IF;
1330 
1331     SELECT  'VALID'
1332     INTO     l_dummy
1333     FROM     DUAL
1334     WHERE    p_mps_net_quantity >= 0;
1335 
1336     RETURN TRUE;
1337 
1338 EXCEPTION
1339 
1340     WHEN NO_DATA_FOUND THEN
1341 
1342         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1343         THEN
1344 
1345             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_MPS_NET_QTY');
1346             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_mps_net_quantity);
1347             FND_MSG_PUB.Add;
1348 
1349         END IF;
1350 
1351         RETURN FALSE;
1352 
1353     WHEN OTHERS THEN
1354 
1355         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1356         THEN
1357             FND_MSG_PUB.Add_Exc_Msg
1358             (   G_PKG_NAME
1359             ,   'Mps_Net_Quantity'
1360             );
1361         END IF;
1362 
1363         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1364 
1365 END Mps_Net_Quantity;
1366 
1367 FUNCTION Mps_Scheduled_Comp_Date ( p_mps_scheduled_comp_date IN DATE )
1368 RETURN BOOLEAN
1369 IS
1370 l_dummy                       VARCHAR2(10);
1371 BEGIN
1372 
1373     IF p_mps_scheduled_comp_date IS NULL OR
1374         p_mps_scheduled_comp_date = FND_API.G_MISS_DATE
1375     THEN
1376         RETURN TRUE;
1377     END IF;
1378 
1379     --  SELECT  'VALID'
1380     --  INTO     l_dummy
1381     --  FROM     DB_TABLE
1382     --  WHERE    DB_COLUMN = p_mps_scheduled_comp_date;
1383 
1384     RETURN TRUE;
1385 
1386 EXCEPTION
1387 
1388     WHEN NO_DATA_FOUND THEN
1389 
1390         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1391         THEN
1392 
1393             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1394             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','mps_scheduled_comp_date');
1395             FND_MSG_PUB.Add;
1396 
1397         END IF;
1398 
1399         RETURN FALSE;
1400 
1401     WHEN OTHERS THEN
1402 
1403         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1404         THEN
1405             FND_MSG_PUB.Add_Exc_Msg
1406             (   G_PKG_NAME
1407             ,   'Mps_Scheduled_Comp_Date'
1408             );
1409         END IF;
1410 
1411         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1412 
1413 END Mps_Scheduled_Comp_Date;
1414 
1415 FUNCTION Organization ( p_organization_id IN NUMBER )
1416 RETURN BOOLEAN
1417 IS
1418 l_dummy                       VARCHAR2(10);
1419 BEGIN
1420 
1421     IF p_organization_id IS NULL OR
1422         p_organization_id = FND_API.G_MISS_NUM
1423     THEN
1424         RETURN TRUE;
1425     END IF;
1426 
1427     SELECT  'VALID'
1428     INTO     l_dummy
1429     FROM     mtl_parameters
1430     WHERE    ORGANIZATION_ID = p_organization_id;
1431 
1432     RETURN TRUE;
1433 
1434 EXCEPTION
1435 
1436     WHEN NO_DATA_FOUND THEN
1437 
1438         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1439         THEN
1440 
1441             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ORG');
1442             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_organization_id);
1443             FND_MSG_PUB.Add;
1444 
1445         END IF;
1446 
1447         RETURN FALSE;
1448 
1449     WHEN OTHERS THEN
1450 
1451         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1452         THEN
1453             FND_MSG_PUB.Add_Exc_Msg
1454             (   G_PKG_NAME
1455             ,   'Organization'
1456             );
1457         END IF;
1458 
1459         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1460 
1461 END Organization;
1462 
1463 FUNCTION Outside_Processing_Acct ( p_outside_processing_acct IN NUMBER )
1464 RETURN BOOLEAN
1465 IS
1466 l_dummy                       VARCHAR2(10);
1467 BEGIN
1468 
1469     IF p_outside_processing_acct IS NULL OR
1470         p_outside_processing_acct = FND_API.G_MISS_NUM
1471     THEN
1472         RETURN TRUE;
1473     END IF;
1474 
1475     --  SELECT  'VALID'
1476     --  INTO     l_dummy
1477     --  FROM     DB_TABLE
1478     --  WHERE    DB_COLUMN = p_outside_processing_acct;
1479 
1480     RETURN TRUE;
1481 
1482 EXCEPTION
1483 
1484     WHEN NO_DATA_FOUND THEN
1485 
1486         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1487         THEN
1488 
1489             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1490             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','outside_processing_acct');
1491             FND_MSG_PUB.Add;
1492 
1493         END IF;
1494 
1495         RETURN FALSE;
1496 
1497     WHEN OTHERS THEN
1498 
1499         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1500         THEN
1501             FND_MSG_PUB.Add_Exc_Msg
1502             (   G_PKG_NAME
1503             ,   'Outside_Processing_Acct'
1504             );
1505         END IF;
1506 
1507         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1508 
1509 END Outside_Processing_Acct;
1510 
1511 FUNCTION Outside_Proc_Var_Acct ( p_outside_proc_var_acct IN NUMBER )
1512 RETURN BOOLEAN
1513 IS
1514 l_dummy                       VARCHAR2(10);
1515 BEGIN
1516 
1517     IF p_outside_proc_var_acct IS NULL OR
1518         p_outside_proc_var_acct = FND_API.G_MISS_NUM
1519     THEN
1520         RETURN TRUE;
1521     END IF;
1522 
1523     --  SELECT  'VALID'
1524     --  INTO     l_dummy
1525     --  FROM     DB_TABLE
1526     --  WHERE    DB_COLUMN = p_outside_proc_var_acct;
1527 
1528     RETURN TRUE;
1529 
1530 EXCEPTION
1531 
1532     WHEN NO_DATA_FOUND THEN
1533 
1534         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1535         THEN
1536 
1537             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1538             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','outside_proc_var_acct');
1539             FND_MSG_PUB.Add;
1540 
1541         END IF;
1542 
1543         RETURN FALSE;
1544 
1545     WHEN OTHERS THEN
1546 
1547         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1548         THEN
1549             FND_MSG_PUB.Add_Exc_Msg
1550             (   G_PKG_NAME
1551             ,   'Outside_Proc_Var_Acct'
1552             );
1553         END IF;
1554 
1555         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1556 
1557 END Outside_Proc_Var_Acct;
1558 
1559 FUNCTION Overhead_Account ( p_overhead_account IN NUMBER )
1560 RETURN BOOLEAN
1561 IS
1562 l_dummy                       VARCHAR2(10);
1563 BEGIN
1564 
1565     IF p_overhead_account IS NULL OR
1566         p_overhead_account = FND_API.G_MISS_NUM
1567     THEN
1568         RETURN TRUE;
1569     END IF;
1570 
1571     --  SELECT  'VALID'
1572     --  INTO     l_dummy
1573     --  FROM     DB_TABLE
1574     --  WHERE    DB_COLUMN = p_overhead_account;
1575 
1576     RETURN TRUE;
1577 
1578 EXCEPTION
1579 
1580     WHEN NO_DATA_FOUND THEN
1581 
1582         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1583         THEN
1584 
1585             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1586             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','overhead_account');
1587             FND_MSG_PUB.Add;
1588 
1589         END IF;
1590 
1591         RETURN FALSE;
1592 
1593     WHEN OTHERS THEN
1594 
1595         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1596         THEN
1597             FND_MSG_PUB.Add_Exc_Msg
1598             (   G_PKG_NAME
1599             ,   'Overhead_Account'
1600             );
1601         END IF;
1602 
1603         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1604 
1605 END Overhead_Account;
1606 
1607 FUNCTION Overhead_Variance_Account ( p_overhead_variance_account IN NUMBER )
1608 RETURN BOOLEAN
1609 IS
1610 l_dummy                       VARCHAR2(10);
1611 BEGIN
1612 
1613     IF p_overhead_variance_account IS NULL OR
1614         p_overhead_variance_account = FND_API.G_MISS_NUM
1615     THEN
1616         RETURN TRUE;
1617     END IF;
1618 
1619     --  SELECT  'VALID'
1620     --  INTO     l_dummy
1621     --  FROM     DB_TABLE
1622     --  WHERE    DB_COLUMN = p_overhead_variance_account;
1623 
1624     RETURN TRUE;
1625 
1626 EXCEPTION
1627 
1628     WHEN NO_DATA_FOUND THEN
1629 
1630         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1631         THEN
1632 
1633             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1634             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','overhead_variance_account');
1635             FND_MSG_PUB.Add;
1636 
1637         END IF;
1638 
1639         RETURN FALSE;
1640 
1641     WHEN OTHERS THEN
1642 
1643         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1644         THEN
1645             FND_MSG_PUB.Add_Exc_Msg
1646             (   G_PKG_NAME
1647             ,   'Overhead_Variance_Account'
1648             );
1649         END IF;
1650 
1651         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1652 
1653 END Overhead_Variance_Account;
1654 
1655 FUNCTION Planned_Quantity ( p_planned_quantity IN NUMBER )
1656 RETURN BOOLEAN
1657 IS
1658 l_dummy                       VARCHAR2(10);
1659 BEGIN
1660 
1661     IF p_planned_quantity IS NULL OR
1662         p_planned_quantity = FND_API.G_MISS_NUM
1663     THEN
1664         RETURN TRUE;
1665     END IF;
1666 
1667     SELECT  'VALID'
1668     INTO     l_dummy
1669     FROM     DUAL
1670     WHERE    p_planned_quantity >= 0;
1671 
1672     RETURN TRUE;
1673 
1674 EXCEPTION
1675 
1676     WHEN NO_DATA_FOUND THEN
1677 
1678         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1679         THEN
1680 
1681             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_PLANNED_QTY');
1682             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_planned_quantity);
1683             FND_MSG_PUB.Add;
1684 
1685         END IF;
1686 
1687         RETURN FALSE;
1688 
1689     WHEN OTHERS THEN
1690 
1691         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1692         THEN
1693             FND_MSG_PUB.Add_Exc_Msg
1694             (   G_PKG_NAME
1695             ,   'Planned_Quantity'
1696             );
1697         END IF;
1698 
1699         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1700 
1701 END Planned_Quantity;
1702 
1703 FUNCTION Primary_Item ( p_primary_item_id IN NUMBER )
1704 RETURN BOOLEAN
1705 IS
1706 l_dummy                       VARCHAR2(10);
1707 BEGIN
1708 
1709     IF p_primary_item_id IS NULL OR
1710         p_primary_item_id = FND_API.G_MISS_NUM
1711     THEN
1712         RETURN TRUE;
1713     END IF;
1714 
1715     --  SELECT  'VALID'
1716     --  INTO     l_dummy
1717     --  FROM     DB_TABLE
1718     --  WHERE    DB_COLUMN = p_primary_item_id;
1719 
1720     RETURN TRUE;
1721 
1722 EXCEPTION
1723 
1724     WHEN NO_DATA_FOUND THEN
1725 
1726         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1727         THEN
1728 
1729             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1730             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_item');
1731             FND_MSG_PUB.Add;
1732 
1733         END IF;
1734 
1735         RETURN FALSE;
1736 
1737     WHEN OTHERS THEN
1738 
1739         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1740         THEN
1741             FND_MSG_PUB.Add_Exc_Msg
1742             (   G_PKG_NAME
1743             ,   'Primary_Item'
1744             );
1745         END IF;
1746 
1747         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1748 
1749 END Primary_Item;
1750 
1751 FUNCTION Program_Application ( p_program_application_id IN NUMBER )
1752 RETURN BOOLEAN
1753 IS
1754 l_dummy                       VARCHAR2(10);
1755 BEGIN
1756 
1757     IF p_program_application_id IS NULL OR
1758         p_program_application_id = FND_API.G_MISS_NUM
1759     THEN
1760         RETURN TRUE;
1761     END IF;
1762 
1763     --  SELECT  'VALID'
1764     --  INTO     l_dummy
1765     --  FROM     DB_TABLE
1766     --  WHERE    DB_COLUMN = p_program_application_id;
1767 
1768     RETURN TRUE;
1769 
1770 EXCEPTION
1771 
1772     WHEN NO_DATA_FOUND THEN
1773 
1774         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1775         THEN
1776 
1777             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1778             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','program_application');
1779             FND_MSG_PUB.Add;
1780 
1781         END IF;
1782 
1783         RETURN FALSE;
1784 
1785     WHEN OTHERS THEN
1786 
1787         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1788         THEN
1789             FND_MSG_PUB.Add_Exc_Msg
1790             (   G_PKG_NAME
1791             ,   'Program_Application'
1792             );
1793         END IF;
1794 
1795         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1796 
1797 END Program_Application;
1798 
1799 FUNCTION Program ( p_program_id IN NUMBER )
1800 RETURN BOOLEAN
1801 IS
1802 l_dummy                       VARCHAR2(10);
1803 BEGIN
1804 
1805     IF p_program_id IS NULL OR
1806         p_program_id = FND_API.G_MISS_NUM
1807     THEN
1808         RETURN TRUE;
1809     END IF;
1810 
1811     --  SELECT  'VALID'
1812     --  INTO     l_dummy
1813     --  FROM     DB_TABLE
1814     --  WHERE    DB_COLUMN = p_program_id;
1815 
1816     RETURN TRUE;
1817 
1818 EXCEPTION
1819 
1820     WHEN NO_DATA_FOUND THEN
1821 
1822         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1823         THEN
1824 
1825             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1826             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','program');
1827             FND_MSG_PUB.Add;
1828 
1829         END IF;
1830 
1831         RETURN FALSE;
1832 
1833     WHEN OTHERS THEN
1834 
1835         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1836         THEN
1837             FND_MSG_PUB.Add_Exc_Msg
1838             (   G_PKG_NAME
1839             ,   'Program'
1840             );
1841         END IF;
1842 
1843         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1844 
1845 END Program;
1846 
1847 FUNCTION Program_Update_Date ( p_program_update_date IN DATE )
1848 RETURN BOOLEAN
1849 IS
1850 l_dummy                       VARCHAR2(10);
1851 BEGIN
1852 
1853     IF p_program_update_date IS NULL OR
1854         p_program_update_date = FND_API.G_MISS_DATE
1855     THEN
1856         RETURN TRUE;
1857     END IF;
1858 
1859     --  SELECT  'VALID'
1860     --  INTO     l_dummy
1861     --  FROM     DB_TABLE
1862     --  WHERE    DB_COLUMN = p_program_update_date;
1863 
1864     RETURN TRUE;
1865 
1866 EXCEPTION
1867 
1868     WHEN NO_DATA_FOUND THEN
1869 
1870         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1871         THEN
1872 
1873             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
1874             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','program_update_date');
1875             FND_MSG_PUB.Add;
1876 
1877         END IF;
1878 
1879         RETURN FALSE;
1880 
1881     WHEN OTHERS THEN
1882 
1883         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1884         THEN
1885             FND_MSG_PUB.Add_Exc_Msg
1886             (   G_PKG_NAME
1887             ,   'Program_Update_Date'
1888             );
1889         END IF;
1890 
1891         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1892 
1893 END Program_Update_Date;
1894 
1895 FUNCTION Project ( p_project_id IN NUMBER )
1896 RETURN BOOLEAN
1897 IS
1898 l_dummy                       VARCHAR2(10);
1899 BEGIN
1900 
1901     IF p_project_id IS NULL OR
1902         p_project_id = FND_API.G_MISS_NUM
1903     THEN
1904         RETURN TRUE;
1905     END IF;
1906 
1907     SELECT  'VALID'
1908     INTO     l_dummy
1909     FROM     MTL_PROJECT_V
1910     WHERE    PROJECT_ID = p_project_id;
1911 
1912     RETURN TRUE;
1913 
1914 EXCEPTION
1915 
1916     WHEN NO_DATA_FOUND THEN
1917 
1918         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1919         THEN
1920 
1921             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_PROJECT');
1922             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_project_id);
1923             FND_MSG_PUB.Add;
1924 
1925         END IF;
1926 
1927         RETURN FALSE;
1928 
1929     WHEN OTHERS THEN
1930 
1931         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1932         THEN
1933             FND_MSG_PUB.Add_Exc_Msg
1934             (   G_PKG_NAME
1935             ,   'Project'
1936             );
1937         END IF;
1938 
1939         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1940 
1941 END Project;
1942 
1943 FUNCTION Quantity_Completed ( p_quantity_completed IN NUMBER )
1944 RETURN BOOLEAN
1945 IS
1946 l_dummy                       VARCHAR2(10);
1947 BEGIN
1948 
1949     IF p_quantity_completed IS NULL OR
1950         p_quantity_completed = FND_API.G_MISS_NUM
1951     THEN
1952         RETURN TRUE;
1953     END IF;
1954 
1955     SELECT  'VALID'
1956     INTO     l_dummy
1957     FROM     DUAL
1958     WHERE    p_quantity_completed >= 0;
1959 
1960     RETURN TRUE;
1961 
1962 EXCEPTION
1963 
1964     WHEN NO_DATA_FOUND THEN
1965 
1966         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1967         THEN
1968 
1969             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_QTY_COMPLETED');
1970             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_quantity_completed);
1971             FND_MSG_PUB.Add;
1972 
1973         END IF;
1974 
1975         RETURN FALSE;
1976 
1977     WHEN OTHERS THEN
1978 
1979         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1980         THEN
1981             FND_MSG_PUB.Add_Exc_Msg
1982             (   G_PKG_NAME
1983             ,   'Quantity_Completed'
1984             );
1985         END IF;
1986 
1987         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1988 
1989 END Quantity_Completed;
1990 
1991 FUNCTION Request ( p_request_id IN NUMBER )
1992 RETURN BOOLEAN
1993 IS
1994 l_dummy                       VARCHAR2(10);
1995 BEGIN
1996 
1997     IF p_request_id IS NULL OR
1998         p_request_id = FND_API.G_MISS_NUM
1999     THEN
2000         RETURN TRUE;
2001     END IF;
2002 
2003     --  SELECT  'VALID'
2004     --  INTO     l_dummy
2005     --  FROM     DB_TABLE
2006     --  WHERE    DB_COLUMN = p_request_id;
2007 
2008     RETURN TRUE;
2009 
2010 EXCEPTION
2011 
2012     WHEN NO_DATA_FOUND THEN
2013 
2014         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2015         THEN
2016 
2017             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2018             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','request');
2019             FND_MSG_PUB.Add;
2020 
2021         END IF;
2022 
2023         RETURN FALSE;
2024 
2025     WHEN OTHERS THEN
2026 
2027         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2028         THEN
2029             FND_MSG_PUB.Add_Exc_Msg
2030             (   G_PKG_NAME
2031             ,   'Request'
2032             );
2033         END IF;
2034 
2035         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2036 
2037 END Request;
2038 
2039 FUNCTION Resource_Account ( p_resource_account IN NUMBER )
2040 RETURN BOOLEAN
2041 IS
2042 l_dummy                       VARCHAR2(10);
2043 BEGIN
2044 
2045     IF p_resource_account IS NULL OR
2046         p_resource_account = FND_API.G_MISS_NUM
2047     THEN
2048         RETURN TRUE;
2049     END IF;
2050 
2051     --  SELECT  'VALID'
2052     --  INTO     l_dummy
2053     --  FROM     DB_TABLE
2054     --  WHERE    DB_COLUMN = p_resource_account;
2055 
2056     RETURN TRUE;
2057 
2058 EXCEPTION
2059 
2060     WHEN NO_DATA_FOUND THEN
2061 
2062         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2063         THEN
2064 
2065             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2066             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','resource_account');
2067             FND_MSG_PUB.Add;
2068 
2069         END IF;
2070 
2071         RETURN FALSE;
2072 
2073     WHEN OTHERS THEN
2074 
2075         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2076         THEN
2077             FND_MSG_PUB.Add_Exc_Msg
2078             (   G_PKG_NAME
2079             ,   'Resource_Account'
2080             );
2081         END IF;
2082 
2083         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2084 
2085 END Resource_Account;
2086 
2087 FUNCTION Resource_Variance_Account ( p_resource_variance_account IN NUMBER )
2088 RETURN BOOLEAN
2089 IS
2090 l_dummy                       VARCHAR2(10);
2091 BEGIN
2092 
2093     IF p_resource_variance_account IS NULL OR
2094         p_resource_variance_account = FND_API.G_MISS_NUM
2095     THEN
2096         RETURN TRUE;
2097     END IF;
2098 
2099     --  SELECT  'VALID'
2100     --  INTO     l_dummy
2101     --  FROM     DB_TABLE
2102     --  WHERE    DB_COLUMN = p_resource_variance_account;
2103 
2104     RETURN TRUE;
2105 
2106 EXCEPTION
2107 
2108     WHEN NO_DATA_FOUND THEN
2109 
2110         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2111         THEN
2112 
2113             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2114             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','resource_variance_account');
2115             FND_MSG_PUB.Add;
2116 
2117         END IF;
2118 
2119         RETURN FALSE;
2120 
2121     WHEN OTHERS THEN
2122 
2123         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2124         THEN
2125             FND_MSG_PUB.Add_Exc_Msg
2126             (   G_PKG_NAME
2127             ,   'Resource_Variance_Account'
2128             );
2129         END IF;
2130 
2131         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2132 
2133 END Resource_Variance_Account;
2134 
2135 FUNCTION Routing_Revision ( p_routing_revision IN VARCHAR2 )
2136 RETURN BOOLEAN
2137 IS
2138 l_dummy                       VARCHAR2(10);
2139 BEGIN
2140 
2141     IF p_routing_revision IS NULL OR
2142         p_routing_revision = FND_API.G_MISS_CHAR
2143     THEN
2144         RETURN TRUE;
2145     END IF;
2146 
2147     --  SELECT  'VALID'
2148     --  INTO     l_dummy
2149     --  FROM     DB_TABLE
2150     --  WHERE    DB_COLUMN = p_routing_revision;
2151 
2152     RETURN TRUE;
2153 
2154 EXCEPTION
2155 
2156     WHEN NO_DATA_FOUND THEN
2157 
2158         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2159         THEN
2160 
2161             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2162             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','routing_revision');
2163             FND_MSG_PUB.Add;
2164 
2165         END IF;
2166 
2167         RETURN FALSE;
2168 
2169     WHEN OTHERS THEN
2170 
2171         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2172         THEN
2173             FND_MSG_PUB.Add_Exc_Msg
2174             (   G_PKG_NAME
2175             ,   'Routing_Revision'
2176             );
2177         END IF;
2178 
2179         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2180 
2181 END Routing_Revision;
2182 
2183 FUNCTION Routing_Revision_Date ( p_routing_revision_date IN DATE )
2184 RETURN BOOLEAN
2185 IS
2186 l_dummy                       VARCHAR2(10);
2187 BEGIN
2188 
2189     IF p_routing_revision_date IS NULL OR
2190         p_routing_revision_date = FND_API.G_MISS_DATE
2191     THEN
2192         RETURN TRUE;
2193     END IF;
2194 
2195     --  SELECT  'VALID'
2196     --  INTO     l_dummy
2197     --  FROM     DB_TABLE
2198     --  WHERE    DB_COLUMN = p_routing_revision_date;
2199 
2200     RETURN TRUE;
2201 
2202 EXCEPTION
2203 
2204     WHEN NO_DATA_FOUND THEN
2205 
2206         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2207         THEN
2208 
2209             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2210             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','routing_revision_date');
2211             FND_MSG_PUB.Add;
2212 
2213         END IF;
2214 
2215         RETURN FALSE;
2216 
2217     WHEN OTHERS THEN
2218 
2219         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2220         THEN
2221             FND_MSG_PUB.Add_Exc_Msg
2222             (   G_PKG_NAME
2223             ,   'Routing_Revision_Date'
2224             );
2225         END IF;
2226 
2227         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2228 
2229 END Routing_Revision_Date;
2230 
2231 FUNCTION Scheduled_Completion_Date ( p_scheduled_completion_date IN DATE )
2232 RETURN BOOLEAN
2233 IS
2234 l_dummy                       VARCHAR2(10);
2235 BEGIN
2236 
2237     IF p_scheduled_completion_date IS NULL OR
2238         p_scheduled_completion_date = FND_API.G_MISS_DATE
2239     THEN
2240         RETURN TRUE;
2241     END IF;
2242 
2243     --  SELECT  'VALID'
2244     --  INTO     l_dummy
2245     --  FROM     DB_TABLE
2246     --  WHERE    DB_COLUMN = p_scheduled_completion_date;
2247 
2248     RETURN TRUE;
2249 
2250 EXCEPTION
2251 
2252     WHEN NO_DATA_FOUND THEN
2253 
2254         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2255         THEN
2256 
2257             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2258             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','scheduled_completion_date');
2259             FND_MSG_PUB.Add;
2260 
2261         END IF;
2262 
2263         RETURN FALSE;
2264 
2265     WHEN OTHERS THEN
2266 
2267         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2268         THEN
2269             FND_MSG_PUB.Add_Exc_Msg
2270             (   G_PKG_NAME
2271             ,   'Scheduled_Completion_Date'
2272             );
2273         END IF;
2274 
2275         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2276 
2277 END Scheduled_Completion_Date;
2278 
2279 FUNCTION Scheduled ( p_scheduled_flag IN NUMBER )
2280 RETURN BOOLEAN
2281 IS
2282 l_dummy                       VARCHAR2(10);
2283 BEGIN
2284 
2285     IF p_scheduled_flag IS NULL OR
2286         p_scheduled_flag = FND_API.G_MISS_NUM
2287     THEN
2288         RETURN TRUE;
2289     END IF;
2290 
2291     SELECT  'VALID'
2292     INTO     l_dummy
2293     FROM     DUAL
2294     WHERE    p_scheduled_flag in (1,2,3);
2295 
2296     RETURN TRUE;
2297 
2298 EXCEPTION
2299 
2300     WHEN NO_DATA_FOUND THEN
2301 
2302         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2303         THEN
2304 
2305             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_SCH_FLAG');
2306             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_scheduled_flag);
2307             FND_MSG_PUB.Add;
2308 
2309         END IF;
2310 
2311         RETURN FALSE;
2312 
2313     WHEN OTHERS THEN
2314 
2315         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2316         THEN
2317             FND_MSG_PUB.Add_Exc_Msg
2318             (   G_PKG_NAME
2319             ,   'Scheduled'
2320             );
2321         END IF;
2322 
2323         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2324 
2325 END Scheduled;
2326 
2327 FUNCTION Scheduled_Start_Date ( p_scheduled_start_date IN DATE )
2328 RETURN BOOLEAN
2329 IS
2330 l_dummy                       VARCHAR2(10);
2331 BEGIN
2332 
2333     IF p_scheduled_start_date IS NULL OR
2334         p_scheduled_start_date = FND_API.G_MISS_DATE
2335     THEN
2336         RETURN TRUE;
2337     END IF;
2338 
2339     --  SELECT  'VALID'
2340     --  INTO     l_dummy
2341     --  FROM     DB_TABLE
2342     --  WHERE    DB_COLUMN = p_scheduled_start_date;
2343 
2344     RETURN TRUE;
2345 
2346 EXCEPTION
2347 
2348     WHEN NO_DATA_FOUND THEN
2349 
2350         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2351         THEN
2352 
2353             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2354             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','scheduled_start_date');
2355             FND_MSG_PUB.Add;
2356 
2357         END IF;
2358 
2359         RETURN FALSE;
2360 
2361     WHEN OTHERS THEN
2362 
2363         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2364         THEN
2365             FND_MSG_PUB.Add_Exc_Msg
2366             (   G_PKG_NAME
2367             ,   'Scheduled_Start_Date'
2368             );
2369         END IF;
2370 
2371         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2372 
2373 END Scheduled_Start_Date;
2374 
2375 FUNCTION Schedule_Group ( p_schedule_group_id IN NUMBER )
2376 RETURN BOOLEAN
2377 IS
2378 l_dummy                       VARCHAR2(10);
2379 BEGIN
2380 
2381     IF p_schedule_group_id IS NULL OR
2382         p_schedule_group_id = FND_API.G_MISS_NUM
2383     THEN
2384         RETURN TRUE;
2385     END IF;
2386 
2387     --  SELECT  'VALID'
2388     --  INTO     l_dummy
2389     --  FROM     DB_TABLE
2390     --  WHERE    DB_COLUMN = p_schedule_group_id;
2391 
2392     RETURN TRUE;
2393 
2394 EXCEPTION
2395 
2396     WHEN NO_DATA_FOUND THEN
2397 
2398         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2399         THEN
2400 
2401             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2402             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','schedule_group');
2403             FND_MSG_PUB.Add;
2404 
2405         END IF;
2406 
2407         RETURN FALSE;
2408 
2409     WHEN OTHERS THEN
2410 
2411         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2412         THEN
2413             FND_MSG_PUB.Add_Exc_Msg
2414             (   G_PKG_NAME
2415             ,   'Schedule_Group'
2416             );
2417         END IF;
2418 
2419         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2420 
2421 END Schedule_Group;
2422 
2423 FUNCTION Schedule_Number ( p_schedule_number IN VARCHAR2 )
2424 RETURN BOOLEAN
2425 IS
2426 l_dummy                       VARCHAR2(10);
2427 BEGIN
2428 
2429     IF p_schedule_number IS NULL OR
2430         p_schedule_number = FND_API.G_MISS_CHAR
2431     THEN
2432         RETURN TRUE;
2433     END IF;
2434 
2435     --  SELECT  'VALID'
2436     --  INTO     l_dummy
2437     --  FROM     DB_TABLE
2438     --  WHERE    DB_COLUMN = p_schedule_number;
2439 
2440     RETURN TRUE;
2441 
2442 EXCEPTION
2443 
2444     WHEN NO_DATA_FOUND THEN
2445 
2446         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2447         THEN
2448 
2449             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2450             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','schedule_number');
2451             FND_MSG_PUB.Add;
2452 
2453         END IF;
2454 
2455         RETURN FALSE;
2456 
2457     WHEN OTHERS THEN
2458 
2459         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2460         THEN
2461             FND_MSG_PUB.Add_Exc_Msg
2462             (   G_PKG_NAME
2463             ,   'Schedule_Number'
2464             );
2465         END IF;
2466 
2467         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2468 
2469 END Schedule_Number;
2470 
2471 FUNCTION Status ( p_status IN NUMBER )
2472 RETURN BOOLEAN
2473 IS
2474 l_dummy                       VARCHAR2(10);
2475 BEGIN
2476 
2477     IF p_status IS NULL OR
2478         p_status = FND_API.G_MISS_NUM
2479     THEN
2480         RETURN TRUE;
2481     END IF;
2482 
2483     --  SELECT  'VALID'
2484     --  INTO     l_dummy
2485     --  FROM     DB_TABLE
2486     --  WHERE    DB_COLUMN = p_status;
2487 
2488     RETURN TRUE;
2489 
2490 EXCEPTION
2491 
2492     WHEN NO_DATA_FOUND THEN
2493 
2494         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2495         THEN
2496 
2497             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_STATUS');
2498             FND_MESSAGE.SET_TOKEN('ATTRIBUTE',p_status);
2499             FND_MSG_PUB.Add;
2500 
2501         END IF;
2502 
2503         RETURN FALSE;
2504 
2505     WHEN OTHERS THEN
2506 
2507         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2508         THEN
2509             FND_MSG_PUB.Add_Exc_Msg
2510             (   G_PKG_NAME
2511             ,   'Status'
2512             );
2513         END IF;
2514 
2515         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2516 
2517 END Status;
2518 
2519 FUNCTION Std_Cost_Adjustment_Acct ( p_std_cost_adjustment_acct IN NUMBER )
2520 RETURN BOOLEAN
2521 IS
2522 l_dummy                       VARCHAR2(10);
2523 BEGIN
2524 
2525     IF p_std_cost_adjustment_acct IS NULL OR
2526         p_std_cost_adjustment_acct = FND_API.G_MISS_NUM
2527     THEN
2528         RETURN TRUE;
2529     END IF;
2530 
2531     --  SELECT  'VALID'
2532     --  INTO     l_dummy
2533     --  FROM     DB_TABLE
2534     --  WHERE    DB_COLUMN = p_std_cost_adjustment_acct;
2535 
2536     RETURN TRUE;
2537 
2538 EXCEPTION
2539 
2540     WHEN NO_DATA_FOUND THEN
2541 
2542         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2543         THEN
2544 
2545             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2546             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','std_cost_adjustment_acct');
2547             FND_MSG_PUB.Add;
2548 
2549         END IF;
2550 
2551         RETURN FALSE;
2552 
2553     WHEN OTHERS THEN
2554 
2555         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2556         THEN
2557             FND_MSG_PUB.Add_Exc_Msg
2558             (   G_PKG_NAME
2559             ,   'Std_Cost_Adjustment_Acct'
2560             );
2561         END IF;
2562 
2563         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2564 
2565 END Std_Cost_Adjustment_Acct;
2566 
2567 FUNCTION Task ( p_task_id IN NUMBER )
2568 RETURN BOOLEAN
2569 IS
2570 l_dummy                       VARCHAR2(10);
2571 BEGIN
2572 
2573     IF p_task_id IS NULL OR
2574         p_task_id = FND_API.G_MISS_NUM
2575     THEN
2576         RETURN TRUE;
2577     END IF;
2578 
2579     --  SELECT  'VALID'
2580     --  INTO     l_dummy
2581     --  FROM     DB_TABLE
2582     --  WHERE    DB_COLUMN = p_task_id;
2583 
2584     RETURN TRUE;
2585 
2586 EXCEPTION
2587 
2588     WHEN NO_DATA_FOUND THEN
2589 
2590         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2591         THEN
2592 
2593             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2594             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','task');
2595             FND_MSG_PUB.Add;
2596 
2597         END IF;
2598 
2599         RETURN FALSE;
2600 
2601     WHEN OTHERS THEN
2602 
2603         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2604         THEN
2605             FND_MSG_PUB.Add_Exc_Msg
2606             (   G_PKG_NAME
2607             ,   'Task'
2608             );
2609         END IF;
2610 
2611         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2612 
2613 END Task;
2614 
2615 FUNCTION Wip_Entity ( p_wip_entity_id IN NUMBER )
2616 RETURN BOOLEAN
2617 IS
2618 l_dummy                       VARCHAR2(10);
2619 BEGIN
2620 
2621     IF p_wip_entity_id IS NULL OR
2622         p_wip_entity_id = FND_API.G_MISS_NUM
2623     THEN
2624         RETURN TRUE;
2625     END IF;
2626 
2627     -- SELECT  'VALID'
2628     -- INTO     l_dummy
2629     -- FROM     WIP_ENTITIES
2630     -- WHERE    WIP_ENTITY_ID = p_wip_entity_id;
2631 
2632     RETURN TRUE;
2633 
2634 EXCEPTION
2635 
2636     WHEN NO_DATA_FOUND THEN
2637 
2638         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2639         THEN
2640 
2641             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2642             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','wip_entity');
2643             FND_MSG_PUB.Add;
2644 
2645         END IF;
2646 
2647         RETURN FALSE;
2648 
2649     WHEN OTHERS THEN
2650 
2651         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2652         THEN
2653             FND_MSG_PUB.Add_Exc_Msg
2654             (   G_PKG_NAME
2655             ,   'Wip_Entity'
2656             );
2657         END IF;
2658 
2659         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2660 
2661 END Wip_Entity;
2662 
2663 
2664 
2665 
2666 FUNCTION End_Item_Unit_Number ( p_end_item_unit_number in VARCHAR2)
2667 RETURN BOOLEAN
2668 IS
2669 l_dummy                       VARCHAR2(10);
2670 BEGIN
2671 
2672     IF p_end_item_unit_number IS NULL OR
2673         p_end_item_unit_number = FND_API.G_MISS_CHAR
2674     THEN
2675         RETURN TRUE;
2676     END IF;
2677 
2678     SELECT  'VALID'
2679     INTO     l_dummy
2680     FROM    DUAL
2681     WHERE    EXISTS (
2682     SELECT UNIT_NUMBER FROM pjm_unit_numbers_lov_v
2683     WHERE UNIT_NUMBER = p_end_item_unit_number);
2684 
2685     RETURN TRUE;
2686 
2687 EXCEPTION
2688 
2689     WHEN NO_DATA_FOUND THEN
2690 
2691         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2692         THEN
2693 
2694             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_UNIT_NUMBER');
2695             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','end_item_unit_number');
2696             FND_MSG_PUB.Add;
2697 
2698         END IF;
2699 
2700         RETURN FALSE;
2701 
2702     WHEN OTHERS THEN
2703 
2704         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2705         THEN
2706             FND_MSG_PUB.Add_Exc_Msg
2707             (   G_PKG_NAME
2708             ,   'End_Item_Unit_Number'
2709             );
2710         END IF;
2711 
2712         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2713 
2714 END End_Item_Unit_Number;
2715 
2716 
2717 FUNCTION Quantity_Scrapped  ( p_quantity_scrapped  in NUMBER)
2718 RETURN BOOLEAN
2719 IS
2720 BEGIN
2721 
2722     IF p_quantity_scrapped IS NULL OR
2723         p_quantity_scrapped = FND_API.G_MISS_NUM
2724     THEN
2725         RETURN TRUE;
2726     END IF;
2727 
2728     RETURN TRUE;
2729 
2730 EXCEPTION
2731 
2732     WHEN NO_DATA_FOUND THEN
2733 
2734         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2735         THEN
2736 
2737             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_ATTRIBUTE');
2738             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','quantity_scrapped');
2739             FND_MSG_PUB.Add;
2740 
2741         END IF;
2742 
2743         RETURN FALSE;
2744 
2745     WHEN OTHERS THEN
2746 
2747         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2748         THEN
2749             FND_MSG_PUB.Add_Exc_Msg
2750             (   G_PKG_NAME
2751             ,   'quantity_scrapped'
2752             );
2753         END IF;
2754 
2755         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2756 
2757 END Quantity_Scrapped;
2758 
2759 FUNCTION Assignment_Set
2760 (   p_Assignment_Set_Id             IN  NUMBER
2761 )   RETURN BOOLEAN
2762 IS
2763 l_dummy                       VARCHAR2(10);
2764 BEGIN
2765 
2766     IF  (p_Assignment_Set_Id IS NULL OR
2767         p_Assignment_Set_Id = FND_API.G_MISS_NUM)
2768     THEN
2769         RETURN TRUE;
2770     END IF;
2771 
2772     RETURN TRUE;
2773 
2774 EXCEPTION
2775 
2776     WHEN NO_DATA_FOUND THEN
2777 
2778         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2779         THEN
2780 
2781             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_KEY');
2782             FND_MESSAGE.SET_TOKEN('KEY','Assignment_Set');
2783             FND_MSG_PUB.Add;
2784 
2785         END IF;
2786 
2787         RETURN FALSE;
2788 
2789     WHEN OTHERS THEN
2790 
2791         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2792         THEN
2793             FND_MSG_PUB.Add_Exc_Msg
2794             (   G_PKG_NAME
2795             ,   'Assignment_Set'
2796             );
2797         END IF;
2798 
2799         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2800 
2801 END Assignment_Set;
2802 
2803 FUNCTION Assignment
2804 (   p_Assignment_Id                 IN  NUMBER
2805 )   RETURN BOOLEAN
2806 IS
2807 l_dummy                       VARCHAR2(10);
2808 BEGIN
2809 
2810     IF  (p_Assignment_Id IS NULL OR
2811         p_Assignment_Id = FND_API.G_MISS_NUM)
2812     THEN
2813         RETURN TRUE;
2814     END IF;
2815 
2816     RETURN TRUE;
2817 
2818 EXCEPTION
2819 
2820     WHEN NO_DATA_FOUND THEN
2821 
2822         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2823         THEN
2824 
2825             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_KEY');
2826             FND_MESSAGE.SET_TOKEN('KEY','Assignment');
2827             FND_MSG_PUB.Add;
2828 
2829         END IF;
2830 
2831         RETURN FALSE;
2832 
2833     WHEN OTHERS THEN
2834 
2835         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2836         THEN
2837             FND_MSG_PUB.Add_Exc_Msg
2838             (   G_PKG_NAME
2839             ,   'Assignment'
2840             );
2841         END IF;
2842 
2843         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2844 
2845 END Assignment;
2846 
2847 FUNCTION Sourcing_Rule
2848 (   p_Sourcing_Rule_Id              IN  NUMBER
2849 )   RETURN BOOLEAN
2850 IS
2851 l_dummy                       VARCHAR2(10);
2852 BEGIN
2853 
2854     IF  (p_Sourcing_Rule_Id IS NULL OR
2855         p_Sourcing_Rule_Id = FND_API.G_MISS_NUM)
2856     THEN
2857         RETURN TRUE;
2858     END IF;
2859 
2860     RETURN TRUE;
2861 
2862 EXCEPTION
2863 
2864     WHEN NO_DATA_FOUND THEN
2865 
2866         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2867         THEN
2868 
2869             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_KEY');
2870             FND_MESSAGE.SET_TOKEN('KEY','Sourcing_Rule');
2871             FND_MSG_PUB.Add;
2872 
2873         END IF;
2874 
2875         RETURN FALSE;
2876 
2877     WHEN OTHERS THEN
2878 
2879         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2880         THEN
2881             FND_MSG_PUB.Add_Exc_Msg
2882             (   G_PKG_NAME
2883             ,   'Sourcing_Rule'
2884             );
2885         END IF;
2886 
2887         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2888 
2889 END Sourcing_Rule;
2890 
2891 FUNCTION Receiving_Org
2892 (   p_Sr_Receipt_Id                 IN  NUMBER
2893 )   RETURN BOOLEAN
2894 IS
2895 l_dummy                       VARCHAR2(10);
2896 BEGIN
2897 
2898     IF  (p_Sr_Receipt_Id IS NULL OR
2899         p_Sr_Receipt_Id = FND_API.G_MISS_NUM)
2900     THEN
2901         RETURN TRUE;
2902     END IF;
2903 
2904     RETURN TRUE;
2905 
2906 EXCEPTION
2907 
2908     WHEN NO_DATA_FOUND THEN
2909 
2910         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2911         THEN
2912 
2913             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_KEY');
2914             FND_MESSAGE.SET_TOKEN('KEY','Receiving_Org');
2915             FND_MSG_PUB.Add;
2916 
2917         END IF;
2918 
2919         RETURN FALSE;
2920 
2921     WHEN OTHERS THEN
2922 
2923         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2924         THEN
2925             FND_MSG_PUB.Add_Exc_Msg
2926             (   G_PKG_NAME
2927             ,   'Receiving_Org'
2928             );
2929         END IF;
2930 
2931         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2932 
2933 END Receiving_Org;
2934 
2935 FUNCTION Shipping_Org
2936 (   p_Sr_Source_Id                  IN  NUMBER
2937 )   RETURN BOOLEAN
2938 IS
2939 l_dummy                       VARCHAR2(10);
2940 BEGIN
2941 
2942     IF  (p_Sr_Source_Id IS NULL OR
2943         p_Sr_Source_Id = FND_API.G_MISS_NUM)
2944     THEN
2945         RETURN TRUE;
2946     END IF;
2947 
2948     RETURN TRUE;
2949 
2950 EXCEPTION
2951 
2952     WHEN NO_DATA_FOUND THEN
2953 
2954         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2955         THEN
2956 
2957             FND_MESSAGE.SET_NAME('MRP','MRP_INVALID_KEY');
2958             FND_MESSAGE.SET_TOKEN('KEY','Shipping_Org');
2959             FND_MSG_PUB.Add;
2960 
2961         END IF;
2962 
2963         RETURN FALSE;
2964 
2965     WHEN OTHERS THEN
2966 
2967         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2968         THEN
2969             FND_MSG_PUB.Add_Exc_Msg
2970             (   G_PKG_NAME
2971             ,   'Shipping_Org'
2972             );
2973         END IF;
2974 
2975         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2976 
2977 END Shipping_Org;
2978 --  END GEN validate
2979 
2980 END MRP_Validate;