DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_DEFAULT_ASSIGNMENT

Source


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