[Home] [Help]
PACKAGE BODY: APPS.INV_MOVE_ORDER_PUB
Source
1 PACKAGE BODY INV_Move_Order_PUB AS
2 /* $Header: INVPTROB.pls 120.5.12010000.2 2008/10/20 13:21:25 mporecha ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'INV_Move_Order_PUB';
7
8 g_inventory_item_id NUMBER := NULL;
9 g_primary_uom_code VARCHAR2(3) := NULL;
10 g_restrict_subinventories_code NUMBER;
11 g_restrict_locators_code NUMBER;
12
13
14 PROCEDURE print_debug(p_message in varchar2, p_module in varchar2) IS
15 begin
16 -- dbms_output.put_line(p_message);
17 inv_trx_util_pub.trace(p_message, p_module);
18 end;
19
20 -- Forward declaration of Procedure Id_To_Value
21
22 PROCEDURE Id_To_Value
23 ( p_trohdr_rec IN Trohdr_Rec_Type
24 , p_trolin_tbl IN Trolin_Tbl_Type
25 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
26 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
27 );
28
29 -- Forward declaration of procedure Value_To_Id
30
31 PROCEDURE Value_To_Id
32 ( x_return_status OUT NOCOPY VARCHAR2
33 , p_trohdr_rec IN Trohdr_Rec_Type
34 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type
35 , p_trolin_tbl IN Trolin_Tbl_Type
36 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type
37 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
38 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
39 );
40 -- Start of Comments
41 -- API name Create_Move_Order_Header
42 -- Type Public
43 -- Function
44 --
45 -- Pre-reqs
46 --
47 -- Parameters
48 --
49 -- Version Current version = 1.0
50 -- Initial version = 1.0
51 --
52 -- Notes
53 --
54 -- End of Comments
55
56 PROCEDURE Create_Move_Order_Header
57 ( p_api_version_number IN NUMBER
58 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
59 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
60 , p_commit IN VARCHAR2 := FND_API.G_FALSE
61 , x_return_status OUT NOCOPY VARCHAR2
62 , x_msg_count OUT NOCOPY NUMBER
63 , x_msg_data OUT NOCOPY VARCHAR2
64 , p_trohdr_rec IN Trohdr_Rec_Type := G_MISS_TROHDR_REC
65 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC
66 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
67 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
68 , p_validation_flag IN VARCHAR2
69 ) IS
70 l_api_version_number CONSTANT NUMBER := 1.0;
71 l_api_name CONSTANT VARCHAR2(30):= 'Create_Move_Order_Header';
72 l_control_rec INV_GLOBALS.Control_Rec_Type;
73 l_return_status VARCHAR2(1);
74 l_trohdr_rec Trohdr_Rec_Type;
75 l_trolin_tbl Trolin_Tbl_Type := G_MISS_TROLIN_TBL;
76 l_trolin_val_tbl Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL;
77 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
78 BEGIN
79 if l_debug = 1 THEN
80 print_debug('enter Create Move Order Header', l_api_name);
81 end if;
82 -- Standard call to check for call compatibility
83 IF NOT FND_API.Compatible_API_Call
84 ( l_api_version_number
85 , p_api_version_number
86 , l_api_name
87 , G_PKG_NAME
88 )
89 THEN
90 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
91 END IF;
92
93 g_primary_uom_code := NULL;
94 g_inventory_item_id := NULL;
95 IF NVL(p_validation_flag,g_validation_yes) = g_validation_no THEN
96 If l_debug = 1 THEN
97 print_debug('No Validation', l_api_name);
98 End If;
99 x_trohdr_rec := p_trohdr_rec;
100 --set default values
101 x_trohdr_rec.date_required := sysdate;
102 x_trohdr_rec.description := NULL;
103 x_trohdr_rec.from_subinventory_code := NULL;
104 x_trohdr_rec.header_id := INV_TRANSFER_ORDER_PVT.get_next_header_id;
105 x_trohdr_rec.program_application_id := NULL;
106 x_trohdr_rec.program_id := NULL;
107 x_trohdr_rec.program_update_date := NULL;
108 x_trohdr_rec.request_id := NULL;
109 x_trohdr_rec.status_date := sysdate;
110 x_trohdr_rec.to_account_id := NULL;
111 x_trohdr_rec.to_subinventory_code := NULL;
112 x_trohdr_rec.ship_to_location_id := NULL;
113
114 x_trohdr_rec.attribute_category:= NULL;
115 x_trohdr_rec.attribute1 := NULL;
116 x_trohdr_rec.attribute2 := NULL;
117 x_trohdr_rec.attribute3 := NULL;
118 x_trohdr_rec.attribute4 := NULL;
119 x_trohdr_rec.attribute5 := NULL;
120 x_trohdr_rec.attribute6 := NULL;
121 x_trohdr_rec.attribute7 := NULL;
122 x_trohdr_rec.attribute8 := NULL;
123 x_trohdr_rec.attribute9 := NULL;
124 x_trohdr_rec.attribute10 := NULL;
125 x_trohdr_rec.attribute11 := NULL;
126 x_trohdr_rec.attribute12 := NULL;
127 x_trohdr_rec.attribute13 := NULL;
128 x_trohdr_rec.attribute14 := NULL;
129 x_trohdr_rec.attribute15 := NULL;
130 inv_trohdr_util.insert_row(x_trohdr_rec);
131 x_return_status := fnd_api.g_ret_sts_success;
132
133 ELSE
134 If l_debug = 1 THEN
135 print_debug('Validation turned on', l_api_name);
136 End If;
137 l_control_rec.controlled_operation := TRUE;
138 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROHDR;
139 l_control_Rec.default_attributes := TRUE;
140 l_control_rec.change_attributes := TRUE;
141 l_control_rec.write_to_db := TRUE;
142
143 If l_debug = 1 THEN
144 print_debug('Call to process_transfer_order', l_api_name);
145 End If;
146 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
147 INV_Transfer_Order_PVT.Process_Transfer_Order
148 ( p_api_version_number => 1.0
149 , p_init_msg_list => p_init_msg_list
150 , p_commit => p_commit
151 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
152 , p_control_rec => l_control_rec
153 , x_return_status => x_return_status
154 , x_msg_count => x_msg_count
155 , x_msg_data => x_msg_data
156 , p_trohdr_rec => p_trohdr_rec
157 , p_trohdr_val_rec => p_trohdr_val_rec
158 , p_trolin_tbl => l_trolin_tbl
159 , p_trolin_val_tbl => l_trolin_val_tbl
160 , x_trohdr_rec => l_trohdr_rec
161 , x_trolin_tbl => l_trolin_tbl
162 );
163
164 IF x_return_status = fnd_api.g_ret_sts_error THEN
165 If l_debug = 1 THEN
166 print_debug('Error from process_transfer_order',l_api_name);
167 End If;
168 RAISE fnd_api.g_exc_error;
169 ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
170 If l_debug = 1 THEN
171 print_debug('Unexpected error from process_transfer_order',l_api_name);
172 End If;
173 RAISE fnd_api.g_exc_unexpected_error;
174 END IF;
175
176 -- Load Id OUT parameters.
177
178 x_trohdr_rec := l_trohdr_rec;
179 if( p_commit = FND_API.G_TRUE ) Then
180 commit;
181 end if;
182 --x_trolin_tbl := p_trolin_tbl;
183
184 -- If p_return_values is TRUE then convert Ids to Values.
185
186 IF FND_API.to_Boolean(p_return_values) THEN
187
188 Id_To_Value
189 ( p_trohdr_rec => p_trohdr_rec
190 , p_trolin_tbl => l_trolin_tbl
191 , x_trohdr_val_rec => x_trohdr_val_rec
192 , x_trolin_val_tbl => l_trolin_val_tbl
193 );
194
195 END IF;
196 END IF;
197
198 If l_debug = 1 THEN
199 print_debug('End Create Move Order Header', l_api_name);
200 End If;
201 EXCEPTION
202
203 WHEN FND_API.G_EXC_ERROR THEN
204 x_return_status := FND_API.G_RET_STS_ERROR;
205
206 -- Get message count and data
207 FND_MSG_PUB.Count_And_Get
208 ( p_count => x_msg_count
209 , p_data => x_msg_data
210 );
211
212 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
213 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
214
215 -- Get message count and data
216 FND_MSG_PUB.Count_And_Get
217 ( p_count => x_msg_count
218 , p_data => x_msg_data
219 );
220
221 WHEN OTHERS THEN
222 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
223
224 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
225 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME , 'Create_Move_Order_Header');
226 END IF;
227
228 -- Get message count and data
229 FND_MSG_PUB.Count_And_Get
230 ( p_count => x_msg_count
231 , p_data => x_msg_data
232 );
233
234 END Create_Move_Order_Header;
235
236
237 -- Start of Comments
238 -- API name Create_Move_Order_Lines
239 -- Type Public
240 -- Function
241 --
242 -- Pre-reqs
243 --
244 -- Parameters
245 --
246 -- Version Current version = 1.0
247 -- Initial version = 1.0
248 --
249 -- Notes
250 -- Changed by P lowe for bug 6689912
251 -- End of Comments
252
253 PROCEDURE Create_Move_Order_Lines
254 ( p_api_version_number IN NUMBER
255 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
256 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
257 , p_commit IN VARCHAR2 := FND_API.G_FALSE
258 , x_return_status OUT NOCOPY VARCHAR2
259 , x_msg_count OUT NOCOPY NUMBER
260 , x_msg_data OUT NOCOPY VARCHAR2
261 , p_trolin_tbl IN Trolin_Tbl_Type :=
262 G_MISS_TROLIN_TBL
263 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type :=
264 G_MISS_TROLIN_VAL_TBL
265 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
266 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
267 , p_validation_flag IN VARCHAR2
268 )
269 IS
270 l_api_version_number CONSTANT NUMBER := 1.0;
271 l_api_name CONSTANT VARCHAR2(30):= 'Create_Move_Order_Lines';
272 l_control_rec INV_GLOBALS.Control_Rec_Type;
273 l_return_status VARCHAR2(1);
274 l_trohdr_rec Trohdr_Rec_Type := G_MISS_TROHDR_REC;
275 l_trohdr_val_rec Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC;
276 l_trolin_tbl Trolin_Tbl_Type := p_trolin_tbl;
277 l_trolin_tbl_out Trolin_Tbl_Type;
278 l_dummy NUMBER;
279 l_index NUMBER;
280 l_primary_uom_code VARCHAR2(3);
281 l_restrict_locators_code NUMBER := NULL;
282 l_restrict_subinventories_code NUMBER:= NULL;
283 l_result VARCHAR2(1);
284 l_current_ship_set_id NUMBER;
285 l_failed_ship_set_id NUMBER;
286 l_shipset_start_index NUMBER;
287
288 l_batch_id NUMBER := WSH_PICK_LIST.G_BATCH_ID;
289 l_new_trolin_tbl trolin_new_tbl_type;
290 l_found_backorder_cache BOOLEAN := FALSE;
291 l_return_value BOOLEAN := TRUE;
292 l_shipping_attr WSH_INTERFACE.ChangedAttributeTabType;
293 l_shipset_smc_backorder_rec WSH_INTEGRATION.BackorderRecType;
294 l_reservable_type NUMBER;
295 l_count NUMBER;
296
297 CURSOR get_move_order_type (V_header_id NUMBER) IS
298 select move_order_type
299 from mtl_txn_request_headers h
300 where h.header_id = V_header_id;
301 -- 6689912
302 CURSOR get_sales_order (V_line_id NUMBER) IS
303 select h.order_number , l.org_id -- 6689912 added org_id
304 from oe_order_headers_all h
305 ,oe_order_lines_all l
306 where l.header_id = h.header_id
307 and l.line_id = V_line_id;
308
309 l_org_id number; -- 6689912
310 l_order_number OE_ORDER_HEADERS_ALL.ORDER_NUMBER%TYPE;
311 l_move_order_type MTL_TXN_REQUEST_HEADERS.MOVE_ORDER_TYPE%TYPE;
312 l_error_code NUMBER;
313 l_msg_data VARCHAR2(240);
314
315 CURSOR get_sub_loc_ctrl(v_org_id NUMBER, v_sub_code VARCHAR2) IS
316 SELECT locator_type
317 FROM mtl_secondary_inventories
318 WHERE organization_id = v_org_id
319 AND secondary_inventory_name = v_sub_code;
320
321 l_sub_loc_ctrl NUMBER;
322
323 CURSOR get_item_loc_ctrl(v_org_id NUMBER, v_item_id NUMBER) IS
324 SELECT location_control_code
325 FROM mtl_system_items
326 WHERE organization_id = v_org_id
327 AND inventory_item_id = v_item_id;
328
329 l_item_loc_ctrl NUMBER;
330 l_debug NUMBER := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
331
332 --Bug 7148749, added for ship model complete handling
333 l_current_ship_model_id NUMBER;
334 l_shipmodel_start_index NUMBER;
335 BEGIN
336
337 -- Standard call to check for call compatibility
338
339 IF NOT FND_API.Compatible_API_Call
340 ( l_api_version_number
341 , p_api_version_number
342 , l_api_name
343 , G_PKG_NAME
344 )
345 THEN
346 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
347 END IF;
348
349 /*
350 -- Perform Value to Id conversion
351 Value_To_Id
352 ( x_return_status => l_return_status
353 , p_trohdr_rec => l_trohdr_rec
354 , p_trohdr_val_rec => l_trohdr_val_rec
355 , p_trolin_tbl => p_trolin_tbl
356 , p_trolin_val_tbl => p_trolin_val_tbl
357 , x_trohdr_rec => l_trohdr_rec
358 , x_trolin_tbl => l_trolin_tbl
359 );
360
361 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
362 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
363 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
364 RAISE FND_API.G_EXC_ERROR;
365 END IF;
366 */
367 --l_control_rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
368 --l_control_rec.controlled_operation := TRUE;
369 --l_control_rec.write_to_db := FND_API.to_boolean(p_commit);
370
371 IF NVL(p_validation_flag, g_validation_yes) = g_validation_no THEN --{ Validation No
372 l_index := p_trolin_tbl.FIRST;
373 l_count := 1;
374 Loop
375 -- print_debug('start l_index '||l_index,l_api_name);
376 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
377 x_trolin_tbl(l_Index).return_status := fnd_api.g_ret_sts_success;
378 l_found_backorder_cache := FALSE;
379 l_restrict_subinventories_code := NULL;
380 l_restrict_locators_code := NULL;
381
382 IF x_trolin_tbl(l_index).ship_set_id IS NOT NULL AND
383 x_trolin_tbl(l_index).ship_set_id <> fnd_api.g_miss_num AND
384 x_trolin_tbl(l_index).ship_set_id <> nvl(l_current_ship_set_id, -9999) THEN
385 SAVEPOINT SHIPSET_SP;
386 l_current_ship_set_id := x_trolin_tbl(l_index).ship_set_id;
387 l_shipset_start_index := l_index;
388 ELSIF (x_trolin_tbl(l_index).ship_set_id IS NULL OR
389 x_trolin_tbl(l_index).ship_set_Id = fnd_api.g_miss_num) AND
390 l_current_ship_set_id IS NOT NULL THEN
391 l_current_ship_set_id := NULL;
392 l_shipset_start_index := NULL;
396 IF x_trolin_tbl(l_index).ship_model_id IS NOT NULL AND
393 END IF;
394
395 -- Bug 7148749, added for ship model complete handling
397 x_trolin_tbl(l_index).ship_model_id <> fnd_api.g_miss_num AND
398 x_trolin_tbl(l_index).ship_model_id <> nvl(l_current_ship_model_id, -9999) THEN
399 SAVEPOINT SHIPMODEL_SP;
400 l_current_ship_model_id := x_trolin_tbl(l_index).ship_model_id;
401 l_shipmodel_start_index := l_index;
402 ELSIF (x_trolin_tbl(l_index).ship_model_id IS NULL OR
403 x_trolin_tbl(l_index).ship_model_Id = fnd_api.g_miss_num) AND
404 l_current_ship_model_id IS NOT NULL THEN
405 l_current_ship_model_id := NULL;
406 l_shipmodel_start_index := NULL;
407 END IF;
408 -- End Bug 7148749
409
410 If x_trolin_tbl(l_index).transaction_type_id = 52 Then
411 x_trolin_tbl(l_index).transaction_source_type_id := 2;
412 Elsif x_trolin_tbl(l_index).transaction_type_id = 53 Then
413 x_trolin_tbl(l_index).transaction_source_type_id := 8;
414 Else
415 BEGIN
416 select transaction_source_type_id
417 into x_trolin_tbl(l_index).transaction_source_type_id
418 from mtl_transaction_types
419 where transaction_type_id = x_trolin_tbl(l_index).transaction_type_id;
420 EXCEPTION
421 WHEN NO_DATA_FOUND THEN
422 print_debug('Error in fetching source type, Invalid transaction type', l_api_name);
423 RAISE fnd_api.g_exc_error;
424 END;
425 End If;
426
427 IF x_trolin_tbl(l_index).primary_quantity IS NULL OR
428 x_trolin_tbl(l_index).primary_quantity = fnd_api.g_miss_num THEN
429 IF g_inventory_item_id = x_trolin_tbl(l_index).inventory_item_id THEN
430 l_primary_uom_code := g_primary_uom_code;
431 ELSE
432 -- print_debug('Selecting primary uom code', l_api_name);
433 SELECT primary_uom_code
434 ,nvl(restrict_locators_code,0)
435 ,nvl(restrict_subinventories_code,0)
436 INTO l_primary_uom_code
437 ,l_restrict_locators_code
438 ,l_restrict_subinventories_code
439 FROM mtl_system_items
440 WHERE organization_id = x_trolin_tbl(l_index).organization_id
441 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id;
442
443 g_inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
444 g_primary_uom_code := l_primary_uom_code;
445 g_restrict_locators_code := l_restrict_locators_code;
446 g_restrict_subinventories_code := l_restrict_subinventories_code;
447 END IF;
448
449 IF l_primary_uom_code = x_trolin_tbl(l_index).uom_code THEN
450 x_trolin_tbl(l_index).primary_quantity := x_trolin_tbl(l_index).quantity;
451 ELSE
452 x_trolin_tbl(l_index).primary_quantity :=
453 inv_convert.inv_um_convert(
454 item_id => x_trolin_tbl(l_index).inventory_item_id
455 , PRECISION => NULL
456 , from_quantity => x_trolin_tbl(l_index).quantity
457 , from_unit => x_trolin_tbl(l_index).uom_code
458 , to_unit => l_primary_uom_code
459 , from_name => NULL
460 , to_name => NULL);
461 --print_debug('primary_quantity = '|| x_trolin_tbl(l_index).primary_quantity, l_api_name);
462 IF x_trolin_tbl(l_index).primary_quantity < 0 THEN
463 print_debug('Error during conversion. Primary quantity less that 0', l_api_name);
464 RAISE fnd_api.g_exc_error;
465 END IF;
466 END IF; -- primary uom = txn uom
467 END IF; -- primary qty is missing
468
469 IF x_trolin_tbl(l_index).to_subinventory_code IS NOT NULL THEN
470 IF l_restrict_subinventories_code IS NULL THEN
471 IF g_inventory_item_id = x_trolin_tbl(l_index).inventory_item_id Then
472 l_restrict_subinventories_code := g_restrict_subinventories_code;
473 l_restrict_locators_code := g_restrict_locators_code;
474 ELSE -- item doesn't match saved item
475 SELECT primary_uom_code
476 ,nvl(restrict_locators_code,0)
477 ,nvl(restrict_subinventories_code,0)
478 INTO l_primary_uom_code
479 ,l_restrict_locators_code
480 ,l_restrict_subinventories_code
481 FROM mtl_system_items
482 WHERE organization_id = x_trolin_tbl(l_index).organization_id
483 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id;
484
485 g_inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
486 g_primary_uom_code := l_primary_uom_code;
487 g_restrict_subinventories_code := l_restrict_subinventories_code;
488 g_restrict_locators_code := l_restrict_locators_code;
489 END IF; -- inventory item matches
490 END IF; -- restrict subs is null
491 IF l_restrict_locators_code = 1 AND
492 x_trolin_tbl(l_index).to_locator_id IS NOT NULL THEN
493 BEGIN
494 SELECT 'Y'
495 INTO l_result
496 FROM DUAL
497 WHERE exists (
498 SELECT secondary_locator
502 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id);
499 FROM mtl_secondary_locators
500 WHERE organization_id = x_trolin_tbl(l_index).organization_id
501 AND secondary_locator = x_trolin_tbl(l_index).to_locator_id
503 EXCEPTION
504 WHEN NO_DATA_FOUND THEN
505 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
506 END;
507
508 ELSIF l_restrict_subinventories_code = 1 and x_trolin_tbl(l_index).to_subinventory_code is NOT NULL Then
509 BEGIN
510 SELECT 'Y'
511 INTO l_result
512 FROM DUAL
513 WHERE exists (
514 SELECT secondary_inventory
515 FROM mtl_item_sub_inventories
516 WHERE organization_id = x_trolin_tbl(l_index).organization_id
517 AND secondary_inventory = x_trolin_tbl(l_index).to_subinventory_code
518 AND inventory_item_id = x_trolin_tbl(l_index).inventory_item_id);
519 EXCEPTION
520 WHEN NO_DATA_FOUND THEN
521 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
522 END;
523 END IF;
524 END IF; -- to sub is not null
525
526 IF x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success THEN --{
527
528 l_return_value := INV_CACHE.set_item_rec( p_organization_id => x_trolin_tbl(l_index).organization_id
529 ,p_item_id => x_trolin_tbl(l_index).inventory_item_id);
530
531 IF NOT l_return_value Then
532 print_debug('Error setting cache for inventory_item', l_api_name);
533 RAISE fnd_api.g_exc_unexpected_error;
534 END IF;
535
536 l_reservable_type := INV_CACHE.item_rec.reservable_type;
537
538 IF l_reservable_type = 2 then
539 l_found_backorder_cache := FALSE;
540 ELSE
541 l_found_backorder_cache := inv_pick_release_pvt.check_backorder_cache(
542 p_org_id => x_trolin_tbl(l_index).organization_id
543 ,p_inventory_item_id => x_trolin_tbl(l_index).inventory_item_id
544 ,p_ignore_reservations => FALSE
545 ,p_demand_line_id => x_trolin_tbl(l_index).txn_source_line_id);
546 END IF;
547
548 IF l_found_backorder_cache THEN
549 IF l_current_ship_set_id IS NOT NULL THEN
550 BEGIN
551 l_shipset_smc_backorder_rec.delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
552 l_shipset_smc_backorder_rec.ship_set_id := l_current_ship_set_id;
553
554 If l_debug = 1 THEN
555 print_debug('Calling BO SS for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', SS_ID = '||l_current_ship_set_id,l_api_name);
556 End If;
557
558 wsh_integration.ins_backorder_ss_smc_rec
559 (p_api_version_number => 1.0,
560 p_source_code => 'INV',
561 p_init_msg_list => fnd_api.g_false,
562 p_backorder_rec => l_shipset_smc_backorder_rec,
563 x_return_status => l_return_status,
564 x_msg_count => x_msg_count,
565 x_msg_data => x_msg_data);
566
567 IF l_return_status <> fnd_api.g_ret_sts_success THEN
568 print_debug('Error occured while updating shipping for ' || 'failed ship set',l_api_name);
569 print_debug('l_return_status: ' || l_return_status, l_api_name);
570 END IF;
571
572 EXCEPTION
573 WHEN OTHERS THEN
574 print_debug('When other exception: ' || Sqlerrm, l_api_name);
575 print_debug('l_return_status: ' || l_return_status, l_api_name);
576 END;
577
578 -- Bug 7148749, added for ship model complete handling
579 ELSIF l_current_ship_model_id IS NOT NULL THEN
580 BEGIN
581 l_shipset_smc_backorder_rec.delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
582 l_shipset_smc_backorder_rec.ship_model_id := l_current_ship_model_id;
583
584 If l_debug = 1 THEN
585 print_debug('Calling BO SMC for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', Model_ID = '||l_current_ship_model_id,l_api_name);
586 End If;
587
588 wsh_integration.ins_backorder_ss_smc_rec
589 (p_api_version_number => 1.0,
590 p_source_code => 'INV',
591 p_init_msg_list => fnd_api.g_false,
592 p_backorder_rec => l_shipset_smc_backorder_rec,
593 x_return_status => l_return_status,
594 x_msg_count => x_msg_count,
595 x_msg_data => x_msg_data);
596
597 IF l_return_status <> fnd_api.g_ret_sts_success THEN
598 print_debug('Error occured while updating shipping for ' || 'failed ship set',l_api_name);
599 print_debug('l_return_status: ' || l_return_status, l_api_name);
600 END IF;
601
602 EXCEPTION
603 WHEN OTHERS THEN
607 -- End Bug 7148749
604 print_debug('When other exception: ' || Sqlerrm, l_api_name);
605 print_debug('l_return_status: ' || l_return_status, l_api_name);
606 END;
608 END IF;
609 x_trolin_tbl(l_index).return_status:= fnd_api.g_ret_sts_error;
610 END IF;
611 END IF; -- x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success }
612
613 IF x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_error THEN --{
614 IF l_current_ship_set_id is NOT NULL THEN --{
615 ROLLBACK to SHIPSET_SP;
616 l_index := l_shipset_start_index;
617 LOOP
618 IF not x_trolin_tbl.exists(l_index) THEN
619 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
620 END IF;
621 IF l_found_backorder_cache THEN --{
622
623 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
624 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
625 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
626 l_shipping_attr(1).action_flag := 'B';
627
628 WSH_INTERFACE.Update_Shipping_Attributes
629 (p_source_code => 'INV',
630 p_changed_attributes => l_shipping_attr,
631 x_return_status => l_return_status
632 );
633
634 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
635 print_debug('return error from update shipping attributes',l_api_name);
636 RAISE FND_API.G_EXC_ERROR;
637 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
638 print_debug('return error from update shipping attributes',l_api_name);
639 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
640 END IF;
641 END IF; --} backorder_flag
642 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
643 EXIT WHEN l_index = p_trolin_tbl.LAST;
644 l_index := p_trolin_tbl.NEXT(l_index);
645
646 IF p_trolin_tbl(l_index).ship_set_id IS NULL OR
647 p_trolin_tbl(l_index).ship_set_id = fnd_api.g_miss_num OR
648 p_trolin_tbl(l_index).ship_set_id <> nvl(l_current_ship_set_id, -9999) THEN
649 l_index := p_trolin_tbl.prior(l_index);
650 EXIT;
651 END IF;
652 END LOOP; --loop for all records in shipset
653 l_current_ship_set_id := NULL;
654 l_shipset_start_index := NULL;
655 ELSIF l_current_ship_model_id IS NOT NULL THEN --l_current_ship_set_id } {
656 ROLLBACK to SHIPMODEL_SP;
657 l_index := l_shipmodel_start_index;
658 LOOP
659 IF not x_trolin_tbl.exists(l_index) THEN
660 x_trolin_tbl(l_index) := p_trolin_tbl(l_index);
661 END IF;
662 IF l_found_backorder_cache THEN --{
663 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
664 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
665 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
666 l_shipping_attr(1).action_flag := 'B';
667
668 If l_debug = 1 THEN
669 print_debug('Backordering WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id||', MODEL_ID = '||l_current_ship_model_id,l_api_name);
670 End If;
671
672 WSH_INTERFACE.Update_Shipping_Attributes
673 (p_source_code => 'INV',
674 p_changed_attributes => l_shipping_attr,
675 x_return_status => l_return_status
676 );
677 IF l_return_status = FND_API.G_RET_STS_ERROR then
678 print_debug('return error from update shipping attributes',l_api_name);
679 RAISE FND_API.G_EXC_ERROR;
680 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
681 print_debug('return error from update shipping attributes',l_api_name);
682 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
683 END IF;
684 END IF; -- l_back_order_flag }
685 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
686
687 EXIT WHEN l_index = p_trolin_tbl.LAST;
688 l_index := p_trolin_tbl.NEXT(l_index);
689
690 IF p_trolin_tbl(l_index).ship_model_id IS NULL OR
691 p_trolin_tbl(l_index).ship_model_id = fnd_api.g_miss_num OR
692 p_trolin_tbl(l_index).ship_model_id <> nvl(l_current_ship_model_id, -9999) THEN
693 l_index := p_trolin_tbl.prior(l_index);
694 EXIT;
695 END IF;
696 END LOOP; --loop for all records in ship model
697 l_current_ship_model_id := NULL;
698 l_shipmodel_start_index := NULL;
699
700 ELSE -- l_current_ship_set_id } {
701
702 IF l_found_backorder_cache THEN --{
703
704 l_shipping_attr(1).source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
705 l_shipping_attr(1).ship_from_org_id := x_trolin_tbl(l_index).organization_id;
706 l_shipping_attr(1).delivery_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
710 (p_source_code => 'INV',
707 l_shipping_attr(1).action_flag := 'B';
708
709 WSH_INTERFACE.Update_Shipping_Attributes
711 p_changed_attributes => l_shipping_attr,
712 x_return_status => l_return_status
713 );
714
715 IF l_return_status = FND_API.G_RET_STS_ERROR then
716 print_debug('return error from update shipping attributes',l_api_name);
717 RAISE FND_API.G_EXC_ERROR;
718 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
719 print_debug('return error from update shipping attributes',l_api_name);
720 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
721 END IF;
722 END IF; -- l_back_order_flag }
723 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_error;
724 END IF; -- l_current_ship_set_id }
725 --Bug 7148749, moving this after the loop, so that the new move order lines table
726 --l_new_trolin_tbl gets populated only when all the lines in x_trolin_tbl are validated.
727 /* ELSE --} {
728 --print_debug('in insert',l_api_name);
729 SELECT MTL_TXN_REQUEST_LINES_S.NEXTVAL
730 INTO x_trolin_tbl(l_index).line_id
731 FROM DUAL;
732 x_trolin_tbl(l_index).status_date := SYSDATE;
733 x_trolin_tbl(l_index).creation_date := SYSDATE;
734 x_trolin_tbl(l_index).created_by := fnd_global.user_id;
735 x_trolin_tbl(l_index).last_update_date := SYSDATE;
736 x_trolin_tbl(l_index).last_updated_by := fnd_global.user_id;
737 x_trolin_tbl(l_index).last_update_login := fnd_global.login_id;
738 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_success;
739 x_trolin_tbl(l_index) := inv_trolin_util.convert_miss_to_null_parallel
740 (p_trolin_rec => x_trolin_tbl(l_index));
741
742 l_new_trolin_tbl(l_count).attribute1 := x_trolin_tbl(l_index).attribute1;
743 l_new_trolin_tbl(l_count).attribute10 := x_trolin_tbl(l_index).attribute10;
744 l_new_trolin_tbl(l_count).attribute11 := x_trolin_tbl(l_index).attribute11;
745 l_new_trolin_tbl(l_count).attribute12 := x_trolin_tbl(l_index).attribute12;
746 l_new_trolin_tbl(l_count).attribute13 := x_trolin_tbl(l_index).attribute13;
747 l_new_trolin_tbl(l_count).attribute14 := x_trolin_tbl(l_index).attribute14;
748 l_new_trolin_tbl(l_count).attribute15 := x_trolin_tbl(l_index).attribute15;
749 l_new_trolin_tbl(l_count).attribute2 := x_trolin_tbl(l_index).attribute2;
750 l_new_trolin_tbl(l_count).attribute3 := x_trolin_tbl(l_index).attribute3;
751 l_new_trolin_tbl(l_count).attribute4 := x_trolin_tbl(l_index).attribute4;
752 l_new_trolin_tbl(l_count).attribute5 := x_trolin_tbl(l_index).attribute5;
753 l_new_trolin_tbl(l_count).attribute6 := x_trolin_tbl(l_index).attribute6;
754 l_new_trolin_tbl(l_count).attribute7 := x_trolin_tbl(l_index).attribute7;
755 l_new_trolin_tbl(l_count).attribute8 := x_trolin_tbl(l_index).attribute8;
756 l_new_trolin_tbl(l_count).attribute9 := x_trolin_tbl(l_index).attribute9;
757 l_new_trolin_tbl(l_count).attribute_category := x_trolin_tbl(l_index).attribute_category;
758 l_new_trolin_tbl(l_count).created_by := x_trolin_tbl(l_index).created_by;
759 l_new_trolin_tbl(l_count).creation_date := x_trolin_tbl(l_index).creation_date;
760 l_new_trolin_tbl(l_count).date_required := x_trolin_tbl(l_index).date_required;
761 l_new_trolin_tbl(l_count).from_locator_id := x_trolin_tbl(l_index).from_locator_id;
762 l_new_trolin_tbl(l_count).from_subinventory_code := x_trolin_tbl(l_index).from_subinventory_code;
763 l_new_trolin_tbl(l_count).from_subinventory_id := x_trolin_tbl(l_index).from_subinventory_id;
764 l_new_trolin_tbl(l_count).header_id := x_trolin_tbl(l_index).header_id;
765 l_new_trolin_tbl(l_count).inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
766 l_new_trolin_tbl(l_count).last_updated_by := x_trolin_tbl(l_index).last_updated_by;
767 l_new_trolin_tbl(l_count).last_update_date := x_trolin_tbl(l_index).last_update_date;
768 l_new_trolin_tbl(l_count).last_update_login := x_trolin_tbl(l_index).last_update_login;
769 l_new_trolin_tbl(l_count).line_id := x_trolin_tbl(l_index).line_id;
770 l_new_trolin_tbl(l_count).line_number := x_trolin_tbl(l_index).line_number;
771 l_new_trolin_tbl(l_count).line_status := x_trolin_tbl(l_index).line_status;
772 l_new_trolin_tbl(l_count).lot_number := x_trolin_tbl(l_index).lot_number;
773 l_new_trolin_tbl(l_count).organization_id := x_trolin_tbl(l_index).organization_id;
774 l_new_trolin_tbl(l_count).program_application_id := x_trolin_tbl(l_index).program_application_id;
775 l_new_trolin_tbl(l_count).program_id := x_trolin_tbl(l_index).program_id;
776 l_new_trolin_tbl(l_count).program_update_date := x_trolin_tbl(l_index).program_update_date;
777 l_new_trolin_tbl(l_count).project_id := x_trolin_tbl(l_index).project_id;
778 l_new_trolin_tbl(l_count).quantity := x_trolin_tbl(l_index).quantity;
779 l_new_trolin_tbl(l_count).quantity_delivered := x_trolin_tbl(l_index).quantity_delivered;
780 l_new_trolin_tbl(l_count).quantity_detailed := x_trolin_tbl(l_index).quantity_detailed;
781 l_new_trolin_tbl(l_count).reason_id := x_trolin_tbl(l_index).reason_id;
782 l_new_trolin_tbl(l_count).REFERENCE := x_trolin_tbl(l_index).REFERENCE;
783 l_new_trolin_tbl(l_count).reference_id := x_trolin_tbl(l_index).reference_id;
787 l_new_trolin_tbl(l_count).serial_number_end := x_trolin_tbl(l_index).serial_number_end;
784 l_new_trolin_tbl(l_count).reference_type_code := x_trolin_tbl(l_index).reference_type_code;
785 l_new_trolin_tbl(l_count).request_id := x_trolin_tbl(l_index).request_id;
786 l_new_trolin_tbl(l_count).revision := x_trolin_tbl(l_index).revision;
788 l_new_trolin_tbl(l_count).serial_number_start := x_trolin_tbl(l_index).serial_number_start;
789 l_new_trolin_tbl(l_count).status_date := x_trolin_tbl(l_index).status_date;
790 l_new_trolin_tbl(l_count).task_id := x_trolin_tbl(l_index).task_id;
791 l_new_trolin_tbl(l_count).to_account_id := x_trolin_tbl(l_index).to_account_id;
792 l_new_trolin_tbl(l_count).to_locator_id := x_trolin_tbl(l_index).to_locator_id;
793 l_new_trolin_tbl(l_count).to_subinventory_code := x_trolin_tbl(l_index).to_subinventory_code;
794 l_new_trolin_tbl(l_count).to_subinventory_id := x_trolin_tbl(l_index).to_subinventory_id;
795 l_new_trolin_tbl(l_count).transaction_header_id := x_trolin_tbl(l_index).transaction_header_id;
796 l_new_trolin_tbl(l_count).uom_code := x_trolin_tbl(l_index).uom_code;
797 l_new_trolin_tbl(l_count).transaction_type_id := x_trolin_tbl(l_index).transaction_type_id;
798 l_new_trolin_tbl(l_count).transaction_source_type_id := x_trolin_tbl(l_index).transaction_source_type_id;
799 l_new_trolin_tbl(l_count).txn_source_id := x_trolin_tbl(l_index).txn_source_id;
800 l_new_trolin_tbl(l_count).txn_source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
801 l_new_trolin_tbl(l_count).txn_source_line_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
802 l_new_trolin_tbl(l_count).to_organization_id := x_trolin_tbl(l_index).to_organization_id;
803 l_new_trolin_tbl(l_count).primary_quantity := x_trolin_tbl(l_index).primary_quantity;
804 l_new_trolin_tbl(l_count).pick_strategy_id := x_trolin_tbl(l_index).pick_strategy_id;
805 l_new_trolin_tbl(l_count).put_away_strategy_id := x_trolin_tbl(l_index).put_away_strategy_id;
806 l_new_trolin_tbl(l_count).unit_number := x_trolin_tbl(l_index).unit_number;
807 l_new_trolin_tbl(l_count).ship_to_location_id := x_trolin_tbl(l_index).ship_to_location_id;
808 l_new_trolin_tbl(l_count).from_cost_group_id := x_trolin_tbl(l_index).from_cost_group_id;
809 l_new_trolin_tbl(l_count).to_cost_group_id := x_trolin_tbl(l_index).to_cost_group_id;
810 l_new_trolin_tbl(l_count).lpn_id := x_trolin_tbl(l_index).lpn_id;
811 l_new_trolin_tbl(l_count).to_lpn_id := x_trolin_tbl(l_index).to_lpn_id;
812 l_new_trolin_tbl(l_count).inspection_status := x_trolin_tbl(l_index).inspection_status;
813 l_new_trolin_tbl(l_count).pick_methodology_id := x_trolin_tbl(l_index).pick_methodology_id;
814 l_new_trolin_tbl(l_count).container_item_id := x_trolin_tbl(l_index).container_item_id;
815 l_new_trolin_tbl(l_count).carton_grouping_id := x_trolin_tbl(l_index).carton_grouping_id;
816 l_new_trolin_tbl(l_count).wms_process_flag := x_trolin_tbl(l_index).wms_process_flag;
817 l_new_trolin_tbl(l_count).pick_slip_number := x_trolin_tbl(l_index).pick_slip_number;
818 l_new_trolin_tbl(l_count).pick_slip_date := x_trolin_tbl(l_index).pick_slip_date;
819 l_new_trolin_tbl(l_count).ship_set_id := x_trolin_tbl(l_index).ship_set_id;
820 l_new_trolin_tbl(l_count).ship_model_id := x_trolin_tbl(l_index).ship_model_id;
821 l_new_trolin_tbl(l_count).model_quantity := x_trolin_tbl(l_index).model_quantity;
822 l_new_trolin_tbl(l_count).required_quantity := x_trolin_tbl(l_index).required_quantity;
823 l_new_trolin_tbl(l_count).crossdock_type := NULL;
824 l_new_trolin_tbl(l_count).backorder_delivery_detail_id := NULL;
825 l_new_trolin_tbl(l_count).assignment_id := NULL;
826 l_new_trolin_tbl(l_count).reference_detail_id := NULL;
827
828 -- Added for INVCONV BEGIN
829 l_new_trolin_tbl(l_count).secondary_quantity := x_trolin_tbl(l_index).secondary_quantity;
830 l_new_trolin_tbl(l_count).secondary_uom_code := x_trolin_tbl(l_index).secondary_uom;
831 l_new_trolin_tbl(l_count).secondary_quantity_detailed := x_trolin_tbl(l_index).secondary_quantity_detailed;
832 l_new_trolin_tbl(l_count).secondary_quantity_delivered := x_trolin_tbl(l_index).secondary_quantity_delivered;
833 l_new_trolin_tbl(l_count).secondary_required_quantity := x_trolin_tbl(l_index).secondary_required_quantity;
834 l_new_trolin_tbl(l_count).grade_code := x_trolin_tbl(l_index).grade_code;
835 -- INVCONV END
836
837 l_count := l_count+1;
838 */ -- Bug 7148749
839 END IF; -- x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_error }
840 -- gmi_reservation_util.println('- PAL inside Create_Move_Order_Lines ');
841 /* Bug 4162173 Added the following to initate the Outbound for Third Party Integration */
842 OPEN get_move_order_type(x_trolin_tbl(l_index).header_id);
843 FETCH get_move_order_type INTO l_move_order_type;
844 CLOSE get_move_order_type;
845
846 IF (l_move_order_type = 3) AND
847 (x_trolin_tbl(l_index).txn_source_line_id IS NOT NULL) THEN
848 OPEN get_sales_order(x_trolin_tbl(l_index).txn_source_line_id);
849 FETCH get_sales_order INTO l_order_number ,l_org_id; -- 6689912
850 CLOSE get_sales_order;
851 -- gmi_reservation_util.println('- PAL about to call GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER ');
852 GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER
853 (p_api_version => 1.0,
854 p_init_msg_list => p_init_msg_list,
855 p_commit => p_commit,
856 p_sales_order_org_id => l_org_id, -- 6689912
860 x_return_status => l_return_status,
857 p_orgn_id => x_trolin_tbl(l_index).organization_id,
858 p_item_id => x_trolin_tbl(l_index).inventory_item_id,
859 p_sales_order_no => l_order_number,
861 x_error_code => l_error_code,
862 x_msg_data => l_msg_data);
863
864 IF l_return_status <> 'S' THEN
865 WSH_Util_Core.PrintLn('Error occured on initiate the Outbound to Partner Application ' ||
866 'with the following error message ' || l_msg_data);
867 --gmi_reservation_util.println('- PAL - called GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER - Error occured ');
868 ELSE
869 --gmi_reservation_util.println('- PAL - called GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER - success ');
870 WSH_Util_Core.PrintLn('Successfully initiated the Outbound to Partner Application => ' ||
871 x_trolin_tbl(l_index).inventory_item_id);
872 END IF;
873 END IF;
874
875 -- Bug 5311250: null out TO_LOCATOR_ID if TO SUB has locator control
876 -- set to item level, and item is not locator controlled
877 IF (l_move_order_type = 3) THEN
878 OPEN get_sub_loc_ctrl (x_trolin_tbl(l_index).organization_id
879 ,x_trolin_tbl(l_index).to_subinventory_code);
880 FETCH get_sub_loc_ctrl INTO l_sub_loc_ctrl;
881 CLOSE get_sub_loc_ctrl;
882 IF l_sub_loc_ctrl = 5 THEN
883 BEGIN
884 l_item_loc_ctrl := INV_CACHE.item_rec.location_control_code;
885 EXCEPTION
886 WHEN OTHERS THEN
887 print_debug('Exception retrieving item locator control from cache ' || sqlerrm
888 ,'INV_Move_Order_PUB.Create_Move_Order_Lines');
889 l_item_loc_ctrl := 0;
890 END;
891 IF l_item_loc_ctrl IS NULL OR l_item_loc_ctrl = 0 THEN
892 OPEN get_item_loc_ctrl (x_trolin_tbl(l_index).organization_id
893 ,x_trolin_tbl(l_index).inventory_item_id);
894 FETCH get_item_loc_ctrl INTO l_item_loc_ctrl;
895 CLOSE get_item_loc_ctrl;
896 END IF;
897 IF l_item_loc_ctrl = 1 THEN
898 x_trolin_tbl(l_index).to_locator_id := NULL;
899 -- Bug 7148749, commenting the below line, since l_new_trolin_tbl population code is moved below.
900 -- l_new_trolin_tbl(l_count - 1).to_locator_id := NULL;
901 END IF;
902 END IF;
903 END IF;
904
905 --print_debug('return_status '|| x_trolin_tbl(l_index).return_status, l_api_name);
906 EXIT WHEN l_index = p_trolin_tbl.LAST;
907 l_index := p_trolin_tbl.NEXT(l_index);
908 END LOOP; -- loop throUgh p_trolin_tbl
909
910 --Bug 7148749, populating l_new_trolin_tbl only after all the records in x_trolin_tbl
911 --have been successfully validated, so that entire ship set can be handled.
912 l_index := x_trolin_tbl.FIRST;
913 l_count := 1;
914 Loop
915 If x_trolin_tbl(l_index).return_status = fnd_api.g_ret_sts_success THEN
916
917 If l_debug = 1 THEN
918 print_debug('Creating MO Line for WDD = '||x_trolin_tbl(l_index).txn_source_line_detail_id,l_api_name);
919 End If;
920 SELECT MTL_TXN_REQUEST_LINES_S.NEXTVAL
921 INTO x_trolin_tbl(l_index).line_id
922 FROM DUAL;
923
924 x_trolin_tbl(l_index).status_date := SYSDATE;
925 x_trolin_tbl(l_index).creation_date := SYSDATE;
926 x_trolin_tbl(l_index).created_by := fnd_global.user_id;
927 x_trolin_tbl(l_index).last_update_date := SYSDATE;
928 x_trolin_tbl(l_index).last_updated_by := fnd_global.user_id;
929 x_trolin_tbl(l_index).last_update_login := fnd_global.login_id;
930 x_trolin_tbl(l_index).return_status := fnd_api.g_ret_sts_success;
931 x_trolin_tbl(l_index) := inv_trolin_util.convert_miss_to_null_parallel
932 (p_trolin_rec => x_trolin_tbl(l_index));
933
934 l_new_trolin_tbl(l_count).attribute1 := x_trolin_tbl(l_index).attribute1;
935 l_new_trolin_tbl(l_count).attribute10 := x_trolin_tbl(l_index).attribute10;
936 l_new_trolin_tbl(l_count).attribute11 := x_trolin_tbl(l_index).attribute11;
937 l_new_trolin_tbl(l_count).attribute12 := x_trolin_tbl(l_index).attribute12;
938 l_new_trolin_tbl(l_count).attribute13 := x_trolin_tbl(l_index).attribute13;
939 l_new_trolin_tbl(l_count).attribute14 := x_trolin_tbl(l_index).attribute14;
940 l_new_trolin_tbl(l_count).attribute15 := x_trolin_tbl(l_index).attribute15;
941 l_new_trolin_tbl(l_count).attribute2 := x_trolin_tbl(l_index).attribute2;
942 l_new_trolin_tbl(l_count).attribute3 := x_trolin_tbl(l_index).attribute3;
943 l_new_trolin_tbl(l_count).attribute4 := x_trolin_tbl(l_index).attribute4;
944 l_new_trolin_tbl(l_count).attribute5 := x_trolin_tbl(l_index).attribute5;
945 l_new_trolin_tbl(l_count).attribute6 := x_trolin_tbl(l_index).attribute6;
946 l_new_trolin_tbl(l_count).attribute7 := x_trolin_tbl(l_index).attribute7;
947 l_new_trolin_tbl(l_count).attribute8 := x_trolin_tbl(l_index).attribute8;
951 l_new_trolin_tbl(l_count).creation_date := x_trolin_tbl(l_index).creation_date;
948 l_new_trolin_tbl(l_count).attribute9 := x_trolin_tbl(l_index).attribute9;
949 l_new_trolin_tbl(l_count).attribute_category := x_trolin_tbl(l_index).attribute_category;
950 l_new_trolin_tbl(l_count).created_by := x_trolin_tbl(l_index).created_by;
952 l_new_trolin_tbl(l_count).date_required := x_trolin_tbl(l_index).date_required;
953 l_new_trolin_tbl(l_count).from_locator_id := x_trolin_tbl(l_index).from_locator_id;
954 l_new_trolin_tbl(l_count).from_subinventory_code := x_trolin_tbl(l_index).from_subinventory_code;
955 l_new_trolin_tbl(l_count).from_subinventory_id := x_trolin_tbl(l_index).from_subinventory_id;
956 l_new_trolin_tbl(l_count).header_id := x_trolin_tbl(l_index).header_id;
957 l_new_trolin_tbl(l_count).inventory_item_id := x_trolin_tbl(l_index).inventory_item_id;
958 l_new_trolin_tbl(l_count).last_updated_by := x_trolin_tbl(l_index).last_updated_by;
959 l_new_trolin_tbl(l_count).last_update_date := x_trolin_tbl(l_index).last_update_date;
960 l_new_trolin_tbl(l_count).last_update_login := x_trolin_tbl(l_index).last_update_login;
961 l_new_trolin_tbl(l_count).line_id := x_trolin_tbl(l_index).line_id;
962 l_new_trolin_tbl(l_count).line_number := x_trolin_tbl(l_index).line_number;
963 l_new_trolin_tbl(l_count).line_status := x_trolin_tbl(l_index).line_status;
964 l_new_trolin_tbl(l_count).lot_number := x_trolin_tbl(l_index).lot_number;
965 l_new_trolin_tbl(l_count).organization_id := x_trolin_tbl(l_index).organization_id;
966 l_new_trolin_tbl(l_count).program_application_id := x_trolin_tbl(l_index).program_application_id;
967 l_new_trolin_tbl(l_count).program_id := x_trolin_tbl(l_index).program_id;
968 l_new_trolin_tbl(l_count).program_update_date := x_trolin_tbl(l_index).program_update_date;
969 l_new_trolin_tbl(l_count).project_id := x_trolin_tbl(l_index).project_id;
970 l_new_trolin_tbl(l_count).quantity := x_trolin_tbl(l_index).quantity;
971 l_new_trolin_tbl(l_count).quantity_delivered := x_trolin_tbl(l_index).quantity_delivered;
972 l_new_trolin_tbl(l_count).quantity_detailed := x_trolin_tbl(l_index).quantity_detailed;
973 l_new_trolin_tbl(l_count).reason_id := x_trolin_tbl(l_index).reason_id;
974 l_new_trolin_tbl(l_count).REFERENCE := x_trolin_tbl(l_index).REFERENCE;
975 l_new_trolin_tbl(l_count).reference_id := x_trolin_tbl(l_index).reference_id;
976 l_new_trolin_tbl(l_count).reference_type_code := x_trolin_tbl(l_index).reference_type_code;
977 l_new_trolin_tbl(l_count).request_id := x_trolin_tbl(l_index).request_id;
978 l_new_trolin_tbl(l_count).revision := x_trolin_tbl(l_index).revision;
979 l_new_trolin_tbl(l_count).serial_number_end := x_trolin_tbl(l_index).serial_number_end;
980 l_new_trolin_tbl(l_count).serial_number_start := x_trolin_tbl(l_index).serial_number_start;
981 l_new_trolin_tbl(l_count).status_date := x_trolin_tbl(l_index).status_date;
982 l_new_trolin_tbl(l_count).task_id := x_trolin_tbl(l_index).task_id;
983 l_new_trolin_tbl(l_count).to_account_id := x_trolin_tbl(l_index).to_account_id;
984 l_new_trolin_tbl(l_count).to_locator_id := x_trolin_tbl(l_index).to_locator_id;
985 l_new_trolin_tbl(l_count).to_subinventory_code := x_trolin_tbl(l_index).to_subinventory_code;
986 l_new_trolin_tbl(l_count).to_subinventory_id := x_trolin_tbl(l_index).to_subinventory_id;
987 l_new_trolin_tbl(l_count).transaction_header_id := x_trolin_tbl(l_index).transaction_header_id;
988 l_new_trolin_tbl(l_count).uom_code := x_trolin_tbl(l_index).uom_code;
989 l_new_trolin_tbl(l_count).transaction_type_id := x_trolin_tbl(l_index).transaction_type_id;
990 l_new_trolin_tbl(l_count).transaction_source_type_id := x_trolin_tbl(l_index).transaction_source_type_id;
991 l_new_trolin_tbl(l_count).txn_source_id := x_trolin_tbl(l_index).txn_source_id;
992 l_new_trolin_tbl(l_count).txn_source_line_id := x_trolin_tbl(l_index).txn_source_line_id;
993 l_new_trolin_tbl(l_count).txn_source_line_detail_id := x_trolin_tbl(l_index).txn_source_line_detail_id;
994 l_new_trolin_tbl(l_count).to_organization_id := x_trolin_tbl(l_index).to_organization_id;
995 l_new_trolin_tbl(l_count).primary_quantity := x_trolin_tbl(l_index).primary_quantity;
996 l_new_trolin_tbl(l_count).pick_strategy_id := x_trolin_tbl(l_index).pick_strategy_id;
997 l_new_trolin_tbl(l_count).put_away_strategy_id := x_trolin_tbl(l_index).put_away_strategy_id;
998 l_new_trolin_tbl(l_count).unit_number := x_trolin_tbl(l_index).unit_number;
999 l_new_trolin_tbl(l_count).ship_to_location_id := x_trolin_tbl(l_index).ship_to_location_id;
1000 l_new_trolin_tbl(l_count).from_cost_group_id := x_trolin_tbl(l_index).from_cost_group_id;
1001 l_new_trolin_tbl(l_count).to_cost_group_id := x_trolin_tbl(l_index).to_cost_group_id;
1002 l_new_trolin_tbl(l_count).lpn_id := x_trolin_tbl(l_index).lpn_id;
1006 l_new_trolin_tbl(l_count).container_item_id := x_trolin_tbl(l_index).container_item_id;
1003 l_new_trolin_tbl(l_count).to_lpn_id := x_trolin_tbl(l_index).to_lpn_id;
1004 l_new_trolin_tbl(l_count).inspection_status := x_trolin_tbl(l_index).inspection_status;
1005 l_new_trolin_tbl(l_count).pick_methodology_id := x_trolin_tbl(l_index).pick_methodology_id;
1007 l_new_trolin_tbl(l_count).carton_grouping_id := x_trolin_tbl(l_index).carton_grouping_id;
1008 l_new_trolin_tbl(l_count).wms_process_flag := x_trolin_tbl(l_index).wms_process_flag;
1009 l_new_trolin_tbl(l_count).pick_slip_number := x_trolin_tbl(l_index).pick_slip_number;
1010 l_new_trolin_tbl(l_count).pick_slip_date := x_trolin_tbl(l_index).pick_slip_date;
1011 l_new_trolin_tbl(l_count).ship_set_id := x_trolin_tbl(l_index).ship_set_id;
1012 l_new_trolin_tbl(l_count).ship_model_id := x_trolin_tbl(l_index).ship_model_id;
1013 l_new_trolin_tbl(l_count).model_quantity := x_trolin_tbl(l_index).model_quantity;
1014 l_new_trolin_tbl(l_count).required_quantity := x_trolin_tbl(l_index).required_quantity;
1015 l_new_trolin_tbl(l_count).crossdock_type := NULL;
1016 l_new_trolin_tbl(l_count).backorder_delivery_detail_id := NULL;
1017 l_new_trolin_tbl(l_count).assignment_id := NULL;
1018 l_new_trolin_tbl(l_count).reference_detail_id := NULL;
1019
1020 -- Added for INVCONV BEGIN
1021 l_new_trolin_tbl(l_count).secondary_quantity := x_trolin_tbl(l_index).secondary_quantity;
1022 l_new_trolin_tbl(l_count).secondary_uom_code := x_trolin_tbl(l_index).secondary_uom;
1023 l_new_trolin_tbl(l_count).secondary_quantity_detailed := x_trolin_tbl(l_index).secondary_quantity_detailed;
1024 l_new_trolin_tbl(l_count).secondary_quantity_delivered := x_trolin_tbl(l_index).secondary_quantity_delivered;
1025 l_new_trolin_tbl(l_count).secondary_required_quantity := x_trolin_tbl(l_index).secondary_required_quantity;
1026 l_new_trolin_tbl(l_count).grade_code := x_trolin_tbl(l_index).grade_code;
1027 -- INVCONV END
1028
1029 l_count := l_count+1;
1030 End If;
1031 EXIT WHEN l_index = x_trolin_tbl.LAST;
1032 l_index := x_trolin_tbl.NEXT(l_index);
1033 End Loop;
1034
1035 If l_debug = 1 THEN
1036 print_debug('l_new_trolin_tbl Count = '||l_new_trolin_tbl.count||', x_trolin_tbl Count = '||x_trolin_tbl.count
1037 ||', p_trolin_tbl Count = '||p_trolin_tbl.count,l_api_name);
1038 End If;
1039 -- End bug 7148749
1040
1041 x_return_status := fnd_api.g_ret_sts_success;
1042
1043 inv_trolin_util.insert_mo_lines_bulk
1044 (p_new_trolin_tbl => l_new_trolin_tbl
1045 ,x_return_status => x_return_status);
1046
1047 --delete the records from l_new_trolin_tbl
1048 l_new_trolin_tbl.delete;
1049
1050 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1051 print_debug('return error from INSERT_MO_LINES_BULK',l_api_name);
1052 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1053 END IF;
1054
1055 ELSE --} Validation Yes
1056 l_control_rec.controlled_operation := TRUE;
1057 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
1058 l_control_Rec.default_attributes := TRUE;
1059 l_control_rec.change_attributes := TRUE;
1060 l_control_rec.write_to_db := TRUE;
1061 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1062 if( l_trolin_tbl.count > 0 ) then
1063 for i in 1..l_trolin_tbl.count LOOP
1064 --inv_debug.message('trolin.line_id is ' || l_trolin_tbl(l).line_id);
1065 /* to fix bug 1402677: Also we shouldn't change the operation here
1066 if( (l_trolin_tbl(i).line_id <> FND_API.G_MISS_NUM OR l_trolin_tbl(i).line_id is NULL ) AND
1067 l_trolin_tbl(i).operation = INV_GLOBALS.G_OPR_CREATE ) then
1068 l_trolin_tbl(i).operation := INV_GLOBALS.G_OPR_UPDATE;
1069 els*/
1070 if (l_trolin_tbl(i).operation = INV_GLOBALS.G_OPR_UPDATE and
1071 (l_trolin_tbl(i).line_id = FND_API.G_MISS_NUM OR
1072 l_trolin_tbl(i).line_id is null ) ) then
1073 --inv_debug.message('update and no line id');
1074 fnd_message.set_name('INV', 'INV_ATTRIBUTE_REQUIRED');
1075 fnd_message.set_token('ATTRIBUTE', 'LINE_ID');
1076 fnd_msg_pub.add;
1077 raise fnd_api.g_exc_error;
1078 end if;
1079
1080 if( l_trolin_tbl(i).header_id is not null
1081 and l_trolin_tbl(i).header_id <> FND_API.G_MISS_NUM ) then
1082 --inv_debug.message('check if the header_id exists');
1083 select count(*)
1084 into l_dummy
1085 from mtl_txn_request_headers
1086 where header_id = l_trolin_tbl(i).header_id
1087 and organization_id = l_trolin_tbl(i).organization_id;
1088 --inv_debug.message('l_dummy is ' || l_dummy);
1089 if( l_dummy = 0 ) then
1090 --inv_debug.message('header id not found');
1091 FND_MESSAGE.SET_NAME('INV', 'INV_FIELD_INVALID');
1092 FND_MESSAGE.SET_TOKEN('ENTITY1', 'Header_Id');
1093 FND_MSG_PUB.ADD;
1094 raise fnd_api.g_exc_error;
1095 else
1096 l_trohdr_rec := inv_trohdr_util.query_row(p_header_id => l_trolin_tbl(i).header_id);
1097 end if;
1098 end if;
1102 FETCH get_move_order_type INTO l_move_order_type;
1099
1100 /* Bug 4162173 Added the following to initate the Outbound for Third Party Integration */
1101 OPEN get_move_order_type(l_trolin_tbl(i).header_id);
1103 CLOSE get_move_order_type;
1104
1105 IF (l_move_order_type = 3) AND
1106 (l_trolin_tbl(i).txn_source_line_id IS NOT NULL) THEN
1107 OPEN get_sales_order(l_trolin_tbl(i).txn_source_line_id);
1108 FETCH get_sales_order INTO l_order_number ,l_org_id; -- 6689912
1109 CLOSE get_sales_order;
1110
1111 GR_WF_UTIL_PUB.INITIATE_PROCESS_SALES_ORDER
1112 (p_api_version => 1.0,
1113 p_init_msg_list => p_init_msg_list,
1114 p_commit => p_commit,
1115 p_sales_order_org_id => l_org_id, -- 6689912
1116 p_orgn_id => l_trolin_tbl(i).organization_id,
1117 p_item_id => l_trolin_tbl(i).inventory_item_id,
1118 p_sales_order_no => l_order_number,
1119 x_return_status => l_return_status,
1120 x_error_code => l_error_code,
1121 x_msg_data => l_msg_data);
1122
1123 IF l_return_status <> 'S' THEN
1124 WSH_Util_Core.PrintLn('Error occured on initiate the Outbound to Partner Application ' ||
1125 'with the following error message ' || l_msg_data);
1126 ELSE
1127 --Jalaj Srivastava Bug 5695822
1128 --table index used was l_index. should be i.
1129 --table should be l_trolin_tbl instead of x_trolin_tbl
1130 WSH_Util_Core.PrintLn('Successfully initiated the Outbound to Partner Application => ' ||
1131 l_trolin_tbl(i).inventory_item_id);
1132 END IF;
1133 END IF;
1134
1135 -- Bug 5311250: null out TO_LOCATOR_ID if TO SUB has locator control
1136 -- set to item level, and item is not locator controlled
1137 IF (l_move_order_type = 3) THEN
1138 OPEN get_sub_loc_ctrl (l_trolin_tbl(i).organization_id
1139 ,l_trolin_tbl(i).to_subinventory_code);
1140 FETCH get_sub_loc_ctrl INTO l_sub_loc_ctrl;
1141 CLOSE get_sub_loc_ctrl;
1142 IF l_sub_loc_ctrl = 5 THEN
1143 OPEN get_item_loc_ctrl (l_trolin_tbl(i).organization_id
1144 ,l_trolin_tbl(i).inventory_item_id);
1145 FETCH get_item_loc_ctrl INTO l_item_loc_ctrl;
1146 CLOSE get_item_loc_ctrl;
1147 IF l_item_loc_ctrl = 1 THEN
1148 l_trolin_tbl(i).to_locator_id := NULL;
1149 END IF;
1150 END IF;
1151 END IF;
1152 end loop;
1153 end if;
1154
1155 INV_Transfer_Order_PVT.Process_Transfer_Order
1156 ( p_api_version_number => 1.0
1157 , p_init_msg_list => p_init_msg_list
1158 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1159 , p_commit => p_commit
1160 , x_return_status => x_return_status
1161 , x_msg_count => x_msg_count
1162 , x_msg_data => x_msg_data
1163 , p_control_rec => l_control_rec
1164 , p_trohdr_rec => l_trohdr_rec
1165 , p_trohdr_val_rec => l_trohdr_val_rec
1166 , p_trolin_tbl => l_trolin_tbl
1167 , p_trolin_val_tbl => p_trolin_val_tbl
1168 , x_trohdr_rec => l_trohdr_rec
1169 , x_trolin_tbl => l_trolin_tbl_out
1170 );
1171
1172 -- Load Id OUT parameters.
1173
1174 --x_trohdr_rec := p_trohdr_rec;
1175 x_trolin_tbl := l_trolin_tbl_out;
1176
1177 if( p_commit = FND_API.G_TRUE ) Then
1178 commit;
1179 end if;
1180 -- If p_return_values is TRUE then convert Ids to Values.
1181
1182 IF FND_API.to_Boolean(p_return_values) THEN
1183 Id_To_Value
1184 ( p_trohdr_rec => l_trohdr_rec
1185 , p_trolin_tbl => p_trolin_tbl
1186 , x_trohdr_val_rec => l_trohdr_val_rec
1187 , x_trolin_val_tbl => x_trolin_val_tbl
1188 );
1189 END IF;
1190 END IF;
1191 EXCEPTION
1192
1193 WHEN FND_API.G_EXC_ERROR THEN
1194 --inv_debug.message('returning error');
1195 x_return_status := FND_API.G_RET_STS_ERROR;
1196 -- Get message count and data
1197 FND_MSG_PUB.Count_And_Get
1198 ( p_count => x_msg_count
1199 , p_data => x_msg_data
1200 );
1201
1202 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1204 -- Get message count and data
1205 FND_MSG_PUB.Count_And_Get
1206 ( p_count => x_msg_count
1207 , p_data => x_msg_data
1208 );
1209
1210 WHEN OTHERS THEN
1214 FND_MSG_PUB.Add_Exc_Msg
1211 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1212 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1213 THEN
1215 ( G_PKG_NAME
1216 , 'Process_Move_Order'
1217 );
1218 END IF;
1219 -- Get message count and data
1220 FND_MSG_PUB.Count_And_Get
1221 ( p_count => x_msg_count
1222 , p_data => x_msg_data
1223 );
1224 END Create_Move_Order_Lines;
1225
1226 -- Start of Comments
1227 -- API name Process_Move_Order
1228 -- Type Public
1229 -- Function
1230 --
1231 -- Pre-reqs
1232 --
1233 -- Parameters
1234 --
1235 -- Version Current version = 1.0
1236 -- Initial version = 1.0
1237 --
1238 -- Notes
1239 --
1240 -- End of Comments
1241
1242 PROCEDURE Process_Move_Order
1243 ( p_api_version_number IN NUMBER
1244 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1245 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1246 , p_commit IN VARCHAR2 := FND_API.G_FALSE
1247 , x_return_status OUT NOCOPY VARCHAR2
1248 , x_msg_count OUT NOCOPY NUMBER
1249 , x_msg_data OUT NOCOPY VARCHAR2
1250 , p_trohdr_rec IN Trohdr_Rec_Type := G_MISS_TROHDR_REC
1251 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC
1252 , p_trolin_tbl IN Trolin_Tbl_Type := G_MISS_TROLIN_TBL
1253 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL
1254 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1255 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
1256 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1257 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
1258 )
1259 IS
1260 l_api_version_number CONSTANT NUMBER := 1.0;
1261 l_api_name CONSTANT VARCHAR2(30):= 'Process_Move_Order';
1262 l_control_rec INV_GLOBALS.Control_Rec_Type;
1263 l_return_status VARCHAR2(1);
1264 l_trohdr_rec Trohdr_Rec_Type;
1265 l_trolin_tbl Trolin_Tbl_Type;
1266 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1267 BEGIN
1268
1269 -- Standard call to check for call compatibility
1270
1271 IF NOT FND_API.Compatible_API_Call
1272 ( l_api_version_number
1273 , p_api_version_number
1274 , l_api_name
1275 , G_PKG_NAME
1276 )
1277 THEN
1278 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1279 END IF;
1280
1281 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_ALL;
1282 /*
1283 -- Perform Value to Id conversion
1284 Value_To_Id
1285 ( x_return_status => l_return_status
1286 , p_trohdr_rec => p_trohdr_rec
1287 , p_trohdr_val_rec => p_trohdr_val_rec
1288 , p_trolin_tbl => p_trolin_tbl
1289 , p_trolin_val_tbl => p_trolin_val_tbl
1290 , x_trohdr_rec => l_trohdr_rec
1291 , x_trolin_tbl => l_trolin_tbl
1292 );
1293
1294 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1295 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1296 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1297 RAISE FND_API.G_EXC_ERROR;
1298 END IF;
1299 */
1300
1301 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1302
1303 INV_Transfer_Order_PVT.Process_Transfer_Order
1304 ( p_api_version_number => 1.0
1305 , p_init_msg_list => p_init_msg_list
1306 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1307 , p_commit => p_commit
1308 , x_return_status => x_return_status
1309 , x_msg_count => x_msg_count
1310 , x_msg_data => x_msg_data
1311 , p_control_rec => l_control_rec
1312 , p_trohdr_rec => p_trohdr_rec
1313 , p_trohdr_val_rec => p_trohdr_val_rec
1314 , p_trolin_tbl => p_trolin_tbl
1315 , p_trolin_val_tbl => p_trolin_val_tbl
1316 , x_trohdr_rec => l_trohdr_rec
1317 , x_trolin_tbl => l_trolin_tbl
1318 );
1319
1320 -- Load Id OUT parameters.
1321
1322 x_trohdr_rec := l_trohdr_rec;
1323 x_trolin_tbl := l_trolin_tbl;
1324
1325 if p_commit = FND_API.G_TRUE then
1326 commit;
1327 end if;
1328 -- If p_return_values is TRUE then convert Ids to Values.
1329
1330 IF FND_API.to_Boolean(p_return_values) THEN
1331 Id_To_Value
1332 ( p_trohdr_rec => p_trohdr_rec
1333 , p_trolin_tbl => p_trolin_tbl
1334 , x_trohdr_val_rec => x_trohdr_val_rec
1335 , x_trolin_val_tbl => x_trolin_val_tbl
1336 );
1337 END IF;
1338
1339 EXCEPTION
1343 FND_MSG_PUB.Count_And_Get
1340 WHEN FND_API.G_EXC_ERROR THEN
1341 x_return_status := FND_API.G_RET_STS_ERROR;
1342 -- Get message count and data
1344 ( p_count => x_msg_count
1345 , p_data => x_msg_data
1346 );
1347 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1348 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1349 -- Get message count and data
1350 FND_MSG_PUB.Count_And_Get
1351 ( p_count => x_msg_count
1352 , p_data => x_msg_data
1353 );
1354 WHEN OTHERS THEN
1355 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1356 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1357 THEN
1358 FND_MSG_PUB.Add_Exc_Msg
1359 ( G_PKG_NAME
1360 , 'Process_Move_Order'
1361 );
1362 END IF;
1363 -- Get message count and data
1364 FND_MSG_PUB.Count_And_Get
1365 ( p_count => x_msg_count
1366 , p_data => x_msg_data
1367 );
1368 END Process_Move_Order;
1369
1370 -- Start of Comments
1371 -- API name Lock_Move_Order
1372 -- Type Public
1373 -- Function
1374 --
1375 -- Pre-reqs
1376 --
1377 -- Parameters
1378 --
1379 -- Version Current version = 1.0
1380 -- Initial version = 1.0
1381 --
1382 -- Notes
1383 --
1384 -- End of Comments
1385
1386 PROCEDURE Lock_Move_Order
1387 ( p_api_version_number IN NUMBER
1388 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1389 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1390 , x_return_status OUT NOCOPY VARCHAR2
1391 , x_msg_count OUT NOCOPY NUMBER
1392 , x_msg_data OUT NOCOPY VARCHAR2
1393 , p_trohdr_rec IN Trohdr_Rec_Type :=
1394 G_MISS_TROHDR_REC
1395 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type :=
1396 G_MISS_TROHDR_VAL_REC
1397 , p_trolin_tbl IN Trolin_Tbl_Type :=
1398 G_MISS_TROLIN_TBL
1399 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type :=
1400 G_MISS_TROLIN_VAL_TBL
1401 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1402 , x_trohdr_val_rec IN OUT NOCOPY Trohdr_Val_Rec_Type
1403 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1404 , x_trolin_val_tbl IN OUT NOCOPY Trolin_Val_Tbl_Type
1405 )
1406 IS
1407 l_api_version_number CONSTANT NUMBER := 1.0;
1408 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Move_Order';
1409 l_return_status VARCHAR2(1);
1410 l_trohdr_rec Trohdr_Rec_Type;
1411 l_trolin_tbl Trolin_Tbl_Type;
1412 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1413 BEGIN
1414
1415 -- Standard call to check for call compatibility
1416
1417 IF NOT FND_API.Compatible_API_Call
1418 ( l_api_version_number
1419 , p_api_version_number
1420 , l_api_name
1421 , G_PKG_NAME
1422 )
1423 THEN
1424 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1425 END IF;
1426
1427 -- Perform Value to Id conversion
1428
1429 Value_To_Id
1430 ( x_return_status => l_return_status
1431 , p_trohdr_rec => p_trohdr_rec
1432 , p_trohdr_val_rec => p_trohdr_val_rec
1433 , p_trolin_tbl => p_trolin_tbl
1434 , p_trolin_val_tbl => p_trolin_val_tbl
1435 , x_trohdr_rec => l_trohdr_rec
1436 , x_trolin_tbl => l_trolin_tbl
1437 );
1438
1439 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1440 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1441 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1442 RAISE FND_API.G_EXC_ERROR;
1443 END IF;
1444
1445
1446 -- Call INV_Transfer_Order_PVT.Lock_Transfer_Order
1447
1448 INV_Transfer_Order_PVT.Lock_Transfer_Order
1449 ( p_api_version_number => 1.0
1450 , p_init_msg_list => p_init_msg_list
1451 , x_return_status => x_return_status
1452 , x_msg_count => x_msg_count
1453 , x_msg_data => x_msg_data
1454 , p_trohdr_rec => l_trohdr_rec
1455 , p_trolin_tbl => l_trolin_tbl
1456 , x_trohdr_rec => l_trohdr_rec
1457 , x_trolin_tbl => l_trolin_tbl
1458 );
1459
1460 -- Load Id OUT parameters.
1461
1462 x_trohdr_rec := l_trohdr_rec;
1463 x_trolin_tbl := l_trolin_tbl;
1464
1465 -- If p_return_values is TRUE then convert Ids to Values.
1466
1467 IF FND_API.to_Boolean(p_return_values) THEN
1468
1469 Id_To_Value
1470 ( p_trohdr_rec => l_trohdr_rec
1471 , p_trolin_tbl => l_trolin_tbl
1472 , x_trohdr_val_rec => x_trohdr_val_rec
1473 , x_trolin_val_tbl => x_trolin_val_tbl
1474 );
1475
1476 END IF;
1477
1478 EXCEPTION
1479
1480 WHEN FND_API.G_EXC_ERROR THEN
1481
1482 x_return_status := FND_API.G_RET_STS_ERROR;
1483
1484 -- Get message count and data
1485
1486 FND_MSG_PUB.Count_And_Get
1487 ( p_count => x_msg_count
1488 , p_data => x_msg_data
1489 );
1490
1491 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1492
1493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1494
1495 -- Get message count and data
1496
1497 FND_MSG_PUB.Count_And_Get
1498 ( p_count => x_msg_count
1499 , p_data => x_msg_data
1500 );
1501
1502 WHEN OTHERS THEN
1503
1504 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1505
1506 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1507 THEN
1508 FND_MSG_PUB.Add_Exc_Msg
1509 ( G_PKG_NAME
1510 , 'Lock_Move_Order'
1511 );
1512 END IF;
1513
1514 -- Get message count and data
1515
1516 FND_MSG_PUB.Count_And_Get
1517 ( p_count => x_msg_count
1518 , p_data => x_msg_data
1519 );
1520
1521 END Lock_Move_Order;
1522
1523 -- Start of Comments
1524 -- API name Get_Move_Order
1525 -- Type Public
1526 -- Function
1527 --
1528 -- Pre-reqs
1529 --
1530 -- Parameters
1531 --
1532 -- Version Current version = 1.0
1533 -- Initial version = 1.0
1534 --
1535 -- Notes
1536 --
1537 -- End of Comments
1538
1539 PROCEDURE Get_Move_Order
1540 ( p_api_version_number IN NUMBER
1541 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1542 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1543 , x_return_status OUT NOCOPY VARCHAR2
1544 , x_msg_count OUT NOCOPY NUMBER
1545 , x_msg_data OUT NOCOPY VARCHAR2
1546 , p_header_id IN NUMBER :=
1547 FND_API.G_MISS_NUM
1548 , p_header IN VARCHAR2 :=
1549 FND_API.G_MISS_CHAR
1550 , x_trohdr_rec OUT NOCOPY Trohdr_Rec_Type
1551 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
1552 , x_trolin_tbl OUT NOCOPY Trolin_Tbl_Type
1553 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
1554 )
1555 IS
1556 l_api_version_number CONSTANT NUMBER := 1.0;
1557 l_api_name CONSTANT VARCHAR2(30):= 'Get_Move_Order';
1558 l_header_id NUMBER := p_header_id;
1559 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
1560 l_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
1561 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1562 BEGIN
1563
1564 -- Standard call to check for call compatibility
1565
1566 IF NOT FND_API.Compatible_API_Call
1570 , G_PKG_NAME
1567 ( l_api_version_number
1568 , p_api_version_number
1569 , l_api_name
1571 )
1572 THEN
1573 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1574 END IF;
1575
1576 -- Standard check for Val/ID conversion
1577
1578 IF p_header = FND_API.G_MISS_CHAR
1579 THEN
1580
1581 l_header_id := p_header_id;
1582
1583 ELSIF p_header_id <> FND_API.G_MISS_NUM THEN
1584
1585 l_header_id := p_header_id;
1586
1587 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1588 THEN
1589
1590 FND_MESSAGE.SET_NAME('INV','FND_BOTH_VAL_AND_ID_EXIST');
1591 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1592 FND_MSG_PUB.Add;
1593
1594 END IF;
1595
1596 ELSE
1597
1598 -- Convert Value to Id
1599
1600 l_header_id := INV_Value_To_Id.header
1601 ( p_header => p_header
1602 );
1603
1604 IF l_header_id = FND_API.G_MISS_NUM THEN
1605 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1606 THEN
1607
1608 FND_MESSAGE.SET_NAME('INV','Invalid Business Object Value');
1609 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','header');
1610 FND_MSG_PUB.Add;
1611
1612 END IF;
1613 END IF;
1614
1615 RAISE FND_API.G_EXC_ERROR;
1616
1617 END IF;
1618
1619
1620 -- Call INV_Transfer_Order_PVT.Get_Transfer_Order
1621
1622 INV_Transfer_Order_PVT.Get_Transfer_Order
1623 ( p_api_version_number => 1.0
1624 , p_init_msg_list => p_init_msg_list
1625 , x_return_status => x_return_status
1626 , x_msg_count => x_msg_count
1627 , x_msg_data => x_msg_data
1628 , p_header_id => l_header_id
1629 , x_trohdr_rec => l_trohdr_rec
1630 , x_trolin_tbl => l_trolin_tbl
1631 );
1632
1633 -- Load Id OUT parameters.
1634
1635 x_trohdr_rec := l_trohdr_rec;
1636 x_trolin_tbl := l_trolin_tbl;
1637
1638 -- If p_return_values is TRUE then convert Ids to Values.
1639
1640 IF FND_API.TO_BOOLEAN(p_return_values) THEN
1641
1642 Id_To_Value
1643 ( p_trohdr_rec => l_trohdr_rec
1644 , p_trolin_tbl => l_trolin_tbl
1645 , x_trohdr_val_rec => x_trohdr_val_rec
1646 , x_trolin_val_tbl => x_trolin_val_tbl
1647 );
1648
1649 END IF;
1650
1651 -- Set return status
1652
1653 x_return_status := FND_API.G_RET_STS_SUCCESS;
1654
1655 -- Get message count and data
1656
1657 FND_MSG_PUB.Count_And_Get
1658 ( p_count => x_msg_count
1659 , p_data => x_msg_data
1660 );
1661
1662
1663 EXCEPTION
1664
1665 WHEN FND_API.G_EXC_ERROR THEN
1666
1667 x_return_status := FND_API.G_RET_STS_ERROR;
1668
1669 -- Get message count and data
1670
1671 FND_MSG_PUB.Count_And_Get
1672 ( p_count => x_msg_count
1673 , p_data => x_msg_data
1674 );
1675
1676 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1677
1678 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1679
1680 -- Get message count and data
1681
1682 FND_MSG_PUB.Count_And_Get
1683 ( p_count => x_msg_count
1684 , p_data => x_msg_data
1685 );
1686
1687 WHEN OTHERS THEN
1688
1689 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1690
1691 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1692 THEN
1693 FND_MSG_PUB.Add_Exc_Msg
1694 ( G_PKG_NAME
1695 , 'Get_Move_Order'
1696 );
1697 END IF;
1698
1699 -- Get message count and data
1700
1701 FND_MSG_PUB.Count_And_Get
1702 ( p_count => x_msg_count
1703 , p_data => x_msg_data
1704 );
1705
1706 END Get_Move_Order;
1707
1708 -- Procedure Id_To_Value
1709
1710 PROCEDURE Id_To_Value
1711 ( p_trohdr_rec IN Trohdr_Rec_Type
1712 , p_trolin_tbl IN Trolin_Tbl_Type
1713 , x_trohdr_val_rec OUT NOCOPY Trohdr_Val_Rec_Type
1714 , x_trolin_val_tbl OUT NOCOPY Trolin_Val_Tbl_Type
1715 )
1716 IS
1717 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1718 BEGIN
1719
1720 -- Convert trohdr
1721
1722 x_trohdr_val_rec := INV_Trohdr_Util.Get_Values(p_trohdr_rec);
1723
1724 -- Convert trolin
1725
1726 FOR I IN 1..p_trolin_tbl.COUNT LOOP
1727 x_trolin_val_tbl(I) :=
1728 INV_Trolin_Util.Get_Values(p_trolin_tbl(I));
1729 END LOOP;
1730
1731 EXCEPTION
1732
1733 WHEN OTHERS THEN
1734
1735 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1736 THEN
1737 FND_MSG_PUB.Add_Exc_Msg
1738 ( G_PKG_NAME
1739 , 'Id_To_Value'
1740 );
1741 END IF;
1742
1743 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1744
1745 END Id_To_Value;
1746
1747 -- Procedure Value_To_Id
1748
1749 PROCEDURE Value_To_Id
1750 ( x_return_status OUT NOCOPY VARCHAR2
1751 , p_trohdr_rec IN Trohdr_Rec_Type
1752 , p_trohdr_val_rec IN Trohdr_Val_Rec_Type
1753 , p_trolin_tbl IN Trolin_Tbl_Type
1754 , p_trolin_val_tbl IN Trolin_Val_Tbl_Type
1755 , x_trohdr_rec IN OUT NOCOPY Trohdr_Rec_Type
1756 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1757 )
1758 IS
1759 l_trohdr_rec Trohdr_Rec_Type;
1760 l_trolin_rec Trolin_Rec_Type;
1761 l_index BINARY_INTEGER;
1762 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1763 BEGIN
1764
1765 -- Init x_return_status.
1766
1767 x_return_status := FND_API.G_RET_STS_SUCCESS;
1768
1769 -- Convert trohdr
1770
1771 l_trohdr_rec := INV_Trohdr_Util.Get_Ids
1772 ( p_trohdr_rec => p_trohdr_rec
1773 , p_trohdr_val_rec => p_trohdr_val_rec
1774 );
1775
1776 x_trohdr_rec := l_trohdr_rec;
1777
1778 IF l_trohdr_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1779 x_return_status := FND_API.G_RET_STS_ERROR;
1780 END IF;
1781
1782 -- Convert trolin
1783
1784 x_trolin_tbl := p_trolin_tbl;
1785
1786 l_index := p_trolin_val_tbl.FIRST;
1787
1788 WHILE l_index IS NOT NULL LOOP
1789
1790 l_trolin_rec := INV_Trolin_Util.Get_Ids
1791 ( p_trolin_rec => p_trolin_tbl(l_index)
1792 , p_trolin_val_rec => p_trolin_val_tbl(l_index)
1793 );
1794
1795 x_trolin_tbl(l_index) := l_trolin_rec;
1796
1797 IF l_trolin_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1798 x_return_status := FND_API.G_RET_STS_ERROR;
1799 END IF;
1800
1801 l_index := p_trolin_val_tbl.NEXT(l_index);
1802
1803 END LOOP;
1804
1805 EXCEPTION
1806
1807 WHEN OTHERS THEN
1808
1809 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1810 THEN
1811 FND_MSG_PUB.Add_Exc_Msg
1812 ( G_PKG_NAME
1813 , 'Value_To_Id'
1814 );
1815 END IF;
1816
1817 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1818
1819 END Value_To_Id;
1820
1821 PROCEDURE Process_Move_Order_Line
1822 (
1823 p_api_version_number IN NUMBER
1824 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1825 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
1826 , p_commit IN VARCHAR2 := FND_API.G_TRUE
1827 , x_return_status OUT NOCOPY VARCHAR2
1828 , x_msg_count OUT NOCOPY NUMBER
1829 , x_msg_data OUT NOCOPY VARCHAR2
1830 , p_trolin_tbl IN Trolin_Tbl_Type
1831 , p_trolin_old_tbl IN Trolin_Tbl_Type
1832 , x_trolin_tbl IN OUT NOCOPY Trolin_Tbl_Type
1833 ) IS
1834 l_api_version_number CONSTANT NUMBER := 1.0;
1835 l_api_name CONSTANT VARCHAR2(30):= 'Update_Move_Order_line';
1836 l_control_rec INV_GLOBALS.Control_Rec_Type;
1837 l_return_status VARCHAR2(1);
1838 l_trohdr_rec Trohdr_Rec_Type := G_MISS_TROHDR_REC;
1839 l_trohdr_val_rec Trohdr_Val_Rec_Type := G_MISS_TROHDR_VAL_REC;
1840 l_trolin_tbl Trolin_Tbl_Type := p_trolin_tbl;
1841 l_trolin_val_tbl Trolin_Val_Tbl_Type := G_MISS_TROLIN_VAL_TBL;
1842 l_debug number := NVL(FND_PROFILE.VALUE('INV_DEBUG_TRACE'),0);
1843 BEGIN
1844
1845 -- Standard call to check for call compatibility
1846 IF NOT FND_API.Compatible_API_Call
1847 ( l_api_version_number
1848 , p_api_version_number
1849 , l_api_name
1850 , G_PKG_NAME
1851 )
1852 THEN
1853 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1854 END IF;
1855
1856 l_control_rec.controlled_operation := TRUE;
1857 l_control_Rec.validate_entity := TRUE;
1858 l_control_Rec.process_entity := INV_GLOBALS.G_ENTITY_TROLIN;
1859 l_control_rec.write_to_db := TRUE;
1860 l_control_Rec.default_attributes := FALSE;
1861 l_control_Rec.change_attributes := FALSE;
1862 l_control_rec.process := FALSE;
1863
1864 -- Call INV_Transfer_Order_PVT.Process_Transfer_Order
1865 -- inv_debug.message('calling inv_transfer_order_pvt.process_transfer_order');
1866 -- inv_debug.message('l_trolin_tbl count is ' || p_trolin_tbl.COUNT);
1867 /*for l_count in 1..p_trolin_tbl.COUNT LOOP
1868 -- inv_debug.message('l_trolin_tbl.line_id is ' || p_trolin_tbl(l_count).line_id);
1869 -- inv_debug.message('l_trolin_tbl.operation is ' || p_trolin_tbl(l_count).operation);
1870 end loop; */
1871 INV_Transfer_Order_PVT.Process_Transfer_Order
1872 ( p_api_version_number => 1.0
1873 , p_init_msg_list => p_init_msg_list
1874 , p_commit => p_commit
1875 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
1876 , p_control_rec => l_control_rec
1877 , x_return_status => x_return_status
1878 , x_msg_count => x_msg_count
1879 , x_msg_data => x_msg_data
1880 , p_trolin_tbl => p_trolin_tbl
1881 , p_trolin_val_tbl => l_trolin_val_tbl
1882 , x_trohdr_rec => l_trohdr_rec
1883 , x_trolin_tbl => l_trolin_tbl
1884 );
1885
1886 -- Load Id OUT parameters.
1887
1888 --x_trohdr_rec := p_trohdr_rec;
1889 x_trolin_tbl := l_trolin_tbl;
1890 if( p_commit = FND_API.G_TRUE ) then
1891 commit;
1892 end if;
1893 -- If p_return_values is TRUE then convert Ids to Values.
1894
1895 IF FND_API.to_Boolean(p_return_values) THEN
1896
1897 Id_To_Value
1898 ( p_trohdr_rec => l_trohdr_rec
1899 , p_trolin_tbl => l_trolin_tbl
1900 , x_trohdr_val_rec => l_trohdr_val_rec
1901 , x_trolin_val_tbl => l_trolin_val_tbl
1902 );
1903
1904 END IF;
1905
1906 EXCEPTION
1907
1908 WHEN FND_API.G_EXC_ERROR THEN
1909
1910 x_return_status := FND_API.G_RET_STS_ERROR;
1911
1912 -- Get message count and data
1913
1914 FND_MSG_PUB.Count_And_Get
1915 ( p_count => x_msg_count
1916 , p_data => x_msg_data
1917 );
1918
1919 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1920
1921 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1922
1923 -- Get message count and data
1924
1925 FND_MSG_PUB.Count_And_Get
1926 ( p_count => x_msg_count
1927 , p_data => x_msg_data
1928 );
1929
1930 FND_MSG_PUB.Count_And_Get
1931 ( p_count => x_msg_count
1932 , p_data => x_msg_data
1933 );
1934
1935 WHEN OTHERS THEN
1936
1937 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1938
1939 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1940 THEN
1941 FND_MSG_PUB.Add_Exc_Msg
1942 ( G_PKG_NAME
1943 , 'Process_Move_Order'
1944 );
1945 END IF;
1946
1947 -- Get message count and data
1948 FND_MSG_PUB.Count_And_Get
1949 ( p_count => x_msg_count
1950 , p_data => x_msg_data
1951 );
1952 END Process_Move_Order_Line;
1953
1954 PROCEDURE stamp_cart_id ( p_validation_level IN NUMBER
1955 , p_carton_grouping_tbl IN inv_move_order_pub.num_tbl_type
1956 , p_move_order_line_tbl IN inv_move_order_pub.num_tbl_type
1957 ) IS
1958 BEGIN
1959 FORALL i in 1..p_move_order_line_tbl.count
1960 UPDATE mtl_txn_request_lines SET
1961 carton_grouping_id = p_carton_grouping_tbl(i)
1962 WHERE line_id = p_move_order_line_tbl(i);
1963 END stamp_cart_id;
1964
1965
1966 END INV_Move_Order_PUB;