[Home] [Help]
PACKAGE BODY: APPS.GMI_TO_FORM_TROLIN
Source
1 PACKAGE BODY GMI_TO_Form_Trolin AS
2 /* $Header: GMIFTRLB.pls 115.7 2002/10/29 15:19:48 jdiiorio ship $ */
3 /* +=========================================================================+
4 | Copyright (c) 2000 Oracle Corporation |
5 | TVP, Reading, England |
6 | All rights reserved |
7 +=========================================================================+
8 | FILENAME |
9 | GMIFTRLB.pls |
10 | |
11 | DESCRIPTION |
12 | This package contains private utilities interface procedures |
13 | to forms ICTOTRX.fmb |
14 | |
15 | - Need to be cleaned |
16 | |
17 | HISTORY |
18 | 07-MAR-2000 odaboval Created |
19 | 29-OCT-2002 jdiiorio Bug#2643440 11.5.1J - added nocopy. |
20 +=========================================================================+
21 */
22 /* Global constant holding the package name */
23
24 G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMI_TO_Form_Trolin';
25
26 /* Global variables holding cached record. */
27
28 g_trolin_rec GMI_Move_Order_Global.mo_line_rec;
29 g_db_trolin_rec GMI_Move_Order_Global.mo_line_rec;
30
31 /* Forward declaration of procedures maintaining entity record cache. */
32
33 PROCEDURE Write_trolin
34 ( p_mo_line_rec IN GMI_MOVE_ORDER_GLOBAL.mo_line_rec
35 , p_db_record IN BOOLEAN := FALSE
36 );
37
38 FUNCTION Get_trolin
39 ( p_db_record IN BOOLEAN := FALSE
40 , p_line_id IN NUMBER
41 )
42 RETURN GMI_MOVE_ORDER_GLOBAL.mo_line_rec;
43
44 PROCEDURE Clear_trolin;
45
46 /* Global variable holding performed operations. */
47
48 g_opr__tbl GMI_MOVE_ORDER_GLOBAL.mo_line_rec;
49
50 /* Procedure : Default_Attributes */
51 /* odab
52 PROCEDURE Default_Attributes
53 ( x_return_status OUT NOCOPY VARCHAR2
54 , x_msg_count OUT NOCOPY NUMBER
55 , x_msg_data OUT NOCOPY VARCHAR2
56 , p_header_id IN NUMBER
57 , x_attribute1 OUT NOCOPY VARCHAR2
58 , x_attribute10 OUT NOCOPY VARCHAR2
59 , x_attribute11 OUT NOCOPY VARCHAR2
60 , x_attribute12 OUT NOCOPY VARCHAR2
61 , x_attribute13 OUT NOCOPY VARCHAR2
62 , x_attribute14 OUT NOCOPY VARCHAR2
63 , x_attribute15 OUT NOCOPY VARCHAR2
64 , x_attribute2 OUT NOCOPY VARCHAR2
65 , x_attribute3 OUT NOCOPY VARCHAR2
66 , x_attribute4 OUT NOCOPY VARCHAR2
67 , x_attribute5 OUT NOCOPY VARCHAR2
68 , x_attribute6 OUT NOCOPY VARCHAR2
69 , x_attribute7 OUT NOCOPY VARCHAR2
70 , x_attribute8 OUT NOCOPY VARCHAR2
71 , x_attribute9 OUT NOCOPY VARCHAR2
72 , x_attribute_category OUT NOCOPY VARCHAR2
73 , x_date_required OUT NOCOPY DATE
74 , x_from_locator_id OUT NOCOPY NUMBER
75 , x_from_subinventory_code OUT NOCOPY VARCHAR2
76 , x_from_subinventory_id OUT NOCOPY NUMBER
77 , x_header_id OUT NOCOPY NUMBER
78 , x_inventory_item_id OUT NOCOPY NUMBER
79 , x_line_id OUT NOCOPY NUMBER
80 , x_line_number OUT NOCOPY NUMBER
81 , x_line_status OUT NOCOPY NUMBER
82 , x_lot_number OUT NOCOPY VARCHAR2
83 , x_organization_id OUT NOCOPY NUMBER
84 , x_project_id OUT NOCOPY NUMBER
85 , x_quantity OUT NOCOPY NUMBER
86 , x_quantity_delivered OUT NOCOPY NUMBER
87 , x_quantity_detailed OUT NOCOPY NUMBER
88 , x_reason_id OUT NOCOPY NUMBER
89 , x_reference OUT NOCOPY VARCHAR2
90 , x_reference_id OUT NOCOPY NUMBER
91 , x_reference_type_code OUT NOCOPY NUMBER
92 , x_revision OUT NOCOPY VARCHAR2
93 , x_serial_number_end OUT NOCOPY VARCHAR2
94 , x_serial_number_start OUT NOCOPY VARCHAR2
95 , x_status_date OUT NOCOPY DATE
96 , x_task_id OUT NOCOPY NUMBER
97 , x_to_account_id OUT NOCOPY NUMBER
98 , x_to_locator_id OUT NOCOPY NUMBER
99 , x_to_subinventory_code OUT NOCOPY VARCHAR2
100 , x_to_subinventory_id OUT NOCOPY NUMBER
101 , x_transaction_header_id OUT NOCOPY NUMBER
102 , x_uom_code OUT NOCOPY VARCHAR2
103 , x_from_locator OUT NOCOPY VARCHAR2
104 , x_inventory_item OUT NOCOPY VARCHAR2
105 , x_project OUT NOCOPY VARCHAR2
106 , x_reason OUT NOCOPY VARCHAR2
107 , x_reference_type OUT NOCOPY VARCHAR2
108 , x_task OUT NOCOPY VARCHAR2
109 , x_to_account OUT NOCOPY VARCHAR2
110 , x_to_locator OUT NOCOPY VARCHAR2
111 , x_transaction_type_id OUT NOCOPY NUMBER
112 , x_transaction_source_type_id OUT NOCOPY NUMBER
113 , x_txn_source_id OUT NOCOPY NUMBER
114 , x_txn_source_line_id OUT NOCOPY NUMBER
115 , x_txn_source_line_detail_id OUT NOCOPY NUMBER
116 , x_primary_quantity OUT NOCOPY NUMBER
117 , x_to_organization_id OUT NOCOPY NUMBER
118 , x_pick_strategy_id OUT NOCOPY NUMBER
119 , x_put_away_strategy_id OUT NOCOPY NUMBER
120 , x_unit_number OUT NOCOPY VARCHAR2
121 */
122 /* , x_ship_to_location_id OUT NOCOPY NUMBER -- NL MERGE */
123 /*
124 , x_transaction_type OUT NOCOPY VARCHAR2
125 )
126 IS
127 l_trolin_rec GMI_MOVE_ORDER_GLOBAL.mo_line_rec;
128 l_trolin_val_rec GMI_Move_Order_PUB.Trolin_Val_Rec_Type;
129 l_trolin_tbl GMI_Move_Order_PUB.Trolin_Tbl_Type;
130 l_control_rec INV_GLOBALS.Control_Rec_Type;
131 l_return_status VARCHAR2(1);
132 l_x_trohdr_rec GMI_Move_Order_PUB.Trohdr_Rec_Type;
133 l_x_trolin_rec GMI_Move_Order_PUB.Trolin_Rec_Type;
134 l_x_trolin_tbl GMI_Move_Order_PUB.Trolin_Tbl_Type;
135 BEGIN
136
137 *//* Set control flags. *//*
138
139 l_control_rec.controlled_operation := TRUE;
140 l_control_rec.default_attributes := TRUE;
141
142 l_control_rec.change_attributes := FALSE;
143 l_control_rec.validate_entity := FALSE;
144 l_control_rec.write_to_DB := FALSE;
145 l_control_rec.process := FALSE;
146
147 *//* Instruct API to retain its caches *//*
148
149 l_control_rec.clear_api_cache := FALSE;
150 l_control_rec.clear_api_requests := FALSE;
151
152 *//* Load IN parameters if any exist *//*
153 l_trolin_rec.header_id := p_header_id;
154
155
156 *//* Defaulting of flex values is currently done by the form. *//*
157 *//* Set flex attributes to NULL in order to avoid defaulting them. *//*
158
159 l_trolin_rec.attribute1 := NULL;
160 l_trolin_rec.attribute10 := NULL;
161 l_trolin_rec.attribute11 := NULL;
162 l_trolin_rec.attribute12 := NULL;
163 l_trolin_rec.attribute13 := NULL;
164 l_trolin_rec.attribute14 := NULL;
165 l_trolin_rec.attribute15 := NULL;
166 l_trolin_rec.attribute2 := NULL;
167 l_trolin_rec.attribute3 := NULL;
168 l_trolin_rec.attribute4 := NULL;
169 l_trolin_rec.attribute5 := NULL;
170 l_trolin_rec.attribute6 := NULL;
171 l_trolin_rec.attribute7 := NULL;
172 l_trolin_rec.attribute8 := NULL;
173 l_trolin_rec.attribute9 := NULL;
174 l_trolin_rec.attribute_category := NULL;
175
176 *//* Set Operation to Create *//*
177
178 l_trolin_rec.operation := INV_GLOBALS.G_OPR_CREATE;
179
180 *//* Populate trolin table *//*
181
182 l_trolin_tbl(1) := l_trolin_rec;
183
184 *//* Call INV_Transfer_Order_PVT.Process_Transfer_Order *//*
185
186 INV_Transfer_Order_PVT.Process_Transfer_Order
187 ( p_api_version_number => 1.0
188 , p_init_msg_list => FND_API.G_TRUE
189 , x_return_status => l_return_status
190 , x_msg_count => x_msg_count
191 , x_msg_data => x_msg_data
192 , p_control_rec => l_control_rec
193 , p_trolin_tbl => l_trolin_tbl
194 , x_trohdr_rec => l_x_trohdr_rec
195 , x_trolin_tbl => l_x_trolin_tbl
196 );
197
198 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
199 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
200 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
201 RAISE FND_API.G_EXC_ERROR;
202 END IF;
203
204
205 *//* Unload out tbl *//*
206
207 l_x_trolin_rec := l_x_trolin_tbl(1);
208
209 *//* Load OUT parameters. *//*
210
211 x_attribute1 := l_x_trolin_rec.attribute1;
212 x_attribute10 := l_x_trolin_rec.attribute10;
213 x_attribute11 := l_x_trolin_rec.attribute11;
214 x_attribute12 := l_x_trolin_rec.attribute12;
215 x_attribute13 := l_x_trolin_rec.attribute13;
216 x_attribute14 := l_x_trolin_rec.attribute14;
217 x_attribute15 := l_x_trolin_rec.attribute15;
218 x_attribute2 := l_x_trolin_rec.attribute2;
219 x_attribute3 := l_x_trolin_rec.attribute3;
220 x_attribute4 := l_x_trolin_rec.attribute4;
221 x_attribute5 := l_x_trolin_rec.attribute5;
222 x_attribute6 := l_x_trolin_rec.attribute6;
223 x_attribute7 := l_x_trolin_rec.attribute7;
224 x_attribute8 := l_x_trolin_rec.attribute8;
225 x_attribute9 := l_x_trolin_rec.attribute9;
226 x_attribute_category := l_x_trolin_rec.attribute_category;
227 x_date_required := l_x_trolin_rec.date_required;
228 x_from_locator_id := l_x_trolin_rec.from_locator_id;
229 x_from_subinventory_code := l_x_trolin_rec.from_subinventory_code;
230 x_from_subinventory_id := l_x_trolin_rec.from_subinventory_id;
231 x_header_id := l_x_trolin_rec.header_id;
232 x_inventory_item_id := l_x_trolin_rec.inventory_item_id;
233 x_line_id := l_x_trolin_rec.line_id;
234 x_line_number := l_x_trolin_rec.line_number;
235 x_line_status := l_x_trolin_rec.line_status;
236 x_lot_number := l_x_trolin_rec.lot_number;
237 x_organization_id := l_x_trolin_rec.organization_id;
238 x_project_id := l_x_trolin_rec.project_id;
239 x_quantity := l_x_trolin_rec.quantity;
240 x_quantity_delivered := l_x_trolin_rec.quantity_delivered;
241 x_quantity_detailed := l_x_trolin_rec.quantity_detailed;
242 x_reason_id := l_x_trolin_rec.reason_id;
243 x_reference := l_x_trolin_rec.reference;
244 x_reference_id := l_x_trolin_rec.reference_id;
245 x_reference_type_code := l_x_trolin_rec.reference_type_code;
246 x_revision := l_x_trolin_rec.revision;
247 x_serial_number_end := l_x_trolin_rec.serial_number_end;
248 x_serial_number_start := l_x_trolin_rec.serial_number_start;
249 x_status_date := l_x_trolin_rec.status_date;
250 x_task_id := l_x_trolin_rec.task_id;
251 x_to_account_id := l_x_trolin_rec.to_account_id;
252 x_to_locator_id := l_x_trolin_rec.to_locator_id;
253 x_to_subinventory_code := l_x_trolin_rec.to_subinventory_code;
254 x_to_subinventory_id := l_x_trolin_rec.to_subinventory_id;
255 x_transaction_header_id := l_x_trolin_rec.transaction_header_id;
256 x_uom_code := l_x_trolin_rec.uom_code;
257 *//* ssia added for move order enhancement *//*
258 x_transaction_type_id := l_x_trolin_rec.transaction_type_id;
259 x_transaction_source_type_id := l_x_trolin_rec.transaction_source_type_id;
260 x_txn_source_id := l_x_trolin_rec.txn_source_id;
261 x_txn_source_line_id := l_x_trolin_rec.txn_source_line_id;
262 x_txn_source_line_detail_id := l_x_trolin_rec.txn_source_line_detail_id;
263 x_primary_quantity := l_x_trolin_rec.primary_quantity;
264 x_to_organization_id := l_x_trolin_rec.to_organization_id;
265 x_pick_strategy_id := l_x_trolin_rec.pick_strategy_id;
266 x_put_away_strategy_id := l_x_trolin_rec.put_away_strategy_id;
267 x_unit_number := l_x_trolin_rec.unit_number;
268 *//* x_ship_to_location_id := l_x_trolin_rec.ship_to_location_id; NL MERGE *//*
269 *//* ssia end of move order enhancement changes *//*
270 *//* Load display out parameters if any *//*
271
272 l_trolin_val_rec := INV_Trolin_Util.Get_Values
273 ( p_trolin_rec => l_x_trolin_rec
274 );
275 x_from_locator := l_trolin_val_rec.from_locator;
276 x_inventory_item := l_trolin_val_rec.inventory_item;
277 x_project := l_trolin_val_rec.project;
278 x_reason := l_trolin_val_rec.reason;
279 x_reference_type := l_trolin_val_rec.reference_type;
280 x_task := l_trolin_val_rec.task;
281 x_to_account := l_trolin_val_rec.to_account;
282 x_to_locator := l_trolin_val_rec.to_locator;
283 x_transaction_type := l_trolin_val_rec.transaction_type;
284
285 *//* Write to cache. *//*
286 *//* Set db_flag to False before writing to cache *//*
287
288 l_x_trolin_rec.db_flag := FND_API.G_FALSE;
289
290 Write_trolin
291 ( p_trolin_rec => l_x_trolin_rec
292 );
293
294 *//* Set return status. *//*
295
296 x_return_status := FND_API.G_RET_STS_SUCCESS;
297
298 *//* Get message count and data *//*
299
300 FND_MSG_PUB.Count_And_Get
301 ( p_count => x_msg_count
302 , p_data => x_msg_data
303 );
304
305
306 EXCEPTION
307
308 WHEN FND_API.G_EXC_ERROR THEN
309
310 x_return_status := FND_API.G_RET_STS_ERROR;
311
312 *//* Get message count and data *//*
313
314 FND_MSG_PUB.Count_And_Get
318
315 ( p_count => x_msg_count
316 , p_data => x_msg_data
317 );
319 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
320
321 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
322
323 *//* Get message count and data *//*
324
325 FND_MSG_PUB.Count_And_Get
326 ( p_count => x_msg_count
327 , p_data => x_msg_data
328 );
329
330 WHEN OTHERS THEN
331
332 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
333
334 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
335 THEN
336 FND_MSG_PUB.Add_Exc_Msg
337 ( G_PKG_NAME
338 , 'Default_Attributes'
339 );
340 END IF;
341
342 *//* Get message count and data *//*
343
344 FND_MSG_PUB.Count_And_Get
345 ( p_count => x_msg_count
346 , p_data => x_msg_data
347 );
348
349 END Default_Attributes;
350
351 *//* Procedure : Validate_Record *//*
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_db_flag IN VARCHAR2
414 )
415 IS
416 l_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
417 l_old_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
418 l_trolin_val_rec INV_Move_Order_PUB.Trolin_Val_Rec_Type;
419 l_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
420 l_old_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
421 l_control_rec INV_GLOBALS.Control_Rec_Type;
422 l_return_status VARCHAR2(1);
423 l_x_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
424 l_x_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
425 l_x_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
426 BEGIN
427
428 *//* Set control flags. *//*
429
430 l_control_rec.controlled_operation := TRUE;
431 l_control_rec.change_attributes := TRUE;
432
433 l_control_rec.default_attributes := FALSE;
434 l_control_rec.validate_entity := TRUE;
435 l_control_rec.write_to_DB := FALSE;
436 l_control_rec.process := FALSE;
437
441 l_control_rec.clear_api_requests := FALSE;
438 *//* Instruct API to retain its caches *//*
439
440 l_control_rec.clear_api_cache := FALSE;
442
443 l_trolin_rec.db_flag := p_db_flag;
444
445 *//* Read trolin from cache *//*
446
447 IF FND_API.To_Boolean(l_trolin_rec.db_flag) THEN
448
449 l_trolin_rec := Get_trolin
450 ( p_db_record => FALSE
451 , p_line_id => p_line_id
452 );
453 End If;
454
455 l_old_trolin_rec := l_trolin_rec;
456
457 l_trolin_rec.date_required := p_date_required;
458 l_trolin_rec.from_locator_id := p_from_locator_id;
459 l_trolin_rec.from_subinventory_code := p_from_subinventory_code;
460 l_trolin_rec.from_subinventory_id := p_from_subinventory_id;
461 l_trolin_rec.header_id := p_header_id;
462 l_trolin_rec.inventory_item_id := p_inventory_item_id;
463 l_trolin_rec.line_id := p_line_id;
464 l_trolin_rec.line_number := p_line_number;
465 l_trolin_rec.line_status := p_line_status;
466 l_trolin_rec.lot_number := p_lot_number;
467 l_trolin_rec.organization_id := p_organization_id;
468 l_trolin_rec.project_id := p_project_id;
469 l_trolin_rec.quantity := p_quantity;
470 l_trolin_rec.quantity_delivered := p_quantity_delivered;
471 l_trolin_rec.quantity_detailed := p_quantity_detailed;
472 l_trolin_rec.reason_id := p_reason_id;
473 l_trolin_rec.reference := p_reference;
474 l_trolin_rec.reference_id := p_reference_id;
475 l_trolin_rec.reference_type_code := p_reference_type_code;
476 l_trolin_rec.revision := p_revision;
477 l_trolin_rec.serial_number_end := p_serial_number_end;
478 l_trolin_rec.serial_number_start := p_serial_number_start;
479 l_trolin_rec.status_date := p_status_date;
480 l_trolin_rec.task_id := p_task_id;
481 l_trolin_rec.to_account_id := p_to_account_id;
482 l_trolin_rec.to_locator_id := p_to_locator_id;
483 l_trolin_rec.to_subinventory_code := p_to_subinventory_code;
484 l_trolin_rec.to_subinventory_id := p_to_subinventory_id;
485 l_trolin_rec.transaction_header_id := p_transaction_header_id;
486 l_trolin_rec.uom_code := p_uom_code;
487 l_trolin_rec.attribute1 := p_attribute1;
488 l_trolin_rec.attribute10 := p_attribute10;
489 l_trolin_rec.attribute11 := p_attribute11;
490 l_trolin_rec.attribute12 := p_attribute12;
491 l_trolin_rec.attribute13 := p_attribute13;
492 l_trolin_rec.attribute14 := p_attribute14;
493 l_trolin_rec.attribute15 := p_attribute15;
494 l_trolin_rec.attribute2 := p_attribute2;
495 l_trolin_rec.attribute3 := p_attribute3;
496 l_trolin_rec.attribute4 := p_attribute4;
497 l_trolin_rec.attribute5 := p_attribute5;
498 l_trolin_rec.attribute6 := p_attribute6;
499 l_trolin_rec.attribute7 := p_attribute7;
500 l_trolin_rec.attribute8 := p_attribute8;
501 l_trolin_rec.attribute9 := p_attribute9;
502 l_trolin_rec.attribute_category := p_attribute_category;
503 *//* ssia added for move order enhancement *//*
504 l_trolin_rec.transaction_type_id := p_transaction_type_id;
505 l_trolin_rec.transaction_source_type_id := p_transaction_source_type_id;
506 l_trolin_rec.txn_source_id := p_txn_source_id;
507 l_trolin_rec.txn_source_line_id := p_txn_source_line_id;
508 l_trolin_rec.txn_source_line_detail_id := p_txn_source_line_detail_id;
509 l_trolin_rec.primary_quantity := p_primary_quantity;
510 l_trolin_rec.to_organization_id := p_to_organization_id;
511 l_trolin_rec.pick_strategy_id := p_pick_strategy_id;
512 l_trolin_rec.put_away_strategy_id := p_put_away_strategy_id;
513 l_trolin_rec.unit_number := p_unit_number;
514 l_trolin_rec.ship_to_location_id := p_ship_to_location_id;
515 *//* ssia end of move order enhancement changes *//*
516 *//* Set Operation. *//*
517
518 IF FND_API.To_Boolean(l_trolin_rec.db_flag) THEN
519 l_trolin_rec.operation := INV_GLOBALS.G_OPR_UPDATE;
520 ELSE
521 l_trolin_rec.operation := INV_GLOBALS.G_OPR_CREATE;
522 END IF;
523
524 *//* Populate trolin table *//*
525
526 l_trolin_tbl(1) := l_trolin_rec;
527 l_old_trolin_tbl(1) := l_old_trolin_rec;
528
529 *//* Call INV_Transfer_Order_PVT.Process_Transfer_Order *//*
530
531 INV_Transfer_Order_PVT.Process_Transfer_Order
532 ( p_api_version_number => 1.0
533 , p_init_msg_list => FND_API.G_TRUE
534 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
535 , x_return_status => l_return_status
536 , x_msg_count => x_msg_count
537 , x_msg_data => x_msg_data
541 , x_trohdr_rec => l_x_trohdr_rec
538 , p_control_rec => l_control_rec
539 , p_trolin_tbl => l_trolin_tbl
540 , p_old_trolin_tbl => l_old_trolin_tbl
542 , x_trolin_tbl => l_x_trolin_tbl
543 );
544
545 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
546 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
547 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
548 RAISE FND_API.G_EXC_ERROR;
549 END IF;
550
551
552 *//* Unload out tbl *//*
553
554 l_x_trolin_rec := l_x_trolin_tbl(1);
555
556
557 *//* Write to cache. *//*
558
559 Write_trolin
560 ( p_trolin_rec => l_x_trolin_rec
561 );
562
563 *//* Set return status. *//*
564
565 x_return_status := FND_API.G_RET_STS_SUCCESS;
566
567 *//* Get message count and data *//*
568
569 FND_MSG_PUB.Count_And_Get
570 ( p_count => x_msg_count
571 , p_data => x_msg_data
572 );
573
574
575 EXCEPTION
576
577 WHEN FND_API.G_EXC_ERROR THEN
578
579 x_return_status := FND_API.G_RET_STS_ERROR;
580
581 *//* Get message count and data *//*
582
583 FND_MSG_PUB.Count_And_Get
584 ( p_count => x_msg_count
585 , p_data => x_msg_data
586 );
587
588 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
589
590 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
591
592 *//* Get message count and data *//*
593
594 FND_MSG_PUB.Count_And_Get
595 ( p_count => x_msg_count
596 , p_data => x_msg_data
597 );
598
599 WHEN OTHERS THEN
600
601 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
602
603 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
604 THEN
605 FND_MSG_PUB.Add_Exc_Msg
606 ( G_PKG_NAME
607 , 'Change_Attribute'
608 );
609 END IF;
610
611 *//* Get message count and data *//*
612
613 FND_MSG_PUB.Count_And_Get
614 ( p_count => x_msg_count
615 , p_data => x_msg_data
616 );
617
618 END Validate_Record;
619 odab */
620
621 /* Procedure Validate_And_Write */
622 PROCEDURE Validate_And_Write
623 ( p_mo_line_rec IN GMI_Move_Order_Global.mo_line_rec
624 , x_return_status OUT NOCOPY VARCHAR2
625 , x_msg_count OUT NOCOPY NUMBER
626 , x_msg_data OUT NOCOPY VARCHAR2
627 )
628 IS
629 l_return_status VARCHAR2(1);
630 BEGIN
631
632 /* Populate trolin table */
633 GMI_Move_Order_Line_Util.Update_Row(p_mo_line_rec);
634
635 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
636 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
637 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
638 RAISE FND_API.G_EXC_ERROR;
639 END IF;
640
641
642
643
644 /* Clear trolin record cache */
645
646 Clear_trolin;
647
648 /* Set return status. */
649
650 x_return_status := FND_API.G_RET_STS_SUCCESS;
651
652 /* Get message count and data */
653
654 FND_MSG_PUB.Count_And_Get
655 ( p_count => x_msg_count
656 , p_data => x_msg_data
657 );
658
659
660 EXCEPTION
661
662 WHEN FND_API.G_EXC_ERROR THEN
663
664 x_return_status := FND_API.G_RET_STS_ERROR;
665
666 /* Get message count and data */
667
668 FND_MSG_PUB.Count_And_Get
669 ( p_count => x_msg_count
670 , p_data => x_msg_data
671 );
672
673 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
674
675 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
676
677 /* Get message count and data */
678
679 FND_MSG_PUB.Count_And_Get
680 ( p_count => x_msg_count
681 , p_data => x_msg_data
682 );
683
684 WHEN OTHERS THEN
685
686 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
687
688 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
689 THEN
690 FND_MSG_PUB.Add_Exc_Msg
691 ( G_PKG_NAME
692 , 'Validate_And_Write'
693 );
694 END IF;
695
696 /* Get message count and data */
697
698 FND_MSG_PUB.Count_And_Get
699 ( p_count => x_msg_count
700 , p_data => x_msg_data
701 );
702
703 END Validate_And_Write;
704
705
706 /* Procedure Delete_Row */
707 /* odab
711 , x_msg_data OUT NOCOPY VARCHAR2
708 PROCEDURE Delete_Row
709 ( x_return_status OUT NOCOPY VARCHAR2
710 , x_msg_count OUT NOCOPY NUMBER
712 , p_line_id IN NUMBER
713 )
714 IS
715 l_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
716 l_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
717 l_control_rec INV_GLOBALS.Control_Rec_Type;
718 l_return_status VARCHAR2(1);
719 l_x_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
720 l_x_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
721 l_x_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
722 BEGIN
723
724 *//* Set control flags. *//*
725
726 l_control_rec.controlled_operation := TRUE;
727 l_control_rec.validate_entity := TRUE;
728 l_control_rec.write_to_DB := TRUE;
729
730 l_control_rec.default_attributes := FALSE;
731 l_control_rec.change_attributes := FALSE;
732 l_control_rec.process := FALSE;
733
734 *//* Instruct API to retain its caches *//*
735
736 l_control_rec.clear_api_cache := FALSE;
737 l_control_rec.clear_api_requests := FALSE;
738
739 *//* Read DB record from cache *//*
740
741 l_trolin_rec := Get_trolin
742 ( p_db_record => TRUE
743 , p_line_id => p_line_id
744 );
745
746 *//* Set Operation. *//*
747
748 l_trolin_rec.operation := INV_GLOBALS.G_OPR_DELETE;
749
750 *//* Populate trolin table *//*
751
752 l_trolin_tbl(1) := l_trolin_rec;
753
754 *//* Call INV_Transfer_Order_PVT.Process_Transfer_Order *//*
755
756 INV_Transfer_Order_PVT.Process_Transfer_Order
757 ( p_api_version_number => 1.0
758 , p_init_msg_list => FND_API.G_TRUE
759 , x_return_status => l_return_status
760 , x_msg_count => x_msg_count
761 , x_msg_data => x_msg_data
762 , p_control_rec => l_control_rec
763 , p_trolin_tbl => l_trolin_tbl
764 , x_trohdr_rec => l_x_trohdr_rec
765 , x_trolin_tbl => l_x_trolin_tbl
766 );
767
768 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
769 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
770 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
771 RAISE FND_API.G_EXC_ERROR;
772 END IF;
773
774
775 *//* Clear trolin record cache *//*
776
777 Clear_trolin;
778
779 *//* Set return status. *//*
780
781 x_return_status := FND_API.G_RET_STS_SUCCESS;
782
783 *//* Get message count and data *//*
784
785 FND_MSG_PUB.Count_And_Get
786 ( p_count => x_msg_count
787 , p_data => x_msg_data
788 );
789
790
791 EXCEPTION
792
793 WHEN FND_API.G_EXC_ERROR THEN
794
795 x_return_status := FND_API.G_RET_STS_ERROR;
796
797 *//* Get message count and data *//*
798
799 FND_MSG_PUB.Count_And_Get
800 ( p_count => x_msg_count
801 , p_data => x_msg_data
802 );
803
804 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
805
806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
807
808 *//* Get message count and data *//*
809
810 FND_MSG_PUB.Count_And_Get
811 ( p_count => x_msg_count
812 , p_data => x_msg_data
813 );
814
815 WHEN OTHERS THEN
816
817 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
818
819 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
820 THEN
821 FND_MSG_PUB.Add_Exc_Msg
822 ( G_PKG_NAME
823 , 'Delete_Row'
824 );
825 END IF;
826
827 *//* Get message count and data *//*
828
829 FND_MSG_PUB.Count_And_Get
830 ( p_count => x_msg_count
831 , p_data => x_msg_data
832 );
833
834 END Delete_Row;
835 odab */
836 /* Procedure Process_Entity */
837 /* odab
838 PROCEDURE Process_Entity
839 ( x_return_status OUT NOCOPY VARCHAR2
840 , x_msg_count OUT NOCOPY NUMBER
841 , x_msg_data OUT NOCOPY VARCHAR2
842 )
843 IS
844 l_control_rec INV_GLOBALS.Control_Rec_Type;
845 l_return_status VARCHAR2(1);
846 l_x_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
847 l_x_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
848 l_x_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
849 BEGIN
850
851 *//* Set control flags. *//*
852
853 l_control_rec.controlled_operation := TRUE;
854 l_control_rec.process := TRUE;
855 l_control_rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
859 l_control_rec.validate_entity := FALSE;
856
857 l_control_rec.default_attributes := FALSE;
858 l_control_rec.change_attributes := FALSE;
860 l_control_rec.write_to_DB := FALSE;
861
862 *//* Instruct API to clear its request table *//*
863
864 l_control_rec.clear_api_cache := FALSE;
865 l_control_rec.clear_api_requests := FALSE;
866
867 *//* Call INV_Transfer_Order_PVT.Process_Transfer_Order *//*
868
869 INV_Transfer_Order_PVT.Process_Transfer_Order
870 ( p_api_version_number => 1.0
871 , p_init_msg_list => FND_API.G_TRUE
872 , x_return_status => l_return_status
873 , x_msg_count => x_msg_count
874 , x_msg_data => x_msg_data
875 , p_control_rec => l_control_rec
876 , x_trohdr_rec => l_x_trohdr_rec
877 , x_trolin_tbl => l_x_trolin_tbl
878 );
879
880 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
881 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
882 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
883 RAISE FND_API.G_EXC_ERROR;
884 END IF;
885
886
887 *//* Set return status. *//*
888
889 x_return_status := FND_API.G_RET_STS_SUCCESS;
890
891 *//* Get message count and data *//*
892
893 FND_MSG_PUB.Count_And_Get
894 ( p_count => x_msg_count
895 , p_data => x_msg_data
896 );
897
898
899 EXCEPTION
900
901 WHEN FND_API.G_EXC_ERROR THEN
902
903 x_return_status := FND_API.G_RET_STS_ERROR;
904
905 *//* Get message count and data *//*
906
907 FND_MSG_PUB.Count_And_Get
908 ( p_count => x_msg_count
909 , p_data => x_msg_data
910 );
911
912 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
913
914 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
915
916 *//* Get message count and data *//*
917
918 FND_MSG_PUB.Count_And_Get
919 ( p_count => x_msg_count
920 , p_data => x_msg_data
921 );
922
923 WHEN OTHERS THEN
924
925 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
926
927 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
928 THEN
929 FND_MSG_PUB.Add_Exc_Msg
930 ( G_PKG_NAME
931 , 'Process_Entity'
932 );
933 END IF;
934
935 *//* Get message count and data *//*
936
937 FND_MSG_PUB.Count_And_Get
938 ( p_count => x_msg_count
939 , p_data => x_msg_data
940 );
941
942 END Process_Entity;
943 odab */
944 /* Procedure lock_Row */
945
946 PROCEDURE Lock_Row
947 ( p_mo_line_rec IN GMI_Move_Order_Global.mo_line_rec
948 , p_init_msg_list IN NUMBER
949 , x_return_status OUT NOCOPY VARCHAR2
950 , x_msg_count OUT NOCOPY NUMBER
951 , x_msg_data OUT NOCOPY VARCHAR2
952 )
953 IS
954 l_return_status VARCHAR2(1);
955 l_mo_line_rec GMI_MOVE_ORDER_GLOBAL.mo_line_rec;
956 BEGIN
957
958 IF (p_init_msg_list = 1)
959 THEN
960 FND_MSG_PUB.Initialize;
961 END IF;
962
963 savepoint Lock_Row_SP;
964
965 l_mo_line_rec := p_mo_line_rec;
966
967 /* Call the relevant procedure */
968 GMI_Move_Order_Line_Util.Lock_Row
969 ( p_mo_line_rec => l_mo_line_rec
970 , x_mo_line_rec => l_mo_line_rec
971 , x_return_status => l_return_status
972 );
973
974 /* odab
975 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
976
977 *//* Set DB flag and write record to cache. *//*
978 Write_trolin
979 ( p_mo_line_rec => p_mo_line_rec
980 , p_db_record => TRUE
981 );
982
983 END IF;
984 odab */
985 /* Set return status. */
986
987 x_return_status := l_return_status;
988
989 /* Get message count and data */
990
991 FND_MSG_PUB.Count_And_Get
992 ( p_count => x_msg_count
993 , p_data => x_msg_data
994 );
995
996 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
997 THEN
998 ROLLBACK TO SAVEPOINT Lock_Row_SP;
999 END IF;
1000
1001 EXCEPTION
1002
1003 WHEN OTHERS THEN
1004 ROLLBACK TO SAVEPOINT Lock_Row_SP;
1005
1006 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1007 THEN
1008 FND_MSG_PUB.Add_Exc_Msg
1009 ( G_PKG_NAME
1010 , 'Lock_Row'
1011 );
1012 END IF;
1013
1014 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1015
1016 /* Get message count and data */
1017
1018 FND_MSG_PUB.Count_And_Get
1019 ( p_count => x_msg_count
1020 , p_data => x_msg_data
1021 );
1022
1023
1024
1025 END Lock_Row;
1026
1027 /* Procedures maintaining trolin record cache. */
1028
1029 PROCEDURE Write_trolin
1030 ( p_mo_line_rec IN GMI_MOVE_ORDER_GLOBAL.mo_line_rec
1031 , p_db_record IN BOOLEAN := FALSE
1032 )
1033 IS
1034 BEGIN
1035
1036 g_trolin_rec := p_mo_line_rec;
1037
1038 IF p_db_record THEN
1039
1040 g_db_trolin_rec := p_mo_line_rec;
1041
1042 END IF;
1043
1044 END Write_Trolin;
1045
1046 FUNCTION Get_trolin
1047 ( p_db_record IN BOOLEAN := FALSE
1048 , p_line_id IN NUMBER
1049 )
1050 RETURN GMI_MOVE_ORDER_GLOBAL.mo_line_rec
1051 IS
1052 BEGIN
1053
1054 IF p_line_id <> g_trolin_rec.line_id
1055 THEN
1056
1057 /* Query row from DB */
1058
1059 g_trolin_rec := GMI_Move_Order_Line_Util.Query_Row
1060 ( p_line_id => p_line_id
1061 );
1062
1063 /* odab g_trolin_rec.db_flag := FND_API.G_TRUE; */
1064
1065 /* Load DB record */
1066
1067 g_db_trolin_rec := g_trolin_rec;
1068
1069 END IF;
1070
1071 IF p_db_record THEN
1072
1073 RETURN g_db_trolin_rec;
1074
1075 ELSE
1076
1077 RETURN g_trolin_rec;
1078
1079 END IF;
1080
1081 END Get_Trolin;
1082
1083 PROCEDURE Clear_Trolin
1084 IS
1085
1086 l_mo_line_rec GMI_MOVE_ORDER_GLOBAL.mo_line_rec;
1087
1088 BEGIN
1089
1090 g_trolin_rec := l_mo_line_rec;
1091 g_db_trolin_rec := l_mo_line_rec;
1092
1093 END Clear_Trolin;
1094
1095 END GMI_TO_Form_Trolin;