DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_VALIDATE_ASSIGNMENT

Source


1 PACKAGE BODY MRP_Validate_Assignment AS
2 /* $Header: MRPLASNB.pls 120.2 2005/08/16 03:18:17 gmalhotr noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'MRP_Validate_Assignment';
7 
8 --  Procedure Entity
9 
10 PROCEDURE Entity
11 (   x_return_status                 OUT NOCOPY VARCHAR2
12 ,   p_Assignment_rec                IN  MRP_Src_Assignment_PUB.Assignment_Rec_Type
13 ,   p_old_Assignment_rec            IN  MRP_Src_Assignment_PUB.Assignment_Rec_Type :=
14                                         MRP_Src_Assignment_PUB.G_MISS_ASSIGNMENT_REC
15 )
16 IS
17 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19 
20     --  Check required attributes.
21 
22     IF  p_Assignment_rec.Assignment_Id IS NULL
23     THEN
24 
25         l_return_status := FND_API.G_RET_STS_ERROR;
26 
27         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
28         THEN
29 
30             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
31             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Assignment_Id');
32             FND_MSG_PUB.Add;
33 
34         END IF;
35 
36     END IF;
37 
38     --
39     --  Check rest of required attributes here.
40     --
41 
42 
43     --  Return Error if a required attribute is missing.
44 
45     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
46 
47         RAISE FND_API.G_EXC_ERROR;
48 
49     END IF;
50 
51     --
52     --  Check conditionally required attributes here.
53     --
54     IF p_Assignment_rec.Assignment_type = 2 AND
55 		p_Assignment_rec.Category_Id IS NULL THEN
56 	dbms_output.put_line ('Category ID required');
57         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
58         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Category_Id');
59         FND_MSG_PUB.Add;
60 	l_return_status := FND_API.G_RET_STS_ERROR;
61     END IF;
62 
63     IF p_Assignment_rec.Assignment_type = 3 AND
64 		p_Assignment_rec.Inventory_Item_Id IS NULL THEN
65 	dbms_output.put_line ('Inventory_Item_Id required');
66         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
67         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Inventory_Item_Id');
68         FND_MSG_PUB.Add;
69 	l_return_status := FND_API.G_RET_STS_ERROR;
70     END IF;
71 
72     IF (p_Assignment_rec.Assignment_type = 4 OR
73 	p_Assignment_rec.Assignment_type = 5 OR
74 	p_Assignment_rec.Assignment_type = 6) AND
75 	(p_Assignment_rec.Organization_Id IS NULL AND
76 	 p_Assignment_rec.Customer_Id IS NULL AND
77 	 p_Assignment_rec.Ship_To_Site_Id IS NULL ) THEN
78 	dbms_output.put_line ('org/cust required');
79         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
80         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Organization_Id or Customer_Id');
81         FND_MSG_PUB.Add;
82 	l_return_status := FND_API.G_RET_STS_ERROR;
83     END IF;
84 
85     IF p_Assignment_rec.Customer_Id IS NOT NULL AND
86 	p_Assignment_rec.Ship_To_Site_Id IS NULL  THEN
87 	dbms_output.put_line ('cust site required');
88         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
89         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Ship_To_Site_Id');
90         FND_MSG_PUB.Add;
91 	l_return_status := FND_API.G_RET_STS_ERROR;
92     END IF;
93 
94     --
95     --  Validate attribute dependencies here.
96     --
97 
98 
99     --  Done validating entity
100 
101     x_return_status := l_return_status;
102 
103 EXCEPTION
104 
105     WHEN FND_API.G_EXC_ERROR THEN
106 
107         x_return_status := FND_API.G_RET_STS_ERROR;
108 
109     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
110 
111         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
112 
113     WHEN OTHERS THEN
114 
115         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
116 
117         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
118         THEN
119             FND_MSG_PUB.Add_Exc_Msg
120             (   G_PKG_NAME
121             ,   'Entity'
122             );
123         END IF;
124 
125 END Entity;
126 
127 --  Procedure Entity_Delete
128 
129 PROCEDURE Entity_Delete
130 (   x_return_status                 OUT NOCOPY VARCHAR2
131 ,   p_Assignment_rec                IN  MRP_Src_Assignment_PUB.Assignment_Rec_Type
132 )
133 IS
134 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
135 BEGIN
136 
137     --  Validate entity delete.
138 
139     NULL;
140 
141     --  Done.
142 
143     x_return_status := l_return_status;
144 
145 EXCEPTION
146 
147     WHEN FND_API.G_EXC_ERROR THEN
148 
149         x_return_status := FND_API.G_RET_STS_ERROR;
150 
151     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
152 
153         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
154 
155     WHEN OTHERS THEN
156 
157         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
158 
159         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
160         THEN
161             FND_MSG_PUB.Add_Exc_Msg
162             (   G_PKG_NAME
163             ,   'Entity_Delete'
164             );
165         END IF;
166 
167 END Entity_Delete;
168 
169 --  Procedure Attributes
170 
171 PROCEDURE Attributes
172 (   x_return_status                 OUT NOCOPY VARCHAR2
173 ,   p_Assignment_rec                IN  MRP_Src_Assignment_PUB.Assignment_Rec_Type
174 ,   p_old_Assignment_rec            IN  MRP_Src_Assignment_PUB.Assignment_Rec_Type :=
175                                         MRP_Src_Assignment_PUB.G_MISS_ASSIGNMENT_REC
176 )
177 IS
178 BEGIN
179 
180     x_return_status := FND_API.G_RET_STS_SUCCESS;
181 
182     --  Validate Assignment attributes
183 
184     IF (p_Assignment_rec.Assignment_Id IS NOT NULL AND
185         (   p_Assignment_rec.Assignment_Id <>
186             p_old_Assignment_rec.Assignment_Id OR
187             p_old_Assignment_rec.Assignment_Id IS NULL ))
188     THEN
189         IF NOT  MRP_Validate.Assignment
190             (   p_Assignment_rec.Assignment_Id
191             )
192         THEN
193             x_return_status := FND_API.G_RET_STS_ERROR;
194         END IF;
195     END IF;
196 
197     IF  p_Assignment_rec.Assignment_Set_Id IS NOT NULL AND
198         (   p_Assignment_rec.Assignment_Set_Id <>
199             p_old_Assignment_rec.Assignment_Set_Id OR
200             p_old_Assignment_rec.Assignment_Set_Id IS NULL )
201     THEN
202         IF NOT Val_Assignment_Set_Id(p_Assignment_rec.Assignment_Set_Id) THEN
203             x_return_status := FND_API.G_RET_STS_ERROR;
204         END IF;
205     END IF;
206 
207     IF  p_Assignment_rec.Assignment_Type IS NOT NULL AND
208         (   p_Assignment_rec.Assignment_Type <>
209             p_old_Assignment_rec.Assignment_Type OR
210             p_old_Assignment_rec.Assignment_Type IS NULL )
211     THEN
212         IF NOT Val_Assignment_Type(p_Assignment_rec.Assignment_Type) THEN
213             x_return_status := FND_API.G_RET_STS_ERROR;
214         END IF;
215     END IF;
216 
217     IF  p_Assignment_rec.Attribute1 IS NOT NULL AND
218         (   p_Assignment_rec.Attribute1 <>
219             p_old_Assignment_rec.Attribute1 OR
220             p_old_Assignment_rec.Attribute1 IS NULL )
221     THEN
222         IF NOT Val_Attribute1(p_Assignment_rec.Attribute1) THEN
223             x_return_status := FND_API.G_RET_STS_ERROR;
224         END IF;
225     END IF;
226 
227     IF  p_Assignment_rec.Attribute10 IS NOT NULL AND
228         (   p_Assignment_rec.Attribute10 <>
229             p_old_Assignment_rec.Attribute10 OR
230             p_old_Assignment_rec.Attribute10 IS NULL )
231     THEN
232         IF NOT Val_Attribute10(p_Assignment_rec.Attribute10) THEN
233             x_return_status := FND_API.G_RET_STS_ERROR;
234         END IF;
235     END IF;
236 
237     IF  p_Assignment_rec.Attribute11 IS NOT NULL AND
238         (   p_Assignment_rec.Attribute11 <>
239             p_old_Assignment_rec.Attribute11 OR
240             p_old_Assignment_rec.Attribute11 IS NULL )
241     THEN
242         IF NOT Val_Attribute11(p_Assignment_rec.Attribute11) THEN
243             x_return_status := FND_API.G_RET_STS_ERROR;
244         END IF;
245     END IF;
246 
247     IF  p_Assignment_rec.Attribute12 IS NOT NULL AND
248         (   p_Assignment_rec.Attribute12 <>
249             p_old_Assignment_rec.Attribute12 OR
250             p_old_Assignment_rec.Attribute12 IS NULL )
251     THEN
252         IF NOT Val_Attribute12(p_Assignment_rec.Attribute12) THEN
253             x_return_status := FND_API.G_RET_STS_ERROR;
254         END IF;
255     END IF;
256 
257     IF  p_Assignment_rec.Attribute13 IS NOT NULL AND
258         (   p_Assignment_rec.Attribute13 <>
259             p_old_Assignment_rec.Attribute13 OR
260             p_old_Assignment_rec.Attribute13 IS NULL )
261     THEN
262         IF NOT Val_Attribute13(p_Assignment_rec.Attribute13) THEN
263             x_return_status := FND_API.G_RET_STS_ERROR;
264         END IF;
265     END IF;
266 
267     IF  p_Assignment_rec.Attribute14 IS NOT NULL AND
268         (   p_Assignment_rec.Attribute14 <>
269             p_old_Assignment_rec.Attribute14 OR
270             p_old_Assignment_rec.Attribute14 IS NULL )
271     THEN
272         IF NOT Val_Attribute14(p_Assignment_rec.Attribute14) THEN
273             x_return_status := FND_API.G_RET_STS_ERROR;
274         END IF;
275     END IF;
276 
277     IF  p_Assignment_rec.Attribute15 IS NOT NULL AND
278         (   p_Assignment_rec.Attribute15 <>
279             p_old_Assignment_rec.Attribute15 OR
280             p_old_Assignment_rec.Attribute15 IS NULL )
281     THEN
282         IF NOT Val_Attribute15(p_Assignment_rec.Attribute15) THEN
283             x_return_status := FND_API.G_RET_STS_ERROR;
284         END IF;
285     END IF;
286 
287     IF  p_Assignment_rec.Attribute2 IS NOT NULL AND
288         (   p_Assignment_rec.Attribute2 <>
289             p_old_Assignment_rec.Attribute2 OR
290             p_old_Assignment_rec.Attribute2 IS NULL )
291     THEN
292         IF NOT Val_Attribute2(p_Assignment_rec.Attribute2) THEN
293             x_return_status := FND_API.G_RET_STS_ERROR;
294         END IF;
295     END IF;
296 
297     IF  p_Assignment_rec.Attribute3 IS NOT NULL AND
298         (   p_Assignment_rec.Attribute3 <>
299             p_old_Assignment_rec.Attribute3 OR
300             p_old_Assignment_rec.Attribute3 IS NULL )
301     THEN
302         IF NOT Val_Attribute3(p_Assignment_rec.Attribute3) THEN
303             x_return_status := FND_API.G_RET_STS_ERROR;
304         END IF;
305     END IF;
306 
307     IF  p_Assignment_rec.Attribute4 IS NOT NULL AND
308         (   p_Assignment_rec.Attribute4 <>
309             p_old_Assignment_rec.Attribute4 OR
310             p_old_Assignment_rec.Attribute4 IS NULL )
311     THEN
312         IF NOT Val_Attribute4(p_Assignment_rec.Attribute4) THEN
313             x_return_status := FND_API.G_RET_STS_ERROR;
314         END IF;
315     END IF;
316 
317     IF  p_Assignment_rec.Attribute5 IS NOT NULL AND
318         (   p_Assignment_rec.Attribute5 <>
319             p_old_Assignment_rec.Attribute5 OR
320             p_old_Assignment_rec.Attribute5 IS NULL )
321     THEN
322         IF NOT Val_Attribute5(p_Assignment_rec.Attribute5) THEN
323             x_return_status := FND_API.G_RET_STS_ERROR;
324         END IF;
325     END IF;
326 
327     IF  p_Assignment_rec.Attribute6 IS NOT NULL AND
328         (   p_Assignment_rec.Attribute6 <>
329             p_old_Assignment_rec.Attribute6 OR
330             p_old_Assignment_rec.Attribute6 IS NULL )
331     THEN
332         IF NOT Val_Attribute6(p_Assignment_rec.Attribute6) THEN
333             x_return_status := FND_API.G_RET_STS_ERROR;
334         END IF;
335     END IF;
336 
337     IF  p_Assignment_rec.Attribute7 IS NOT NULL AND
338         (   p_Assignment_rec.Attribute7 <>
339             p_old_Assignment_rec.Attribute7 OR
340             p_old_Assignment_rec.Attribute7 IS NULL )
341     THEN
342         IF NOT Val_Attribute7(p_Assignment_rec.Attribute7) THEN
343             x_return_status := FND_API.G_RET_STS_ERROR;
344         END IF;
345     END IF;
346 
347     IF  p_Assignment_rec.Attribute8 IS NOT NULL AND
348         (   p_Assignment_rec.Attribute8 <>
349             p_old_Assignment_rec.Attribute8 OR
350             p_old_Assignment_rec.Attribute8 IS NULL )
351     THEN
352         IF NOT Val_Attribute8(p_Assignment_rec.Attribute8) THEN
353             x_return_status := FND_API.G_RET_STS_ERROR;
354         END IF;
355     END IF;
356 
357     IF  p_Assignment_rec.Attribute9 IS NOT NULL AND
358         (   p_Assignment_rec.Attribute9 <>
359             p_old_Assignment_rec.Attribute9 OR
360             p_old_Assignment_rec.Attribute9 IS NULL )
361     THEN
362         IF NOT Val_Attribute9(p_Assignment_rec.Attribute9) THEN
363             x_return_status := FND_API.G_RET_STS_ERROR;
364         END IF;
365     END IF;
366 
367     IF  p_Assignment_rec.Attribute_Category IS NOT NULL AND
368         (   p_Assignment_rec.Attribute_Category <>
369             p_old_Assignment_rec.Attribute_Category OR
370             p_old_Assignment_rec.Attribute_Category IS NULL )
371     THEN
372         IF NOT Val_Attribute_Category(p_Assignment_rec.Attribute_Category) THEN
373             x_return_status := FND_API.G_RET_STS_ERROR;
374         END IF;
375     END IF;
376 
377     IF  p_Assignment_rec.Category_Id IS NOT NULL AND
378         (   p_Assignment_rec.Category_Id <>
379             p_old_Assignment_rec.Category_Id OR
380             p_old_Assignment_rec.Category_Id IS NULL )
381     THEN
382         IF NOT Val_Category_Id(p_Assignment_rec.Category_Set_Id,
383 			       p_Assignment_rec.Category_Id) THEN
384             x_return_status := FND_API.G_RET_STS_ERROR;
385         END IF;
386     END IF;
387 
388     IF  p_Assignment_rec.Category_Set_Id IS NOT NULL AND
389         (   p_Assignment_rec.Category_Set_Id <>
390             p_old_Assignment_rec.Category_Set_Id OR
391             p_old_Assignment_rec.Category_Set_Id IS NULL )
392     THEN
393         IF NOT Val_Category_Set_Id(p_Assignment_rec.Category_Set_Id) THEN
394             x_return_status := FND_API.G_RET_STS_ERROR;
395         END IF;
396     END IF;
397 
398     IF  p_Assignment_rec.Created_By IS NOT NULL AND
399         (   p_Assignment_rec.Created_By <>
400             p_old_Assignment_rec.Created_By OR
401             p_old_Assignment_rec.Created_By IS NULL )
402     THEN
403         IF NOT Val_Created_By(p_Assignment_rec.Created_By) THEN
404             x_return_status := FND_API.G_RET_STS_ERROR;
405         END IF;
406     END IF;
407 
408     IF  p_Assignment_rec.Creation_Date IS NOT NULL AND
409         (   p_Assignment_rec.Creation_Date <>
410             p_old_Assignment_rec.Creation_Date OR
411             p_old_Assignment_rec.Creation_Date IS NULL )
412     THEN
413         IF NOT Val_Creation_Date(p_Assignment_rec.Creation_Date) THEN
414             x_return_status := FND_API.G_RET_STS_ERROR;
415         END IF;
416     END IF;
417 
418     IF  p_Assignment_rec.Customer_Id IS NOT NULL AND
419         (   p_Assignment_rec.Customer_Id <>
420             p_old_Assignment_rec.Customer_Id OR
421             p_old_Assignment_rec.Customer_Id IS NULL )
422     THEN
423         IF NOT Val_Customer_Id(p_Assignment_rec.Customer_Id) THEN
424             x_return_status := FND_API.G_RET_STS_ERROR;
425         END IF;
426     END IF;
427 
428     IF  p_Assignment_rec.Inventory_Item_Id IS NOT NULL AND
429         (   p_Assignment_rec.Inventory_Item_Id <>
430             p_old_Assignment_rec.Inventory_Item_Id OR
431             p_old_Assignment_rec.Inventory_Item_Id IS NULL )
432     THEN
433         IF NOT Val_Inventory_Item_Id(p_Assignment_rec.Organization_Id,
434 				     p_Assignment_rec.Inventory_Item_Id) THEN
435             x_return_status := FND_API.G_RET_STS_ERROR;
436         END IF;
437     END IF;
438 
439     IF  p_Assignment_rec.Last_Updated_By IS NOT NULL AND
440         (   p_Assignment_rec.Last_Updated_By <>
441             p_old_Assignment_rec.Last_Updated_By OR
442             p_old_Assignment_rec.Last_Updated_By IS NULL )
443     THEN
444         IF NOT Val_Last_Updated_By(p_Assignment_rec.Last_Updated_By) THEN
445             x_return_status := FND_API.G_RET_STS_ERROR;
446         END IF;
447     END IF;
448 
449     IF  p_Assignment_rec.Last_Update_Date IS NOT NULL AND
450         (   p_Assignment_rec.Last_Update_Date <>
451             p_old_Assignment_rec.Last_Update_Date OR
452             p_old_Assignment_rec.Last_Update_Date IS NULL )
453     THEN
454         IF NOT Val_Last_Update_Date(p_Assignment_rec.Last_Update_Date) THEN
455             x_return_status := FND_API.G_RET_STS_ERROR;
456         END IF;
457     END IF;
458 
459     IF  p_Assignment_rec.Last_Update_Login IS NOT NULL AND
460         (   p_Assignment_rec.Last_Update_Login <>
461             p_old_Assignment_rec.Last_Update_Login OR
462             p_old_Assignment_rec.Last_Update_Login IS NULL )
463     THEN
464         IF NOT Val_Last_Update_Login(p_Assignment_rec.Last_Update_Login) THEN
465             x_return_status := FND_API.G_RET_STS_ERROR;
466         END IF;
467     END IF;
468 
469     IF  p_Assignment_rec.Organization_Id IS NOT NULL AND
470         (   p_Assignment_rec.Organization_Id <>
471             p_old_Assignment_rec.Organization_Id OR
472             p_old_Assignment_rec.Organization_Id IS NULL )
473     THEN
474         IF NOT Val_Organization_Id(p_Assignment_rec.Organization_Id) THEN
475             x_return_status := FND_API.G_RET_STS_ERROR;
476         END IF;
477     END IF;
478 
479     IF  p_Assignment_rec.Program_Application_Id IS NOT NULL AND
480         (   p_Assignment_rec.Program_Application_Id <>
481             p_old_Assignment_rec.Program_Application_Id OR
482             p_old_Assignment_rec.Program_Application_Id IS NULL )
483     THEN
484         IF NOT Val_Program_Application_Id(p_Assignment_rec.Program_Application_Id) THEN
485             x_return_status := FND_API.G_RET_STS_ERROR;
486         END IF;
487     END IF;
488 
489     IF  p_Assignment_rec.Program_Id IS NOT NULL AND
490         (   p_Assignment_rec.Program_Id <>
491             p_old_Assignment_rec.Program_Id OR
492             p_old_Assignment_rec.Program_Id IS NULL )
493     THEN
494         IF NOT Val_Program_Id(p_Assignment_rec.Program_Id) THEN
495             x_return_status := FND_API.G_RET_STS_ERROR;
496         END IF;
497     END IF;
498 
499     IF  p_Assignment_rec.Program_Update_Date IS NOT NULL AND
500         (   p_Assignment_rec.Program_Update_Date <>
501             p_old_Assignment_rec.Program_Update_Date OR
502             p_old_Assignment_rec.Program_Update_Date IS NULL )
503     THEN
504         IF NOT Val_Program_Update_Date(p_Assignment_rec.Program_Update_Date) THEN
505             x_return_status := FND_API.G_RET_STS_ERROR;
506         END IF;
507     END IF;
508 
509     IF  p_Assignment_rec.Request_Id IS NOT NULL AND
510         (   p_Assignment_rec.Request_Id <>
511             p_old_Assignment_rec.Request_Id OR
512             p_old_Assignment_rec.Request_Id IS NULL )
513     THEN
514         IF NOT Val_Request_Id(p_Assignment_rec.Request_Id) THEN
515             x_return_status := FND_API.G_RET_STS_ERROR;
516         END IF;
517     END IF;
518 
519     IF  p_Assignment_rec.Secondary_Inventory IS NOT NULL AND
520         (   p_Assignment_rec.Secondary_Inventory <>
521             p_old_Assignment_rec.Secondary_Inventory OR
522             p_old_Assignment_rec.Secondary_Inventory IS NULL )
523     THEN
524         IF NOT Val_Secondary_Inventory(p_Assignment_rec.Secondary_Inventory) THEN
525             x_return_status := FND_API.G_RET_STS_ERROR;
526         END IF;
527     END IF;
528 
529     IF  p_Assignment_rec.Ship_To_Site_Id IS NOT NULL AND
530         (   p_Assignment_rec.Ship_To_Site_Id <>
531             p_old_Assignment_rec.Ship_To_Site_Id OR
532             p_old_Assignment_rec.Ship_To_Site_Id IS NULL )
533     THEN
534         IF NOT Val_Ship_To_Site_Id( p_Assignment_rec.Customer_id,
535 				    p_Assignment_rec.Ship_To_Site_Id) THEN
536             x_return_status := FND_API.G_RET_STS_ERROR;
537         END IF;
538     END IF;
539 
540     IF  p_Assignment_rec.Sourcing_Rule_Id IS NOT NULL AND
541         (   p_Assignment_rec.Sourcing_Rule_Id <>
542             p_old_Assignment_rec.Sourcing_Rule_Id OR
543             p_old_Assignment_rec.Sourcing_Rule_Id IS NULL )
544     THEN
545         IF NOT Val_Sourcing_Rule_Id( p_Assignment_rec.Sourcing_Rule_Id,
546 				     p_Assignment_rec.Sourcing_Rule_Type) THEN
547             x_return_status := FND_API.G_RET_STS_ERROR;
548         END IF;
549     END IF;
550 
551     IF  p_Assignment_rec.Sourcing_Rule_Type IS NOT NULL AND
552         (   p_Assignment_rec.Sourcing_Rule_Type <>
553             p_old_Assignment_rec.Sourcing_Rule_Type OR
554             p_old_Assignment_rec.Sourcing_Rule_Type IS NULL )
555     THEN
556         IF NOT Val_Sourcing_Rule_Type(p_Assignment_rec.Sourcing_Rule_Type) THEN
557             x_return_status := FND_API.G_RET_STS_ERROR;
558         END IF;
559     END IF;
560 
561     --  Done validating attributes
562 
563 EXCEPTION
564 
565     WHEN FND_API.G_EXC_ERROR THEN
566 
567         x_return_status := FND_API.G_RET_STS_ERROR;
568 
569     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
570 
571         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
572 
573     WHEN OTHERS THEN
574 
575         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
576 
577         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
578         THEN
579             FND_MSG_PUB.Add_Exc_Msg
580             (   G_PKG_NAME
581             ,   'Attributes'
582             );
583         END IF;
584 
585 END Attributes;
586 
587 --  Entity attribute validation functions.
588 
589 
590 --  Function Val_Assignment_Set_Id
591 
592 FUNCTION Val_Assignment_Set_Id
593 (   p_Assignment_Set_Id             IN  NUMBER
594 )   RETURN BOOLEAN
595 IS
596 
597 l_count         number;
598 
599 BEGIN
600 
601     IF p_Assignment_Set_Id IS NULL OR
602        p_Assignment_Set_Id = FND_API.G_MISS_NUM
603     THEN
604 	dbms_output.put_line ('Val_Assignment_Set_Id Error');
605         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
606         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Assignment_Set_Id');
607         FND_MSG_PUB.Add;
608         RETURN FALSE;
609     ELSE
610         SELECT count(*)
611         INTO   l_count
612         FROM   MRP_ASSIGNMENT_SETS
613         WHERE  assignment_set_id = p_Assignment_Set_Id;
614 
615         IF l_count = 0 THEN
616             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
617             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Assignment_Set_Id');
618             FND_MSG_PUB.Add;
619             RETURN FALSE;
620         END IF;
621     END IF;
622 
623     RETURN TRUE;
624 
625 END Val_Assignment_Set_Id;
626 
627 --  Function Val_Assignment_Type
628 
629 FUNCTION Val_Assignment_Type
630 (   p_Assignment_Type               IN  NUMBER
631 )   RETURN BOOLEAN
632 IS
633 BEGIN
634 
635     IF p_Assignment_Type IS NULL OR
636        p_Assignment_Type = FND_API.G_MISS_NUM
637     THEN
638 	dbms_output.put_line ('Val_Assignment_Type error');
639         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
640         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Assignment_Type');
641         FND_MSG_PUB.Add;
642         RETURN FALSE;
643     ELSIF (p_Assignment_Type <> 1) AND
644 	  (p_Assignment_Type <> 2) AND
645 	  (p_Assignment_Type <> 3) AND
646 	  (p_Assignment_Type <> 4) AND
647 	  (p_Assignment_Type <> 5) AND
648 	  (p_Assignment_Type <> 6) THEN
649 
650         dbms_output.put_line ('Val_Assignment_Type error');
651         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
652         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Assignment_Type');
653         FND_MSG_PUB.Add;
654         RETURN FALSE;
655     END IF;
656 
657     RETURN TRUE;
658 
659 END Val_Assignment_Type;
660 
661 --  Function Val_Attribute1
662 
663 FUNCTION Val_Attribute1
664 (   p_Attribute1                    IN  VARCHAR2
665 )   RETURN BOOLEAN
666 IS
667 BEGIN
668 
669     IF p_Attribute1 IS NULL OR
670        p_Attribute1 = FND_API.G_MISS_CHAR
671     THEN
672         RETURN TRUE;
673     END IF;
674 
675     RETURN TRUE;
676 
677 END Val_Attribute1;
678 
679 --  Function Val_Attribute10
680 
681 FUNCTION Val_Attribute10
682 (   p_Attribute10                   IN  VARCHAR2
683 )   RETURN BOOLEAN
684 IS
685 BEGIN
686 
687     IF p_Attribute10 IS NULL OR
688        p_Attribute10 = FND_API.G_MISS_CHAR
689     THEN
690         RETURN TRUE;
691     END IF;
692 
693     RETURN TRUE;
694 
695 END Val_Attribute10;
696 
697 --  Function Val_Attribute11
698 
699 FUNCTION Val_Attribute11
700 (   p_Attribute11                   IN  VARCHAR2
701 )   RETURN BOOLEAN
702 IS
703 BEGIN
704 
705     IF p_Attribute11 IS NULL OR
706        p_Attribute11 = FND_API.G_MISS_CHAR
707     THEN
708         RETURN TRUE;
709     END IF;
710 
711     RETURN TRUE;
712 
713 END Val_Attribute11;
714 
715 --  Function Val_Attribute12
716 
717 FUNCTION Val_Attribute12
718 (   p_Attribute12                   IN  VARCHAR2
719 )   RETURN BOOLEAN
720 IS
721 BEGIN
722 
723     IF p_Attribute12 IS NULL OR
724        p_Attribute12 = FND_API.G_MISS_CHAR
725     THEN
726         RETURN TRUE;
727     END IF;
728 
729     RETURN TRUE;
730 
731 END Val_Attribute12;
732 
733 --  Function Val_Attribute13
734 
735 FUNCTION Val_Attribute13
736 (   p_Attribute13                   IN  VARCHAR2
737 )   RETURN BOOLEAN
738 IS
739 BEGIN
740 
741     IF p_Attribute13 IS NULL OR
742        p_Attribute13 = FND_API.G_MISS_CHAR
743     THEN
744         RETURN TRUE;
745     END IF;
746 
747     RETURN TRUE;
748 
749 END Val_Attribute13;
750 
751 --  Function Val_Attribute14
752 
753 FUNCTION Val_Attribute14
754 (   p_Attribute14                   IN  VARCHAR2
755 )   RETURN BOOLEAN
756 IS
757 BEGIN
758 
759     IF p_Attribute14 IS NULL OR
760        p_Attribute14 = FND_API.G_MISS_CHAR
761     THEN
762         RETURN TRUE;
763     END IF;
764 
765     RETURN TRUE;
766 
767 END Val_Attribute14;
768 
769 --  Function Val_Attribute15
770 
771 FUNCTION Val_Attribute15
772 (   p_Attribute15                   IN  VARCHAR2
773 )   RETURN BOOLEAN
774 IS
775 BEGIN
776 
777     IF p_Attribute15 IS NULL OR
778        p_Attribute15 = FND_API.G_MISS_CHAR
779     THEN
780         RETURN TRUE;
781     END IF;
782 
783     RETURN TRUE;
784 
785 END Val_Attribute15;
786 
787 --  Function Val_Attribute2
788 
789 FUNCTION Val_Attribute2
790 (   p_Attribute2                    IN  VARCHAR2
791 )   RETURN BOOLEAN
792 IS
793 BEGIN
794 
795     IF p_Attribute2 IS NULL OR
796        p_Attribute2 = FND_API.G_MISS_CHAR
797     THEN
798         RETURN TRUE;
799     END IF;
800 
801     RETURN TRUE;
802 
803 END Val_Attribute2;
804 
805 --  Function Val_Attribute3
806 
807 FUNCTION Val_Attribute3
808 (   p_Attribute3                    IN  VARCHAR2
809 )   RETURN BOOLEAN
810 IS
811 BEGIN
812 
813     IF p_Attribute3 IS NULL OR
814        p_Attribute3 = FND_API.G_MISS_CHAR
815     THEN
816         RETURN TRUE;
817     END IF;
818 
819     RETURN TRUE;
820 
821 END Val_Attribute3;
822 
823 --  Function Val_Attribute4
824 
825 FUNCTION Val_Attribute4
826 (   p_Attribute4                    IN  VARCHAR2
827 )   RETURN BOOLEAN
828 IS
829 BEGIN
830 
831     IF p_Attribute4 IS NULL OR
832        p_Attribute4 = FND_API.G_MISS_CHAR
833     THEN
834         RETURN TRUE;
835     END IF;
836 
837     RETURN TRUE;
838 
839 END Val_Attribute4;
840 
841 --  Function Val_Attribute5
842 
843 FUNCTION Val_Attribute5
844 (   p_Attribute5                    IN  VARCHAR2
845 )   RETURN BOOLEAN
846 IS
847 BEGIN
848 
849     IF p_Attribute5 IS NULL OR
850        p_Attribute5 = FND_API.G_MISS_CHAR
851     THEN
852         RETURN TRUE;
853     END IF;
854 
855     RETURN TRUE;
856 
857 END Val_Attribute5;
858 
859 --  Function Val_Attribute6
860 
861 FUNCTION Val_Attribute6
862 (   p_Attribute6                    IN  VARCHAR2
863 )   RETURN BOOLEAN
864 IS
865 BEGIN
866 
867     IF p_Attribute6 IS NULL OR
868        p_Attribute6 = FND_API.G_MISS_CHAR
869     THEN
870         RETURN TRUE;
871     END IF;
872 
873     RETURN TRUE;
874 
875 END Val_Attribute6;
876 
877 --  Function Val_Attribute7
878 
879 FUNCTION Val_Attribute7
880 (   p_Attribute7                    IN  VARCHAR2
881 )   RETURN BOOLEAN
882 IS
883 BEGIN
884 
885     IF p_Attribute7 IS NULL OR
886        p_Attribute7 = FND_API.G_MISS_CHAR
887     THEN
888         RETURN TRUE;
889     END IF;
890 
891     RETURN TRUE;
892 
893 END Val_Attribute7;
894 
895 --  Function Val_Attribute8
896 
897 FUNCTION Val_Attribute8
898 (   p_Attribute8                    IN  VARCHAR2
899 )   RETURN BOOLEAN
900 IS
901 BEGIN
902 
903     IF p_Attribute8 IS NULL OR
904        p_Attribute8 = FND_API.G_MISS_CHAR
905     THEN
906         RETURN TRUE;
907     END IF;
908 
909     RETURN TRUE;
910 
911 END Val_Attribute8;
912 
913 --  Function Val_Attribute9
914 
915 FUNCTION Val_Attribute9
916 (   p_Attribute9                    IN  VARCHAR2
917 )   RETURN BOOLEAN
918 IS
919 BEGIN
920 
921     IF p_Attribute9 IS NULL OR
922        p_Attribute9 = FND_API.G_MISS_CHAR
923     THEN
924         RETURN TRUE;
925     END IF;
926 
927     RETURN TRUE;
928 
929 END Val_Attribute9;
930 
931 --  Function Val_Attribute_Category
932 
933 FUNCTION Val_Attribute_Category
934 (   p_Attribute_Category            IN  VARCHAR2
935 )   RETURN BOOLEAN
936 IS
937 BEGIN
938 
939     IF p_Attribute_Category IS NULL OR
940        p_Attribute_Category = FND_API.G_MISS_CHAR
941     THEN
942         RETURN TRUE;
943     END IF;
944 
945     RETURN TRUE;
946 
947 END Val_Attribute_Category;
948 
949 --  Function Val_Category_Id
950 
951 FUNCTION Val_Category_Id
952 (   p_Category_Set_Id               IN  NUMBER
953 ,   p_Category_Id                   IN  NUMBER
954 )   RETURN BOOLEAN
955 IS
956 l_count		NUMBER;
957 BEGIN
958 
959     IF p_Category_Id IS NULL OR
960        p_Category_Id = FND_API.G_MISS_NUM
961     THEN
962         RETURN TRUE;
963     ELSE
964 	SELECT count(*)
965 	INTO   l_count
966 	FROM   mtl_categories mc,
967 	       mtl_category_sets mcs
968 	WHERE  mcs.category_set_id = p_Category_Set_Id
969 	AND    mc.structure_id = mcs.structure_id
970 	AND    mc.category_id = p_Category_Id;
971 
972         IF l_count = 0 THEN
973 	    dbms_output.put_line ('Val_Category_Id Error');
974             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
975             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Category_Id');
976             FND_MSG_PUB.Add;
977             RETURN FALSE;
978         END IF;
979     END IF;
980 
981     RETURN TRUE;
982 
983 END Val_Category_Id;
984 
985 --  Function Val_Category_Set_Id
986 
987 FUNCTION Val_Category_Set_Id
988 (   p_Category_Set_Id               IN  NUMBER
989 )   RETURN BOOLEAN
990 IS
991 
992 l_count		NUMBER;
993 
994 BEGIN
995 
996     IF p_Category_Set_Id IS NULL OR
997        p_Category_Set_Id = FND_API.G_MISS_NUM
998     THEN
999         RETURN TRUE;
1000     ELSE
1001         SELECT count(*)
1002         INTO   l_count
1003         FROM   MTL_CATEGORY_SETS
1004         WHERE  category_set_id = p_Category_Set_Id;
1005 
1006         IF l_count = 0 THEN
1007 	    dbms_output.put_line ('Val_Category_Set_Id Error');
1008             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1009             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Category_Set_Id');
1010             FND_MSG_PUB.Add;
1011             RETURN FALSE;
1012         END IF;
1013     END IF;
1014 
1015     RETURN TRUE;
1016 
1017 END Val_Category_Set_Id;
1018 
1019 --  Function Val_Created_By
1020 
1021 FUNCTION Val_Created_By
1022 (   p_Created_By                    IN  NUMBER
1023 )   RETURN BOOLEAN
1024 IS
1025 BEGIN
1026 
1027     IF p_Created_By IS NULL OR
1028        p_Created_By = FND_API.G_MISS_NUM
1029     THEN
1030         RETURN TRUE;
1031     END IF;
1032 
1033     RETURN TRUE;
1034 
1035 END Val_Created_By;
1036 
1037 --  Function Val_Creation_Date
1038 
1039 FUNCTION Val_Creation_Date
1040 (   p_Creation_Date                 IN  DATE
1041 )   RETURN BOOLEAN
1042 IS
1043 BEGIN
1044 
1045     IF p_Creation_Date IS NULL OR
1046        p_Creation_Date = FND_API.G_MISS_DATE
1047     THEN
1048         RETURN TRUE;
1049     END IF;
1050 
1051     RETURN TRUE;
1052 
1053 END Val_Creation_Date;
1054 
1055 --  Function Val_Customer_Id
1056 
1057 FUNCTION Val_Customer_Id
1058 (   p_Customer_Id                   IN  NUMBER
1059 )   RETURN BOOLEAN
1060 IS
1061 
1062 l_count		NUMBER;
1063 
1064 BEGIN
1065 
1066     IF p_Customer_Id IS NULL OR
1067        p_Customer_Id = FND_API.G_MISS_NUM
1068     THEN
1069         RETURN TRUE;
1070     ELSE
1071         SELECT count(*)
1072         INTO   l_count
1073         FROM   HZ_CUST_ACCOUNTS
1074         WHERE  cust_account_id = p_Customer_Id
1075 	AND    status = 'A';
1076 
1077         IF l_count = 0 THEN
1078 	    dbms_output.put_line ('Val_Customer_Id Error');
1079             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1080             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Customer_Id');
1081             FND_MSG_PUB.Add;
1082             RETURN FALSE;
1083         END IF;
1084     END IF;
1085 
1086     RETURN TRUE;
1087 
1088 END Val_Customer_Id;
1089 
1090 --  Function Val_Inventory_Item_Id
1091 
1092 FUNCTION Val_Inventory_Item_Id
1093 (   p_organization_id               IN  NUMBER
1094 ,   p_Inventory_Item_Id             IN  NUMBER
1095 )   RETURN BOOLEAN
1096 IS
1097 
1098 l_count		NUMBER;
1099 
1100 BEGIN
1101 
1102     IF p_Inventory_Item_Id IS NULL OR
1103        p_Inventory_Item_Id = FND_API.G_MISS_NUM
1104     THEN
1105         RETURN TRUE;
1106     ELSE
1107         SELECT count(*)
1108         INTO   l_count
1109         FROM   mtl_system_items
1110         WHERE  organization_id = decode(p_organization_id,
1111 					NULL, organization_id,
1112 					FND_API.G_MISS_NUM, organization_id,
1113 					p_organization_id)
1114 	AND    inventory_item_id = p_Inventory_Item_Id;
1115 
1116         IF l_count = 0 THEN
1117             dbms_output.put_line ('Val_Inventory_Item_Id Error');
1118             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1119             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Inventory_Item_Id');
1120             FND_MSG_PUB.Add;
1121             RETURN FALSE;
1122         END IF;
1123     END IF;
1124 
1125     RETURN TRUE;
1126 
1127 END Val_Inventory_Item_Id;
1128 
1129 --  Function Val_Last_Updated_By
1130 
1131 FUNCTION Val_Last_Updated_By
1132 (   p_Last_Updated_By               IN  NUMBER
1133 )   RETURN BOOLEAN
1134 IS
1135 BEGIN
1136 
1137     IF p_Last_Updated_By IS NULL OR
1138        p_Last_Updated_By = FND_API.G_MISS_NUM
1139     THEN
1140         RETURN TRUE;
1141     END IF;
1142 
1143     RETURN TRUE;
1144 
1145 END Val_Last_Updated_By;
1146 
1147 --  Function Val_Last_Update_Date
1148 
1149 FUNCTION Val_Last_Update_Date
1150 (   p_Last_Update_Date              IN  DATE
1151 )   RETURN BOOLEAN
1152 IS
1153 BEGIN
1154 
1155     IF p_Last_Update_Date IS NULL OR
1156        p_Last_Update_Date = FND_API.G_MISS_DATE
1157     THEN
1158         RETURN TRUE;
1159     END IF;
1160 
1161     RETURN TRUE;
1162 
1163 END Val_Last_Update_Date;
1164 
1165 --  Function Val_Last_Update_Login
1166 
1167 FUNCTION Val_Last_Update_Login
1168 (   p_Last_Update_Login             IN  NUMBER
1169 )   RETURN BOOLEAN
1170 IS
1171 BEGIN
1172 
1173     IF p_Last_Update_Login IS NULL OR
1174        p_Last_Update_Login = FND_API.G_MISS_NUM
1175     THEN
1176         RETURN TRUE;
1177     END IF;
1178 
1179     RETURN TRUE;
1180 
1181 END Val_Last_Update_Login;
1182 
1183 --  Function Val_Organization_Id
1184 
1185 FUNCTION Val_Organization_Id
1186 (   p_Organization_Id               IN  NUMBER
1187 )   RETURN BOOLEAN
1188 IS
1189 BEGIN
1190 
1191     IF p_Organization_Id IS NULL OR
1192        p_Organization_Id = FND_API.G_MISS_NUM
1193     THEN
1194         RETURN TRUE;
1195     END IF;
1196 
1197     RETURN TRUE;
1198 
1199 END Val_Organization_Id;
1200 
1201 --  Function Val_Program_Application_Id
1202 
1203 FUNCTION Val_Program_Application_Id
1204 (   p_Program_Application_Id        IN  NUMBER
1205 )   RETURN BOOLEAN
1206 IS
1207 BEGIN
1208 
1209     IF p_Program_Application_Id IS NULL OR
1210        p_Program_Application_Id = FND_API.G_MISS_NUM
1211     THEN
1212         RETURN TRUE;
1213     END IF;
1214 
1215     RETURN TRUE;
1216 
1217 END Val_Program_Application_Id;
1218 
1219 --  Function Val_Program_Id
1220 
1221 FUNCTION Val_Program_Id
1222 (   p_Program_Id                    IN  NUMBER
1223 )   RETURN BOOLEAN
1224 IS
1225 BEGIN
1226 
1227     IF p_Program_Id IS NULL OR
1228        p_Program_Id = FND_API.G_MISS_NUM
1229     THEN
1230         RETURN TRUE;
1231     END IF;
1232 
1233     RETURN TRUE;
1234 
1235 END Val_Program_Id;
1236 
1237 --  Function Val_Program_Update_Date
1238 
1239 FUNCTION Val_Program_Update_Date
1240 (   p_Program_Update_Date           IN  DATE
1241 )   RETURN BOOLEAN
1242 IS
1243 BEGIN
1244 
1245     IF p_Program_Update_Date IS NULL OR
1246        p_Program_Update_Date = FND_API.G_MISS_DATE
1247     THEN
1248         RETURN TRUE;
1249     END IF;
1250 
1251     RETURN TRUE;
1252 
1253 END Val_Program_Update_Date;
1254 
1255 --  Function Val_Request_Id
1256 
1257 FUNCTION Val_Request_Id
1258 (   p_Request_Id                    IN  NUMBER
1259 )   RETURN BOOLEAN
1260 IS
1261 BEGIN
1262 
1263     IF p_Request_Id IS NULL OR
1264        p_Request_Id = FND_API.G_MISS_NUM
1265     THEN
1266         RETURN TRUE;
1267     END IF;
1268 
1269     RETURN TRUE;
1270 
1271 END Val_Request_Id;
1272 
1273 --  Function Val_Secondary_Inventory
1274 
1275 FUNCTION Val_Secondary_Inventory
1276 (   p_Secondary_Inventory           IN  VARCHAR2
1277 )   RETURN BOOLEAN
1278 IS
1279 BEGIN
1280 
1281     IF p_Secondary_Inventory IS NULL OR
1282        p_Secondary_Inventory = FND_API.G_MISS_CHAR
1283     THEN
1284         RETURN TRUE;
1285     END IF;
1286 
1287     RETURN TRUE;
1288 
1289 END Val_Secondary_Inventory;
1290 
1291 --  Function Val_Ship_To_Site_Id
1292 
1293 FUNCTION Val_Ship_To_Site_Id
1294 (   p_Customer_id                   IN  NUMBER
1295 ,   p_Ship_To_Site_Id               IN  NUMBER
1296 )   RETURN BOOLEAN
1297 IS
1298 l_count		NUMBER;
1299 BEGIN
1300 
1301     IF p_Ship_To_Site_Id IS NULL OR
1302        p_Ship_To_Site_Id = FND_API.G_MISS_NUM
1303     THEN
1304         RETURN TRUE;
1305     ELSE
1306         SELECT count(*)
1307         INTO   l_count
1308         FROM   HZ_CUST_SITE_USES_ALL RSU,
1309 	       HZ_CUST_ACCT_SITES_ALL   RA
1310         WHERE  RA.CUST_ACCOUNT_ID = p_Customer_id
1311 	AND    RA.CUST_ACCT_SITE_ID = RSU.CUST_ACCT_SITE_ID
1312 	AND    RSU.site_use_id = p_Ship_To_Site_Id
1313 	AND    RSU.site_use_code in ('SHIP_TO','BILL_TO');
1314 
1315         IF l_count = 0 THEN
1316 	    dbms_output.put_line('Val_Ship_To_Site_Id Error');
1317             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1318             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Ship_To_Site_Id');
1319             FND_MSG_PUB.Add;
1320             RETURN FALSE;
1321         END IF;
1322     END IF;
1323 
1324     RETURN TRUE;
1325 
1326 END Val_Ship_To_Site_Id;
1327 
1328 
1329 --  Function Val_Sourcing_Rule_Id
1330 
1331 FUNCTION Val_Sourcing_Rule_Id
1332 (   p_Sourcing_Rule_Id              IN  NUMBER
1333 ,   p_Sourcing_Rule_Type            IN  NUMBER
1334 )   RETURN BOOLEAN
1335 IS
1336 l_count 	NUMBER;
1337 BEGIN
1338 
1339     IF p_Sourcing_Rule_Id IS NULL OR
1340        p_Sourcing_Rule_Id = FND_API.G_MISS_NUM
1341     THEN
1342 	dbms_output.put_line ('Error Val_Sourcing_Rule_Id');
1343         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_REQUIRED');
1344         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Sourcing_Rule_Id');
1345         FND_MSG_PUB.Add;
1346         RETURN FALSE;
1347     ELSE
1348         SELECT count(*)
1349         INTO   l_count
1350         FROM   MRP_SOURCING_RULES
1351         WHERE  sourcing_rule_id = p_Sourcing_Rule_Id
1352 	AND    sourcing_rule_type = p_Sourcing_Rule_Type;
1353 
1354         IF l_count = 0 THEN
1355 	    dbms_output.put_line ('Error Val_Sourcing_Rule_Id');
1356             FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1357             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Sourcing_Rule_Id');
1358             FND_MSG_PUB.Add;
1359             RETURN FALSE;
1360         END IF;
1361     END IF;
1362 
1363     RETURN TRUE;
1364 
1365 END Val_Sourcing_Rule_Id;
1366 
1367 --  Function Val_Sourcing_Rule_Type
1368 
1369 FUNCTION Val_Sourcing_Rule_Type
1370 (   p_Sourcing_Rule_Type            IN  NUMBER
1371 )   RETURN BOOLEAN
1372 IS
1373 BEGIN
1374 
1375     IF p_Sourcing_Rule_Type IS NULL OR
1376        p_Sourcing_Rule_Type = FND_API.G_MISS_NUM
1377     THEN
1378         RETURN TRUE;
1379     ELSIF (p_Sourcing_Rule_Type <> 1 AND p_Sourcing_Rule_Type <> 2) THEN
1380 	dbms_output.put_line ('Val_Sourcing_Rule_Type Error');
1381         FND_MESSAGE.SET_NAME('MRP','MRP_ATTRIBUTE_VALUE_ERROR');
1382         FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Sourcing_Rule_Type');
1383         FND_MSG_PUB.Add;
1384 	RETURN FALSE;
1385     END IF;
1386 
1387     RETURN TRUE;
1388 
1389 END Val_Sourcing_Rule_Type;
1390 
1391 END MRP_Validate_Assignment;