[Home] [Help]
PACKAGE BODY: APPS.WSH_SHIPMENT_BATCH_PUB
Source
1 PACKAGE BODY WSH_SHIPMENT_BATCH_PUB as
2 /* $Header: WSHSBPBB.pls 120.0.12020000.2 2013/01/17 03:55:04 ueshanka ship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(50) := 'WSH_SHIPMENT_BATCH_PUB';
6
7 --========================================================================
8 -- PROCEDURE : Create_Shipment_Batch PUBLIC
9 --
10 -- PARAMETERS: p_api_version_number version number of the API
11 -- p_init_msg_list messages will be initialized if set as true
12 -- p_process_mode 'ONLINE' or 'CONCURRENT', Default Value 'CONCURRENT'
13 -- p_organization_id Organization Id
14 -- p_customer_id Customer Id
15 -- p_ship_to_location_id Ship From Location
16 -- p_transaction_type_id Sales Order Type Id
17 -- p_from_order_number From Sales Order Number
18 -- p_to_order_number To Sales Order Number
19 -- p_from_request_date From Request Date
20 -- p_to_request_date To Request Date
21 -- p_from_schedule_date From Schedule Date
22 -- p_to_schedule_date To Schedule Date
23 -- p_shipment_priority Shipment Priority Code
24 -- p_include_internal_so Include Internal Sales Order
25 -- Bug 14620571: Added parameter p_include_lines_with_hold
26 -- p_include_lines_with_hold Include order lines with Hold
27 -- p_log_level 0 or 1 to control the log messages, Default Value 0
28 -- p_commit Commit Flag
29 -- x_request_id Concurrent Request Id submitted for 'Create Shipment Batches' program
30 -- x_return_status return status
31 -- x_msg_count number of messages in the list
32 -- x_msg_data text of messages
33 -- VERSION : current version 1.0
34 -- initial version 1.0
35 -- COMMENT : Public API to create shipment batches.
36 --
37 --========================================================================
38
39 /*#
40 * Creates Shipment Batches
41 * @param p_api_version_number version number of the API
42 * @param p_init_msg_list messages will be initialized if set as true
43 * @param p_process_mode ONLINE or CONCURRENT mode to create shipment batches. Default value 'CONCURRENT'
44 * @param p_organization_id Organization Id
45 * @param p_customer_id Customer Id
46 * @param p_ship_to_location_id Ship From Location
47 * @param p_transaction_type_id Sales Order Type Id
48 * @param p_from_order_number From Sales Order Number
49 * @param p_to_order_number To Sales Order Number
50 * @param p_from_request_date From Request Date
51 * @param p_to_request_date To Request Date
52 * @param p_from_schedule_date From Schedule Date
53 * @param p_to_schedule_date To Schedule Date
54 * @param p_shipment_priority Shipment Priority Code
55 * @param p_include_internal_so Include Internal Sales Order, Default Value 'N'
56 * @param p_include_lines_with_hold Include order lines with Hold applied, Default Value 'N'
57 * @param p_log_level Controls the log messages generated, Default Value 0
58 * @param p_commit commit flag
59 * @param x_request_id Concurrent request Id of the 'Create Shipment Batches' program
60 * @param x_return_status return status of the API
61 * @param x_msg_count number of messages, if any
62 * @param x_msg_data message text, if any
63 * @rep:scope public
64 * @rep:lifecycle active
65 * @rep:displayname Create Shipment Batches
66 */
67 PROCEDURE Create_Shipment_Batch(
68 p_api_version_number IN NUMBER,
69 p_init_msg_list IN VARCHAR2,
70 p_process_mode IN VARCHAR2,
71 p_organization_id IN NUMBER,
72 p_customer_id IN NUMBER,
73 p_ship_to_location_id IN NUMBER,
74 p_transaction_type_id IN NUMBER,
75 p_from_order_number IN VARCHAR2,
76 p_to_order_number IN VARCHAR2,
77 p_from_request_date IN DATE,
78 p_to_request_date IN DATE,
79 p_from_schedule_date IN DATE,
80 p_to_schedule_date IN DATE,
81 p_shipment_priority IN VARCHAR,
82 p_include_internal_so IN VARCHAR,
83 p_include_lines_with_hold IN VARCHAR DEFAULT 'N',
84 p_log_level IN NUMBER,
85 p_commit IN VARCHAR2,
86 x_request_id OUT NOCOPY NUMBER,
87 x_return_status OUT NOCOPY VARCHAR2,
88 x_msg_count OUT NOCOPY NUMBER,
89 x_msg_data OUT NOCOPY VARCHAR2 )
90 AS
91 --
92 l_return_status VARCHAR2(100);
93 l_msg_count NUMBER;
94 l_msg_data VARCHAR2(1000);
95
96 l_from_request_date VARCHAR2(30);
97 l_to_request_date VARCHAR2(30);
98 l_from_schedule_date VARCHAR2(30);
99 l_to_schedule_date VARCHAR2(30);
100
101 l_api_version_number CONSTANT NUMBER := 1.0;
102 l_api_name CONSTANT VARCHAR2(30):= 'Create_Shipment_Batch';
103 --
104 l_debug_on BOOLEAN;
105 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || l_api_name;
106 --
107 BEGIN
108 --
109 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
110 --
111 IF l_debug_on IS NULL
112 THEN
113 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
114 END IF;
115 --
116 IF l_debug_on THEN
117 WSH_DEBUG_SV.push(l_module_name);
118 --
119 WSH_DEBUG_SV.log(l_module_name, 'p_commit',p_commit);
120 WSH_DEBUG_SV.log(l_module_name, 'p_log_level',p_log_level);
121 WSH_DEBUG_SV.log(l_module_name, 'p_process_mode',p_process_mode);
122 WSH_DEBUG_SV.log(l_module_name, 'p_api_version_number', p_api_version_number);
123 WSH_DEBUG_SV.log(l_module_name, 'p_organization_id', p_organization_id);
124 WSH_DEBUG_SV.log(l_module_name, 'p_customer_id', p_customer_id);
125 WSH_DEBUG_SV.log(l_module_name, 'p_ship_to_location_id', p_ship_to_location_id);
126 WSH_DEBUG_SV.log(l_module_name, 'p_transaction_type_id', p_transaction_type_id);
127 WSH_DEBUG_SV.log(l_module_name, 'p_from_order_number', p_from_order_number);
128 WSH_DEBUG_SV.log(l_module_name, 'p_to_order_number', p_to_order_number);
129 WSH_DEBUG_SV.log(l_module_name, 'p_from_request_date', p_from_request_date);
130 WSH_DEBUG_SV.log(l_module_name, 'p_to_request_date', p_to_request_date);
131 WSH_DEBUG_SV.log(l_module_name, 'p_from_schedule_date', p_from_schedule_date);
132 WSH_DEBUG_SV.log(l_module_name, 'p_to_schedule_date', p_to_schedule_date);
133 WSH_DEBUG_SV.log(l_module_name, 'p_shipment_priority', p_shipment_priority);
134 WSH_DEBUG_SV.log(l_module_name, 'p_include_internal_so', p_include_internal_so);
135 WSH_DEBUG_SV.log(l_module_name, 'p_include_lines_with_hold', p_include_lines_with_hold);
136 END IF;
137 --
138
139 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
140 -- Initialize Message List
141 IF FND_API.to_Boolean(p_init_msg_list) THEN
142 FND_MSG_PUB.initialize;
143 END IF;
144
145 -- Standard call to check for call compatibility
146 IF NOT FND_API.Compatible_API_Call (
147 l_api_version_number,
148 p_api_version_number,
149 l_api_name,
150 G_PKG_NAME )
151 THEN
152 --RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
153 RAISE FND_API.G_EXC_ERROR;
154 END IF;
155
156 BEGIN
157 select to_char(p_from_request_date, 'YYYY/MM/DD HH24:MI:SS'),
158 to_char(p_to_request_date, 'YYYY/MM/DD HH24:MI:SS'),
159 to_char(p_from_schedule_date, 'YYYY/MM/DD HH24:MI:SS'),
160 to_char(p_to_schedule_date, 'YYYY/MM/DD HH24:MI:SS')
161 into l_from_request_date,
162 l_to_request_date,
163 l_from_schedule_date,
164 l_to_schedule_date
165 from dual;
166 EXCEPTION
167 WHEN OTHERS THEN
168 --
169 IF l_debug_on THEN
170 WSH_DEBUG_SV.log(l_module_name, 'Error: Invalid date format', sqlerrm);
171 END IF;
172 --
173 RAISE FND_API.G_EXC_ERROR;
174 END;
175
176 IF p_process_mode = 'ONLINE' THEN
177 --
178 IF l_debug_on THEN
179 WSH_DEBUG_SV.logmsg(l_module_name, 'Calling WSH_SHIPMENT_BATCH_PKG.Create_Shipment_Batch', WSH_DEBUG_SV.C_PROC_LEVEL);
180 END IF;
181 --
182 WSH_SHIPMENT_BATCH_PKG.Create_Shipment_Batch (
183 p_organization_id => p_organization_id,
184 p_customer_id => p_customer_id,
185 p_ship_to_location_id => p_ship_to_location_id,
186 p_transaction_type_id => p_transaction_type_id,
187 p_from_order_number => p_from_order_number,
188 p_to_order_number => p_to_order_number,
189 p_from_request_date => l_from_request_date,
190 p_to_request_date => l_to_request_date,
191 p_from_schedule_date => l_from_schedule_date,
192 p_to_schedule_date => l_to_schedule_date,
193 p_shipment_priority => p_shipment_priority,
194 p_include_internal_so => p_include_internal_so,
195 p_include_lines_with_hold => p_include_lines_with_hold,
196 x_return_status => l_return_status );
197
198 --
199 IF l_debug_on THEN
200 WSH_DEBUG_SV.log(l_module_name, 'Return Status of WSH_SHIPMENT_BATCH_PKG.Create_Shipment_Batch', l_return_status);
201 END IF;
202 --
203 IF l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
204 FND_MESSAGE.Set_Name('WSH', 'WSH_SUCCESS_PROCESS');
205 WSH_UTIL_CORE.Add_Message(x_return_status);
206 ELSIF l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
207 x_return_status := l_return_status;
208 -- Raise error, if return status is not Success/Warning
209 ELSE
210 RAISE FND_API.G_EXC_ERROR;
211 END IF;
212 ELSIF p_process_mode = 'CONCURRENT' THEN
213 --
214 IF l_debug_on THEN
215 WSH_DEBUG_SV.logmsg(l_module_name, 'Calling FND_REQUEST.SUBMIT_REQUEST', WSH_DEBUG_SV.C_PROC_LEVEL);
216 END IF;
217 --
218 x_request_id := FND_REQUEST.SUBMIT_REQUEST(
219 application => 'WSH',
220 program => 'WSHSHBAT',
221 description => 'Create Shipment Batches',
222 start_time => NULL,
223 sub_request => FALSE,
224 argument1 => p_organization_id,
225 argument2 => p_customer_id,
226 argument3 => p_ship_to_location_id,
227 argument4 => p_transaction_type_id,
228 argument5 => p_from_order_number,
229 argument6 => p_to_order_number,
230 argument7 => l_from_request_date,
231 argument8 => l_to_request_date,
232 argument9 => l_from_schedule_date,
233 argument10 => l_to_schedule_date,
234 argument11 => p_shipment_priority,
235 argument12 => p_include_internal_so,
236 argument13 => p_include_lines_with_hold,
237 argument14 => p_log_level );
238
239 --
240 IF l_debug_on THEN
241 WSH_DEBUG_SV.log(l_module_name, 'Request Id returned from FND_REQUEST.SUBMIT_REQUEST', x_request_id);
242 END IF;
243 --
244 IF (nvl(x_request_id,0) <= 0) THEN
245 RAISE FND_API.G_EXC_ERROR;
246 ELSE
247 FND_MESSAGE.Set_Name('WSH', 'WSH_REQUEST_SUBMITTED');
248 FND_MESSAGE.Set_Token('REQUEST_ID', x_request_id);
249 WSH_UTIL_CORE.Add_Message(x_return_status);
250 END IF;
251 ELSE
252 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
253 FND_MESSAGE.Set_Name('WSH', 'WSH_OI_INVALID_ATTRIBUTE');
254 FND_MESSAGE.Set_Token('ATTRIBUTE', 'PROCESS_MODE');
255 WSH_UTIL_CORE.Add_Message(x_return_status);
256 --
257 IF l_debug_on THEN
258 WSH_DEBUG_SV.logmsg(l_module_name, 'p_process_mode should be ONLINE/CONCURRENT');
259 END IF;
260 --
261 RAISE FND_API.G_EXC_ERROR;
262 END IF;
263
264 IF p_commit = FND_API.G_TRUE THEN
265 COMMIT;
266 END IF;
267
268 --Set Msg. Count and Data from Msg. Stack
269 FND_MSG_PUB.Count_And_Get(
270 p_count => x_msg_count,
271 p_data => x_msg_data,
272 p_encoded => fnd_api.g_false);
273
274 --
275 IF l_debug_on THEN
276 WSH_DEBUG_SV.log(l_module_name, 'Return Status', x_return_status);
277 WSH_DEBUG_SV.pop(l_module_name);
278 END IF;
279 --
280 EXCEPTION
281 WHEN FND_API.G_EXC_ERROR THEN
282 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
283 --
284 IF l_debug_on THEN
285 WSH_DEBUG_SV.logmsg(l_module_name,'Rolling back the transactions');
286 END IF;
287 --
288 ROLLBACK;
289 FND_MSG_PUB.Count_And_Get(
290 p_count => x_msg_count,
291 p_data => x_msg_data,
292 p_encoded => fnd_api.g_false);
293 IF l_debug_on THEN
294 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occured while creating Shipment Batch');
295 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
296 END IF;
297 WHEN others THEN
298 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
299 --
300 IF l_debug_on THEN
301 WSH_DEBUG_SV.logmsg(l_module_name,'Rolling back the transactions');
302 END IF;
303 --
304 ROLLBACK;
305 FND_MSG_PUB.Count_And_Get(
306 p_count => x_msg_count,
307 p_data => x_msg_data,
308 p_encoded => fnd_api.g_false);
309 --
310 IF l_debug_on THEN
311 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
312 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
313 END IF;
314 END Create_Shipment_Batch;
315 --
316 --========================================================================
317 -- PROCEDURE : Cancel_Line PUBLIC
318 --
319 -- PARAMETERS: p_api_version_number version number of the API
320 -- p_init_msg_list messages will be initialized if set as true
321 -- p_commit commit Flag
322 -- p_document_number document number
323 -- p_line_number line number
324 -- p_cancel_quantity quantity to unassign from Shipment batch
325 -- x_return_status return status
326 -- x_msg_count number of messages in the list
327 -- x_msg_data text of messages
328 -- VERSION : current version 1.0
329 -- initial version 1.0
330 -- COMMENT : Public API to unassign delivery line from a Shipment Batch.
331 --
332 --========================================================================
333
334 /*#
335 * Unassing delivery line from Shipment Batch
336 * @param p_api_version_number version number of the API
337 * @param p_init_msg_list messages will be initialized if set as true
338 * @param p_commit commit flag
339 * @param p_document_number document number
340 * @param p_line_number line number
341 * @param p_cancel_quantity quantity to unassign from Shipment batch
342 * @param x_return_status return status of the API
343 * @param x_msg_count number of messages, if any
344 * @param x_msg_data message text, if any
345 * @rep:scope public
346 * @rep:lifecycle active
347 * @rep:displayname Unassign Delivery Line From Shipment Batch
348 */
349 PROCEDURE Cancel_Line(
350 p_api_version_number IN NUMBER,
351 p_init_msg_list IN VARCHAR2,
352 p_commit IN VARCHAR2,
353 p_document_number IN VARCHAR2,
354 p_line_number IN VARCHAR2,
355 p_cancel_quantity IN NUMBER,
356 x_return_status OUT NOCOPY VARCHAR2,
357 x_msg_count OUT NOCOPY NUMBER,
358 x_msg_data OUT NOCOPY VARCHAR2 )
359 AS
360
361 l_msg_count NUMBER;
362 l_return_status VARCHAR2(1);
363 l_msg_data VARCHAR2(1000);
364
365 l_api_version_number CONSTANT NUMBER := 1.0;
366 l_api_name CONSTANT VARCHAR2(30):= 'Cancel_Line';
367
368 --
369 l_debug_on BOOLEAN;
370 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || l_api_name;
371 --
372 BEGIN
373 --
374 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
375 --
376 IF l_debug_on IS NULL
377 THEN
378 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
379 END IF;
380 --
381 IF l_debug_on THEN
382 WSH_DEBUG_SV.push(l_module_name);
383 --
384 WSH_DEBUG_SV.log(l_module_name, 'p_commit', p_commit);
385 WSH_DEBUG_SV.log(l_module_name, 'p_api_version_number', p_api_version_number);
386 WSH_DEBUG_SV.log(l_module_name, 'p_document_number', p_document_number);
387 WSH_DEBUG_SV.log(l_module_name, 'p_line_number', p_line_number);
388 WSH_DEBUG_SV.log(l_module_name, 'p_cancel_quantity', p_cancel_quantity);
389 END IF;
390 --
391 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
392 -- Initialize Message List
393 IF FND_API.to_Boolean(p_init_msg_list) THEN
394 FND_MSG_PUB.initialize;
395 END IF;
396
397 -- Standard call to check for call compatibility
398 IF NOT FND_API.Compatible_API_Call (
399 l_api_version_number,
400 p_api_version_number,
401 l_api_name,
402 G_PKG_NAME )
403 THEN
404 --RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
405 RAISE FND_API.G_EXC_ERROR;
406 END IF;
407
408 IF l_debug_on THEN
409 WSH_DEBUG_SV.logmsg(l_module_name, 'Calling WSH_SHIPMENT_BATCH_PKG.Cancel_Line', WSH_DEBUG_SV.C_PROC_LEVEL);
410 END IF;
411 --
412 WSH_SHIPMENT_BATCH_PKG.Cancel_Line(
413 p_document_number => p_document_number ,
414 p_line_number => p_line_number ,
415 p_cancel_quantity => p_cancel_quantity ,
416 x_return_status => l_return_status );
417
418 --
419 IF l_debug_on THEN
420 WSH_DEBUG_SV.log(l_module_name, 'Return Status of WSH_SHIPMENT_BATCH_PKG.Cancel_Line', l_return_status);
421 END IF;
422 --
423
424 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
425 RAISE FND_API.G_EXC_ERROR;
426 END IF;
427
428 IF p_commit = FND_API.G_TRUE THEN
429 COMMIT;
430 END IF;
431
432 --
433 IF l_debug_on THEN
434 WSH_DEBUG_SV.log(l_module_name, 'Return Status', x_return_status);
435 WSH_DEBUG_SV.pop(l_module_name);
436 END IF;
437 --
438 EXCEPTION
439 WHEN FND_API.G_EXC_ERROR THEN
440 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
441 --
442 IF l_debug_on THEN
443 WSH_DEBUG_SV.logmsg(l_module_name,'Rolling back the transactions');
444 END IF;
445 --
446 ROLLBACK;
447 FND_MSG_PUB.Count_And_Get(
448 p_count => x_msg_count,
449 p_data => x_msg_data,
450 p_encoded => fnd_api.g_false);
451 IF l_debug_on THEN
452 WSH_DEBUG_SV.logmsg(l_module_name, 'Error occured while cancelling delivery line');
453 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
454 END IF;
455 WHEN others THEN
456 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
457 --
458 IF l_debug_on THEN
459 WSH_DEBUG_SV.logmsg(l_module_name,'Rolling back the transactions');
460 END IF;
461 --
462 ROLLBACK;
463 FND_MSG_PUB.Count_And_Get(
464 p_count => x_msg_count,
465 p_data => x_msg_data,
466 p_encoded => fnd_api.g_false);
467 --
468 IF l_debug_on THEN
469 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
470 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
471 END IF;
472 END Cancel_Line;
473
474 END WSH_SHIPMENT_BATCH_PUB;