DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_DEFAULT_TROLIN

Source


1 PACKAGE BODY INV_Default_Trolin AS
2 /* $Header: INVDTRLB.pls 120.7.12020000.2 2012/07/09 08:05:39 asugandh ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'INV_Default_Trolin';
7 
8 --  Package global used within the package.
9 
10 g_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
11 g_max_line_num_header_id      number := null;
12 
13 --  Get functions.
14 
15 FUNCTION Get_Date_Required
16 RETURN DATE
17 IS
18 l_trohdr_rec      INV_Move_Order_PUB.Trohdr_Rec_Type;
19 BEGIN
20     RETURN NULL;
21 
22 END Get_Date_Required;
23 
24 FUNCTION Get_From_Locator
25 RETURN NUMBER
26 IS
27 BEGIN
28 
29     RETURN NULL;
30 
31 END Get_From_Locator;
32 
33 
34 FUNCTION Get_From_Subinventory_Id
35 RETURN VARCHAR2
36 IS
37 BEGIN
38 
39     RETURN NULL;
40 
41 END Get_From_Subinventory_Id;
42 
43 
44 FUNCTION Get_From_Subinventory
45 RETURN VARCHAR2
46 IS
47 l_trohdr_rec      INV_Move_Order_PUB.Trohdr_Rec_Type;
48 BEGIN
49     RETURN NULL;
50 
51 END Get_From_Subinventory;
52 
53 /*
54 FUNCTION Get_Header
55 RETURN NUMBER
56 IS
57 BEGIN
58 -- -------------------------------------------------------
59    RETURN INV_Validate.g_TRO_GlobalAttributes.header_id;
60 END Get_Header;
61   */
62 
63 FUNCTION Get_Inventory_Item
64 RETURN NUMBER
65 IS
66 BEGIN
67 
68     RETURN NULL;
69 
70 END Get_Inventory_Item;
71 
72 FUNCTION Get_Line
73 RETURN NUMBER
74 IS
75 l_line_id number := null;
76 BEGIN
77 
78         SELECT  MTL_TXN_REQUEST_LINES_S.NEXTVAL
79         INTO    l_line_id
80         FROM    DUAL;
81 
82 	/* inv_debug.message(to_char(l_line_id)); */
83 
84     RETURN l_line_id;
85 
86 END Get_Line;
87 
88 
89 FUNCTION Get_Line_Number
90 RETURN NUMBER
91 IS
92   l_trohdr_rec      INV_Move_Order_PUB.Trohdr_Rec_Type;
93   --Bug #4347016
94   --Initialized Max Line Number to the global variable
95 /*Fixed for bug#7126566
96   Initialization of variable l_max_line_num is done in body.
97 */
98   l_max_line_num    number;
99 BEGIN
100 
101 /*Fixed for bug#7126566
102    Initialization of variable l_max_line_num is made conditional.
103    This is done to ensure that line number is incremented properly.
104   The process to increment line number is this:
105   When called by FORM
106    Form will increate the line number (global variable -INV_Globals.g_max_line_num)
107    by calling the inv_trnasfer_order_pvt.increment_max_line_number.
108    This ensure that when user goes from one line to another it does not
109    increase line number unnecessarily.
110 
111   When called by API
112    Function Get_Line_Number will increase the line number and would generate
113    unique line number.
114 */
115   if G_CALLED_BY_FORM = 'Y'  then
116      l_max_line_num := 0;
117    --This will ensure that variable is reset for next call . Form set this to Y before calling.
118    --
119    G_CALLED_BY_FORM := 'N';
120 
121   else
122      l_max_line_num    := NVL(INV_Globals.g_max_line_num, 0);
123   end if;
124 
125 
126 /*     inv_debug.message('In Get Line Num for header id:'||to_char(g_trolin_rec.header_id)); */
127 /*    inv_debug.message('Prev header id:'||to_char(g_max_line_num_header_id)); */
128     IF g_trolin_rec.header_id IS NOT NULL AND
129         g_trolin_rec.header_id <> FND_API.G_MISS_NUM
130     THEN
131 /*
132         l_trohdr_rec :=
133         INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
134 */
135 
136 
137         If INV_Globals.g_max_line_num is null
138         or g_max_line_num_header_id <> g_trolin_rec.header_id
139         Then
140 
141 		SELECT nvl(max(line_number), 0)
142 		INTO   l_max_line_num
143 		FROM   mtl_txn_request_lines_v
144 		WHERE  header_id = g_trolin_rec.header_id;
145 
146 
147 		g_max_line_num_header_id := g_trolin_rec.header_id;
148                 INV_Globals.g_max_line_num := l_max_line_num + 1;
149 
150         End If;
151 
152        IF (l_max_line_num >= nvl(INV_Globals.g_max_line_num,0)) THEN
153 
154            INV_Globals.g_max_line_num := 1 + l_max_line_num;
155 
156        END IF;
157 
158 /*       inv_debug.message('D:'||to_char(INV_GLOBALS.g_max_line_num)); */
159        return INV_Globals.g_max_line_num;
160    end if;
161 /*   inv_debug.message('Returning null'); */
162    return null;
163 END Get_Line_Number;
164 
165 FUNCTION Get_Line_Status
166 RETURN NUMBER
167 IS
168 BEGIN
169  IF INV_globals.G_CALL_MODE = 'FORM'
170  THEN
171     RETURN 1;  /* Incomplete Status */
172  ELSE
173     RETURN 7;  /* PRE-APPROVED */
174  END IF;
175 END Get_Line_Status;
176 
177 FUNCTION Get_Lot_Number
178 RETURN VARCHAR2
179 IS
180 BEGIN
181 
182     RETURN NULL;
183 
184 END Get_Lot_Number;
185 
186 FUNCTION Get_Organization
187 RETURN NUMBER
188 IS
189 BEGIN
190 
191     RETURN Inv_globals.g_org_id;
192 
193 END Get_Organization;
194 
195 FUNCTION Get_Project
196 RETURN NUMBER
197 IS
198 BEGIN
199 
200     RETURN NULL;
201 
202 END Get_Project;
203 
204 FUNCTION Get_Quantity
205 RETURN NUMBER
206 IS
207 BEGIN
208 
209     RETURN NULL;
210 
211 END Get_Quantity;
212 
213 FUNCTION Get_Quantity_Delivered
214 RETURN NUMBER
215 IS
216 BEGIN
217 
218     RETURN NULL;
219 
220 END Get_Quantity_Delivered;
221 
222 FUNCTION Get_Quantity_Detailed
223 RETURN NUMBER
224 IS
225 BEGIN
226 
227     RETURN NULL;
228 
229 END Get_Quantity_Detailed;
230 
231 FUNCTION Get_Reason
232 RETURN NUMBER
233 IS
234 BEGIN
235 
236     RETURN NULL;
237 
238 END Get_Reason;
239 
240 --FUNCTION Get_Reference
241 --RETURN VARCHAR2
242 --IS
243 --BEGIN
244 --
245 --    RETURN NULL;
246 --
247 --END Get_Reference;
248 
249 FUNCTION Get_Reference
250 RETURN NUMBER
251 IS
252 BEGIN
253 
254     RETURN NULL;
255 
256 END Get_Reference;
257 
258 FUNCTION Get_Reference_Type
259 RETURN NUMBER
260 IS
261 BEGIN
262 
263     RETURN NULL;
264 
265 END Get_Reference_Type;
266 
267 FUNCTION Get_Revision
268 RETURN VARCHAR2
269 IS
270 BEGIN
271 
272     RETURN NULL;
273 
274 END Get_Revision;
275 
276 FUNCTION Get_Serial_Number_End
277 RETURN VARCHAR2
278 IS
279 BEGIN
280 
281     RETURN NULL;
282 
283 END Get_Serial_Number_End;
284 
285 FUNCTION Get_Serial_Number_Start
286 RETURN VARCHAR2
287 IS
288 BEGIN
289  RETURN NULL;
290 
291 END Get_Serial_Number_Start;
292 
293 FUNCTION Get_Status_Date
294  RETURN DATE
295  IS
296  BEGIN
297     RETURN Sysdate;
298 
299 END Get_Status_Date;
300 
301 FUNCTION Get_Task
302 RETURN NUMBER
303 IS
304 BEGIN
305 
306     RETURN NULL;
307 
308 END Get_Task;
309 
310 FUNCTION Get_To_Account
311 RETURN NUMBER
312 IS
313 l_trohdr_rec      INV_Move_Order_PUB.Trohdr_Rec_Type;
314 BEGIN
315 /*
316     IF g_trolin_rec.header_id IS NOT NULL AND
317         g_trolin_rec.header_id <> FND_API.G_MISS_NUM
318     THEN
319         l_trohdr_rec :=
320         INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
321 
322         IF l_trohdr_rec.to_account_id IS NOT NULL THEN
323             RETURN l_trohdr_rec.to_account_id;
324         END IF;
325 
326     END IF;
327 */
328     RETURN NULL;
329 
330 END Get_To_Account;
331 
332 FUNCTION Get_To_Locator
333 RETURN NUMBER
334 IS
335 BEGIN
336 
337     RETURN NULL;
338 
339 END Get_To_Locator;
340 
341 FUNCTION Get_To_Subinventory_Id
342 RETURN NUMBER
343 IS
344 BEGIN
345 
346     RETURN NULL;
347 
348 END Get_To_Subinventory_Id;
349 
350 FUNCTION Get_To_Subinventory
351 RETURN VARCHAR2
352 IS
353 l_trohdr_rec      INV_Move_Order_PUB.Trohdr_Rec_Type;
354 BEGIN
355 /*
356     IF g_trolin_rec.header_id IS NOT NULL AND
357         g_trolin_rec.header_id <> FND_API.G_MISS_NUM
358     THEN
359         l_trohdr_rec :=
360         INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
361 
362         IF l_trohdr_rec.to_subinventory_code IS NOT NULL THEN
363             RETURN l_trohdr_rec.to_subinventory_code;
364         END IF;
365 
366     END IF;
367 */
368 
369     RETURN NULL;
370 
371 END Get_To_Subinventory;
372 
373 FUNCTION Get_Transaction_Header
374 RETURN NUMBER
375 IS
376 BEGIN
377 
378     RETURN NULL;
379 
380 END Get_Transaction_Header;
381 
382 FUNCTION Get_Uom
383 RETURN VARCHAR2
384 IS
385 BEGIN
386 
387     RETURN NULL;
388 
389 END Get_Uom;
390 
391 FUNCTION Get_Transaction_Type_Id
392 RETURN NUMBER
393 IS
394 BEGIN
395 	RETURN 64; /* Subinventory Transfer */
396 END Get_Transaction_Type_Id;
397 
398 FUNCTION Get_To_Organization_Id
399 RETURN NUMBER
400 IS
401 BEGIN
402     Return Inv_globals.g_org_id;
403 END Get_To_Organization_Id;
404 
405 
406 FUNCTION Get_Primary_Quantity
407 RETURN NUMBER
408 IS
409 BEGIN
410     Return NULL;
411 END Get_Primary_Quantity;
412 
413 FUNCTION Get_Txn_Source_Id
414 RETURN NUMBER
415 IS
416 BEGIN
417     Return NULL;
418 END Get_Txn_Source_Id;
419 
420 FUNCTION Get_Txn_Source_Line_Id
421 RETURN NUMBER
422 IS
423 BEGIN
424     Return NULL;
425 END Get_Txn_Source_Line_Id;
426 
427 FUNCTION Get_Txn_Source_Line_Detail_Id
428 RETURN NUMBER
429 IS
430 BEGIN
431     Return NULL;
432 END Get_Txn_Source_Line_Detail_Id;
433 
434 FUNCTION Get_Transaction_Source_Type_ID(p_transaction_type_id in NUMBER)
435 RETURN NUMBER
436 IS
437    l_transaction_source_type_id NUMBER;
438 BEGIN
439     select transaction_source_type_id
440     into l_transaction_source_type_id
441     from mtl_transaction_types
442     where transaction_type_id = p_transaction_type_id;
443 
444     Return l_transaction_source_type_id;
445 END Get_Transaction_Source_Type_ID;
446 
447 FUNCTION Get_Pick_Strategy_ID
448 RETURN NUMBER
449 IS
450 BEGIN
451     Return NULL;
452 END Get_Pick_Strategy_ID;
453 
454 FUNCTION Get_Put_Away_Strategy_ID
455 RETURN NUMBER
456 IS
457 BEGIN
458     Return NULL;
459 END Get_Put_Away_Strategy_ID;
460 
461 FUNCTION Get_Unit_Number
462 RETURN Varchar2
463 IS
464 BEGIN
465     Return NULL;
466 END Get_Unit_Number;
467 
468 PROCEDURE Get_Flex_Trolin
469   IS
470 BEGIN
471 
472    --  In the future call Flex APIs for defaults
473 
474    IF g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR THEN
475       g_trolin_rec.attribute1        := NULL;
476    END IF;
477 
478    IF g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR THEN
479         g_trolin_rec.attribute10       := NULL;
480    END IF;
481 
482    IF g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR THEN
483       g_trolin_rec.attribute11       := NULL;
484    END IF;
485 
486    IF g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR THEN
487       g_trolin_rec.attribute12       := NULL;
488    END IF;
489 
490     IF g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR THEN
491         g_trolin_rec.attribute13       := NULL;
492     END IF;
493 
494     IF g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR THEN
495         g_trolin_rec.attribute14       := NULL;
496     END IF;
497 
498     IF g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR THEN
499         g_trolin_rec.attribute15       := NULL;
500     END IF;
501 
502     IF g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR THEN
503         g_trolin_rec.attribute2        := NULL;
504     END IF;
505 
506     IF g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR THEN
507         g_trolin_rec.attribute3        := NULL;
508     END IF;
509 
510     IF g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR THEN
511         g_trolin_rec.attribute4        := NULL;
512     END IF;
513 
514     IF g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR THEN
515         g_trolin_rec.attribute5        := NULL;
516     END IF;
517 
518     IF g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR THEN
519         g_trolin_rec.attribute6        := NULL;
520     END IF;
521 
522     IF g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR THEN
523         g_trolin_rec.attribute7        := NULL;
524     END IF;
525 
526     IF g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR THEN
527         g_trolin_rec.attribute8        := NULL;
528     END IF;
529 
530     IF g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR THEN
531         g_trolin_rec.attribute9        := NULL;
532     END IF;
533 
534     IF g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR THEN
535         g_trolin_rec.attribute_category := NULL;
536     END IF;
537 
538 END Get_Flex_Trolin;
539 --INVCONV Added for Convergence
540 FUNCTION Get_Sec_Quantity
541 RETURN NUMBER
542 IS
543 BEGIN
544 
545     RETURN NULL;
546 
547 END Get_Sec_Quantity;
548 
549 FUNCTION Get_Sec_Quantity_Delivered
550 RETURN NUMBER
551 IS
552 BEGIN
553 
554     RETURN NULL;
555 
556 END Get_Sec_Quantity_Delivered;
557 
558 FUNCTION Get_Sec_Quantity_Detailed
559 RETURN NUMBER
560 IS
561 BEGIN
562 
563     RETURN NULL;
564 
565 END Get_Sec_Quantity_Detailed;
566 
567 FUNCTION Get_Secondary_Uom
568 RETURN VARCHAR2
569 IS
570 BEGIN
571 
572     RETURN NULL;
573 
574 END Get_Secondary_Uom;
575 
576 FUNCTION Get_Grade_Code
577 RETURN VARCHAR2
578 IS
579 BEGIN
580 
581     RETURN NULL;
582 
583 END Get_Grade_Code;
584 
585 
586 PROCEDURE convert_quantity
587 (   x_return_status OUT NOCOPY VARCHAR2,
588     p_trolin_rec IN OUT NOCOPY inv_move_order_pub.trolin_rec_type) IS
589     l_return_status              VARCHAR2(1):= fnd_api.g_ret_sts_success;
590     l_primary_uom_code           VARCHAR2(3);
591     l_tmp_secondary_quantity     NUMBER     := NULL; -- INVCONV
592     l_tmp_quantity               NUMBER     := NULL;
593     l_tracking_quantity_ind      MTL_SYSTEM_ITEMS.tracking_quantity_ind%TYPE;   --INVCONV
594     l_secondary_default_ind      MTL_SYSTEM_ITEMS.secondary_default_ind%TYPE;   --INVCONV
595   BEGIN
596     l_return_status := 'S';
597     -- INVCONV - Retrieve secondary uom
598     IF p_trolin_rec.uom_code IS NULL or p_trolin_rec.secondary_uom IS NULL THEN
599        SELECT primary_uom_code, secondary_uom_code,tracking_quantity_ind, secondary_default_ind
600          INTO l_primary_uom_code, --made when testing 13591755 p_trolin_rec.uom_code,
601               p_trolin_rec.secondary_uom,
602               l_tracking_quantity_ind,
603               l_secondary_default_ind
604          FROM mtl_system_items
605         WHERE inventory_item_id = p_trolin_rec.inventory_item_id
606           AND organization_id = p_trolin_rec.organization_id;
607     END IF;
608 
609     --made when testing 13591755
610     IF p_trolin_rec.uom_code IS NULL THEN
611       p_trolin_rec.uom_code :=  l_primary_uom_code;
612     END IF;
613 
614    /* it's possible that Secondary UOM is defined for the item but the item is tracked only in Primary */
615     IF(l_tracking_quantity_ind <> 'PS')  THEN --INVCONV
616       p_trolin_rec.secondary_uom := NULL;
617     END IF;
618 
619     -- INVCONV BEGIN
620          -- If dual control and secondary quantity is missing, calculate it
621          IF p_trolin_rec.secondary_uom IS NOT NULL AND
622            nvl(p_trolin_rec.secondary_quantity,0) = 0 AND ( l_secondary_default_ind in('F','D') ) THEN
623            l_tmp_secondary_quantity  := inv_convert.inv_um_convert(
624                                          item_id                      => p_trolin_rec.inventory_item_id
625                                        , lot_number                => p_trolin_rec.lot_number
626                                        , organization_id          => p_trolin_rec.organization_id
627                                        , PRECISION              => NULL -- use default precision
628                                        , from_quantity            => p_trolin_rec.quantity
629                                       , from_unit                   => p_trolin_rec.uom_code
630                                       , to_unit                       => p_trolin_rec.secondary_uom
631                                       , from_name                 => NULL -- from uom name
632                                        , to_name                   => NULL -- to uom name
633                                        );
634 
635           IF l_tmp_secondary_quantity = -99999 THEN
636                -- conversion failed
637                fnd_message.set_name('INV', 'CAN-NOT-CONVERT-TO-SECOND-UOM'); -- INVCONV NEW MESSAGE
638                fnd_msg_pub.ADD;
639                l_return_status  := fnd_api.g_ret_sts_error;
640             RAISE fnd_api.g_exc_error;
641            END IF;
642            p_trolin_rec.secondary_quantity  := l_tmp_secondary_quantity; -- INVCONV
643          END IF;
644 
645          -- INVCONV END
646     x_return_status  := l_return_status;
647   --
648   EXCEPTION
649     WHEN fnd_api.g_exc_error THEN
650       x_return_status  := fnd_api.g_ret_sts_error;
651     --
652     WHEN fnd_api.g_exc_unexpected_error THEN
653       x_return_status  := fnd_api.g_ret_sts_unexp_error;
654     --
655     WHEN OTHERS THEN
656       x_return_status  := fnd_api.g_ret_sts_unexp_error;
657 
658       --
659 /*      IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
660         fnd_msg_pub.add_exc_msg(g_pkg_name, 'Convert_Quantity');
661       END IF; */
662   END convert_quantity;
663 
664 
665 --INVCONV Added for Convergence
666 
667 --  Procedure Attributes
668 
669 PROCEDURE Attributes
670 (   p_trolin_rec                    IN  INV_Move_Order_PUB.Trolin_Rec_Type :=
671                                         INV_Move_Order_PUB.G_MISS_TROLIN_REC
672 ,   p_iteration                     IN  NUMBER := 1
673 ,   x_trolin_rec                    OUT NOCOPY INV_Move_Order_PUB.Trolin_Rec_Type
674 )
675   IS
676      l_org      inv_validate.org;
677      l_item     inv_validate.item;
678      l_fsub     inv_validate.sub;
679      l_tsub     inv_validate.sub;
680      l_floc     inv_validate.locator;
681      l_tloc     inv_validate.locator;
682      l_lot      inv_validate.lot;
683      l_serial   inv_validate.serial;
684      l_trans    inv_validate.transaction;
685      l_acct_txn NUMBER;
686 
687      l_mov_order_type                   NUMBER;
688      l_return_status                    VARCHAR2(1) := fnd_api.g_ret_sts_success;
689 
690 BEGIN
691     --  Check number of iterations.
692 
693    IF p_iteration > INV_GLOBALS.G_MAX_DEF_ITERATIONS THEN
694 
695       IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
696         THEN
697 
698 	 FND_MESSAGE.SET_NAME('INV','OE_DEF_MAX_ITERATION');
699 	 FND_MSG_PUB.Add;
700 
701       END IF;
702 
703       RAISE FND_API.G_EXC_ERROR;
704 
705    END IF;
706 
707     --  Initialize g_trolin_rec
708 
709     g_trolin_rec := p_trolin_rec;
710 
711     --  Default missing attributes.
712 
713     -- Changes for bug 6441724
714     IF (g_trolin_rec.operation = inv_globals.g_opr_create)
715      AND (g_trolin_rec.project_id = FND_API.G_MISS_NUM )
716      AND (g_trolin_rec.to_locator_id IS NOT NULL)
717      AND (g_trolin_rec.to_locator_id <> FND_API.G_MISS_NUM)
718       THEN
719 	select project_id,task_id
720 	into g_trolin_rec.project_id,g_trolin_rec.task_id
721 	from mtl_item_locations
722 	where inventory_location_id = g_trolin_rec.to_locator_id;
723 	IF g_trolin_rec.project_id IS NULL THEN
724     		g_trolin_rec.project_id := FND_API.G_MISS_NUM;
725    		g_trolin_rec.task_id := FND_API.G_MISS_NUM;
726    	END IF;
727     END IF;
728 
729 
730     IF g_trolin_rec.organization_id = FND_API.G_MISS_NUM THEN
731 
732         g_trolin_rec.organization_id := Get_Organization;
733 
734         IF g_trolin_rec.organization_id IS NOT NULL THEN
735 
736 	   l_org.organization_id := g_trolin_rec.organization_id;
737             IF INV_Validate.Organization(l_org) = inv_validate.T
738             THEN
739                 INV_Trolin_Util.Clear_Dependent_Attr
740                 (   p_attr_id                     => INV_Trolin_Util.G_ORGANIZATION
741                 ,   p_trolin_rec                  => g_trolin_rec
742                 ,   x_trolin_rec                  => g_trolin_rec
743                 );
744             ELSE
745                 g_trolin_rec.organization_id := NULL;
746             END IF;
747 
748         END IF;
749 
750     END IF;
751 
752     IF g_trolin_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
753 
754         g_trolin_rec.inventory_item_id := Get_Inventory_Item;
755 
756         IF g_trolin_rec.inventory_item_id IS NOT NULL THEN
757 
758 	   l_item.inventory_item_id := g_trolin_rec.inventory_item_id;
759             IF INV_Validate.Inventory_Item(l_item, l_org)
760 	     = inv_validate.T
761             THEN
762                 INV_Trolin_Util.Clear_Dependent_Attr
763                 (   p_attr_id                     => INV_Trolin_Util.G_INVENTORY_ITEM
764                 ,   p_trolin_rec                  => g_trolin_rec
765                 ,   x_trolin_rec                  => g_trolin_rec
766                 );
767             ELSE
768                 g_trolin_rec.inventory_item_id := NULL;
769             END IF;
770 
771         END IF;
772 
773     END IF;
774 
775     IF g_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM THEN
776        g_trolin_rec.transaction_type_id := Get_Transaction_Type_Id;
777     END IF;
778     IF g_trolin_rec.transaction_type_id IS NOT NULL THEN
779        l_trans.transaction_type_id := g_trolin_rec.transaction_type_id;
780        IF INV_Validate.Transaction_Type(l_trans) = inv_validate.T
781        THEN
782          INV_Trolin_Util.Clear_Dependent_Attr
783 	 (   p_attr_id               => INV_Trolin_Util.G_TRANSACTION_TYPE_ID
784 	  ,   p_trolin_rec           => g_trolin_rec
785 	  ,   x_trolin_rec           => g_trolin_rec
786 	  );
787        ELSE
788          g_trolin_rec.transaction_type_id := NULL;
789        END IF;
790        INV_Validate_Trolin.g_transaction_l := l_trans;
791     END IF;
792 
793     IF l_trans.transaction_action_id = 1 THEN
794        l_acct_txn := 1;
795     ELSE
796        l_acct_txn := 0;
797     END IF;
798 
799     IF g_trolin_rec.date_required = FND_API.G_MISS_DATE THEN
800 
801         g_trolin_rec.date_required := Get_Date_Required;
802 
803         IF g_trolin_rec.date_required IS NOT NULL THEN
804 
805             IF INV_Validate_Trohdr.Date_Required(g_trolin_rec.date_required) = INV_Validate_Trohdr.T
806             THEN
807                 INV_Trolin_Util.Clear_Dependent_Attr
808                 (   p_attr_id                     => INV_Trolin_Util.G_DATE_REQUIRED
809                 ,   p_trolin_rec                  => g_trolin_rec
810                 ,   x_trolin_rec                  => g_trolin_rec
811                 );
812             ELSE
813                 g_trolin_rec.date_required := NULL;
814             END IF;
815 
816         END IF;
817 
818     END IF;
819 
820 
821     IF g_trolin_rec.from_subinventory_code = FND_API.G_MISS_CHAR THEN
822 
823         g_trolin_rec.from_subinventory_code := Get_From_Subinventory;
824 
825         IF g_trolin_rec.from_subinventory_code IS NOT NULL THEN
826 	   l_fsub.secondary_inventory_name := g_trolin_rec.from_subinventory_code;
827             IF
828 	      INV_Validate.From_Subinventory(l_fsub,l_org,l_item,l_acct_txn) = inv_validate.T
829             THEN
830                 INV_Trolin_Util.Clear_Dependent_Attr
831                 (   p_attr_id                     => INV_Trolin_Util.G_FROM_SUBINVENTORY
832                 ,   p_trolin_rec                  => g_trolin_rec
833                 ,   x_trolin_rec                  => g_trolin_rec
834                 );
835 
836             ELSE
837                 g_trolin_rec.from_subinventory_code := NULL;
838             END IF;
839 
840         END IF;
841 
842     END IF;
843 
844 
845     IF g_trolin_rec.from_subinventory_id = FND_API.G_MISS_NUM THEN
846 
847         g_trolin_rec.from_subinventory_id := Get_From_Subinventory_Id;
848 
849         IF g_trolin_rec.from_subinventory_id IS NOT NULL THEN
850 	   l_fsub.secondary_inventory_name := g_trolin_rec.from_subinventory_code;
851 	   IF
852 	     INV_Validate.From_Subinventory(l_fsub,l_org,l_item,l_acct_txn) = inv_validate.T
853 
854             THEN
855                 INV_Trolin_Util.Clear_Dependent_Attr
856                 (   p_attr_id                     => INV_Trolin_Util.G_FROM_SUBINVENTORY
857                 ,   p_trolin_rec                  => g_trolin_rec
858                 ,   x_trolin_rec                  => g_trolin_rec
859                 );
860             ELSE
861                 g_trolin_rec.from_subinventory_id := NULL;
862             END IF;
863 
864         END IF;
865 
866     END IF;
867 
868 
869     IF g_trolin_rec.from_locator_id = FND_API.G_MISS_NUM THEN
870 
871         g_trolin_rec.from_locator_id := Get_From_Locator;
872 
873         IF g_trolin_rec.from_locator_id IS NOT NULL THEN
874 
875 	   l_floc.inventory_location_id := g_trolin_rec.from_locator_id;
876             IF INV_Validate.From_Locator(l_floc,l_org,l_item,l_fsub,g_trolin_rec.project_id,g_trolin_rec.task_id,l_trans.transaction_action_id) =
877 	      inv_validate.T
878             THEN
879                 INV_Trolin_Util.Clear_Dependent_Attr
880                 (   p_attr_id                     => INV_Trolin_Util.G_FROM_LOCATOR
881                 ,   p_trolin_rec                  => g_trolin_rec
882                 ,   x_trolin_rec                  => g_trolin_rec
883                 );
884             ELSE
885                 g_trolin_rec.from_locator_id := NULL;
886             END IF;
887 
888         END IF;
889 
890     END IF;
891 
892     IF g_trolin_rec.line_id = FND_API.G_MISS_NUM THEN
893 
894         /* inv_debug.message('Calling Get Line'); */
895         g_trolin_rec.line_id := Get_Line;
896 
897         IF g_trolin_rec.line_id IS NOT NULL THEN
898 
899             IF INV_Validate_trolin.Line(g_trolin_rec.line_id) = inv_validate_trolin.T
900             THEN
901                 INV_Trolin_Util.Clear_Dependent_Attr
902                 (   p_attr_id                     => INV_Trolin_Util.G_LINE
903                 ,   p_trolin_rec                  => g_trolin_rec
904                 ,   x_trolin_rec                  => g_trolin_rec
905                 );
906             ELSE
907                 g_trolin_rec.line_id := NULL;
908             END IF;
909 
910         END IF;
911 
912     END IF;
913 
914     IF g_trolin_rec.line_number = FND_API.G_MISS_NUM THEN
915 
916         g_trolin_rec.line_number := Get_Line_Number;
917 
918         IF g_trolin_rec.line_number IS NOT NULL THEN
919 
920 	   IF INV_Validate_trolin.Line_Number(g_trolin_rec.line_number,
921 					      g_trolin_rec.header_id,
922 					      l_org) = inv_validate_trolin.T
923             THEN
924                 INV_Trolin_Util.Clear_Dependent_Attr
925                 (   p_attr_id                     => INV_Trolin_Util.G_LINE_NUMBER
926                 ,   p_trolin_rec                  => g_trolin_rec
927                 ,   x_trolin_rec                  => g_trolin_rec
928                 );
929             ELSE
930                 g_trolin_rec.line_number := NULL;
931             END IF;
932 
933         END IF;
934 
935     END IF;
936 
937     IF g_trolin_rec.line_status = FND_API.G_MISS_NUM THEN
938 
939         g_trolin_rec.line_status := Get_Line_Status;
940 
941         IF g_trolin_rec.line_status IS NOT NULL THEN
942 
943             IF INV_Validate_trolin.Line_Status(g_trolin_rec.line_status) = inv_validate_trolin.T
944             THEN
945                 INV_Trolin_Util.Clear_Dependent_Attr
946                 (   p_attr_id                     => INV_Trolin_Util.G_LINE_STATUS
947                 ,   p_trolin_rec                  => g_trolin_rec
948                 ,   x_trolin_rec                  => g_trolin_rec
949                 );
950             ELSE
951                 g_trolin_rec.line_status := NULL;
952             END IF;
953 
954         END IF;
955 
956     END IF;
957 
958 
959     IF g_trolin_rec.lot_number = FND_API.G_MISS_CHAR THEN
960 
961         g_trolin_rec.lot_number := Get_Lot_Number;
962 
963         IF g_trolin_rec.lot_number IS NOT NULL THEN
964 
965 	   l_lot.lot_number := g_trolin_rec.lot_number;
966 	   --Added to call new lot number function if putaway move order
967 	   -- this is because on hand might not have this lot already
968 	   -- in the case of a putaway move order
969 
970 	   SELECT move_order_type INTO l_mov_order_type
971 	     FROM   mtl_txn_request_headers
972 	     WHERE header_id=g_trolin_rec.header_id;
973 
974 	   IF l_mov_order_type=INV_GLOBALS.g_move_order_put_away
975 	     THEN
976 
977 	      IF INV_Validate.Lot_Number(l_lot, l_org, l_item) = inv_validate.T THEN
978 		 INV_Trolin_Util.Clear_Dependent_Attr
979 		   (   p_attr_id                     => INV_Trolin_Util.G_LOT_NUMBER
980 		   ,   p_trolin_rec                  => g_trolin_rec
981 		   ,   x_trolin_rec                  => g_trolin_rec
982 		   );
983 	       ELSE
984 		 g_trolin_rec.lot_number := NULL;
985 	      END IF;
986 
987 	    ELSE
988 
989 	      IF INV_Validate.Lot_Number(l_lot,l_org,l_item,l_fsub,l_floc,g_trolin_rec.revision) = inv_validate.T
990 		THEN
991 		 INV_Trolin_Util.Clear_Dependent_Attr
992 		   (   p_attr_id                     => INV_Trolin_Util.G_LOT_NUMBER
993 		   ,   p_trolin_rec                  => g_trolin_rec
994 		   ,   x_trolin_rec                  => g_trolin_rec
995 		   );
996 	       ELSE
997 		 g_trolin_rec.lot_number := NULL;
998 	      END IF;
999 	   END IF;
1000         END IF;
1001 
1002     END IF;
1003 
1004     IF g_trolin_rec.project_id = FND_API.G_MISS_NUM THEN
1005 
1006         g_trolin_rec.project_id := Get_Project;
1007 
1008         IF g_trolin_rec.project_id IS NOT NULL THEN
1009 
1010             IF INV_Validate.Project(g_trolin_rec.project_id) = inv_validate.T
1011             THEN
1012                 INV_Trolin_Util.Clear_Dependent_Attr
1013                 (   p_attr_id                     => INV_Trolin_Util.G_PROJECT
1014                 ,   p_trolin_rec                  => g_trolin_rec
1015                 ,   x_trolin_rec                  => g_trolin_rec
1016                 );
1017             ELSE
1018                 g_trolin_rec.project_id := NULL;
1019             END IF;
1020 
1021         END IF;
1022 
1023     END IF;
1024 
1025     IF g_trolin_rec.quantity = FND_API.G_MISS_NUM THEN
1026 
1027         g_trolin_rec.quantity := Get_Quantity;
1028 
1029         IF g_trolin_rec.quantity IS NOT NULL THEN
1030 
1031             IF INV_Validate.Quantity(g_trolin_rec.quantity) = inv_validate.T
1032             THEN
1033                 INV_Trolin_Util.Clear_Dependent_Attr
1034                 (   p_attr_id                     => INV_Trolin_Util.G_QUANTITY
1035                 ,   p_trolin_rec                  => g_trolin_rec
1036                 ,   x_trolin_rec                  => g_trolin_rec
1037                 );
1038             ELSE
1039                 g_trolin_rec.quantity := NULL;
1040             END IF;
1041 
1042         END IF;
1043 
1044     END IF;
1045 
1046     IF g_trolin_rec.quantity_delivered = FND_API.G_MISS_NUM THEN
1047 
1048         g_trolin_rec.quantity_delivered := Get_Quantity_Delivered;
1049 
1050         IF g_trolin_rec.quantity_delivered IS NOT NULL THEN
1051 
1052             IF
1053 	      INV_Validate_trolin.Quantity_Delivered(g_trolin_rec.quantity_delivered) = inv_validate_trolin.T
1054             THEN
1055                 INV_Trolin_Util.Clear_Dependent_Attr
1056                 (   p_attr_id                     => INV_Trolin_Util.G_QUANTITY_DELIVERED
1057                 ,   p_trolin_rec                  => g_trolin_rec
1058                 ,   x_trolin_rec                  => g_trolin_rec
1059                 );
1060             ELSE
1061                 g_trolin_rec.quantity_delivered := NULL;
1062             END IF;
1063 
1064         END IF;
1065 
1066     END IF;
1067 
1068     IF g_trolin_rec.quantity_detailed = FND_API.G_MISS_NUM THEN
1069 
1070         g_trolin_rec.quantity_detailed := Get_Quantity_Detailed;
1071 
1072         IF g_trolin_rec.quantity_detailed IS NOT NULL THEN
1073 
1074             IF
1075 	      INV_Validate_trolin.Quantity_Detailed(g_trolin_rec.quantity_detailed) = inv_validate_trolin.T
1076             THEN
1077                 INV_Trolin_Util.Clear_Dependent_Attr
1078                 (   p_attr_id                     => INV_Trolin_Util.G_QUANTITY_DETAILED
1079                 ,   p_trolin_rec                  => g_trolin_rec
1080                 ,   x_trolin_rec                  => g_trolin_rec
1081                 );
1082             ELSE
1083                 g_trolin_rec.quantity_detailed := NULL;
1084             END IF;
1085 
1086         END IF;
1087 
1088     END IF;
1089 
1090     IF g_trolin_rec.reason_id = FND_API.G_MISS_NUM THEN
1091 
1092         g_trolin_rec.reason_id := Get_Reason;
1093 
1094         IF g_trolin_rec.reason_id IS NOT NULL THEN
1095 
1096             IF INV_Validate.Reason(g_trolin_rec.reason_id) = inv_validate.T
1097             THEN
1098                 INV_Trolin_Util.Clear_Dependent_Attr
1099                 (   p_attr_id                     => INV_Trolin_Util.G_REASON
1100                 ,   p_trolin_rec                  => g_trolin_rec
1101                 ,   x_trolin_rec                  => g_trolin_rec
1102                 );
1103             ELSE
1104                 g_trolin_rec.reason_id := NULL;
1105             END IF;
1106 
1107         END IF;
1108 
1109     END IF;
1110 
1111     IF g_trolin_rec.reference = FND_API.G_MISS_CHAR THEN
1112 
1113         g_trolin_rec.reference := Get_Reference;
1114 
1115         IF g_trolin_rec.reference IS NOT NULL THEN
1116 
1117             IF INV_Validate.Reference(g_trolin_rec.reference) = inv_validate.T
1118             THEN
1119                 INV_Trolin_Util.Clear_Dependent_Attr
1120                 (   p_attr_id                     => INV_Trolin_Util.G_REFERENCE
1121                 ,   p_trolin_rec                  => g_trolin_rec
1122                 ,   x_trolin_rec                  => g_trolin_rec
1123                 );
1124             ELSE
1125                 g_trolin_rec.reference := NULL;
1126             END IF;
1127 
1128         END IF;
1129 
1130     END IF;
1131 
1132 
1133     IF g_trolin_rec.reference_id = FND_API.G_MISS_NUM THEN
1134 
1135         g_trolin_rec.reference_id := Get_Reference;
1136 
1137         IF g_trolin_rec.reference_id IS NOT NULL THEN
1138 
1139             IF INV_Validate.Reference(g_trolin_rec.reference_id,g_trolin_rec.reference_type_code) = inv_validate.T
1140             THEN
1141                 INV_Trolin_Util.Clear_Dependent_Attr
1142                 (   p_attr_id                     => INV_Trolin_Util.G_REFERENCE
1143                 ,   p_trolin_rec                  => g_trolin_rec
1144                 ,   x_trolin_rec                  => g_trolin_rec
1145                 );
1146             ELSE
1147                 g_trolin_rec.reference_id := NULL;
1148             END IF;
1149 
1150         END IF;
1151 
1152     END IF;
1153 
1154     IF g_trolin_rec.reference_type_code = FND_API.G_MISS_NUM THEN
1155 
1156         g_trolin_rec.reference_type_code := Get_Reference_Type;
1157 
1158         IF g_trolin_rec.reference_type_code IS NOT NULL THEN
1159 
1160             IF
1161 	      INV_Validate.Reference_Type(g_trolin_rec.reference_type_code)
1162 	      = inv_validate.T
1163             THEN
1164                 INV_Trolin_Util.Clear_Dependent_Attr
1165                 (   p_attr_id                     => INV_Trolin_Util.G_REFERENCE_TYPE
1166                 ,   p_trolin_rec                  => g_trolin_rec
1167                 ,   x_trolin_rec                  => g_trolin_rec
1168                 );
1169             ELSE
1170                 g_trolin_rec.reference_type_code := NULL;
1171             END IF;
1172 
1173         END IF;
1174 
1175     END IF;
1176 
1177     IF g_trolin_rec.revision = FND_API.G_MISS_CHAR THEN
1178 
1179         g_trolin_rec.revision := Get_Revision;
1180 
1181         IF g_trolin_rec.revision IS NOT NULL THEN
1182 
1183             IF INV_Validate.Revision(g_trolin_rec.revision,l_org,l_item) = inv_validate.T
1184             THEN
1185                 INV_Trolin_Util.Clear_Dependent_Attr
1186                 (   p_attr_id                     => INV_Trolin_Util.G_REVISION
1187                 ,   p_trolin_rec                  => g_trolin_rec
1188                 ,   x_trolin_rec                  => g_trolin_rec
1189                 );
1190             ELSE
1191                 g_trolin_rec.revision := NULL;
1192             END IF;
1193 
1194         END IF;
1195 
1196     END IF;
1197 
1198 
1199     IF g_trolin_rec.serial_number_end = FND_API.G_MISS_CHAR THEN
1200 
1201         g_trolin_rec.serial_number_end := Get_Serial_Number_End;
1202 
1203         IF g_trolin_rec.serial_number_end IS NOT NULL THEN
1204 
1205 	   l_serial.serial_number := g_trolin_rec.serial_number_end;
1206             IF
1207 	      INV_Validate.Serial_Number_End(l_serial,l_org,l_item,l_fsub,l_lot,l_floc,g_trolin_rec.revision) = inv_validate.T
1208             THEN
1209                 INV_Trolin_Util.Clear_Dependent_Attr
1210                 (   p_attr_id                     => INV_Trolin_Util.G_SERIAL_NUMBER_END
1211                 ,   p_trolin_rec                  => g_trolin_rec
1212                 ,   x_trolin_rec                  => g_trolin_rec
1213                 );
1214             ELSE
1215                 g_trolin_rec.serial_number_end := NULL;
1216             END IF;
1217 
1218         END IF;
1219 
1220     END IF;
1221 
1222 
1223     IF g_trolin_rec.serial_number_start = FND_API.G_MISS_CHAR THEN
1224 
1225         g_trolin_rec.serial_number_start := Get_Serial_Number_Start;
1226 
1227         IF g_trolin_rec.serial_number_start IS NOT NULL THEN
1228 
1229 	   l_serial.serial_number := g_trolin_rec.serial_number_start;
1230             IF
1231 	      INV_Validate.Serial_Number_Start(l_serial,l_org,l_item,l_fsub,l_lot,l_floc,g_trolin_rec.revision) = inv_validate.T
1232             THEN
1233                 INV_Trolin_Util.Clear_Dependent_Attr
1234                 (   p_attr_id                     => INV_Trolin_Util.G_SERIAL_NUMBER_START
1235                 ,   p_trolin_rec                  => g_trolin_rec
1236                 ,   x_trolin_rec                  => g_trolin_rec
1237                 );
1238             ELSE
1239                 g_trolin_rec.serial_number_start := NULL;
1240             END IF;
1241 
1242         END IF;
1243 
1244     END IF;
1245 
1246     IF g_trolin_rec.status_date = FND_API.G_MISS_DATE THEN
1247 
1248         g_trolin_rec.status_date := Get_Status_Date;
1249 
1250         IF g_trolin_rec.status_date IS NOT NULL THEN
1251 
1252             IF INV_Validate_Trohdr.Status_Date(g_trolin_rec.status_date) = inv_validate_trohdr.T
1253             THEN
1254                 INV_Trolin_Util.Clear_Dependent_Attr
1255                 (   p_attr_id                     => INV_Trolin_Util.G_STATUS_DATE
1256                 ,   p_trolin_rec                  => g_trolin_rec
1257                 ,   x_trolin_rec                  => g_trolin_rec
1258                 );
1259             ELSE
1260                 g_trolin_rec.status_date := NULL;
1261             END IF;
1262 
1263         END IF;
1264 
1265     END IF;
1266 
1267 
1268     IF g_trolin_rec.task_id = FND_API.G_MISS_NUM THEN
1269 
1270         g_trolin_rec.task_id := Get_Task;
1271 
1272         IF g_trolin_rec.task_id IS NOT NULL THEN
1273 
1274             IF INV_Validate.Task(g_trolin_rec.task_id,g_trolin_rec.project_id) = inv_validate.T
1275             THEN
1276                 INV_Trolin_Util.Clear_Dependent_Attr
1277                 (   p_attr_id                     => INV_Trolin_Util.G_TASK
1278                 ,   p_trolin_rec                  => g_trolin_rec
1279                 ,   x_trolin_rec                  => g_trolin_rec
1280                 );
1281             ELSE
1282                 g_trolin_rec.task_id := NULL;
1283             END IF;
1284 
1285         END IF;
1286 
1287     END IF;
1288 
1289 
1290     IF g_trolin_rec.to_account_id = FND_API.G_MISS_NUM THEN
1291 
1292         g_trolin_rec.to_account_id := Get_To_Account;
1293 
1294         IF g_trolin_rec.to_account_id IS NOT NULL THEN
1295 
1296             IF INV_Validate.To_Account(g_trolin_rec.to_account_id) = inv_validate.T
1297             THEN
1298                 INV_Trolin_Util.Clear_Dependent_Attr
1299                 (   p_attr_id                     => INV_Trolin_Util.G_TO_ACCOUNT
1300                 ,   p_trolin_rec                  => g_trolin_rec
1301                 ,   x_trolin_rec                  => g_trolin_rec
1302                 );
1303             ELSE
1304                 g_trolin_rec.to_account_id := NULL;
1305             END IF;
1306 
1307         END IF;
1308 
1309     END IF;
1310 
1311 
1312     IF g_trolin_rec.to_locator_id = FND_API.G_MISS_NUM THEN
1313 
1314         g_trolin_rec.to_locator_id := Get_To_Locator;
1315 
1316         IF g_trolin_rec.to_locator_id IS NOT NULL THEN
1317 	   l_tloc.inventory_location_id := g_trolin_rec.to_locator_id;
1318             IF
1319 	      INV_Validate.To_Locator(l_tloc,l_org,l_item,l_tsub,g_trolin_rec.project_id, g_trolin_rec.task_id,l_trans.transaction_action_id) = inv_validate.T
1320             THEN
1321                 INV_Trolin_Util.Clear_Dependent_Attr
1322                 (   p_attr_id                     => INV_Trolin_Util.G_TO_LOCATOR
1323                 ,   p_trolin_rec                  => g_trolin_rec
1324                 ,   x_trolin_rec                  => g_trolin_rec
1325                 );
1326             ELSE
1327                 g_trolin_rec.to_locator_id := NULL;
1328             END IF;
1329 
1330         END IF;
1331 
1332     END IF;
1333 
1334 
1335     IF g_trolin_rec.to_subinventory_code = FND_API.G_MISS_CHAR THEN
1336 
1337         g_trolin_rec.to_subinventory_code := Get_To_Subinventory;
1338 
1339         IF g_trolin_rec.to_subinventory_code IS NOT NULL THEN
1340 
1341 	   l_tsub.secondary_inventory_name := g_trolin_rec.to_subinventory_code;
1342 	   IF
1343 	      INV_Validate.To_Subinventory(l_tsub,l_org,l_item,l_fsub,l_acct_txn) = inv_validate.T
1344             THEN
1345                 INV_Trolin_Util.Clear_Dependent_Attr
1346                 (   p_attr_id                     => INV_Trolin_Util.G_TO_SUBINVENTORY
1347                 ,   p_trolin_rec                  => g_trolin_rec
1348                 ,   x_trolin_rec                  => g_trolin_rec
1349                 );
1350             ELSE
1351                 g_trolin_rec.to_subinventory_code := NULL;
1352             END IF;
1353 
1354         END IF;
1355 
1356     END IF;
1357 
1358 
1359     IF g_trolin_rec.to_subinventory_id = FND_API.G_MISS_NUM THEN
1360 
1361         g_trolin_rec.to_subinventory_id := Get_To_Subinventory_Id;
1362 
1363         IF g_trolin_rec.to_subinventory_id IS NOT NULL THEN
1364 	   l_tsub.secondary_inventory_name := g_trolin_rec.to_subinventory_code;
1365 	   IF
1366 	      INV_Validate.To_Subinventory(l_tsub,l_org,l_item,l_fsub,l_acct_txn) = inv_validate.T
1367 
1368             THEN
1369                 INV_Trolin_Util.Clear_Dependent_Attr
1370                 (   p_attr_id                     => INV_Trolin_Util.G_TO_SUBINVENTORY
1371                 ,   p_trolin_rec                  => g_trolin_rec
1372                 ,   x_trolin_rec                  => g_trolin_rec
1373                 );
1374             ELSE
1375                 g_trolin_rec.to_subinventory_id := NULL;
1376             END IF;
1377 
1378         END IF;
1379 
1380     END IF;
1381 
1382 
1383     IF g_trolin_rec.transaction_header_id = FND_API.G_MISS_NUM THEN
1384 
1385         g_trolin_rec.transaction_header_id := Get_Transaction_Header;
1386 
1387         IF g_trolin_rec.transaction_header_id IS NOT NULL THEN
1388 
1389             IF
1390 	      INV_Validate.Transaction_Header(g_trolin_rec.transaction_header_id) = inv_validate.T
1391             THEN
1392                 INV_Trolin_Util.Clear_Dependent_Attr
1393                 (   p_attr_id                     => INV_Trolin_Util.G_TRANSACTION_HEADER
1394                 ,   p_trolin_rec                  => g_trolin_rec
1395                 ,   x_trolin_rec                  => g_trolin_rec
1396                 );
1397             ELSE
1398                 g_trolin_rec.transaction_header_id := NULL;
1399             END IF;
1400 
1401         END IF;
1402 
1403     END IF;
1404 
1405     IF g_trolin_rec.uom_code = FND_API.G_MISS_CHAR THEN
1406 
1407         g_trolin_rec.uom_code := Get_Uom;
1408 
1409         IF g_trolin_rec.uom_code IS NOT NULL THEN
1410 
1411             IF INV_Validate.Uom(g_trolin_rec.uom_code, l_org, l_item) = inv_validate.T
1412             THEN
1413                 INV_Trolin_Util.Clear_Dependent_Attr
1414                 (   p_attr_id                     => INV_Trolin_Util.G_UOM
1415                 ,   p_trolin_rec                  => g_trolin_rec
1416                 ,   x_trolin_rec                  => g_trolin_rec
1417                 );
1418             ELSE
1419                 g_trolin_rec.uom_code := NULL;
1420             END IF;
1421 
1422         END IF;
1423 
1424     END IF;
1425 
1426     IF g_trolin_rec.unit_number = FND_API.G_MISS_CHAR THEN
1427         g_trolin_rec.unit_number := Get_Unit_number;
1428     END IF;
1429 
1430     IF g_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM THEN
1431         g_trolin_rec.transaction_source_type_id := Get_Transaction_Source_Type_ID(g_trolin_rec.transaction_Type_id);
1432         IF g_trolin_rec.transaction_source_type_id IS NOT NULL THEN
1433             --IF INV_Validate.Transaction_Source_Type(g_trolin_rec.transaction_source_type_id)
1434             --THEN
1435                 INV_Trolin_Util.Clear_Dependent_Attr
1436                 (   p_attr_id                     => INV_Trolin_Util.G_TRANSACTION_SOURCE_TYPE_ID
1437                 ,   p_trolin_rec                  => g_trolin_rec
1438                 ,   x_trolin_rec                  => g_trolin_rec
1439                 );
1440             --ELSE
1441             --    g_trolin_rec.transaction_source_type_id := NULL;
1442             --END IF;
1443         END IF;
1444     END IF;
1445 
1446     IF g_trolin_rec.txn_source_id = FND_API.G_MISS_NUM THEN
1447         g_trolin_rec.txn_source_id := Get_Txn_Source_ID;
1448         IF g_trolin_rec.txn_source_id IS NOT NULL THEN
1449             --IF INV_Validate.Txn_Source(g_trolin_rec.txn_source_id)
1450             --THEN
1451                 INV_Trolin_Util.Clear_Dependent_Attr
1452                 (   p_attr_id                     => INV_Trolin_Util.G_TXN_SOURCE_ID
1453                 ,   p_trolin_rec                  => g_trolin_rec
1454                 ,   x_trolin_rec                  => g_trolin_rec
1455                 );
1456             --ELSE
1457             --    g_trolin_rec.txn_source_id := NULL;
1458             --END IF;
1459         END IF;
1460     END IF;
1461 
1462     IF g_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM THEN
1463         g_trolin_rec.txn_source_line_id := Get_Txn_Source_Line_ID;
1464         IF g_trolin_rec.txn_source_line_id IS NOT NULL THEN
1465             --IF INV_Validate.Txn_Source_Line(g_trolin_rec.txn_source_line_id)
1466             --THEN
1467                 INV_Trolin_Util.Clear_Dependent_Attr
1468                 (   p_attr_id                     => INV_Trolin_Util.G_TXN_SOURCE_LINE_ID
1469                 ,   p_trolin_rec                  => g_trolin_rec
1470                 ,   x_trolin_rec                  => g_trolin_rec
1471                 );
1472             --ELSE
1473             --    g_trolin_rec.txn_source_line_id := NULL;
1474             --END IF;
1475         END IF;
1476     END IF;
1477 
1478     IF g_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM THEN
1479         g_trolin_rec.txn_source_line_detail_id := Get_Txn_Source_Line_Detail_ID;
1480         IF g_trolin_rec.txn_source_line_detail_id IS NOT NULL THEN
1481             --IF INV_Validate.Txn_Source_Line_Detail(g_trolin_rec.txn_source_line_detail_id)
1482             --THEN
1483                 INV_Trolin_Util.Clear_Dependent_Attr
1484                 (   p_attr_id                     => INV_Trolin_Util.G_TXN_SOURCE_LINE_DETAIL_ID
1485                 ,   p_trolin_rec                  => g_trolin_rec
1486                 ,   x_trolin_rec                  => g_trolin_rec
1487                 );
1488             --ELSE
1489             --    g_trolin_rec.txn_source_line_detail_id := NULL;
1490             --END IF;
1491         END IF;
1492     END IF;
1493 
1494     IF g_trolin_rec.primary_quantity = FND_API.G_MISS_NUM THEN
1495         g_trolin_rec.primary_quantity := Get_Primary_Quantity;
1496         IF g_trolin_rec.primary_quantity IS NOT NULL THEN
1497             --IF INV_Validate.Primary_Quantity(g_trolin_rec.primary_quantity)
1498             --THEN
1499                 INV_Trolin_Util.Clear_Dependent_Attr
1500                 (   p_attr_id                     => INV_Trolin_Util.G_PRIMARY_QUANTITY
1501                 ,   p_trolin_rec                  => g_trolin_rec
1502                 ,   x_trolin_rec                  => g_trolin_rec
1503                 );
1504             --ELSE
1505             --    g_trolin_rec.primary_quantity := NULL;
1506             --END IF;
1507         END IF;
1508     END IF;
1509 
1510     IF g_trolin_rec.to_organization_id = FND_API.G_MISS_NUM THEN
1511         g_trolin_rec.to_organization_id := Get_To_Organization_Id;
1512         IF g_trolin_rec.to_organization_id IS NOT NULL THEN
1513             --IF INV_Validate.To_Organization(g_trolin_rec.to_organization_id)
1514             --THEN
1515                 INV_Trolin_Util.Clear_Dependent_Attr
1516                 (   p_attr_id                     => INV_Trolin_Util.G_TO_ORGANIZATION_ID
1517                 ,   p_trolin_rec                  => g_trolin_rec
1518                 ,   x_trolin_rec                  => g_trolin_rec
1519                 );
1520             --ELSE
1521             --    g_trolin_rec.to_organization_id := NULL;
1522             --END IF;
1523         END IF;
1524     END IF;
1525 
1526     IF g_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM THEN
1527         g_trolin_rec.pick_strategy_id := Get_Pick_Strategy_Id;
1528         IF g_trolin_rec.pick_strategy_id IS NOT NULL THEN
1529             --IF INV_Validate.Pick_Strategy(g_trolin_rec.pick_strategy_id)
1530             --THEN
1531                 INV_Trolin_Util.Clear_Dependent_Attr
1532                 (   p_attr_id                     => INV_Trolin_Util.G_PICK_STRATEGY_ID
1533                 ,   p_trolin_rec                  => g_trolin_rec
1534                 ,   x_trolin_rec                  => g_trolin_rec
1535                 );
1536             --ELSE
1537             --    g_trolin_rec.pick_strategy_id := NULL;
1538             --END IF;
1539         END IF;
1540     END IF;
1541 
1542     IF g_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM THEN
1543         g_trolin_rec.put_away_strategy_id := Get_Put_Away_Strategy_ID;
1544         IF g_trolin_rec.put_away_strategy_id IS NOT NULL THEN
1545             --IF INV_Validate.Put_Away_Strategy(g_trolin_rec.put_away_strategy_id)
1546             --THEN
1547                 INV_Trolin_Util.Clear_Dependent_Attr
1548                 (   p_attr_id                     => INV_Trolin_Util.G_PUT_AWAY_STRATEGY_ID
1549                 ,   p_trolin_rec                  => g_trolin_rec
1550                 ,   x_trolin_rec                  => g_trolin_rec
1551                 );
1552             --ELSE
1553             --    g_trolin_rec.put_away_strategy_id := NULL;
1554             --END IF;
1555         END IF;
1556     END IF;
1557 --INVCONV
1558     IF g_trolin_rec.secondary_quantity = FND_API.G_MISS_NUM THEN
1559 
1560         g_trolin_rec.secondary_quantity := Get_Quantity;
1561 
1562         IF g_trolin_rec.secondary_quantity IS NOT NULL THEN
1563 
1564             IF INV_Validate.Secondary_Quantity(g_trolin_rec.quantity) = inv_validate.T
1565             THEN
1566                 INV_Trolin_Util.Clear_Dependent_Attr
1567                 (   p_attr_id                     => INV_Trolin_Util.G_SECONDARY_QUANTITY
1568                 ,   p_trolin_rec                  => g_trolin_rec
1569                 ,   x_trolin_rec                  => g_trolin_rec
1570                 );
1571             ELSE
1572                 g_trolin_rec.secondary_quantity := NULL;
1573             END IF;
1574         END IF;
1575 
1576     END IF;
1577 
1578     IF g_trolin_rec.secondary_quantity_delivered = FND_API.G_MISS_NUM THEN
1579 
1580         g_trolin_rec.secondary_quantity_delivered := Get_Quantity_Delivered;
1581 
1582         IF g_trolin_rec.secondary_quantity_delivered IS NOT NULL THEN
1583 
1584             IF
1585 	      INV_Validate_trolin.Secondary_Quantity_Delivered(g_trolin_rec.secondary_quantity_delivered) = inv_validate_trolin.T
1586             THEN
1587                 INV_Trolin_Util.Clear_Dependent_Attr
1588                 (   p_attr_id                     => INV_Trolin_Util.G_SECONDARY_QUANTITY_DELIVERED
1589                 ,   p_trolin_rec                  => g_trolin_rec
1590                 ,   x_trolin_rec                  => g_trolin_rec
1591                 );
1592             ELSE
1593                 g_trolin_rec.secondary_quantity_delivered := NULL;
1594             END IF;
1595 
1596         END IF;
1597 
1598     END IF;
1599 
1600     IF g_trolin_rec.secondary_quantity_detailed = FND_API.G_MISS_NUM THEN
1601 
1602         g_trolin_rec.secondary_quantity_detailed := Get_Quantity_Detailed;
1603 
1604         IF g_trolin_rec.secondary_quantity_detailed IS NOT NULL THEN
1605 
1606             IF
1607 	      INV_Validate_trolin.Secondary_Quantity_Detailed(g_trolin_rec.secondary_quantity_detailed) = inv_validate_trolin.T
1608             THEN
1609                 INV_Trolin_Util.Clear_Dependent_Attr
1610                 (   p_attr_id                     => INV_Trolin_Util.G_SECONDARY_QUANTITY_DETAILED
1611                 ,   p_trolin_rec                  => g_trolin_rec
1612                 ,   x_trolin_rec                  => g_trolin_rec
1613                 );
1614             ELSE
1615                 g_trolin_rec.secondary_quantity_detailed := NULL;
1616             END IF;
1617 
1618         END IF;
1619 
1620     END IF;
1621 
1622     IF g_trolin_rec.secondary_uom = FND_API.G_MISS_CHAR THEN
1623 
1624         g_trolin_rec.secondary_uom := Get_Secondary_Uom;
1625 /*
1626         IF g_trolin_rec.secondary_uom IS NOT NULL THEN
1627 
1628             IF INV_Validate.Secondary_Uom(g_trolin_rec.secondary_uom, l_org, l_item) = inv_validate.T
1629             THEN
1630                 INV_Trolin_Util.Clear_Dependent_Attr
1631                 (   p_attr_id                     => INV_Trolin_Util.G_SECONDARY_UOM
1632                 ,   p_trolin_rec                  => g_trolin_rec
1633                 ,   x_trolin_rec                  => g_trolin_rec
1634                 );
1635             ELSE
1636                 g_trolin_rec.secondary_uom := NULL;
1637             END IF;
1638 
1639         END IF;
1640 */
1641     ELSIF g_trolin_rec.secondary_uom IS NULL AND g_trolin_rec.secondary_quantity = 0 THEN
1642         convert_quantity(x_return_status => l_return_status, p_trolin_rec => g_trolin_rec);
1643         IF l_return_status = fnd_api.g_ret_sts_error THEN
1644            g_trolin_rec.secondary_quantity := NULL;
1645         END IF;
1646     END IF;
1647 
1648     IF g_trolin_rec.grade_code = FND_API.G_MISS_CHAR THEN
1649 
1650         g_trolin_rec.grade_code := Get_Grade_Code;
1651 /*
1652         IF g_trolin_rec.grade_code IS NOT NULL THEN
1653 
1654             IF INV_Validate.Grade_Code(g_trolin_rec.grade_code, l_org, l_item) = inv_validate.T
1655             THEN
1656                 INV_Trolin_Util.Clear_Dependent_Attr
1657                 (   p_attr_id                     => INV_Trolin_Util.G_GRADE_CODE
1658                 ,   p_trolin_rec                  => g_trolin_rec
1659                 ,   x_trolin_rec                  => g_trolin_rec
1660                 );
1661             ELSE
1662                 g_trolin_rec.grade_code := NULL;
1663             END IF;
1664         END IF;
1665 */
1666 
1667     END IF;
1668 
1669 --INVCONV
1670 
1671 
1672     IF g_trolin_rec.ship_to_location_id = FND_API.G_MISS_NUM THEN
1673        g_trolin_rec.ship_to_location_id := NULL; --  nothing to default;
1674     END IF;
1675 
1676     IF g_trolin_rec.from_cost_group_id = FND_API.G_MISS_NUM THEN
1677        g_trolin_rec.from_cost_group_id := NULL; --  nothing to default;
1678     END IF;
1679 
1680     IF g_trolin_rec.to_cost_group_id = FND_API.G_MISS_NUM THEN
1681        g_trolin_rec.to_cost_group_id := NULL; --  nothing to default;
1682     END IF;
1683 
1684     IF g_trolin_rec.lpn_id = FND_API.G_MISS_NUM THEN
1685        g_trolin_rec.lpn_id := NULL; --  nothing to default;
1686     END IF;
1687 
1688     IF g_trolin_rec.to_lpn_id = FND_API.G_MISS_NUM THEN
1689        g_trolin_rec.to_lpn_id := NULL; --  nothing to default;
1690     END IF;
1691 
1692     IF g_trolin_rec.pick_methodology_id = FND_API.G_MISS_NUM THEN
1693        g_trolin_rec.pick_methodology_id := NULL; --  nothing to default;
1694     END IF;
1695 
1696     IF g_trolin_rec.container_item_id = FND_API.G_MISS_NUM THEN
1697        g_trolin_rec.container_item_id := NULL; --  nothing to default;
1698     END IF;
1699 
1700     IF g_trolin_rec.carton_grouping_id = FND_API.G_MISS_NUM THEN
1701        g_trolin_rec.carton_grouping_id := NULL; --  nothing to default;
1702     END IF;
1703 
1704 
1705     IF g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR
1706     OR  g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR
1707     OR  g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR
1708     OR  g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR
1709     OR  g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR
1710     OR  g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR
1711     OR  g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR
1712     OR  g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR
1713     OR  g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR
1714     OR  g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR
1715     OR  g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR
1716     OR  g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR
1717     OR  g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR
1718     OR  g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR
1719     OR  g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR
1720     OR  g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR
1721     THEN
1722 
1723         Get_Flex_Trolin;
1724 
1725     END IF;
1726 
1727     IF g_trolin_rec.created_by = FND_API.G_MISS_NUM THEN
1728 
1729         g_trolin_rec.created_by := NULL;
1730 
1731     END IF;
1732 
1733     IF g_trolin_rec.creation_date = FND_API.G_MISS_DATE THEN
1734 
1735         g_trolin_rec.creation_date := NULL;
1736 
1737     END IF;
1738 
1739     IF g_trolin_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1740 
1741         g_trolin_rec.last_updated_by := NULL;
1742 
1743     END IF;
1744 
1745     IF g_trolin_rec.last_update_date = FND_API.G_MISS_DATE THEN
1746 
1747         g_trolin_rec.last_update_date := NULL;
1748 
1749     END IF;
1750 
1751     IF g_trolin_rec.last_update_login = FND_API.G_MISS_NUM THEN
1752 
1753         g_trolin_rec.last_update_login := NULL;
1754 
1755     END IF;
1756 
1757     IF g_trolin_rec.program_application_id = FND_API.G_MISS_NUM THEN
1758 
1759         g_trolin_rec.program_application_id := NULL;
1760 
1761     END IF;
1762 
1763     IF g_trolin_rec.program_id = FND_API.G_MISS_NUM THEN
1764 
1765         g_trolin_rec.program_id := NULL;
1766 
1767     END IF;
1768 
1769     IF g_trolin_rec.program_update_date = FND_API.G_MISS_DATE THEN
1770 
1771         g_trolin_rec.program_update_date := NULL;
1772 
1773     END IF;
1774 
1775     IF g_trolin_rec.request_id = FND_API.G_MISS_NUM THEN
1776 
1777         g_trolin_rec.request_id := NULL;
1778 
1779     END IF;
1780 
1781     --  Redefault if there are any missing attributes.
1782 
1783     IF  g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR
1784     OR  g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR
1785     OR  g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR
1786     OR  g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR
1787     OR  g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR
1788     OR  g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR
1789     OR  g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR
1790     OR  g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR
1791     OR  g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR
1792     OR  g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR
1793     OR  g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR
1794     OR  g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR
1795     OR  g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR
1796     OR  g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR
1797     OR  g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR
1798     OR  g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR
1799     OR  g_trolin_rec.created_by = FND_API.G_MISS_NUM
1800     OR  g_trolin_rec.creation_date = FND_API.G_MISS_DATE
1801     OR  g_trolin_rec.date_required = FND_API.G_MISS_DATE
1802     OR  g_trolin_rec.from_locator_id = FND_API.G_MISS_NUM
1803     OR  g_trolin_rec.from_subinventory_code = FND_API.g_miss_char
1804     OR  g_trolin_rec.from_subinventory_id = FND_API.G_MISS_NUM
1805     OR  g_trolin_rec.header_id = FND_API.G_MISS_NUM
1806     OR  g_trolin_rec.inventory_item_id = FND_API.G_MISS_NUM
1807     OR  g_trolin_rec.last_updated_by = FND_API.G_MISS_NUM
1808     OR  g_trolin_rec.last_update_date = FND_API.G_MISS_DATE
1809     OR  g_trolin_rec.last_update_login = FND_API.G_MISS_NUM
1810     OR  g_trolin_rec.line_id = FND_API.G_MISS_NUM
1811     OR  g_trolin_rec.line_number = FND_API.G_MISS_NUM
1812     OR  g_trolin_rec.line_status = FND_API.G_MISS_NUM
1813     OR  g_trolin_rec.lot_number = FND_API.G_MISS_CHAR
1814     OR  g_trolin_rec.organization_id = FND_API.G_MISS_NUM
1815     OR  g_trolin_rec.program_application_id = FND_API.G_MISS_NUM
1816     OR  g_trolin_rec.program_id = FND_API.G_MISS_NUM
1817     OR  g_trolin_rec.program_update_date = FND_API.G_MISS_DATE
1818     OR  g_trolin_rec.project_id = FND_API.G_MISS_NUM
1819     OR  g_trolin_rec.quantity = FND_API.G_MISS_NUM
1820     OR  g_trolin_rec.quantity_delivered = FND_API.G_MISS_NUM
1821     OR  g_trolin_rec.quantity_detailed = FND_API.G_MISS_NUM
1822     OR  g_trolin_rec.reason_id = FND_API.G_MISS_NUM
1823     OR  g_trolin_rec.reference = FND_API.G_MISS_CHAR
1824     OR  g_trolin_rec.reference_id = FND_API.G_MISS_NUM
1825     OR  g_trolin_rec.reference_type_code = FND_API.G_MISS_NUM
1826     OR  g_trolin_rec.request_id = FND_API.G_MISS_NUM
1827     OR  g_trolin_rec.revision = FND_API.G_MISS_CHAR
1828     OR  g_trolin_rec.serial_number_end = FND_API.G_MISS_CHAR
1829     OR  g_trolin_rec.serial_number_start = FND_API.G_MISS_CHAR
1830     OR  g_trolin_rec.status_date = FND_API.G_MISS_DATE
1831     OR  g_trolin_rec.task_id = FND_API.G_MISS_NUM
1832     OR  g_trolin_rec.to_account_id = FND_API.G_MISS_NUM
1833     OR  g_trolin_rec.to_locator_id = FND_API.G_MISS_NUM
1834     OR  g_trolin_rec.to_subinventory_code = FND_API.g_miss_char
1835     OR  g_trolin_rec.to_subinventory_id = FND_API.G_MISS_NUM
1836     OR  g_trolin_rec.transaction_header_id = FND_API.G_MISS_NUM
1837     OR  g_trolin_rec.uom_code = FND_API.G_MISS_CHAR
1838     OR  g_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM
1839     OR  g_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM
1840     OR  g_trolin_rec.txn_source_id = FND_API.G_MISS_NUM
1841     OR  g_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM
1842     OR  g_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM
1843     OR  g_trolin_rec.primary_quantity = FND_API.G_MISS_NUM
1844     OR  g_trolin_rec.to_organization_id = FND_API.G_MISS_NUM
1845     OR  g_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM
1846     OR  g_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM
1847     OR  g_trolin_Rec.unit_number = FND_API.G_MISS_CHAR
1848     OR  g_trolin_rec.from_cost_group_id = FND_API.G_MISS_NUM
1849     OR  g_trolin_rec.to_cost_group_id = FND_API.G_MISS_NUM
1850     OR  g_trolin_rec.lpn_id = FND_API.G_MISS_NUM
1851     OR  g_trolin_rec.to_lpn_id = FND_API.G_MISS_NUM
1852     OR  g_trolin_rec.pick_methodology_id = FND_API.G_MISS_NUM
1853     OR  g_trolin_rec.container_item_id = FND_API.G_MISS_NUM
1854     OR  g_trolin_rec.carton_grouping_id = FND_API.G_MISS_NUM
1855 --INVCONV
1856     OR  g_trolin_rec.secondary_uom = FND_API.G_MISS_CHAR
1857     OR  g_trolin_rec.grade_code = FND_API.G_MISS_CHAR
1858     OR  g_trolin_rec.secondary_quantity = FND_API.G_MISS_NUM
1859     OR  g_trolin_rec.secondary_quantity_delivered = FND_API.G_MISS_NUM
1860     OR  g_trolin_rec.secondary_quantity_detailed = FND_API.G_MISS_NUM
1861 --INVCONV
1862     THEN
1863 
1864         INV_Default_Trolin.Attributes
1865         (   p_trolin_rec                  => g_trolin_rec
1866         ,   p_iteration                   => p_iteration + 1
1867         ,   x_trolin_rec                  => x_trolin_rec
1868         );
1869 
1870     ELSE
1871 
1872         --  Done defaulting attributes
1873 
1874         x_trolin_rec := g_trolin_rec;
1875 
1876     END IF;
1877 END Attributes;
1878 
1879 /*Fixed for bug#7126566
1880   Added procedure to set gloabl variable
1881   This is called by form. In form package variables
1882   can not be accessed directly.
1883 */
1884 PROCEDURE Set_CALLED_BY_FORM(P_CALLED_BY_FORM in varchar2 )
1885 Is
1886 begin
1887      G_CALLED_BY_FORM := P_CALLED_BY_FORM;
1888 end;
1889 
1890 END INV_Default_Trolin;