DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_TO_FORM_TROLIN

Source


1 PACKAGE BODY INV_TO_Form_Trolin AS
2 /* $Header: INVFTRLB.pls 120.0 2005/05/25 06:25:41 appldev noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'INV_TO_Form_Trolin';
7 
8 --  Global variables holding cached record.
9 
10 g_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
11 g_db_trolin_rec               INV_Move_Order_PUB.Trolin_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_trolin
16 (   p_trolin_rec                    IN  INV_Move_Order_PUB.Trolin_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_trolin
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_line_id                       IN  NUMBER
23 )
24 RETURN INV_Move_Order_PUB.Trolin_Rec_Type;
25 
26 PROCEDURE Clear_trolin;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    INV_Move_Order_PUB.Trolin_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   x_return_status                 OUT NOCOPY VARCHAR2
37 ,   x_msg_count                     OUT NOCOPY NUMBER
38 ,   x_msg_data                      OUT NOCOPY VARCHAR2
39 ,   p_header_id              	    IN  NUMBER
40 ,   x_attribute1                    OUT NOCOPY VARCHAR2
41 ,   x_attribute10                   OUT NOCOPY VARCHAR2
42 ,   x_attribute11                   OUT NOCOPY VARCHAR2
43 ,   x_attribute12                   OUT NOCOPY VARCHAR2
44 ,   x_attribute13                   OUT NOCOPY VARCHAR2
45 ,   x_attribute14                   OUT NOCOPY VARCHAR2
46 ,   x_attribute15                   OUT NOCOPY VARCHAR2
47 ,   x_attribute2                    OUT NOCOPY VARCHAR2
48 ,   x_attribute3                    OUT NOCOPY VARCHAR2
49 ,   x_attribute4                    OUT NOCOPY VARCHAR2
50 ,   x_attribute5                    OUT NOCOPY VARCHAR2
51 ,   x_attribute6                    OUT NOCOPY VARCHAR2
52 ,   x_attribute7                    OUT NOCOPY VARCHAR2
53 ,   x_attribute8                    OUT NOCOPY VARCHAR2
54 ,   x_attribute9                    OUT NOCOPY VARCHAR2
55 ,   x_attribute_category            OUT NOCOPY VARCHAR2
56 ,   x_date_required                 OUT NOCOPY DATE
57 ,   x_from_locator_id               OUT NOCOPY NUMBER
58 ,   x_from_subinventory_code        OUT NOCOPY VARCHAR2
59 ,   x_from_subinventory_id          OUT NOCOPY NUMBER
60 ,   x_header_id                     OUT NOCOPY NUMBER
61 ,   x_inventory_item_id             OUT NOCOPY NUMBER
62 ,   x_line_id                       OUT NOCOPY NUMBER
63 ,   x_line_number                   OUT NOCOPY NUMBER
64 ,   x_line_status                   OUT NOCOPY NUMBER
65 ,   x_lot_number                    OUT NOCOPY VARCHAR2
66 ,   x_organization_id               OUT NOCOPY NUMBER
67 ,   x_project_id                    OUT NOCOPY NUMBER
68 ,   x_quantity                      OUT NOCOPY NUMBER
69 ,   x_quantity_delivered            OUT NOCOPY NUMBER
70 ,   x_quantity_detailed             OUT NOCOPY NUMBER
71 ,   x_reason_id                     OUT NOCOPY NUMBER
72 ,   x_reference                     OUT NOCOPY VARCHAR2
73 ,   x_reference_id                  OUT NOCOPY NUMBER
74 ,   x_reference_type_code           OUT NOCOPY NUMBER
75 ,   x_revision                      OUT NOCOPY VARCHAR2
76 ,   x_serial_number_end             OUT NOCOPY VARCHAR2
77 ,   x_serial_number_start           OUT NOCOPY VARCHAR2
78 ,   x_status_date                   OUT NOCOPY DATE
79 ,   x_task_id                       OUT NOCOPY NUMBER
80 ,   x_to_account_id                 OUT NOCOPY NUMBER
81 ,   x_to_locator_id                 OUT NOCOPY NUMBER
82 ,   x_to_subinventory_code          OUT NOCOPY VARCHAR2
83 ,   x_to_subinventory_id            OUT NOCOPY NUMBER
84 ,   x_transaction_header_id         OUT NOCOPY NUMBER
85 ,   x_uom_code                      OUT NOCOPY VARCHAR2
86 ,   x_from_locator                  OUT NOCOPY VARCHAR2
87 ,   x_inventory_item                OUT NOCOPY VARCHAR2
88 ,   x_project                       OUT NOCOPY VARCHAR2
89 ,   x_reason                        OUT NOCOPY VARCHAR2
90 ,   x_reference_type                OUT NOCOPY VARCHAR2
91 ,   x_task                          OUT NOCOPY VARCHAR2
92 ,   x_to_account                    OUT NOCOPY VARCHAR2
93 ,   x_to_locator                    OUT NOCOPY VARCHAR2
94 ,   x_transaction_type_id           OUT NOCOPY NUMBER
95 ,   x_transaction_source_type_id    OUT NOCOPY NUMBER
96 ,   x_txn_source_id                 OUT NOCOPY NUMBER
97 ,   x_txn_source_line_id            OUT NOCOPY NUMBER
98 ,   x_txn_source_line_detail_id     OUT NOCOPY NUMBER
99 ,   x_primary_quantity              OUT NOCOPY NUMBER
100 ,   x_to_organization_id            OUT NOCOPY NUMBER
101 ,   x_pick_strategy_id              OUT NOCOPY NUMBER
102 ,   x_put_away_strategy_id          OUT NOCOPY NUMBER
103 ,   x_unit_number          	    OUT NOCOPY VARCHAR2
104 -- ,   x_ship_to_location_id           OUT NOCOPY NUMBER -- NL MERGE
105 ,   x_transaction_type		    OUT NOCOPY VARCHAR2
106 ,   x_secondary_quantity                      OUT NOCOPY NUMBER   --INVCONV change
107 ,   x_secondary_quantity_delivered            OUT NOCOPY NUMBER   --INVCONV change
108 ,   x_secondary_quantity_detailed             OUT NOCOPY NUMBER   --INVCONV change
109 ,   x_secondary_uom_code                      OUT NOCOPY VARCHAR2 --INVCONV change
110 ,   x_grade_code                              OUT NOCOPY VARCHAR2 --INVCONV change
111 )
112 IS
113 l_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
114 l_trolin_val_rec              INV_Move_Order_PUB.Trolin_Val_Rec_Type;
115 l_trolin_tbl                  INV_Move_Order_PUB.Trolin_Tbl_Type;
116 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
117 l_return_status               VARCHAR2(1);
118 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
119 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
120 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
121     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
122 BEGIN
123 
124     /* inv_debug.message('In default for lines'); */
125     --  Set control flags.
126 
127     l_control_rec.controlled_operation := TRUE;
128     l_control_rec.default_attributes   := TRUE;
129 
130     l_control_rec.change_attributes    := FALSE;
131     l_control_rec.validate_entity      := FALSE;
132     l_control_rec.write_to_DB          := FALSE;
133     l_control_rec.process              := FALSE;
134 
135     --  Instruct API to retain its caches
136 
137     l_control_rec.clear_api_cache      := FALSE;
138     l_control_rec.clear_api_requests   := FALSE;
139 
140     --  Load IN parameters if any exist
141     l_trolin_rec.header_id 	       := p_header_id;
142 
143 
144     --  Defaulting of flex values is currently done by the form.
145     --  Set flex attributes to NULL in order to avoid defaulting them.
146 
147     l_trolin_rec.attribute1                       := NULL;
148     l_trolin_rec.attribute10                      := NULL;
149     l_trolin_rec.attribute11                      := NULL;
150     l_trolin_rec.attribute12                      := NULL;
151     l_trolin_rec.attribute13                      := NULL;
152     l_trolin_rec.attribute14                      := NULL;
153     l_trolin_rec.attribute15                      := NULL;
154     l_trolin_rec.attribute2                       := NULL;
155     l_trolin_rec.attribute3                       := NULL;
156     l_trolin_rec.attribute4                       := NULL;
157     l_trolin_rec.attribute5                       := NULL;
158     l_trolin_rec.attribute6                       := NULL;
159     l_trolin_rec.attribute7                       := NULL;
160     l_trolin_rec.attribute8                       := NULL;
161     l_trolin_rec.attribute9                       := NULL;
162     l_trolin_rec.attribute_category               := NULL;
163 
164     --  Set Operation to Create
165 
166     l_trolin_rec.operation := INV_GLOBALS.G_OPR_CREATE;
167 
168     --  Populate trolin table
169 
170     l_trolin_tbl(1) := l_trolin_rec;
171 
172     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
173     /* Inv_debug.message('Before Process Order in default lines'); */
174 
175     INV_Transfer_Order_PVT.Process_Transfer_Order
176     (   p_api_version_number          => 1.0
177     ,   p_init_msg_list               => FND_API.G_TRUE
178     ,   x_return_status               => l_return_status
179     ,   x_msg_count                   => x_msg_count
180     ,   x_msg_data                    => x_msg_data
181     ,   p_control_rec                 => l_control_rec
182     ,   p_trolin_tbl                  => l_trolin_tbl
183     ,   x_trohdr_rec                  => l_x_trohdr_rec
184     ,   x_trolin_tbl                  => l_x_trolin_tbl
185     );
186 
187     /* Inv_debug.message('After Process Order'||l_return_status); */
188     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
189         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
190     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
191         RAISE FND_API.G_EXC_ERROR;
192     END IF;
193 
194 
195     --  Unload out tbl
196 
197     l_x_trolin_rec := l_x_trolin_tbl(1);
198 
199     --  Load OUT NOCOPY parameters.
200 
201     x_attribute1                   := l_x_trolin_rec.attribute1;
202     x_attribute10                  := l_x_trolin_rec.attribute10;
203     x_attribute11                  := l_x_trolin_rec.attribute11;
204     x_attribute12                  := l_x_trolin_rec.attribute12;
205     x_attribute13                  := l_x_trolin_rec.attribute13;
206     x_attribute14                  := l_x_trolin_rec.attribute14;
207     x_attribute15                  := l_x_trolin_rec.attribute15;
208     x_attribute2                   := l_x_trolin_rec.attribute2;
209     x_attribute3                   := l_x_trolin_rec.attribute3;
210     x_attribute4                   := l_x_trolin_rec.attribute4;
211     x_attribute5                   := l_x_trolin_rec.attribute5;
212     x_attribute6                   := l_x_trolin_rec.attribute6;
213     x_attribute7                   := l_x_trolin_rec.attribute7;
214     x_attribute8                   := l_x_trolin_rec.attribute8;
215     x_attribute9                   := l_x_trolin_rec.attribute9;
216     x_attribute_category           := l_x_trolin_rec.attribute_category;
217     x_date_required                := l_x_trolin_rec.date_required;
218     x_from_locator_id              := l_x_trolin_rec.from_locator_id;
219     x_from_subinventory_code       := l_x_trolin_rec.from_subinventory_code;
220     x_from_subinventory_id         := l_x_trolin_rec.from_subinventory_id;
221     x_header_id                    := l_x_trolin_rec.header_id;
222     x_inventory_item_id            := l_x_trolin_rec.inventory_item_id;
223     x_line_id                      := l_x_trolin_rec.line_id;
224     x_line_number                  := l_x_trolin_rec.line_number;
225     x_line_status                  := l_x_trolin_rec.line_status;
226     x_lot_number                   := l_x_trolin_rec.lot_number;
227     x_organization_id              := l_x_trolin_rec.organization_id;
228     x_project_id                   := l_x_trolin_rec.project_id;
229     x_quantity                     := l_x_trolin_rec.quantity;
230     x_quantity_delivered           := l_x_trolin_rec.quantity_delivered;
231     x_quantity_detailed            := l_x_trolin_rec.quantity_detailed;
232     x_reason_id                    := l_x_trolin_rec.reason_id;
233     x_reference                    := l_x_trolin_rec.reference;
234     x_reference_id                 := l_x_trolin_rec.reference_id;
235     x_reference_type_code          := l_x_trolin_rec.reference_type_code;
236     x_revision                     := l_x_trolin_rec.revision;
237     x_serial_number_end            := l_x_trolin_rec.serial_number_end;
238     x_serial_number_start          := l_x_trolin_rec.serial_number_start;
239     x_status_date                  := l_x_trolin_rec.status_date;
240     x_task_id                      := l_x_trolin_rec.task_id;
241     x_to_account_id                := l_x_trolin_rec.to_account_id;
242     x_to_locator_id                := l_x_trolin_rec.to_locator_id;
243     x_to_subinventory_code         := l_x_trolin_rec.to_subinventory_code;
244     x_to_subinventory_id           := l_x_trolin_rec.to_subinventory_id;
245     x_transaction_header_id        := l_x_trolin_rec.transaction_header_id;
246     x_uom_code                     := l_x_trolin_rec.uom_code;
247 /* ssia added for move order enhancement */
248     x_transaction_type_id          := l_x_trolin_rec.transaction_type_id;
249     x_transaction_source_type_id   := l_x_trolin_rec.transaction_source_type_id;
250     x_txn_source_id                := l_x_trolin_rec.txn_source_id;
251     x_txn_source_line_id           := l_x_trolin_rec.txn_source_line_id;
252     x_txn_source_line_detail_id    := l_x_trolin_rec.txn_source_line_detail_id;
253     x_primary_quantity             := l_x_trolin_rec.primary_quantity;
254     x_to_organization_id           := l_x_trolin_rec.to_organization_id;
255     x_pick_strategy_id             := l_x_trolin_rec.pick_strategy_id;
256     x_put_away_strategy_id         := l_x_trolin_rec.put_away_strategy_id;
257     x_unit_number                  := l_x_trolin_rec.unit_number;
258     --INVCONV BEGIN
259     x_secondary_quantity           := l_x_trolin_rec.secondary_quantity;
260     x_secondary_quantity_delivered := l_x_trolin_rec.secondary_quantity_delivered;
261     x_secondary_quantity_detailed  := l_x_trolin_rec.secondary_quantity_detailed;
262     x_secondary_uom_code           := l_x_trolin_rec.secondary_uom;
263     x_grade_code                   := l_x_trolin_rec.grade_code;
264 --INVCONV END
265 
266  --   x_ship_to_location_id          := l_x_trolin_rec.ship_to_location_id; -- NL MERGE
267 /* ssia end of move order enhancement changes */
268     --  Load display out parameters if any
269 
270     l_trolin_val_rec := INV_Trolin_Util.Get_Values
271     (   p_trolin_rec                  => l_x_trolin_rec
272     );
273     x_from_locator                 := l_trolin_val_rec.from_locator;
274     x_inventory_item               := l_trolin_val_rec.inventory_item;
275     x_project                      := l_trolin_val_rec.project;
276     x_reason                       := l_trolin_val_rec.reason;
277     x_reference_type               := l_trolin_val_rec.reference_type;
278     x_task                         := l_trolin_val_rec.task;
279     x_to_account                   := l_trolin_val_rec.to_account;
280     x_to_locator                   := l_trolin_val_rec.to_locator;
281     x_transaction_type		   := l_trolin_val_rec.transaction_type;
282 
283     --  Write to cache.
284     --  Set db_flag to False before writing to cache
285 
286     l_x_trolin_rec.db_flag := FND_API.G_FALSE;
287 
288     Write_trolin
289     (   p_trolin_rec                  => l_x_trolin_rec
290     );
291 
292     --  Set return status.
293 
294     x_return_status := FND_API.G_RET_STS_SUCCESS;
295 
296     --  Get message count and data
297 
298     FND_MSG_PUB.Count_And_Get
299     (   p_count                       => x_msg_count
300     ,   p_data                        => x_msg_data
301     );
302 
303 
304 EXCEPTION
305 
306     WHEN FND_API.G_EXC_ERROR THEN
307 
308         x_return_status := FND_API.G_RET_STS_ERROR;
309 
310         --  Get message count and data
311 
312         FND_MSG_PUB.Count_And_Get
313         (   p_count                       => x_msg_count
314         ,   p_data                        => x_msg_data
315         );
316 
317     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
318 
319         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
320 
321         --  Get message count and data
322 
323         FND_MSG_PUB.Count_And_Get
324         (   p_count                       => x_msg_count
325         ,   p_data                        => x_msg_data
326         );
327 
328     WHEN OTHERS THEN
329 
330         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
331 
332         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
333         THEN
334             FND_MSG_PUB.Add_Exc_Msg
335             (   G_PKG_NAME
336             ,   'Default_Attributes'
337             );
338         END IF;
339 
340         --  Get message count and data
341 
342         FND_MSG_PUB.Count_And_Get
343         (   p_count                       => x_msg_count
344         ,   p_data                        => x_msg_data
345         );
346 
347 END Default_Attributes;
348 
349 --  Procedure   :   Validate_Record
350 --
351 
352 PROCEDURE Validate_Record
353 (   x_return_status                 OUT NOCOPY VARCHAR2
354 ,   x_msg_count                     OUT NOCOPY NUMBER
355 ,   x_msg_data                      OUT NOCOPY VARCHAR2
356 ,   p_attribute1                    IN  VARCHAR2
357 ,   p_attribute10                   IN  VARCHAR2
358 ,   p_attribute11                   IN  VARCHAR2
359 ,   p_attribute12                   IN  VARCHAR2
360 ,   p_attribute13                   IN  VARCHAR2
361 ,   p_attribute14                   IN  VARCHAR2
362 ,   p_attribute15                   IN  VARCHAR2
363 ,   p_attribute2                    IN  VARCHAR2
364 ,   p_attribute3                    IN  VARCHAR2
365 ,   p_attribute4                    IN  VARCHAR2
366 ,   p_attribute5                    IN  VARCHAR2
367 ,   p_attribute6                    IN  VARCHAR2
368 ,   p_attribute7                    IN  VARCHAR2
369 ,   p_attribute8                    IN  VARCHAR2
370 ,   p_attribute9                    IN  VARCHAR2
371 ,   p_attribute_category            IN  VARCHAR2
372 ,   p_date_required                 IN  DATE
373 ,   p_from_locator_id               IN  NUMBER
374 ,   p_from_subinventory_code        IN  VARCHAR2
375 ,   p_from_subinventory_id          IN  NUMBER
376 ,   p_header_id                     IN  NUMBER
377 ,   p_inventory_item_id             IN  NUMBER
378 ,   p_line_id                       IN  NUMBER
379 ,   p_line_number                   IN  NUMBER
380 ,   p_line_status                   IN  NUMBER
381 ,   p_lot_number                    IN  VARCHAR2
382 ,   p_organization_id               IN  NUMBER
383 ,   p_project_id                    IN  NUMBER
384 ,   p_quantity                      IN  NUMBER
385 ,   p_quantity_delivered            IN  NUMBER
386 ,   p_quantity_detailed             IN  NUMBER
387 ,   p_reason_id                     IN  NUMBER
388 ,   p_reference                     IN  VARCHAR2
389 ,   p_reference_id                  IN  NUMBER
390 ,   p_reference_type_code           IN  NUMBER
391 ,   p_revision                      IN  VARCHAR2
392 ,   p_serial_number_end             IN  VARCHAR2
393 ,   p_serial_number_start           IN  VARCHAR2
394 ,   p_status_date                   IN  DATE
395 ,   p_task_id                       IN  NUMBER
396 ,   p_to_account_id                 IN  NUMBER
397 ,   p_to_locator_id                 IN  NUMBER
398 ,   p_to_subinventory_code          IN  VARCHAR2
399 ,   p_to_subinventory_id            IN  NUMBER
400 ,   p_transaction_header_id         IN  NUMBER
401 ,   p_uom_code                      IN  VARCHAR2
402 ,   p_transaction_type_id           IN  NUMBER
403 ,   p_transaction_source_type_id    IN  NUMBER
404 ,   p_txn_source_id                 IN  NUMBER
405 ,   p_txn_source_line_id            IN  NUMBER
406 ,   p_txn_source_line_detail_id     IN  NUMBER
407 ,   p_primary_quantity              IN  NUMBER
408 ,   p_to_organization_id            IN  NUMBER
409 ,   p_pick_strategy_id              IN  NUMBER
410 ,   p_put_away_strategy_id          IN  NUMBER
411 ,   p_unit_number                   IN  VARCHAR2
412 ,   p_ship_to_location_id           IN  NUMBER
413 ,   p_from_cost_group_id	    IN  NUMBER DEFAULT NULL
414 ,   p_to_cost_Group_id		    IN  NUMBER DEFAULT NULL
415 ,   p_lpn_id			    IN  NUMBER DEFAULT NULL
416 ,   p_to_lpn_id		    IN  NUMBER DEFAULT NULL
417 ,   p_db_flag                       IN  VARCHAR2
418 ,   p_secondary_quantity            IN NUMBER DEFAULT NULL   --INVCONV change
419 ,   p_secondary_quantity_delivered  IN NUMBER DEFAULT NULL   --INVCONV change
420 ,   p_secondary_quantity_detailed   IN NUMBER DEFAULT NULL   --INVCONV change
421 ,   p_secondary_uom_code            IN VARCHAR2 DEFAULT NULL --INVCONV change
422 ,   p_grade_code                    IN VARCHAR2 DEFAULT NULL --INVCONV change
423 )
424 IS
425 l_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
426 l_old_trolin_rec              INV_Move_Order_PUB.Trolin_Rec_Type;
427 l_trolin_val_rec              INV_Move_Order_PUB.Trolin_Val_Rec_Type;
428 l_trolin_tbl                  INV_Move_Order_PUB.Trolin_Tbl_Type;
429 l_old_trolin_tbl              INV_Move_Order_PUB.Trolin_Tbl_Type;
430 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
431 l_return_status               VARCHAR2(1);
432 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
433 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
434 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
435     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
436 BEGIN
437 
438     --  Set control flags.
439 
440     l_control_rec.controlled_operation := TRUE;
441     l_control_rec.change_attributes    := TRUE;
442 
443     l_control_rec.default_attributes   := FALSE;
444     l_control_rec.validate_entity      := TRUE;
445     l_control_rec.write_to_DB          := FALSE;
446     l_control_rec.process              := FALSE;
447 
448     --  Instruct API to retain its caches
449 
450     l_control_rec.clear_api_cache      := FALSE;
451     l_control_rec.clear_api_requests   := FALSE;
452 
453     l_trolin_rec.db_flag               := p_db_flag;
454 
455     --  Read trolin from cache
456 
457     IF FND_API.To_Boolean(l_trolin_rec.db_flag) THEN
458 
459     l_trolin_rec := Get_trolin
460     (   p_db_record                   => FALSE
461     ,   p_line_id                     => p_line_id
462     );
463     End If;
464 
465     l_old_trolin_rec               := l_trolin_rec;
466 
467         l_trolin_rec.date_required      := p_date_required;
468         l_trolin_rec.from_locator_id    := p_from_locator_id;
469         l_trolin_rec.from_subinventory_code     := p_from_subinventory_code;
470         l_trolin_rec.from_subinventory_id       := p_from_subinventory_id;
471         l_trolin_rec.header_id                  := p_header_id;
472         l_trolin_rec.inventory_item_id          := p_inventory_item_id;
473         l_trolin_rec.line_id                    := p_line_id;
474         l_trolin_rec.line_number                := p_line_number;
475         l_trolin_rec.line_status                := p_line_status;
476         l_trolin_rec.lot_number                 := p_lot_number;
477         l_trolin_rec.organization_id            := p_organization_id;
478         l_trolin_rec.project_id                 := p_project_id;
479         l_trolin_rec.quantity                   := p_quantity;
480         l_trolin_rec.quantity_delivered         := p_quantity_delivered;
481         l_trolin_rec.quantity_detailed          := p_quantity_detailed;
482         l_trolin_rec.reason_id                  := p_reason_id;
483         l_trolin_rec.reference                  := p_reference;
484         l_trolin_rec.reference_id               := p_reference_id;
485         l_trolin_rec.reference_type_code        := p_reference_type_code;
486         l_trolin_rec.revision                   := p_revision;
487         l_trolin_rec.serial_number_end          := p_serial_number_end;
488         l_trolin_rec.serial_number_start        := p_serial_number_start;
489         l_trolin_rec.status_date                := p_status_date;
490         l_trolin_rec.task_id                    := p_task_id;
491         l_trolin_rec.to_account_id              := p_to_account_id;
492         l_trolin_rec.to_locator_id              := p_to_locator_id;
493         l_trolin_rec.to_subinventory_code       := p_to_subinventory_code;
494         l_trolin_rec.to_subinventory_id         := p_to_subinventory_id;
495         l_trolin_rec.transaction_header_id      := p_transaction_header_id;
496         l_trolin_rec.uom_code                   := p_uom_code;
497         l_trolin_rec.attribute1                 := p_attribute1;
498         l_trolin_rec.attribute10                := p_attribute10;
499         l_trolin_rec.attribute11                := p_attribute11;
500         l_trolin_rec.attribute12                := p_attribute12;
501         l_trolin_rec.attribute13                := p_attribute13;
502         l_trolin_rec.attribute14                := p_attribute14;
503         l_trolin_rec.attribute15                := p_attribute15;
504         l_trolin_rec.attribute2                 := p_attribute2;
505         l_trolin_rec.attribute3                 := p_attribute3;
506         l_trolin_rec.attribute4                 := p_attribute4;
507         l_trolin_rec.attribute5                 := p_attribute5;
508         l_trolin_rec.attribute6                 := p_attribute6;
509         l_trolin_rec.attribute7                 := p_attribute7;
510         l_trolin_rec.attribute8                 := p_attribute8;
511         l_trolin_rec.attribute9                 := p_attribute9;
512         l_trolin_rec.attribute_category         := p_attribute_category;
513 /* ssia added for move order enhancement */
514 	l_trolin_rec.transaction_type_id 	:= p_transaction_type_id;
515 	l_trolin_rec.transaction_source_type_id := p_transaction_source_type_id;
516 	l_trolin_rec.txn_source_id		:= p_txn_source_id;
517 	l_trolin_rec.txn_source_line_id		:= p_txn_source_line_id;
518 	l_trolin_rec.txn_source_line_detail_id  := p_txn_source_line_detail_id;
519 	l_trolin_rec.primary_quantity		:= p_primary_quantity;
520 	l_trolin_rec.to_organization_id		:= p_to_organization_id;
521 	l_trolin_rec.pick_strategy_id		:= p_pick_strategy_id;
522 	l_trolin_rec.put_away_strategy_id	:= p_put_away_strategy_id;
523 	l_trolin_rec.unit_number		:= p_unit_number;
524         l_trolin_rec.ship_to_location_id        := p_ship_to_location_id;
525  	l_trolin_rec.from_cost_group_id		:= p_from_cost_group_id;
526 	l_trolin_rec.to_cost_group_id		:= p_to_cost_group_id;
527 	l_trolin_rec.lpn_id			:= p_lpn_id;
528 	l_trolin_rec.to_lpn_id		:= p_to_lpn_id;
529 /* ssia end of move order enhancement changes */
530 
531 --INVCONV BEGIN
532         l_trolin_rec.secondary_quantity                   := p_secondary_quantity;
533         l_trolin_rec.secondary_quantity_delivered         := p_secondary_quantity_delivered;
534         l_trolin_rec.secondary_quantity_detailed          := p_secondary_quantity_detailed;
535         l_trolin_rec.secondary_uom                        := p_secondary_uom_code;
536         l_trolin_rec.grade_code                           := p_grade_code;
537 --INVCONV END
538 
539     --  Set Operation.
540 
541     IF FND_API.To_Boolean(l_trolin_rec.db_flag) THEN
542         l_trolin_rec.operation := INV_GLOBALS.G_OPR_UPDATE;
543     ELSE
544         l_trolin_rec.operation := INV_GLOBALS.G_OPR_CREATE;
545     END IF;
546 
547     --  Populate trolin table
548 
549     l_trolin_tbl(1) := l_trolin_rec;
550     l_old_trolin_tbl(1) := l_old_trolin_rec;
551 
552     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
553 
554     INV_Transfer_Order_PVT.Process_Transfer_Order
555     (   p_api_version_number          => 1.0
556     ,   p_init_msg_list               => FND_API.G_TRUE
557     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
558     ,   x_return_status               => l_return_status
559     ,   x_msg_count                   => x_msg_count
560     ,   x_msg_data                    => x_msg_data
561     ,   p_control_rec                 => l_control_rec
562     ,   p_trolin_tbl                  => l_trolin_tbl
563     ,   p_old_trolin_tbl              => l_old_trolin_tbl
564     ,   x_trohdr_rec                  => l_x_trohdr_rec
565     ,   x_trolin_tbl                  => l_x_trolin_tbl
566     );
567 
568     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
569         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
570     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
571         RAISE FND_API.G_EXC_ERROR;
572     END IF;
573 /*    inv_debug.message('After Process Transfer Order'); */
574 
575 
576     --  Unload out tbl
577 
578     l_x_trolin_rec := l_x_trolin_tbl(1);
579 
580 /*
581     --  Init OUT NOCOPY parameters to missing.
582 
583     x_attribute1                   := FND_API.G_MISS_CHAR;
584     x_attribute10                  := FND_API.G_MISS_CHAR;
585     x_attribute11                  := FND_API.G_MISS_CHAR;
586     x_attribute12                  := FND_API.G_MISS_CHAR;
587     x_attribute13                  := FND_API.G_MISS_CHAR;
588     x_attribute14                  := FND_API.G_MISS_CHAR;
589     x_attribute15                  := FND_API.G_MISS_CHAR;
590     x_attribute2                   := FND_API.G_MISS_CHAR;
591     x_attribute3                   := FND_API.G_MISS_CHAR;
592     x_attribute4                   := FND_API.G_MISS_CHAR;
593     x_attribute5                   := FND_API.G_MISS_CHAR;
594     x_attribute6                   := FND_API.G_MISS_CHAR;
595     x_attribute7                   := FND_API.G_MISS_CHAR;
596     x_attribute8                   := FND_API.G_MISS_CHAR;
597     x_attribute9                   := FND_API.G_MISS_CHAR;
598     x_attribute_category           := FND_API.G_MISS_CHAR;
599     x_date_required                := FND_API.G_MISS_DATE;
600     x_from_locator_id              := FND_API.G_MISS_NUM;
601     x_from_subinventory_code       := FND_API.G_MISS_CHAR;
602     x_from_subinventory_id         := FND_API.G_MISS_NUM;
603     x_header_id                    := FND_API.G_MISS_NUM;
604     x_inventory_item_id            := FND_API.G_MISS_NUM;
605     x_line_id                      := FND_API.G_MISS_NUM;
606     x_line_number                  := FND_API.G_MISS_NUM;
607     x_line_status                  := FND_API.G_MISS_NUM;
608     x_lot_number                   := FND_API.G_MISS_CHAR;
609     x_organization_id              := FND_API.G_MISS_NUM;
610     x_project_id                   := FND_API.G_MISS_NUM;
611     x_quantity                     := FND_API.G_MISS_NUM;
612     x_quantity_delivered           := FND_API.G_MISS_NUM;
613     x_quantity_detailed            := FND_API.G_MISS_NUM;
614     x_reason_id                    := FND_API.G_MISS_NUM;
615     x_reference                    := FND_API.G_MISS_CHAR;
616     x_reference_id                 := FND_API.G_MISS_NUM;
617     x_reference_type_code          := FND_API.G_MISS_NUM;
618     x_revision                     := FND_API.G_MISS_CHAR;
619     x_serial_number_end            := FND_API.G_MISS_CHAR;
620     x_serial_number_start          := FND_API.G_MISS_CHAR;
621     x_status_date                  := FND_API.G_MISS_DATE;
622     x_task_id                      := FND_API.G_MISS_NUM;
623     x_to_account_id                := FND_API.G_MISS_NUM;
624     x_to_locator_id                := FND_API.G_MISS_NUM;
625     x_to_subinventory_code         := FND_API.G_MISS_CHAR;
626     x_to_subinventory_id           := FND_API.G_MISS_NUM;
627     x_transaction_header_id        := FND_API.G_MISS_NUM;
628     x_uom_code                     := FND_API.G_MISS_CHAR;
629     x_from_locator                 := FND_API.G_MISS_CHAR;
630     x_inventory_item               := FND_API.G_MISS_CHAR;
631     x_project                      := FND_API.G_MISS_CHAR;
632     x_reason                       := FND_API.G_MISS_CHAR;
633     x_reference_type               := FND_API.G_MISS_CHAR;
634     x_task                         := FND_API.G_MISS_CHAR;
635     x_to_account                   := FND_API.G_MISS_CHAR;
636     x_to_locator                   := FND_API.G_MISS_CHAR;
637     x_transaction_type_id	   := FND_API.G_MISS_NUM;
638     x_transaction_source_type_id   := FND_API.G_MISS_NUM;
639     x_txn_source_id		   := FND_API.G_MISS_NUM;
640     x_txn_source_line_id	   := FND_API.G_MISS_NUM;
641     x_txn_source_line_detail_id	   := FND_API.G_MISS_NUM;
642     x_to_organization_id	   := FND_API.G_MISS_NUM;
643     x_primary_quantity             := FND_API.G_MISS_NUM;
644     x_pick_strategy_id		   := FND_API.G_MISS_NUM;
645     x_put_away_strategy_id	   := FND_API.G_MISS_NUM;
646     x_unit_number	   	   := FND_API.G_MISS_CHAR;
647 
648     --  Load display out parameters if any
649 
650     l_trolin_val_rec := INV_Trolin_Util.Get_Values
651     (   p_trolin_rec                  => l_x_trolin_rec
652     ,   p_old_trolin_rec              => l_trolin_rec
653     );
654 
655     --  Return changed attributes.
656 
657     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute1,
658                             l_trolin_rec.attribute1)
659     THEN
660         x_attribute1 := l_x_trolin_rec.attribute1;
661     END IF;
662 
663     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute10,
664                             l_trolin_rec.attribute10)
665     THEN
666         x_attribute10 := l_x_trolin_rec.attribute10;
667     END IF;
668 
669     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute11,
670                             l_trolin_rec.attribute11)
671     THEN
672         x_attribute11 := l_x_trolin_rec.attribute11;
673     END IF;
674 
675     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute12,
676                             l_trolin_rec.attribute12)
677     THEN
678         x_attribute12 := l_x_trolin_rec.attribute12;
679     END IF;
680 
681     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute13,
682                             l_trolin_rec.attribute13)
683     THEN
684         x_attribute13 := l_x_trolin_rec.attribute13;
685     END IF;
686 
687     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute14,
688                             l_trolin_rec.attribute14)
689     THEN
690         x_attribute14 := l_x_trolin_rec.attribute14;
691     END IF;
692 
693     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute15,
694                             l_trolin_rec.attribute15)
695     THEN
696         x_attribute15 := l_x_trolin_rec.attribute15;
697     END IF;
698 
699     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute2,
700                             l_trolin_rec.attribute2)
701     THEN
702         x_attribute2 := l_x_trolin_rec.attribute2;
703     END IF;
704 
705     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute3,
706                             l_trolin_rec.attribute3)
707     THEN
708         x_attribute3 := l_x_trolin_rec.attribute3;
709     END IF;
710 
711     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute4,
712                             l_trolin_rec.attribute4)
713     THEN
714         x_attribute4 := l_x_trolin_rec.attribute4;
715     END IF;
716 
717     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute5,
718                             l_trolin_rec.attribute5)
719     THEN
720         x_attribute5 := l_x_trolin_rec.attribute5;
721     END IF;
722 
723     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute6,
724                             l_trolin_rec.attribute6)
725     THEN
726         x_attribute6 := l_x_trolin_rec.attribute6;
727     END IF;
728 
729     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute7,
730                             l_trolin_rec.attribute7)
731     THEN
732         x_attribute7 := l_x_trolin_rec.attribute7;
733     END IF;
734 
735     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute8,
736                             l_trolin_rec.attribute8)
737     THEN
738         x_attribute8 := l_x_trolin_rec.attribute8;
739     END IF;
740 
741     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute9,
742                             l_trolin_rec.attribute9)
743     THEN
744         x_attribute9 := l_x_trolin_rec.attribute9;
745     END IF;
746 
747     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.attribute_category,
748                             l_trolin_rec.attribute_category)
749     THEN
750         x_attribute_category := l_x_trolin_rec.attribute_category;
751     END IF;
752 
753     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.date_required,
754                             l_trolin_rec.date_required)
755     THEN
756         x_date_required := l_x_trolin_rec.date_required;
757     END IF;
758 
759     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.from_locator_id,
760                             l_trolin_rec.from_locator_id)
761     THEN
762         x_from_locator_id := l_x_trolin_rec.from_locator_id;
763         x_from_locator := l_trolin_val_rec.from_locator;
764     END IF;
765 
766     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.from_subinventory_code,
767                             l_trolin_rec.from_subinventory_code)
768     THEN
769         x_from_subinventory_code := l_x_trolin_rec.from_subinventory_code;
770     END IF;
771 
772     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.from_subinventory_id,
773                             l_trolin_rec.from_subinventory_id)
774     THEN
775         x_from_subinventory_id := l_x_trolin_rec.from_subinventory_id;
776     END IF;
777 
778     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.header_id,
779                             l_trolin_rec.header_id)
780     THEN
781         x_header_id := l_x_trolin_rec.header_id;
782     END IF;
783 
784     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.inventory_item_id,
785                             l_trolin_rec.inventory_item_id)
786     THEN
787         x_inventory_item_id := l_x_trolin_rec.inventory_item_id;
788         x_inventory_item := l_trolin_val_rec.inventory_item;
789     END IF;
790 
791     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.line_id,
792                             l_trolin_rec.line_id)
793     THEN
794         x_line_id := l_x_trolin_rec.line_id;
795     END IF;
796 
797     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.line_number,
798                             l_trolin_rec.line_number)
799     THEN
800         x_line_number := l_x_trolin_rec.line_number;
801     END IF;
802 
803     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.line_status,
804                             l_trolin_rec.line_status)
805     THEN
806         x_line_status := l_x_trolin_rec.line_status;
807     END IF;
808 
809     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.lot_number,
810                             l_trolin_rec.lot_number)
811     THEN
812         x_lot_number := l_x_trolin_rec.lot_number;
813     END IF;
814 
815     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.organization_id,
816                             l_trolin_rec.organization_id)
817     THEN
818         x_organization_id := l_x_trolin_rec.organization_id;
819     END IF;
820 
821     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.project_id,
822                             l_trolin_rec.project_id)
823     THEN
824         x_project_id := l_x_trolin_rec.project_id;
825         x_project := l_trolin_val_rec.project;
826     END IF;
827 
828     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.quantity,
829                             l_trolin_rec.quantity)
830     THEN
831         x_quantity := l_x_trolin_rec.quantity;
832     END IF;
833 
834     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.quantity_delivered,
835                             l_trolin_rec.quantity_delivered)
836     THEN
837         x_quantity_delivered := l_x_trolin_rec.quantity_delivered;
838     END IF;
839 
840     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.quantity_detailed,
841                             l_trolin_rec.quantity_detailed)
842     THEN
843         x_quantity_detailed := l_x_trolin_rec.quantity_detailed;
844     END IF;
845 
846     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.reason_id,
847                             l_trolin_rec.reason_id)
848     THEN
849         x_reason_id := l_x_trolin_rec.reason_id;
850         x_reason := l_trolin_val_rec.reason;
851     END IF;
852 
853     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.reference,
854                             l_trolin_rec.reference)
855     THEN
856         x_reference := l_x_trolin_rec.reference;
857     END IF;
858 
859     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.reference_id,
860                             l_trolin_rec.reference_id)
861     THEN
862         x_reference_id := l_x_trolin_rec.reference_id;
863         x_reference := l_trolin_val_rec.reference;
864     END IF;
865 
866     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.reference_type_code,
867                             l_trolin_rec.reference_type_code)
868     THEN
869         x_reference_type_code := l_x_trolin_rec.reference_type_code;
870         x_reference_type := l_trolin_val_rec.reference_type;
871     END IF;
872 
873     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.revision,
874                             l_trolin_rec.revision)
875     THEN
876         x_revision := l_x_trolin_rec.revision;
877     END IF;
878 
879     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.serial_number_end,
880                             l_trolin_rec.serial_number_end)
881     THEN
882         x_serial_number_end := l_x_trolin_rec.serial_number_end;
883     END IF;
884 
885     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.serial_number_start,
886                             l_trolin_rec.serial_number_start)
887     THEN
888         x_serial_number_start := l_x_trolin_rec.serial_number_start;
889     END IF;
890 
891     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.status_date,
892                             l_trolin_rec.status_date)
893     THEN
894         x_status_date := l_x_trolin_rec.status_date;
895     END IF;
896 
897     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.task_id,
898                             l_trolin_rec.task_id)
899     THEN
900         x_task_id := l_x_trolin_rec.task_id;
901         x_task := l_trolin_val_rec.task;
902     END IF;
903 
904     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.to_account_id,
905                             l_trolin_rec.to_account_id)
906     THEN
907         x_to_account_id := l_x_trolin_rec.to_account_id;
908         x_to_account := l_trolin_val_rec.to_account;
909     END IF;
910 
911     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.to_locator_id,
912                             l_trolin_rec.to_locator_id)
913     THEN
914         x_to_locator_id := l_x_trolin_rec.to_locator_id;
915         x_to_locator := l_trolin_val_rec.to_locator;
916     END IF;
917 
918     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.to_subinventory_code,
919                             l_trolin_rec.to_subinventory_code)
920     THEN
921         x_to_subinventory_code := l_x_trolin_rec.to_subinventory_code;
922     END IF;
923 
924     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.to_subinventory_id,
925                             l_trolin_rec.to_subinventory_id)
926     THEN
927         x_to_subinventory_id := l_x_trolin_rec.to_subinventory_id;
928     END IF;
929 
930     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.transaction_header_id,
931                             l_trolin_rec.transaction_header_id)
932     THEN
933         x_transaction_header_id := l_x_trolin_rec.transaction_header_id;
934     END IF;
935 
936     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.uom_code,
937                             l_trolin_rec.uom_code)
938     THEN
939         x_uom_code := l_x_trolin_rec.uom_code;
940     END IF;
941 
942     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.transaction_type_id,
943                             l_trolin_rec.transaction_type_id)
944     THEN
945         x_transaction_type_id := l_x_trolin_rec.transaction_type_id;
946     END IF;
947 
948     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.transaction_Source_type_id,
949                             l_trolin_rec.transaction_Source_type_id)
950     THEN
951         x_transaction_Source_type_id := l_x_trolin_rec.transaction_Source_type_id;
952     END IF;
953 
954     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.txn_source_id,
955                             l_trolin_rec.txn_source_id)
956     THEN
957         x_txn_source_id := l_x_trolin_rec.txn_source_id;
958     END IF;
959 
960     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.txn_source_line_id,
961                             l_trolin_rec.txn_source_line_id)
962     THEN
963         x_txn_source_line_id := l_x_trolin_rec.txn_source_line_id;
964     END IF;
965 
966     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.txn_source_line_detail_id,
967                             l_trolin_rec.txn_source_line_detail_id)
968     THEN
969         x_txn_source_line_detail_id := l_x_trolin_rec.txn_source_line_detail_id;
970     END IF;
971 
972     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.primary_quantity,
973                             l_trolin_rec.primary_quantity)
974     THEN
975         x_primary_quantity := l_x_trolin_rec.primary_quantity;
976     END IF;
977 
978     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.to_organization_id,
979                             l_trolin_rec.to_organization_id)
980     THEN
981         x_to_organization_id := l_x_trolin_rec.to_organization_id;
982     END IF;
983 
984     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.pick_strategy_id,
985                             l_trolin_rec.pick_strategy_id)
986     THEN
987         x_pick_strategy_id := l_x_trolin_rec.pick_strategy_id;
988     END IF;
989 
990     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.put_away_strategy_id,
991                             l_trolin_rec.put_away_strategy_id)
992     THEN
993         x_put_away_strategy_id := l_x_trolin_rec.put_away_strategy_id;
994     END IF;
995 
996     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.unit_number,
997                             l_trolin_rec.unit_number)
998     THEN
999         x_unit_number := l_x_trolin_rec.unit_number;
1000     END IF;
1001 
1002     IF NOT INV_GLOBALS.Equal(l_x_trolin_rec.ship_to_location_id,
1003                              l_trolin_rec.ship_to_location_id)
1004     THEN
1005         x_ship_to_location_id := l_x_trolin_rec.ship_to_location_id;
1006     END IF;
1007 
1008 */
1009 
1010 
1011     --  Write to cache.
1012 
1013 /*    inv_debug.message('Bef Write_trolin'); */
1014     Write_trolin
1015     (   p_trolin_rec                  => l_x_trolin_rec
1016     );
1017 
1018 /*    inv_debug.message('AFt Write_trolin'); */
1019     --  Set return status.
1020 
1021     x_return_status := FND_API.G_RET_STS_SUCCESS;
1022 
1023     --  Get message count and data
1024 
1025     FND_MSG_PUB.Count_And_Get
1026     (   p_count                       => x_msg_count
1027     ,   p_data                        => x_msg_data
1028     );
1029 
1030 
1031 EXCEPTION
1032 
1033     WHEN FND_API.G_EXC_ERROR THEN
1034 
1035         x_return_status := FND_API.G_RET_STS_ERROR;
1036 
1037         --  Get message count and data
1038 
1039         FND_MSG_PUB.Count_And_Get
1040         (   p_count                       => x_msg_count
1041         ,   p_data                        => x_msg_data
1042         );
1043 
1044     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1045 
1046         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1047 
1048         --  Get message count and data
1049 
1050         FND_MSG_PUB.Count_And_Get
1051         (   p_count                       => x_msg_count
1052         ,   p_data                        => x_msg_data
1053         );
1054 
1055     WHEN OTHERS THEN
1056 
1057         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1058 
1059         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1060         THEN
1061             FND_MSG_PUB.Add_Exc_Msg
1062             (   G_PKG_NAME
1063             ,   'Change_Attribute'
1064             );
1065         END IF;
1066 
1067         --  Get message count and data
1068 
1069         FND_MSG_PUB.Count_And_Get
1070         (   p_count                       => x_msg_count
1071         ,   p_data                        => x_msg_data
1072         );
1073 
1074 END Validate_Record;
1075 
1076 --  Procedure       Validate_And_Write
1077 --
1078 
1079 PROCEDURE Validate_And_Write
1080 (   x_return_status                 OUT NOCOPY VARCHAR2
1081 ,   x_msg_count                     OUT NOCOPY NUMBER
1082 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1083 ,   p_attribute1                    IN  VARCHAR2
1084 ,   p_attribute10                   IN  VARCHAR2
1085 ,   p_attribute11                   IN  VARCHAR2
1086 ,   p_attribute12                   IN  VARCHAR2
1087 ,   p_attribute13                   IN  VARCHAR2
1088 ,   p_attribute14                   IN  VARCHAR2
1089 ,   p_attribute15                   IN  VARCHAR2
1090 ,   p_attribute2                    IN  VARCHAR2
1091 ,   p_attribute3                    IN  VARCHAR2
1092 ,   p_attribute4                    IN  VARCHAR2
1093 ,   p_attribute5                    IN  VARCHAR2
1094 ,   p_attribute6                    IN  VARCHAR2
1095 ,   p_attribute7                    IN  VARCHAR2
1096 ,   p_attribute8                    IN  VARCHAR2
1097 ,   p_attribute9                    IN  VARCHAR2
1098 ,   p_attribute_category            IN  VARCHAR2
1099 ,   p_date_required                 IN  DATE
1100 ,   p_from_locator_id               IN  NUMBER
1101 ,   p_from_subinventory_code        IN  VARCHAR2
1102 ,   p_from_subinventory_id          IN  NUMBER
1103 ,   p_header_id                     IN  NUMBER
1104 ,   p_inventory_item_id             IN  NUMBER
1105 ,   p_line_id                       IN  NUMBER
1106 ,   p_line_number                   IN  NUMBER
1107 ,   p_line_status                   IN  NUMBER
1108 ,   p_lot_number                    IN  VARCHAR2
1109 ,   p_organization_id               IN  NUMBER
1110 ,   p_project_id                    IN  NUMBER
1111 ,   p_quantity                      IN  NUMBER
1112 ,   p_quantity_delivered            IN  NUMBER
1113 ,   p_quantity_detailed             IN  NUMBER
1114 ,   p_reason_id                     IN  NUMBER
1115 ,   p_reference                     IN  VARCHAR2
1116 ,   p_reference_id                  IN  NUMBER
1117 ,   p_reference_type_code           IN  NUMBER
1118 ,   p_revision                      IN  VARCHAR2
1119 ,   p_serial_number_end             IN  VARCHAR2
1120 ,   p_serial_number_start           IN  VARCHAR2
1121 ,   p_status_date                   IN  DATE
1122 ,   p_task_id                       IN  NUMBER
1123 ,   p_to_account_id                 IN  NUMBER
1124 ,   p_to_locator_id                 IN  NUMBER
1125 ,   p_to_subinventory_code          IN  VARCHAR2
1126 ,   p_to_subinventory_id            IN  NUMBER
1127 ,   p_transaction_header_id         IN  NUMBER
1128 ,   p_uom_code                      IN  VARCHAR2
1129 ,   p_transaction_type_id           IN  NUMBER
1130 ,   p_transaction_source_type_id    IN  NUMBER
1131 ,   p_txn_source_id                 IN  NUMBER
1132 ,   p_txn_source_line_id            IN  NUMBER
1133 ,   p_txn_source_line_detail_id     IN  NUMBER
1134 ,   p_primary_quantity              IN  NUMBER
1135 ,   p_to_organization_id            IN  NUMBER
1136 ,   p_pick_strategy_id              IN  NUMBER
1137 ,   p_put_away_strategy_id          IN  NUMBER
1138 ,   p_unit_number          	    IN  VARCHAR2
1139 ,   p_ship_to_location_id           IN  NUMBER
1140 ,   p_from_cost_group_id	    IN  NUMBER DEFAULT NULL
1141 ,   p_to_cost_group_id		    IN  NUMBER DEFAULT NULL
1142 ,   p_lpn_id			    IN  NUMBER DEFAULT NULL
1143 ,   p_to_lpn_id		    IN  NUMBER DEFAULT NULL
1144 ,   p_db_flag                       IN  VARCHAR2
1145 ,   p_secondary_quantity            IN NUMBER DEFAULT NULL   --INVCONV change
1146 ,   p_secondary_quantity_delivered  IN NUMBER DEFAULT NULL   --INVCONV change
1147 ,   p_secondary_quantity_detailed   IN NUMBER DEFAULT NULL   --INVCONV change
1148 ,   p_secondary_uom_code            IN VARCHAR2 DEFAULT NULL --INVCONV change
1149 ,   p_grade_code                    IN VARCHAR2 DEFAULT NULL --INVCONV change
1150 ,   x_creation_date                 OUT NOCOPY DATE
1151 ,   x_created_by                    OUT NOCOPY NUMBER
1152 ,   x_last_update_date              OUT NOCOPY DATE
1153 ,   x_last_updated_by               OUT NOCOPY NUMBER
1154 ,   x_last_update_login             OUT NOCOPY NUMBER
1155 )
1156 IS
1157 l_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
1158 l_g_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1159 l_old_trolin_rec              INV_Move_Order_PUB.Trolin_Rec_Type;
1160 l_trolin_tbl                  INV_Move_Order_PUB.Trolin_Tbl_Type;
1161 l_old_trolin_tbl              INV_Move_Order_PUB.Trolin_Tbl_Type;
1162 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
1163 l_return_status               VARCHAR2(1);
1164 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1165 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1166 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1167     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1168 BEGIN
1169 
1170     --  Set control flags.
1171 
1172     l_control_rec.controlled_operation := TRUE;
1173     l_control_rec.validate_entity      := TRUE;
1174     l_control_rec.write_to_DB          := TRUE;
1175 
1176     l_control_rec.default_attributes   := FALSE;
1177     l_control_rec.change_attributes    := FALSE;
1178     l_control_rec.process              := FALSE;
1179 
1180     --  Instruct API to retain its caches
1181 
1182     l_control_rec.clear_api_cache      := FALSE;
1183     l_control_rec.clear_api_requests   := FALSE;
1184 
1185     g_trolin_rec.date_required  := p_date_required;
1186     g_trolin_rec.from_locator_id        := p_from_locator_id;
1187     g_trolin_rec.from_subinventory_code:= p_from_subinventory_code;
1188     g_trolin_rec.from_subinventory_id := p_from_subinventory_id;
1189     g_trolin_rec.header_id              := p_header_id;
1190     g_trolin_rec.inventory_item_id      := p_inventory_item_id;
1191     g_trolin_rec.line_id                := p_line_id;
1192     g_trolin_rec.line_number            := p_line_number;
1193     g_trolin_rec.line_status            := p_line_status;
1194     g_trolin_rec.lot_number             := p_lot_number;
1195     g_trolin_rec.organization_id        := p_organization_id;
1196     g_trolin_rec.project_id             := p_project_id;
1197     g_trolin_rec.quantity               := p_quantity;
1198     g_trolin_rec.quantity_delivered     := p_quantity_delivered;
1199     g_trolin_rec.quantity_detailed      := p_quantity_detailed;
1200     g_trolin_rec.reason_id              := p_reason_id;
1201     g_trolin_rec.reference              := p_reference;
1202     g_trolin_rec.reference_id   := p_reference_id;
1203     g_trolin_rec.reference_type_code    := p_reference_type_code;
1204     g_trolin_rec.revision               := p_revision;
1205     g_trolin_rec.serial_number_end      := p_serial_number_end;
1206     g_trolin_rec.serial_number_start    := p_serial_number_start;
1207     g_trolin_rec.status_date            := p_status_date;
1208     g_trolin_rec.task_id                := p_task_id;
1209     g_trolin_rec.to_account_id  := p_to_account_id;
1210     g_trolin_rec.to_locator_id  := p_to_locator_id;
1211     g_trolin_rec.to_subinventory_code := p_to_subinventory_code;
1212     g_trolin_rec.to_subinventory_id     := p_to_subinventory_id;
1213     g_trolin_rec.transaction_header_id:= p_transaction_header_id;
1214     g_trolin_rec.uom_code               := p_uom_code;
1215     g_trolin_rec.attribute1             := p_attribute1;
1216     g_trolin_rec.attribute10            := p_attribute10;
1217     g_trolin_rec.attribute11            := p_attribute11;
1218     g_trolin_rec.attribute12            := p_attribute12;
1219     g_trolin_rec.attribute13            := p_attribute13;
1220     g_trolin_rec.attribute14            := p_attribute14;
1221     g_trolin_rec.attribute15            := p_attribute15;
1222     g_trolin_rec.attribute2             := p_attribute2;
1223     g_trolin_rec.attribute3             := p_attribute3;
1224     g_trolin_rec.attribute4             := p_attribute4;
1225     g_trolin_rec.attribute5             := p_attribute5;
1226     g_trolin_rec.attribute6             := p_attribute6;
1227     g_trolin_rec.attribute7             := p_attribute7;
1228     g_trolin_rec.attribute8             := p_attribute8;
1229     g_trolin_rec.attribute9             := p_attribute9;
1230     g_trolin_rec.attribute_category     := p_attribute_category;
1231 /* ssia added for move order enhancement changes */
1232     g_trolin_rec.transaction_type_id	:= p_transaction_type_id;
1233     g_trolin_rec.transaction_source_type_id	:= p_transaction_source_type_id;
1234     g_trolin_rec.txn_source_id	:= p_txn_source_id;
1235     g_trolin_rec.txn_source_line_id	:= p_txn_source_line_id;
1236     g_trolin_rec.txn_source_line_detail_id	:= p_txn_source_line_detail_id;
1237     g_trolin_rec.primary_quantity	:= p_primary_quantity;
1238     g_trolin_rec.to_organization_id	:= p_to_organization_id;
1239     g_trolin_rec.pick_strategy_id	:= p_pick_strategy_id;
1240     g_trolin_rec.put_away_strategy_id	:= p_put_away_strategy_id;
1241     g_trolin_rec.unit_number		:= p_unit_number;
1242     g_trolin_rec.ship_to_location_id    := p_ship_to_location_id;
1243     g_trolin_Rec.from_cost_Group_id     := p_from_cost_Group_id;
1244     g_trolin_rec.to_cost_group_id       := p_to_cost_group_id;
1245     g_trolin_rec.lpn_id                 := p_lpn_id;
1246     g_trolin_rec.to_lpn_id        := p_to_lpn_id;
1247     g_trolin_rec.db_flag                := p_db_flag;
1248 
1249 /* ssia end of move order enhancement changes */
1250 --INVCONV BEGIN
1251     g_trolin_rec.secondary_quantity               := p_secondary_quantity;
1252     g_trolin_rec.secondary_quantity_delivered     := p_secondary_quantity_delivered;
1253     g_trolin_rec.secondary_quantity_detailed      := p_secondary_quantity_detailed;
1254     g_trolin_rec.secondary_uom                    := p_secondary_uom_code;
1255     g_trolin_rec.grade_code                       := p_grade_code;
1256 --INVCONV END
1257 
1258     --  Read trolin from cache
1259 
1260     l_old_trolin_rec := Get_trolin
1261     (   p_db_record                   => TRUE
1262     ,   p_line_id                     => p_line_id
1263     );
1264 
1265     l_trolin_rec := Get_trolin
1266     (   p_db_record                   => FALSE
1267     ,   p_line_id                     => p_line_id
1268     );
1269 
1270     --  Set Operation.
1271 
1272     IF FND_API.To_Boolean(l_trolin_rec.db_flag) THEN
1273         l_trolin_rec.operation := INV_GLOBALS.G_OPR_UPDATE;
1274     ELSE
1275         l_trolin_rec.operation := INV_GLOBALS.G_OPR_CREATE;
1276     END IF;
1277 
1278     --  Populate trolin table
1279 
1280     l_trolin_tbl(1) := l_trolin_rec;
1281     l_old_trolin_tbl(1) := l_old_trolin_rec;
1282 
1283     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
1284 
1285     INV_Transfer_Order_PVT.Process_Transfer_Order
1286     (   p_api_version_number          => 1.0
1287     ,   p_init_msg_list               => FND_API.G_TRUE
1288     ,   x_return_status               => l_return_status
1289     ,   x_msg_count                   => x_msg_count
1290     ,   x_msg_data                    => x_msg_data
1291     ,   p_control_rec                 => l_control_rec
1292     ,   p_trolin_tbl                  => l_trolin_tbl
1293     ,   p_old_trolin_tbl              => l_old_trolin_tbl
1294     ,   x_trohdr_rec                  => l_x_trohdr_rec
1295     ,   x_trolin_tbl                  => l_x_trolin_tbl
1296     );
1297 
1298     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1299         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1300     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1301         RAISE FND_API.G_EXC_ERROR;
1302     END IF;
1303 
1304 
1305     --  Load OUT parameters.
1306 
1307     l_x_trolin_rec := l_x_trolin_tbl(1);
1308 
1309     x_creation_date                := l_x_trolin_rec.creation_date;
1310     x_created_by                   := l_x_trolin_rec.created_by;
1311     x_last_update_date             := l_x_trolin_rec.last_update_date;
1312     x_last_updated_by              := l_x_trolin_rec.last_updated_by;
1313     x_last_update_login            := l_x_trolin_rec.last_update_login;
1314 
1315     --  Clear trolin record cache
1316 
1317     Clear_trolin;
1318 
1319     --  Keep track of performed operations.
1320 
1321     l_old_trolin_rec.operation := l_trolin_rec.operation;
1322 
1323 
1324     --  Set return status.
1325 
1326     x_return_status := FND_API.G_RET_STS_SUCCESS;
1327 
1328     --  Get message count and data
1329 
1330     FND_MSG_PUB.Count_And_Get
1331     (   p_count                       => x_msg_count
1332     ,   p_data                        => x_msg_data
1333     );
1334 
1335 
1336 EXCEPTION
1337 
1338     WHEN FND_API.G_EXC_ERROR THEN
1339 
1340         x_return_status := FND_API.G_RET_STS_ERROR;
1341 
1342         --  Get message count and data
1343 
1344         FND_MSG_PUB.Count_And_Get
1345         (   p_count                       => x_msg_count
1346         ,   p_data                        => x_msg_data
1347         );
1348 
1349     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1350 
1351         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1352 
1353         --  Get message count and data
1354 
1355         FND_MSG_PUB.Count_And_Get
1356         (   p_count                       => x_msg_count
1357         ,   p_data                        => x_msg_data
1358         );
1359 
1360     WHEN OTHERS THEN
1361 
1362         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1363 
1364         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1365         THEN
1366             FND_MSG_PUB.Add_Exc_Msg
1367             (   G_PKG_NAME
1368             ,   'Validate_And_Write'
1369             );
1370         END IF;
1371 
1372         --  Get message count and data
1373 
1374         FND_MSG_PUB.Count_And_Get
1375         (   p_count                       => x_msg_count
1376         ,   p_data                        => x_msg_data
1377         );
1378 
1379 END Validate_And_Write;
1380 
1381 --  Procedure       Delete_Row
1382 --
1383 
1384 PROCEDURE Delete_Row
1385 (   x_return_status                 OUT NOCOPY VARCHAR2
1386 ,   x_msg_count                     OUT NOCOPY NUMBER
1387 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1388 ,   p_line_id                       IN  NUMBER
1389 )
1390 IS
1391 l_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
1392 l_trolin_tbl                  INV_Move_Order_PUB.Trolin_Tbl_Type;
1393 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
1394 l_return_status               VARCHAR2(1);
1395 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1396 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1397 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1398     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1399 BEGIN
1400 
1401     --  Set control flags.
1402 
1403     l_control_rec.controlled_operation := TRUE;
1404     l_control_rec.validate_entity      := TRUE;
1405     l_control_rec.write_to_DB          := TRUE;
1406 
1407     l_control_rec.default_attributes   := FALSE;
1408     l_control_rec.change_attributes    := FALSE;
1409     l_control_rec.process              := FALSE;
1410 
1411     --  Instruct API to retain its caches
1412 
1413     l_control_rec.clear_api_cache      := FALSE;
1414     l_control_rec.clear_api_requests   := FALSE;
1415 
1416     --  Read DB record from cache
1417 
1418     l_trolin_rec := Get_trolin
1419     (   p_db_record                   => TRUE
1420     ,   p_line_id                     => p_line_id
1421     );
1422 
1423     --  Set Operation.
1424 
1425     l_trolin_rec.operation := INV_GLOBALS.G_OPR_DELETE;
1426 
1427     --  Populate trolin table
1428 
1429     l_trolin_tbl(1) := l_trolin_rec;
1430 
1431     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
1432 
1433     INV_Transfer_Order_PVT.Process_Transfer_Order
1434     (   p_api_version_number          => 1.0
1435     ,   p_init_msg_list               => FND_API.G_TRUE
1436     ,   x_return_status               => l_return_status
1437     ,   x_msg_count                   => x_msg_count
1438     ,   x_msg_data                    => x_msg_data
1439     ,   p_control_rec                 => l_control_rec
1440     ,   p_trolin_tbl                  => l_trolin_tbl
1441     ,   x_trohdr_rec                  => l_x_trohdr_rec
1442     ,   x_trolin_tbl                  => l_x_trolin_tbl
1443     );
1444 
1445     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1446         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1447     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1448         RAISE FND_API.G_EXC_ERROR;
1449     END IF;
1450 
1451 
1452     --  Clear trolin record cache
1453 
1454     Clear_trolin;
1455 
1456     --  Set return status.
1457 
1458     x_return_status := FND_API.G_RET_STS_SUCCESS;
1459 
1460     --  Get message count and data
1461 
1462     FND_MSG_PUB.Count_And_Get
1463     (   p_count                       => x_msg_count
1464     ,   p_data                        => x_msg_data
1465     );
1466 
1467 
1468 EXCEPTION
1469 
1470     WHEN FND_API.G_EXC_ERROR THEN
1471 
1472         x_return_status := FND_API.G_RET_STS_ERROR;
1473 
1474         --  Get message count and data
1475 
1476         FND_MSG_PUB.Count_And_Get
1477         (   p_count                       => x_msg_count
1478         ,   p_data                        => x_msg_data
1479         );
1480 
1481     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1482 
1483         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1484 
1485         --  Get message count and data
1486 
1487         FND_MSG_PUB.Count_And_Get
1488         (   p_count                       => x_msg_count
1489         ,   p_data                        => x_msg_data
1490         );
1491 
1492     WHEN OTHERS THEN
1493 
1494         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1495 
1496         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1497         THEN
1498             FND_MSG_PUB.Add_Exc_Msg
1499             (   G_PKG_NAME
1500             ,   'Delete_Row'
1501             );
1502         END IF;
1503 
1504         --  Get message count and data
1505 
1506         FND_MSG_PUB.Count_And_Get
1507         (   p_count                       => x_msg_count
1508         ,   p_data                        => x_msg_data
1509         );
1510 
1511 END Delete_Row;
1512 
1513 --  Procedure       Process_Entity
1514 --
1515 
1516 PROCEDURE Process_Entity
1517 (   x_return_status                 OUT NOCOPY VARCHAR2
1518 ,   x_msg_count                     OUT NOCOPY NUMBER
1519 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1520 )
1521 IS
1522 l_control_rec                 INV_GLOBALS.Control_Rec_Type;
1523 l_return_status               VARCHAR2(1);
1524 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1525 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1526 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1527     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1528 BEGIN
1529 
1530     --  Set control flags.
1531 
1532     l_control_rec.controlled_operation := TRUE;
1533     l_control_rec.process              := TRUE;
1534     l_control_rec.process_entity       := INV_GLOBALS.G_ENTITY_TROLIN;
1535 
1536     l_control_rec.default_attributes   := FALSE;
1537     l_control_rec.change_attributes    := FALSE;
1538     l_control_rec.validate_entity      := FALSE;
1539     l_control_rec.write_to_DB          := FALSE;
1540 
1541     --  Instruct API to clear its request table
1542 
1543     l_control_rec.clear_api_cache      := FALSE;
1544     l_control_rec.clear_api_requests   := FALSE;
1545 
1546     --  Call INV_Transfer_Order_PVT.Process_Transfer_Order
1547 
1548     INV_Transfer_Order_PVT.Process_Transfer_Order
1549     (   p_api_version_number          => 1.0
1550     ,   p_init_msg_list               => FND_API.G_TRUE
1551     ,   x_return_status               => l_return_status
1552     ,   x_msg_count                   => x_msg_count
1553     ,   x_msg_data                    => x_msg_data
1554     ,   p_control_rec                 => l_control_rec
1555     ,   x_trohdr_rec                  => l_x_trohdr_rec
1556     ,   x_trolin_tbl                  => l_x_trolin_tbl
1557     );
1558 
1559     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1560         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1561     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1562         RAISE FND_API.G_EXC_ERROR;
1563     END IF;
1564 
1565 
1566     --  Set return status.
1567 
1568     x_return_status := FND_API.G_RET_STS_SUCCESS;
1569 
1570     --  Get message count and data
1571 
1572     FND_MSG_PUB.Count_And_Get
1573     (   p_count                       => x_msg_count
1574     ,   p_data                        => x_msg_data
1575     );
1576 
1577 
1578 EXCEPTION
1579 
1580     WHEN FND_API.G_EXC_ERROR THEN
1581 
1582         x_return_status := FND_API.G_RET_STS_ERROR;
1583 
1584         --  Get message count and data
1585 
1586         FND_MSG_PUB.Count_And_Get
1587         (   p_count                       => x_msg_count
1588         ,   p_data                        => x_msg_data
1589         );
1590 
1591     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1592 
1593         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1594 
1595         --  Get message count and data
1596 
1597         FND_MSG_PUB.Count_And_Get
1598         (   p_count                       => x_msg_count
1599         ,   p_data                        => x_msg_data
1600         );
1601 
1602     WHEN OTHERS THEN
1603 
1604         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1605 
1606         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1607         THEN
1608             FND_MSG_PUB.Add_Exc_Msg
1609             (   G_PKG_NAME
1610             ,   'Process_Entity'
1611             );
1612         END IF;
1613 
1614         --  Get message count and data
1615 
1616         FND_MSG_PUB.Count_And_Get
1617         (   p_count                       => x_msg_count
1618         ,   p_data                        => x_msg_data
1619         );
1620 
1621 END Process_Entity;
1622 
1623 --  Procedure       lock_Row
1624 --
1625 
1626 PROCEDURE Lock_Row
1627 (   x_return_status                 OUT NOCOPY VARCHAR2
1628 ,   x_msg_count                     OUT NOCOPY NUMBER
1629 ,   x_msg_data                      OUT NOCOPY VARCHAR2
1630 ,   p_attribute1                    IN  VARCHAR2
1631 ,   p_attribute10                   IN  VARCHAR2
1632 ,   p_attribute11                   IN  VARCHAR2
1633 ,   p_attribute12                   IN  VARCHAR2
1634 ,   p_attribute13                   IN  VARCHAR2
1635 ,   p_attribute14                   IN  VARCHAR2
1636 ,   p_attribute15                   IN  VARCHAR2
1637 ,   p_attribute2                    IN  VARCHAR2
1638 ,   p_attribute3                    IN  VARCHAR2
1639 ,   p_attribute4                    IN  VARCHAR2
1640 ,   p_attribute5                    IN  VARCHAR2
1641 ,   p_attribute6                    IN  VARCHAR2
1642 ,   p_attribute7                    IN  VARCHAR2
1643 ,   p_attribute8                    IN  VARCHAR2
1644 ,   p_attribute9                    IN  VARCHAR2
1645 ,   p_attribute_category            IN  VARCHAR2
1646 ,   p_created_by                    IN  NUMBER
1647 ,   p_creation_date                 IN  DATE
1648 ,   p_date_required                 IN  DATE
1649 ,   p_from_locator_id               IN  NUMBER
1650 ,   p_from_subinventory_code        IN  VARCHAR2
1651 ,   p_from_subinventory_id          IN  NUMBER
1652 ,   p_header_id                     IN  NUMBER
1653 ,   p_inventory_item_id             IN  NUMBER
1654 ,   p_last_updated_by               IN  NUMBER
1655 ,   p_last_update_date              IN  DATE
1656 ,   p_last_update_login             IN  NUMBER
1657 ,   p_line_id                       IN  NUMBER
1658 ,   p_line_number                   IN  NUMBER
1659 ,   p_line_status                   IN  NUMBER
1660 ,   p_lot_number                    IN  VARCHAR2
1661 ,   p_organization_id               IN  NUMBER
1662 ,   p_program_application_id        IN  NUMBER
1663 ,   p_program_id                    IN  NUMBER
1664 ,   p_program_update_date           IN  DATE
1665 ,   p_project_id                    IN  NUMBER
1666 ,   p_quantity                      IN  NUMBER
1667 ,   p_quantity_delivered            IN  NUMBER
1668 ,   p_quantity_detailed             IN  NUMBER
1669 ,   p_reason_id                     IN  NUMBER
1670 ,   p_reference                     IN  VARCHAR2
1671 ,   p_reference_id                  IN  NUMBER
1672 ,   p_reference_type_code           IN  NUMBER
1673 ,   p_request_id                    IN  NUMBER
1674 ,   p_revision                      IN  VARCHAR2
1675 ,   p_serial_number_end             IN  VARCHAR2
1676 ,   p_serial_number_start           IN  VARCHAR2
1677 ,   p_status_date                   IN  DATE
1678 ,   p_task_id                       IN  NUMBER
1679 ,   p_to_account_id                 IN  NUMBER
1680 ,   p_to_locator_id                 IN  NUMBER
1681 ,   p_to_subinventory_code          IN  VARCHAR2
1682 ,   p_to_subinventory_id            IN  NUMBER
1683 ,   p_transaction_header_id         IN  NUMBER
1684 ,   p_transaction_type_id           IN  NUMBER
1685 ,   p_transaction_source_type_id    IN  NUMBER
1686 ,   p_txn_source_id                 IN  NUMBER
1687 ,   p_txn_source_line_id            IN  NUMBER
1688 ,   p_txn_source_line_detail_id     IN  NUMBER
1689 ,   p_primary_quantity              IN  NUMBER
1690 ,   p_to_organization_id            IN  NUMBER
1691 ,   p_pick_strategy_id              IN  NUMBER
1692 ,   p_put_away_strategy_id          IN  NUMBER
1693 ,   p_unit_number          	    IN  VARCHAR2
1694 ,   p_uom_code                      IN  VARCHAR2
1695 ,   p_ship_to_location_id           IN  NUMBER
1696 ,   p_from_cost_group_id	    IN  NUMBER DEFAULT NULL
1697 ,   p_to_cost_group_id		    IN  NUMBER DEFAULT NULL
1698 ,   p_lpn_id			    IN  NUMBER DEFAULT NULL
1699 ,   p_to_lpn_id               IN  NUMBER DEFAULT NULL
1700 ,   p_secondary_quantity            IN NUMBER DEFAULT NULL   --INVCONV change
1701 ,   p_secondary_quantity_delivered  IN NUMBER DEFAULT NULL   --INVCONV change
1702 ,   p_secondary_quantity_detailed   IN NUMBER DEFAULT NULL   --INVCONV change
1703 ,   p_secondary_uom_code            IN VARCHAR2 DEFAULT NULL --INVCONV change
1704 ,   p_grade_code                    IN VARCHAR2 DEFAULT NULL --INVCONV change
1705 )
1706 IS
1707 l_return_status               VARCHAR2(1);
1708 l_trolin_rec                  INV_Move_Order_PUB.Trolin_Rec_Type;
1709 l_trolin_tbl                  INV_Move_Order_PUB.Trolin_Tbl_Type;
1710 l_x_trohdr_rec                INV_Move_Order_PUB.Trohdr_Rec_Type;
1711 l_x_trolin_rec                INV_Move_Order_PUB.Trolin_Rec_Type;
1712 l_x_trolin_tbl                INV_Move_Order_PUB.Trolin_Tbl_Type;
1713     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1714 BEGIN
1715 
1716     --  Load trolin record
1717 
1718     l_trolin_rec.attribute1        := p_attribute1;
1719     l_trolin_rec.attribute10       := p_attribute10;
1720     l_trolin_rec.attribute11       := p_attribute11;
1721     l_trolin_rec.attribute12       := p_attribute12;
1722     l_trolin_rec.attribute13       := p_attribute13;
1723     l_trolin_rec.attribute14       := p_attribute14;
1724     l_trolin_rec.attribute15       := p_attribute15;
1725     l_trolin_rec.attribute2        := p_attribute2;
1726     l_trolin_rec.attribute3        := p_attribute3;
1727     l_trolin_rec.attribute4        := p_attribute4;
1728     l_trolin_rec.attribute5        := p_attribute5;
1729     l_trolin_rec.attribute6        := p_attribute6;
1730     l_trolin_rec.attribute7        := p_attribute7;
1731     l_trolin_rec.attribute8        := p_attribute8;
1732     l_trolin_rec.attribute9        := p_attribute9;
1733     l_trolin_rec.attribute_category := p_attribute_category;
1734     l_trolin_rec.created_by        := p_created_by;
1735     l_trolin_rec.creation_date     := p_creation_date;
1736     l_trolin_rec.date_required     := p_date_required;
1737     l_trolin_rec.from_locator_id   := p_from_locator_id;
1738     l_trolin_rec.from_subinventory_code := p_from_subinventory_code;
1739     l_trolin_rec.from_subinventory_id := p_from_subinventory_id;
1740     l_trolin_rec.header_id         := p_header_id;
1741     l_trolin_rec.inventory_item_id := p_inventory_item_id;
1742     l_trolin_rec.last_updated_by   := p_last_updated_by;
1743     l_trolin_rec.last_update_date  := p_last_update_date;
1744     l_trolin_rec.last_update_login := p_last_update_login;
1745     l_trolin_rec.line_id           := p_line_id;
1746     l_trolin_rec.line_number       := p_line_number;
1747     l_trolin_rec.line_status       := p_line_status;
1748     l_trolin_rec.lot_number        := p_lot_number;
1749     l_trolin_rec.organization_id   := p_organization_id;
1750     l_trolin_rec.program_application_id := p_program_application_id;
1751     l_trolin_rec.program_id        := p_program_id;
1752     l_trolin_rec.program_update_date := p_program_update_date;
1753     l_trolin_rec.project_id        := p_project_id;
1754     l_trolin_rec.quantity          := p_quantity;
1755     l_trolin_rec.quantity_delivered := p_quantity_delivered;
1756     l_trolin_rec.quantity_detailed := p_quantity_detailed;
1757     l_trolin_rec.reason_id         := p_reason_id;
1758     l_trolin_rec.reference         := p_reference;
1759     l_trolin_rec.reference_id      := p_reference_id;
1760     l_trolin_rec.reference_type_code := p_reference_type_code;
1761     l_trolin_rec.request_id        := p_request_id;
1762     l_trolin_rec.revision          := p_revision;
1763     l_trolin_rec.serial_number_end := p_serial_number_end;
1764     l_trolin_rec.serial_number_start := p_serial_number_start;
1765     l_trolin_rec.status_date       := p_status_date;
1766     l_trolin_rec.task_id           := p_task_id;
1767     l_trolin_rec.to_account_id     := p_to_account_id;
1768     l_trolin_rec.to_locator_id     := p_to_locator_id;
1769     l_trolin_rec.to_subinventory_code := p_to_subinventory_code;
1770     l_trolin_rec.to_subinventory_id := p_to_subinventory_id;
1771     l_trolin_rec.transaction_header_id := p_transaction_header_id;
1772 /* ssia added for move order enhancement */
1773     l_trolin_rec.transaction_type_id          := p_transaction_type_id;
1774     l_trolin_rec.transaction_source_type_id          := p_transaction_source_type_id;
1775     l_trolin_rec.txn_source_id          := p_txn_source_id;
1776     l_trolin_rec.txn_source_line_id          := p_txn_source_line_id;
1777     l_trolin_rec.txn_source_line_detail_id          := p_txn_source_line_detail_id;
1778     l_trolin_rec.primary_quantity          := p_primary_quantity;
1779     l_trolin_rec.to_organization_id          := p_to_organization_id;
1780     l_trolin_rec.pick_strategy_id          := p_pick_strategy_id;
1781     l_trolin_rec.put_away_strategy_id          := p_put_away_strategy_id;
1782     l_trolin_rec.unit_number          := p_unit_number;
1783     l_trolin_rec.uom_code          := p_uom_code;
1784     l_trolin_rec.ship_to_location_id := p_ship_to_location_id;
1785     l_trolin_Rec.from_cost_group_id := p_from_cost_group_id;
1786     l_trolin_rec.to_cost_group_id := p_to_cost_group_id;
1787     l_trolin_rec.lpn_id := p_lpn_id;
1788     l_trolin_rec.to_lpn_id := p_to_lpn_id;
1789 
1790 /* ssia end of move order enhancement changes */
1791 
1792 --INVCONV BEGIN
1793     l_trolin_rec.secondary_quantity          := p_secondary_quantity;
1794     l_trolin_rec.secondary_quantity_delivered := p_secondary_quantity_delivered;
1795     l_trolin_rec.secondary_quantity_detailed := p_secondary_quantity_detailed;
1796     l_trolin_rec.secondary_uom               := p_secondary_uom_code;
1797     l_trolin_rec.grade_code                  := p_grade_code;
1798 --INVCONV END
1799 
1800     --  Populate trolin table
1801 
1802     l_trolin_tbl(1) := l_trolin_rec;
1803 
1804     --  Call INV_Transfer_Order_PVT.Lock_Transfer_Order
1805 
1806     INV_Transfer_Order_PVT.Lock_Transfer_Order
1807     (   p_api_version_number          => 1.0
1808     ,   p_init_msg_list               => FND_API.G_TRUE
1809     ,   x_return_status               => l_return_status
1810     ,   x_msg_count                   => x_msg_count
1811     ,   x_msg_data                    => x_msg_data
1812     ,   p_trolin_tbl                  => l_trolin_tbl
1813     ,   x_trohdr_rec                  => l_x_trohdr_rec
1814     ,   x_trolin_tbl                  => l_x_trolin_tbl
1815     );
1816 
1817     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1818 
1819         --  Set DB flag and write record to cache.
1820 
1821         l_x_trolin_rec.db_flag := FND_API.G_TRUE;
1822 
1823         Write_trolin
1824         (   p_trolin_rec                  => l_x_trolin_rec
1825         ,   p_db_record                   => TRUE
1826         );
1827 
1828     END IF;
1829 
1830     --  Set return status.
1831 
1832     x_return_status := l_return_status;
1833 
1834     --  Get message count and data
1835 
1836     FND_MSG_PUB.Count_And_Get
1837     (   p_count                       => x_msg_count
1838     ,   p_data                        => x_msg_data
1839     );
1840 
1841 
1842 EXCEPTION
1843 
1844     WHEN OTHERS THEN
1845 
1846         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1847         THEN
1848             FND_MSG_PUB.Add_Exc_Msg
1849             (   G_PKG_NAME
1850             ,   'Lock_Row'
1851             );
1852         END IF;
1853 
1854         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1855 
1856         --  Get message count and data
1857 
1858         FND_MSG_PUB.Count_And_Get
1859         (   p_count                       => x_msg_count
1860         ,   p_data                        => x_msg_data
1861         );
1862 
1863 
1864 
1865 END Lock_Row;
1866 
1867 --  Procedures maintaining trolin record cache.
1868 
1869 PROCEDURE Write_trolin
1870 (   p_trolin_rec                    IN  INV_Move_Order_PUB.Trolin_Rec_Type
1871 ,   p_db_record                     IN  BOOLEAN := FALSE
1872 )
1873 IS
1874     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1875 BEGIN
1876 
1877     g_trolin_rec := p_trolin_rec;
1878 
1879     IF p_db_record THEN
1880 
1881         g_db_trolin_rec := p_trolin_rec;
1882 
1883     END IF;
1884 
1885 END Write_Trolin;
1886 
1887 FUNCTION Get_trolin
1888 (   p_db_record                     IN  BOOLEAN := FALSE
1889 ,   p_line_id                       IN  NUMBER
1890 )
1891 RETURN INV_Move_Order_PUB.Trolin_Rec_Type
1892 IS
1893     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1894 BEGIN
1895 
1896     IF  p_line_id <> g_trolin_rec.line_id
1897     THEN
1898 
1899         --  Query row from DB
1900 
1901         g_trolin_rec := INV_Trolin_Util.Query_Row
1902         (   p_line_id                     => p_line_id
1903         );
1904 
1905         g_trolin_rec.db_flag           := FND_API.G_TRUE;
1906 
1907         --  Load DB record
1908 
1909         g_db_trolin_rec                := g_trolin_rec;
1910 
1911     END IF;
1912 
1913     IF p_db_record THEN
1914 
1915         RETURN g_db_trolin_rec;
1916 
1917     ELSE
1918 
1919         RETURN g_trolin_rec;
1920 
1921     END IF;
1922 
1923 END Get_Trolin;
1924 
1925 PROCEDURE Clear_Trolin
1926 IS
1927     l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1928 BEGIN
1929 
1930     g_trolin_rec                   := INV_Move_Order_PUB.G_MISS_TROLIN_REC;
1931     g_db_trolin_rec                := INV_Move_Order_PUB.G_MISS_TROLIN_REC;
1932 
1933 END Clear_Trolin;
1934 
1935 END INV_TO_Form_Trolin;