DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_PICKING_BATCHES_PUB

Source


1 PACKAGE BODY WSH_PICKING_BATCHES_PUB AS
2 /* $Header: WSHPRPBB.pls 120.5 2010/05/14 10:01:58 sunilku ship $ */
3 
4 --
5 -- Package Variables
6 --
7 --===================
8 -- CONSTANTS
9 --===================
10 --
11   G_PKG_NAME CONSTANT VARCHAR2(50) := 'WSH_PICKING_BATCHES_PUB';
12 -- add your constants here if any
13 --
14 --
15 --===================
16 -- PROCEDURES
17 --===================
18 
19    --===================================================================================================
20    -- Start of comments
21    --
22    -- API Name          : Create_Batch
23    -- Type		: Public
24    -- Purpose
25    -- Pre-reqs	        : None.
26    -- Function          : The procedure takes in a rule_id / rule_name and brings up the default
27    --                     values for a new batch to be created.
28    --                     It then uses the information in the in parameter p_batch_rec and replaces the
29    --                     values it picked up from the rule with the not null members of p_batch_rec
30    --                     It then creates a new batch_id and inserts a new batch in the picking batch table
31    --                     It will do some basic validations on the  the input parameters
32 
33    --
34    -- PARAMETERS        : p_api_version_number    known api version  number
35    --                     p_init_msg_list         FND_API.G_TRUE to reset list
36    --                     p_commit                FND_API.G_TRUE to perform a commit
37    --                     x_return_status         return status
38    --			  x_msg_count             number of messages in the list
39    --			  x_msg_data              text of messages
40    --	                  p_rule_id               Pick Release Rule Id --For Defaulting purpose
41    --			  p_rule_name             Pick Release Rule Name --For Defaulting purpose
42    --			  p_batch_rec             which contains all the Picking Batch parameters.
43    --                     p_batch_prefix          Which used to prefix for the Batch Name
44    --                                             i.e, Batch_Name becomes p_batch_prefix-batch_id
45    --                     x_batch_id              Returns the batch Id created
46    -- VERSION          :  current version         1.0
47    --                     initial version         1.0
48    -- End of comments
49    --===================================================================================================
50 
51 PROCEDURE Create_Batch (
52          -- Standard parameters
53          p_api_version        IN   NUMBER,
54          p_init_msg_list      IN   VARCHAR2  DEFAULT NULL,
55          p_commit             IN   VARCHAR2  DEFAULT NULL,
56          x_return_status      OUT NOCOPY     VARCHAR2,
57          x_msg_count          OUT NOCOPY     NUMBER,
58          x_msg_data           OUT NOCOPY     VARCHAR2,
59 
60          -- program specific paramters.
61          p_rule_id            IN   NUMBER   DEFAULT NULL,
62 	     p_rule_name          IN   VARCHAR2 DEFAULT NULL,
63          p_batch_rec          IN   WSH_PICKING_BATCHES_PUB.Batch_Info_Rec ,
64          p_batch_prefix       IN   VARCHAR2 DEFAULT NULL ,
65          x_batch_id           OUT  NOCOPY   NUMBER
66 
67  ) IS
68 
69 
70 
71 l_api_version        CONSTANT NUMBER := 1.0;
72 l_api_name           CONSTANT VARCHAR2(30):= 'WSH_PICKING_BATCHES_PUB';
73 
74 l_return_status VARCHAR2(30)  := NULL;
75 l_msg_count                 NUMBER;
76 l_msg_data                  VARCHAR2(32767);
77 l_number_of_errors          NUMBER := 0;
78 l_number_of_warnings        NUMBER := 0;
79 
80 l_rule_id                   NUMBER;
81 l_rule_name                 VARCHAR2(150);
82 l_batch_rec                 WSH_PICKING_BATCHES_PUB.Batch_Info_Rec;
83 l_batch_prefix              VARCHAR2(30);
84 l_batch_id                  NUMBER;
85 
86 l_debug_on BOOLEAN;
87 --
88 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'CREATE_BATCH';
89 --
90 
91 BEGIN
92 
93   --
94   -- Debug Statements
95   --
96   --
97   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
98   --
99   IF l_debug_on IS NULL  THEN
100   --{
101      l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
102   --}
103   END IF;
104   --
105   SAVEPOINT PICKING_BATCH_PUB;
106   IF l_debug_on THEN
107   --{
108 	WSH_DEBUG_SV.push(l_module_name);
109 	--
110         WSH_DEBUG_SV.logmsg(l_module_name,'CREATE_BATCH BEING CALLED WITH FOLLOWING PARAMETERS');
111         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
112         WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
113 	WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
114 	WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
115 	WSH_DEBUG_SV.log(l_module_name,'P_RULE_ID',P_RULE_ID);
116 	WSH_DEBUG_SV.log(l_module_name,'P_RULE_NAME',P_RULE_NAME);
117 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_PREFIX',P_BATCH_PREFIX);
118 	WSH_DEBUG_SV.log(l_module_name,'P_BACKORDERS_ONLY_FLAG',P_BATCH_REC.BACKORDERS_ONLY_FLAG);
119 	WSH_DEBUG_SV.log(l_module_name,'P_DOCUMENT_SET_ID',P_BATCH_REC.DOCUMENT_SET_ID);
120 	WSH_DEBUG_SV.log(l_module_name,'P_DOCUMENT_SET_NAME',P_BATCH_REC.DOCUMENT_SET_NAME);
121 	WSH_DEBUG_SV.log(l_module_name,'P_EXISTING_RSVS_ONLY_FLAG',P_BATCH_REC.EXISTING_RSVS_ONLY_FLAG);
122 	WSH_DEBUG_SV.log(l_module_name,'P_SHIPMENT_PRIORITY_CODE',P_BATCH_REC.SHIPMENT_PRIORITY_CODE);
123 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_METHOD_CODE',P_BATCH_REC.SHIP_METHOD_CODE);
124 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_METHOD_NAME',P_BATCH_REC.SHIP_METHOD_NAME);
125 	WSH_DEBUG_SV.log(l_module_name,'P_CUSTOMER_ID',P_BATCH_REC.CUSTOMER_ID);
126         WSH_DEBUG_SV.log(l_module_name,'P_CUSTOMER_NUMBER',P_BATCH_REC.CUSTOMER_NUMBER);
127 	WSH_DEBUG_SV.log(l_module_name,'P_ORDER_HEADER_ID',P_BATCH_REC.ORDER_HEADER_ID);
128         WSH_DEBUG_SV.log(l_module_name,'P_ORDER_NUMBER',P_BATCH_REC.ORDER_NUMBER);
129 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_SET_ID',P_BATCH_REC.SHIP_SET_ID);
130 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_SET_NUMBER',P_BATCH_REC.SHIP_SET_NUMBER);
131 	WSH_DEBUG_SV.log(l_module_name,'P_INVENTORY_ITEM_ID',P_BATCH_REC.INVENTORY_ITEM_ID);
132 	WSH_DEBUG_SV.log(l_module_name,'P_ORDER_TYPE_ID',P_BATCH_REC.ORDER_TYPE_ID);
133         WSH_DEBUG_SV.log(l_module_name,'P_ORDER_TYPE_NAME',P_BATCH_REC.ORDER_TYPE_NAME);
134 	WSH_DEBUG_SV.log(l_module_name,'P_FROM_REQUESTED_DATE',P_BATCH_REC.FROM_REQUESTED_DATE);
135 	WSH_DEBUG_SV.log(l_module_name,'P_TO_REQUESTED_DATE',P_BATCH_REC.TO_REQUESTED_DATE);
136 	WSH_DEBUG_SV.log(l_module_name,'P_FROM_SCHEDULED_SHIP_DATE',P_BATCH_REC.FROM_SCHEDULED_SHIP_DATE);
137 	WSH_DEBUG_SV.log(l_module_name,'P_TO_SCHEDULED_SHIP_DATE',P_BATCH_REC.TO_SCHEDULED_SHIP_DATE);
138 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_TO_LOCATION_ID',P_BATCH_REC.SHIP_TO_LOCATION_ID);
139 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_FROM_LOCATION_ID',P_BATCH_REC.SHIP_FROM_LOCATION_ID);
140 	WSH_DEBUG_SV.log(l_module_name,'P_TRIP_ID',P_BATCH_REC.TRIP_ID);
141         WSH_DEBUG_SV.log(l_module_name,'P_TRIP_NAME',P_BATCH_REC.TRIP_NAME);
142 	WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_ID',P_BATCH_REC.DELIVERY_ID);
143         WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_NAME',P_BATCH_REC.DELIVERY_NAME);
144 	WSH_DEBUG_SV.log(l_module_name,'P_INCLUDE_PLANNED_LINES',P_BATCH_REC.INCLUDE_PLANNED_LINES);
145 	WSH_DEBUG_SV.log(l_module_name,'P_PICK_GROUPING_RULE_ID',P_BATCH_REC.PICK_GROUPING_RULE_ID);
146         WSH_DEBUG_SV.log(l_module_name,'P_PICK_GROUPING_RULE_NAME',P_BATCH_REC.PICK_GROUPING_RULE_NAME);
147 	WSH_DEBUG_SV.log(l_module_name,'P_PICK_SEQUENCE_RULE_ID',P_BATCH_REC.PICK_SEQUENCE_RULE_ID);
148         WSH_DEBUG_SV.log(l_module_name,'P_PICK_SEQUENCE_RULE_NAME',P_BATCH_REC.PICK_SEQUENCE_RULE_NAME);
149 	WSH_DEBUG_SV.log(l_module_name,'P_AUTOCREATE_DELIVERY_FLAG',P_BATCH_REC.AUTOCREATE_DELIVERY_FLAG);
150 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE_CATEGORY',P_BATCH_REC.ATTRIBUTE_CATEGORY);
151 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE1',P_BATCH_REC.ATTRIBUTE1);
152 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE2',P_BATCH_REC.ATTRIBUTE2);
153 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE3',P_BATCH_REC.ATTRIBUTE3);
154 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE4',P_BATCH_REC.ATTRIBUTE4);
155 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE5',P_BATCH_REC.ATTRIBUTE5);
156 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE6',P_BATCH_REC.ATTRIBUTE6);
157 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE7',P_BATCH_REC.ATTRIBUTE7);
158 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE8',P_BATCH_REC.ATTRIBUTE8);
159 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE9',P_BATCH_REC.ATTRIBUTE9);
160 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE10',P_BATCH_REC.ATTRIBUTE10);
161 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE11',P_BATCH_REC.ATTRIBUTE11);
162 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE12',P_BATCH_REC.ATTRIBUTE12);
163 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE13',P_BATCH_REC.ATTRIBUTE13);
164 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE14',P_BATCH_REC.ATTRIBUTE14);
165 	WSH_DEBUG_SV.log(l_module_name,'P_ATTRIBUTE15',P_BATCH_REC.ATTRIBUTE15);
166 	WSH_DEBUG_SV.log(l_module_name,'P_AUTODETAIL_PR_FLAG',P_BATCH_REC.AUTODETAIL_PR_FLAG);
167 	-- Bug#: 3266659 - Removing carrier params
168 	-- WSH_DEBUG_SV.log(l_module_name,'P_CARRIER_ID',P_BATCH_REC.CARRIER_ID);
169         -- WSH_DEBUG_SV.log(l_module_name,'P_CARRIER_NAME',P_BATCH_REC.CARRIER_NAME);
170 	WSH_DEBUG_SV.log(l_module_name,'P_STOP_ID',P_BATCH_REC.TRIP_STOP_ID);
171         WSH_DEBUG_SV.log(l_module_name,'P_STOP_LOCATION_ID',P_BATCH_REC.TRIP_STOP_LOCATION_ID);
172 	WSH_DEBUG_SV.log(l_module_name,'P_DEFAULT_STAGE_SUBINVENTORY',P_BATCH_REC.DEFAULT_STAGE_SUBINVENTORY);
173 	WSH_DEBUG_SV.log(l_module_name,'P_DEFAULT_STAGE_LOCATOR_ID',P_BATCH_REC.DEFAULT_STAGE_LOCATOR_ID);
174 	WSH_DEBUG_SV.log(l_module_name,'P_PICK_FROM_SUBINVENTORY',P_BATCH_REC.PICK_FROM_SUBINVENTORY);
175 	WSH_DEBUG_SV.log(l_module_name,'P_PICK_FROM_LOCATOR_ID',P_BATCH_REC.PICK_FROM_LOCATOR_ID);
176 	WSH_DEBUG_SV.log(l_module_name,'P_AUTO_PICK_CONFIRM_FLAG',P_BATCH_REC.AUTO_PICK_CONFIRM_FLAG);
177 	WSH_DEBUG_SV.log(l_module_name,'P_DELIVERY_DETAIL_ID',P_BATCH_REC.DELIVERY_DETAIL_ID);
178 	WSH_DEBUG_SV.log(l_module_name,'P_PROJECT_ID',P_BATCH_REC.PROJECT_ID);
179 	WSH_DEBUG_SV.log(l_module_name,'P_TASK_ID',P_BATCH_REC.TASK_ID);
180 	WSH_DEBUG_SV.log(l_module_name,'P_ORGANIZATION_ID',P_BATCH_REC.ORGANIZATION_ID);
181 	WSH_DEBUG_SV.log(l_module_name,'P_ORGANIZATION_CODE',P_BATCH_REC.ORGANIZATION_CODE);
182 	WSH_DEBUG_SV.log(l_module_name,'P_CONFIRM_RULE_ID',P_BATCH_REC.SHIP_CONFIRM_RULE_ID);
183         WSH_DEBUG_SV.log(l_module_name,'P_CONFIRM_RULE_NAME',P_BATCH_REC.SHIP_CONFIRM_RULE_NAME);
184 	WSH_DEBUG_SV.log(l_module_name,'P_AUTOPACK_FLAG',P_BATCH_REC.AUTOPACK_FLAG);
185 	WSH_DEBUG_SV.log(l_module_name,'P_AUTOPACK_LEVEL',P_BATCH_REC.AUTOPACK_LEVEL);
186 	WSH_DEBUG_SV.log(l_module_name,'P_TASK_PLANNING_FLAG',P_BATCH_REC.TASK_PLANNING_FLAG);
187 	-- Bug#: 3266659 - Removing carrier params
188 	-- WSH_DEBUG_SV.log(l_module_name,'P_NON_PICKING_FLAG',P_BATCH_REC.NON_PICKING_FLAG);
189         WSH_DEBUG_SV.log(l_module_name,'P_CATEGORY_SET_ID',P_BATCH_REC.CATEGORY_SET_ID);
190 	WSH_DEBUG_SV.log(l_module_name,'P_CATEGORY_ID',P_BATCH_REC.CATEGORY_ID);
191 	WSH_DEBUG_SV.log(l_module_name,'P_SHIP_SET_SMC_FLAG',P_BATCH_REC.SHIP_SET_SMC_FLAG);
192 	-- Bug# 3266659: Log messages for added attributes
193 	WSH_DEBUG_SV.log(l_module_name,'p_region_ID',P_BATCH_REC.region_ID);
194 	WSH_DEBUG_SV.log(l_module_name,'P_zone_ID',P_BATCH_REC.zone_ID);
195         WSH_DEBUG_SV.log(l_module_name,'P_ac_Delivery_Criteria',P_BATCH_REC.ac_Delivery_Criteria);
196 	WSH_DEBUG_SV.log(l_module_name,'P_rel_subinventory',P_BATCH_REC.rel_subinventory);
197 	WSH_DEBUG_SV.log(l_module_name,'P_append_flag',P_BATCH_REC.append_flag);
198 	WSH_DEBUG_SV.log(l_module_name,'P_task_priority',P_BATCH_REC.task_priority);
199         WSH_DEBUG_SV.log(l_module_name,'Actual Departure Date',
200           to_char(p_batch_rec.actual_departure_date, 'DD/MM/YYYY HH24:MI:SS'));
201         -- X-dock
202 	WSH_DEBUG_SV.log(l_module_name,'P_allocation_method',P_BATCH_REC.allocation_method);
203 	WSH_DEBUG_SV.log(l_module_name,'P_crossdock_criteria_id',P_BATCH_REC.crossdock_criteria_id);
204 	WSH_DEBUG_SV.log(l_module_name,'P_crossdock_criteria_name',P_BATCH_REC.crossdock_criteria_name);
205         -- end of X-dock
206         WSH_DEBUG_SV.log(l_module_name,'P_dynamic_replenishment_flag',P_BATCH_REC.dynamic_replenishment_flag); -- bug# 6689448 (replenishment project)
207         -- LSP PROJECT
208         WSH_DEBUG_SV.log(l_module_name,'P_client_code',P_BATCH_REC.client_code);
209         WSH_DEBUG_SV.log(l_module_name,'P_client_id',P_BATCH_REC.client_id);
210         -- LSP PROJECT : end
211 	WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
212      --}
213      END IF;
214 
215   IF NOT FND_API.compatible_api_call( l_api_version,
216                                p_api_version,
217                                l_api_name,
218                                G_PKG_NAME) THEN
219      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
220   END IF;
221 
222   -- Check p_init_msg_list
223   IF FND_API.to_boolean(p_init_msg_list)  THEN
224   --{
225     FND_MSG_PUB.initialize;
226   --}
227   END IF;
228   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
229   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
230 
231   l_rule_id       :=  p_rule_id;
232   l_rule_name     :=  p_rule_name;
233   l_batch_rec     :=  p_batch_rec;
234   l_batch_prefix  :=  p_batch_prefix;
235 
236 
237   IF l_debug_on THEN
238   --{
239      WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_PICKING_BATCHES_GRP.CREATE_BATCH',WSH_DEBUG_SV.C_PROC_LEVEL);
240   --}
241   END IF;
242 
243 /* -- Bug # 7505524 :moved the following code to group API
244                      WSH_PICKING_BATCHES_GRP.create_batch
245   --
246   -- X-dock
247   -- 1)Validate CrossDock Criteria Name for WMS org.
248   --   Always use crossdock_criteria_id except when crossdock_criteria_id is null
249   --   and crossdock_criteria_name has been specified
250   -- 2)The values of crossdock criteria will be ignored for non-WMS org
251   --
252   IF WSH_UTIL_VALIDATE.check_wms_org(p_batch_rec.organization_id) = 'Y' THEN
253     IF (l_batch_rec.crossdock_criteria_id IS NULL AND
254         l_batch_rec.crossdock_criteria_name IS NOT NULL) THEN
255       -- derive crossdock criteria id
256       WMS_CROSSDOCK_GRP.chk_planxd_crt_id_name
257         (p_criterion_id   => l_batch_rec.crossdock_criteria_id,
258          p_criterion_name => l_batch_rec.crossdock_criteria_name,
259          x_return_status  => l_return_status);
260 
261       wsh_util_core.api_post_call(
262                p_return_status => l_return_status,
263                x_num_warnings  => l_number_of_warnings,
264                x_num_errors    => l_number_of_errors,
265                p_msg_data      => l_msg_data
266                );
267     END IF;
268   END IF;
269   -- end of X-dock
270   --
271 
272   -- ECO 4634966
273   IF l_batch_rec.existing_rsvs_only_flag = 'Y' AND
274      WSH_UTIL_VALIDATE.check_wms_org(l_batch_rec.organization_id) = 'Y' AND
275      l_batch_rec.allocation_method IN (WSH_PICK_LIST.C_CROSSDOCK_ONLY,
276                               WSH_PICK_LIST.C_PRIORITIZE_CROSSDOCK,
277                               WSH_PICK_LIST.C_PRIORITIZE_INVENTORY) THEN
278     ROLLBACK TO PICKING_BATCH_PUB;
279     FND_MESSAGE.SET_NAME('WSH','WSH_INVALID_COMBINATION');
280     x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
281     wsh_util_core.add_message(x_return_status);
282     IF l_debug_on THEN
283       WSH_DEBUG_SV.pop(l_module_name);
284     END IF;
285     --
286     return;
287   END IF;
288   -- End of ECO 4634966
289 Bug # 7505524*/
290 
291    WSH_PICKING_BATCHES_GRP.Create_Batch(
292             p_api_version_number    => p_api_version,
293             p_init_msg_list         => NULL,   --- Treated as False in  Group API
294             p_commit                => NULL,   --- Treated as False in Group API
295             x_return_status         => l_return_status,
296             x_msg_count             => l_msg_count,
297             x_msg_data              => l_msg_data,
298             p_rule_id               => l_rule_id ,
299             p_rule_name             => l_rule_name ,
300 	    p_batch_rec             => l_batch_rec,
301             p_batch_prefix          => l_batch_prefix,
302 	    x_batch_id              => l_batch_id);
303 
304  IF l_debug_on THEN
305  --{
306     WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
307  --}
308  END IF;
309  --
310 
311  wsh_util_core.api_post_call(
312                p_return_status => l_return_status,
313                x_num_warnings  => l_number_of_warnings,
314                x_num_errors    => l_number_of_errors,
315                p_msg_data      => l_msg_data
316                );
317 
318  x_batch_id := l_batch_id;
319 
320  IF l_number_of_warnings > 0 THEN
321  --{
322       x_return_status := wsh_util_core.g_ret_sts_warning;
323  --}
324  END IF;
325 
326 
327  IF FND_API.TO_BOOLEAN(p_commit) THEN
328  --{
329     COMMIT WORK;
330  --}
331  END IF;
332 
333  FND_MSG_PUB.Count_And_Get
334      (
335         p_count =>  x_msg_count,
336         p_data  =>  x_msg_data,
337         p_encoded => FND_API.G_FALSE
338      );
339 
340  IF l_debug_on THEN
341  --{
342     WSH_DEBUG_SV.pop(l_module_name);
343  --}
344  END IF;
345  --
346 
347 
348  EXCEPTION
349         WHEN FND_API.G_EXC_ERROR THEN
350              ROLLBACK TO PICKING_BATCH_PUB;
351              x_return_status := FND_API.G_RET_STS_ERROR ;
352              wsh_util_core.add_message(x_return_status);
353              FND_MSG_PUB.Count_And_Get
354                  (
355                    p_count  => x_msg_count,
356                    p_data  =>  x_msg_data,
357                    p_encoded => FND_API.G_FALSE
358                   );
359 
360             IF l_debug_on THEN
361 	    --{
362                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
363                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
364             --}
365 	    END IF;
366             --
367 
368         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
369              ROLLBACK TO PICKING_BATCH_PUB;
370              x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
371              wsh_util_core.add_message(x_return_status, l_module_name);
372              FND_MSG_PUB.Count_And_Get
373                  (
374                     p_count  => x_msg_count,
375                     p_data  =>  x_msg_data,
376                     p_encoded => FND_API.G_FALSE
377                  );
378                   --
379 
380             IF l_debug_on THEN
381 	    --{
382                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
383                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
384             --}
385 	    END IF;
386        WHEN OTHERS THEN
387             ROLLBACK TO PICKING_BATCH_PUB;
388             wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.CREATE_BATCH');
389             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
390             FND_MSG_PUB.Count_And_Get
391                 (
392                     p_count  => x_msg_count,
393                     p_data  =>  x_msg_data,
394                     p_encoded => FND_API.G_FALSE
395                  );
396 
397             IF l_debug_on THEN
398 	    --{
399                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
400                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
401             --}
402 	    END IF;
403             --
404  END Create_Batch;
405 /*
406 --======================================================================================================
407 -- Start of comments
408 --
409 -- API Name          : Release_Batch
410 -- Type              : Public
411 -- Purpose
412 -- Pre-reqs          : None.
413 -- Function          : The procedure takes in a Batch_id/ Batch_name and depending on the p_release_mode
414 --                     value it process the batch.   p_log_level value should be greator than 0 when
415 --                     customer want to get the pick release log fine incace of concurrent pick release
416 --                     release.
417 --                     It will do some basic validations on the  the input parameters
418 --                     like log_level should be positive  , and on the not null values of p_batch_rec.
419 --
420 -- PARAMETERS        : p_api_version_number    known api version  number
421 --                     p_init_msg_list         FND_API.G_TRUE to reset list
422 --                     p_commit                FND_API.G_TRUE to perform a commit
423 --                     x_return_status         return status
424 --                     x_msg_count             number of messages in the list
425 --                     x_msg_data              text of messages
426 --                     p_batch_id              Picking Batch Id which is used to get Batch
427 --					       information from the wsh_picking_batches table.
428 --                     p_batch_name            Picking Batch Name which is used to get Batch
429 --					       information from the wsh_picking_batches table.
430 --                     p_log_level             Controlls the log message generated by cuncurrent
431 --					       pick release process.
432 --                     p_release_mode          Used to do ONLINE or CONCURRENT pick release,
433 --                                             Default is "CONCURREN"
434 --                     p_release_mode          Returns the batch Id created
435 --                     x_request_id            Returns the Request Id for concurrent pick release request
436 -- VERSION           : current version         1.0
437 --                     initial version         1.0
438 -- End of comments
439 --======================================================================================================
440 */
441 
442 PROCEDURE Release_Batch (
443          -- Standard parameters
444          p_api_version        IN   NUMBER,
445          p_init_msg_list      IN   VARCHAR2  DEFAULT  NULL,
446          p_commit             IN   VARCHAR2  DEFAULT  NULL,
447          x_return_status      OUT  NOCOPY    VARCHAR2,
448          x_msg_count          OUT  NOCOPY    NUMBER,
449          x_msg_data           OUT  NOCOPY    VARCHAR2,
450          -- program specific paramters.
451           p_batch_id          IN   NUMBER    DEFAULT NULL,
452 	  p_batch_name        IN   VARCHAR2    DEFAULT NULL,
453           p_log_level         IN   NUMBER    DEFAULT NULL,
454 	  p_release_mode      IN   VARCHAR2  DEFAULT 'CONCURRENT',
455 	  x_request_id       OUT  NOCOPY    NUMBER
456         )  IS
457 
458 l_api_version        CONSTANT NUMBER := 1.0;
459 l_api_name           CONSTANT VARCHAR2(30):= 'WSH_PICKING_BATCHES_PUB';
460 
461 l_return_status VARCHAR2(30)  := NULL;
462 l_msg_count                 NUMBER;
463 l_msg_data                  VARCHAR2(32767);
464 l_number_of_errors          NUMBER := 0;
465 l_number_of_warnings        NUMBER := 0;
466 
467 l_batch_id                  NUMBER;
468 l_batch_name                VARCHAR2(60);
469 l_release_mode              VARCHAR2(20);
470 l_log_level                 NUMBER;
471 l_request_id                NUMBER;
472 -- l_num_workers               NUMBER;   bug # 7505524 :logic is moved to group API
473 
474 l_debug_on BOOLEAN;
475 --
476 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'RELEASE_BATCH';
477 --
478 
479 BEGIN
480 
481   --
482   -- Debug Statements
483   --
484   --
485   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
486   --
487   IF l_debug_on IS NULL  THEN
488   --{
489      l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
490   --}
491   END IF;
492   --
493   IF l_debug_on THEN
494   --{
495   --
496   	WSH_DEBUG_SV.push(l_module_name);
497 	--
498         WSH_DEBUG_SV.logmsg(l_module_name,'RELEASE_BATCH BEING CALLED WITH FOLLOWING PARAMETERS');
499         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
500         WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
501 	WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
502 	WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
503 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_ID',P_BATCH_ID);
504 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_NAME',P_BATCH_NAME);
505 	WSH_DEBUG_SV.log(l_module_name,'P_RELEASE_MODE',P_RELEASE_MODE);
506 	WSH_DEBUG_SV.log(l_module_name,'P_LOG_LEVEL',P_LOG_LEVEL);
507         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
508   --}
509   END IF;
510   IF NOT FND_API.compatible_api_call( l_api_version,
511                                p_api_version,
512                                l_api_name,
513                                G_PKG_NAME) THEN
514      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
515   END IF;
516 
517   -- Check p_init_msg_list
518   IF FND_API.to_boolean(p_init_msg_list)  THEN
519   --{
520     FND_MSG_PUB.initialize;
521   --}
522   END IF;
523 
524   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
525   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
526 
527   l_batch_id       :=  p_batch_id;
528   l_batch_name     :=  p_batch_name;
529   l_release_mode   :=  p_release_mode;
530   l_log_level      :=  p_log_level;
531 
532 /*  Bug # 7505524: moved the following code to group API
533                    WSH_PICKING_BATCHES_GRP.release_batch
534   IF l_release_mode = 'CONCURRENT' THEN
535      l_num_workers := NVL(FND_PROFILE.Value('WSH_PR_NUM_WORKERS'), 1);
536   ELSE
537      l_num_workers := 1;
538   END IF; */
539 
540 
541   IF l_debug_on THEN
542   --{
543      WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_PICKING_BATCHES_GRP.RELASE_BATCH',WSH_DEBUG_SV.C_PROC_LEVEL);
544   --}
545   END IF;
546   --
547   WSH_PICKING_BATCHES_GRP.Release_Batch(
548             p_api_version_number    => p_api_version,
549             p_init_msg_list         => NULL,   --- Treated as False in  Group API
550             p_commit                => NULL,   --- Treated as False in Group API
551             x_return_status         => l_return_status,
552             x_msg_count             => l_msg_count,
553             x_msg_data              => l_msg_data,
554             p_batch_id              => l_batch_id,
555             p_batch_name            => l_batch_name,
556 	        p_release_mode          => l_release_mode,
557             p_log_level             => l_log_level,
558             -- p_num_workers           => l_num_workers, Bug # 7505524
559             x_request_id            => l_request_id);
560 
561  IF l_debug_on THEN
562  --{
563     WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
564  --}
565  END IF;
566  --
567 
568  wsh_util_core.api_post_call(
569                p_return_status => l_return_status,
570                x_num_warnings  => l_number_of_warnings,
571                x_num_errors    => l_number_of_errors,
572                p_msg_data      => l_msg_data
573                );
574 
575  x_request_id := l_request_id;
576 
577  IF l_number_of_warnings > 0 THEN
578  --{
579       x_return_status := wsh_util_core.g_ret_sts_warning;
580  --}
581  END IF;
582 
583 
584  IF FND_API.TO_BOOLEAN(p_commit) THEN
585  --{
586     COMMIT WORK;
587  --}
588  END IF;
589 
590  FND_MSG_PUB.Count_And_Get
591      (
592         p_count =>  x_msg_count,
593         p_data  =>  x_msg_data,
594         p_encoded => FND_API.G_FALSE
595      );
596 
597  IF l_debug_on THEN
598  --{
599     WSH_DEBUG_SV.pop(l_module_name);
600  --}
601  END IF;
602  --
603  EXCEPTION
604         WHEN FND_API.G_EXC_ERROR THEN
605               x_return_status := FND_API.G_RET_STS_ERROR ;
606              wsh_util_core.add_message(x_return_status);
607              FND_MSG_PUB.Count_And_Get
608                  (
609                    p_count  => x_msg_count,
610                    p_data  =>  x_msg_data,
611                    p_encoded => FND_API.G_FALSE
612                   );
613 
614             IF l_debug_on THEN
615 	    --{
616                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
617                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
618             --}
619 	    END IF;
620 --
621 
622         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
623               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
624              wsh_util_core.add_message(x_return_status, l_module_name);
625              FND_MSG_PUB.Count_And_Get
626                  (
627                     p_count  => x_msg_count,
628                     p_data  =>  x_msg_data,
629                     p_encoded => FND_API.G_FALSE
630                  );
631                   --
632 
633             IF l_debug_on THEN
634 	    --{
635                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
636                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
637             --}
638 	    END IF;
639        WHEN OTHERS THEN
640              wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.RELEASE_BATCH');
641             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
642             FND_MSG_PUB.Count_And_Get
643                 (
644                     p_count  => x_msg_count,
645                     p_data  =>  x_msg_data,
646                     p_encoded => FND_API.G_FALSE
647                  );
648 
649             IF l_debug_on THEN
650 	    --{
651                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
652                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
653             --}
654 	    END IF;
655             --
656 END Release_Batch;
657 
658 
659 
660 
661 
662 
663 -- Start of comments
664 --
665 -- API Name          : Get_Batch_Record
666 -- Type              : Public
667 -- Purpose
668 -- Pre-reqs          : None.
669 -- Function          : The procedure takes in a Batch_id or Batch_name and retrieves
670 --                     the batch record from wsh_picking_batches.
671 --                     Note: Non-database attributes will be NULL.
672 --
673 -- PARAMETERS        : p_api_version_number    known api version  number
674 --                     p_init_msg_list         FND_API.G_TRUE to reset list
675 --                     p_commit                FND_API.G_TRUE to perform a commit
676 --                     x_return_status         return status
677 --                     x_msg_count             number of messages in the list
678 --                     x_msg_data              text of messages
679 --                     p_batch_id              Picking Batch Id which is used to get Batch
680 --					       information from the wsh_picking_batches table.
681 --                     p_batch_name            Picking Batch Name which is used to get Batch
682 --					       information from the wsh_picking_batches table.
683 --                     x_batch_rec             Batch record from wsh_picking_batches
684 -- VERSION           : current version         1.0
685 --                     initial version         1.0
686 -- End of comments
687 
688  PROCEDURE Get_Batch_Record(
689          -- Standard parameters
690          p_api_version        IN   NUMBER,
691          p_init_msg_list      IN   VARCHAR2  DEFAULT NULL,
692          p_commit             IN   VARCHAR2  DEFAULT NULL,
693          x_return_status      OUT  NOCOPY    VARCHAR2,
694          x_msg_count          OUT  NOCOPY    NUMBER,
695          x_msg_data           OUT  NOCOPY    VARCHAR2,
696          -- program specific paramters.
697          p_batch_id           IN   NUMBER     DEFAULT NULL,
698          p_batch_name         IN   VARCHAR2   DEFAULT NULL,
699          x_batch_rec          OUT  NOCOPY     WSH_PICKING_BATCHES_PUB.Batch_Info_Rec
700         ) IS
701   l_api_version        CONSTANT NUMBER := 1.0;
702   l_api_name           CONSTANT VARCHAR2(30):= 'WSH_PICKING_BATCHES_PUB';
703 
704   l_return_status VARCHAR2(30)  := NULL;
705   l_msg_count                 NUMBER;
706   l_msg_data                  VARCHAR2(32767);
707   l_number_of_errors          NUMBER := 0;
708   l_number_of_warnings        NUMBER := 0;
709 
710   l_batch_id                  NUMBER;
711   l_batch_name                VARCHAR2(60);
712 
713   l_debug_on BOOLEAN;
714   --
715   l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'GET_BATCH_RECORD';
716   --
717   CURSOR c_batch_info(x_batch_id NUMBER) IS
718   SELECT
719      Backorders_Only_Flag,
720      Document_Set_Id,
721      NULL,               -- not in table: document_set_name
722      Existing_Rsvs_Only_Flag,
723      Shipment_Priority_Code,
724      Ship_Method_Code,
725      NULL,               -- not in table: ship_method_name
726      Customer_Id,
727      NULL,               -- not in table: customer_number
728      Order_Header_Id,
729      NULL,               -- not in table: order_number
730      NULL,               -- not in table: ship_set_id
731      Ship_Set_Number,
732      Inventory_Item_Id,
733      Order_Type_Id,
734      NULL,               -- not in table: order_type_name
735      From_Requested_Date,
736      To_Requested_Date,
737      From_Scheduled_Ship_Date,
738      To_Scheduled_Ship_Date,
739      Ship_To_Location_Id,
740      NULL,               -- not in table: ship_to_location_code
741      Ship_From_Location_Id,
742      NULL,               -- not in table: ship_from_location_code
743      Trip_Id,
744      NULL,               -- not in table: trip_name
745      Delivery_Id,
746      NULL,               -- not in table: delivery_name
747      Include_Planned_Lines,
748      Pick_Grouping_Rule_Id,
749      NULL,               -- not in table: pick_grouping_rule_name
750      Pick_Sequence_Rule_Id,
751      NULL,               -- not in table: pick_sequence_rule_name
752      Autocreate_Delivery_Flag,
753      Attribute_Category,
754      Attribute1,
755      Attribute2,
756      Attribute3,
757      Attribute4,
758      Attribute5,
759      Attribute6,
760      Attribute7,
761      Attribute8,
762      Attribute9,
763      Attribute10,
764      Attribute11,
765      Attribute12,
766      Attribute13,
767      Attribute14,
768      Attribute15,
769      Autodetail_Pr_Flag,
770      Trip_Stop_Id,
771      NULL,               -- not in table: trip_stop_location_id
772      Default_Stage_Subinventory,
773      Default_Stage_Locator_Id,
774      Pick_From_Subinventory,
775      Pick_From_locator_Id,
776      Auto_Pick_Confirm_Flag,
777      Delivery_Detail_Id,
778      Project_Id,
779      Task_Id,
780      Organization_Id,
781      NULL,               -- not in table: organization_code
782      Ship_Confirm_Rule_Id,
783      NULL,               -- not in table: ship_confirm_rule_name
784      Autopack_Flag,
785      Autopack_Level,
786      Task_Planning_Flag,
787      Category_Set_ID,
788      Category_ID,
789      Ship_Set_Smc_Flag,
790      region_ID,
791      zone_ID,
792      ac_Delivery_Criteria,
793      rel_subinventory,
794      append_flag,
795      task_priority,
796      actual_departure_date,
797      allocation_method, --  X-dock
798      crossdock_criteria_id, --  X-dock
799      NULL, -- not in the table:crossdock_criteria_name
800      dynamic_replenishment_flag,  --bug# 6689448 (replenishment project)
801      -- LSP PROJECT :
802      client_id,
803      NULL
804      -- LSP PROJECT :
805   FROM wsh_picking_batches
806   WHERE batch_id = x_batch_id;
807 
808 BEGIN
809 
810   --
811   -- Debug Statements
812   --
813   --
814   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
815   --
816   IF l_debug_on IS NULL  THEN
817   --{
818      l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
819   --}
820   END IF;
821   --
822   IF l_debug_on THEN
823   --{
824   --
825   	WSH_DEBUG_SV.push(l_module_name);
826 	--
827         WSH_DEBUG_SV.logmsg(l_module_name,'GET_BATCH_RECORD BEING CALLED WITH FOLLOWING PARAMETERS');
828         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
829         WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
830 	WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
831 	WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
832 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_ID',P_BATCH_ID);
833 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_NAME',P_BATCH_NAME);
834         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
835   --}
836   END IF;
837   IF NOT FND_API.compatible_api_call( l_api_version,
838                                p_api_version,
839                                l_api_name,
840                                G_PKG_NAME) THEN
841      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
842   END IF;
843 
844   -- Check p_init_msg_list
845   IF FND_API.to_boolean(p_init_msg_list)  THEN
846   --{
847     FND_MSG_PUB.initialize;
848   --}
849   END IF;
850 
851   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
852   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
853 
854   l_batch_id       :=  p_batch_id;
855   l_batch_name     :=  p_batch_name;
856 
857   -- Validating Batch Name and Batch Id
858   IF ( ( l_batch_Id IS NOT NULL AND l_batch_Id <> FND_API.G_MISS_NUM ) OR ( l_batch_Name IS NOT NULL AND l_batch_name <>  FND_API.G_MISS_CHAR ) ) THEN
859   --{
860      IF ( l_batch_Id = FND_API.G_MISS_NUM ) THEN
861      --{
862         l_batch_Id := NULL;
863      --}
864      END IF;
865      IF ( l_batch_name =  FND_API.G_MISS_CHAR ) THEN
866      --{
867         l_batch_name := NULL;
868      --}
869      END IF;
870      IF ( ( l_batch_Id IS NOT NULL) OR ( l_batch_name IS NOT NULL ) ) THEN
871      --{
872         WSH_UTIL_VALIDATE.Validate_Picking_Batch_Name(
873 	      p_picking_batch_Id	=> l_batch_Id,
874 	      p_picking_batch_name      => l_batch_Name,
875 	      x_return_status           => l_return_status);
876 
877         IF l_debug_on THEN
878 	--{
879            WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
880         --}
881 	END IF;
882         --
883         wsh_util_core.api_post_call(
884                p_return_status => l_return_status,
885                x_num_warnings  => l_number_of_warnings,
886                x_num_errors    => l_number_of_errors,
887                p_msg_data      => l_msg_data
888                );
889      --}
890      END IF;
891   ELSE
892      --
893      --
894      FND_MESSAGE.SET_NAME('WSH','WSH_REQUIRED_FIELD_NULL');
895      FND_MESSAGE.SET_TOKEN('FIELD_NAME ',' BATCH_ID OR BATCH_NAME ');
896      x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
897      wsh_util_core.add_message(x_return_status);
898      IF l_debug_on THEN
899        WSH_DEBUG_SV.pop(l_module_name);
900      END IF;
901      --
902      return;
903   --}
904   END IF;
905 
906   -- End of Batch Name Validations
907 
908   IF l_debug_on THEN
909     WSH_DEBUG_SV.log(l_module_name, 'open cursor c_batch_info for l_batch_id', l_batch_id);
910   END IF;
911 
912   OPEN  c_batch_info(l_batch_id);
913   -- at this time, it should be valid, so the record would be found.
914   FETCH c_batch_info INTO x_batch_rec;
915   CLOSE c_batch_info;
916 
917   IF l_debug_on THEN
918     WSH_DEBUG_SV.logmsg(l_module_name,'RECORD ATTRIBUTES LOOKED UP');
919     WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
920     WSH_DEBUG_SV.log(l_module_name,'BACKORDERS_ONLY_FLAG',X_BATCH_REC.BACKORDERS_ONLY_FLAG);
921     WSH_DEBUG_SV.log(l_module_name,'DOCUMENT_SET_ID',X_BATCH_REC.DOCUMENT_SET_ID);
922     WSH_DEBUG_SV.log(l_module_name,'DOCUMENT_SET_NAME',X_BATCH_REC.DOCUMENT_SET_NAME);
923     WSH_DEBUG_SV.log(l_module_name,'EXISTING_RSVS_ONLY_FLAG',X_BATCH_REC.EXISTING_RSVS_ONLY_FLAG);
924     WSH_DEBUG_SV.log(l_module_name,'SHIPMENT_PRIORITY_CODE',X_BATCH_REC.SHIPMENT_PRIORITY_CODE);
925     WSH_DEBUG_SV.log(l_module_name,'SHIP_METHOD_CODE',X_BATCH_REC.SHIP_METHOD_CODE);
926     WSH_DEBUG_SV.log(l_module_name,'SHIP_METHOD_NAME',X_BATCH_REC.SHIP_METHOD_NAME);
927     WSH_DEBUG_SV.log(l_module_name,'CUSTOMER_ID',X_BATCH_REC.CUSTOMER_ID);
928     WSH_DEBUG_SV.log(l_module_name,'CUSTOMER_NUMBER',X_BATCH_REC.CUSTOMER_NUMBER);
929     WSH_DEBUG_SV.log(l_module_name,'ORDER_HEADER_ID',X_BATCH_REC.ORDER_HEADER_ID);
930     WSH_DEBUG_SV.log(l_module_name,'ORDER_NUMBER',X_BATCH_REC.ORDER_NUMBER);
931     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_ID',X_BATCH_REC.SHIP_SET_ID);
932     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_NUMBER',X_BATCH_REC.SHIP_SET_NUMBER);
933     WSH_DEBUG_SV.log(l_module_name,'INVENTORY_ITEM_ID',X_BATCH_REC.INVENTORY_ITEM_ID);
934     WSH_DEBUG_SV.log(l_module_name,'ORDER_TYPE_ID',X_BATCH_REC.ORDER_TYPE_ID);
935     WSH_DEBUG_SV.log(l_module_name,'ORDER_TYPE_NAME',X_BATCH_REC.ORDER_TYPE_NAME);
936     WSH_DEBUG_SV.log(l_module_name,'FROM_REQUESTED_DATE',X_BATCH_REC.FROM_REQUESTED_DATE);
937     WSH_DEBUG_SV.log(l_module_name,'TO_REQUESTED_DATE',X_BATCH_REC.TO_REQUESTED_DATE);
938     WSH_DEBUG_SV.log(l_module_name,'FROM_SCHEDULED_SHIP_DATE',X_BATCH_REC.FROM_SCHEDULED_SHIP_DATE);
939     WSH_DEBUG_SV.log(l_module_name,'TO_SCHEDULED_SHIP_DATE',X_BATCH_REC.TO_SCHEDULED_SHIP_DATE);
940     WSH_DEBUG_SV.log(l_module_name,'SHIP_TO_LOCATION_ID',X_BATCH_REC.SHIP_TO_LOCATION_ID);
941     WSH_DEBUG_SV.log(l_module_name,'SHIP_FROM_LOCATION_ID',X_BATCH_REC.SHIP_FROM_LOCATION_ID);
942     WSH_DEBUG_SV.log(l_module_name,'TRIP_ID',X_BATCH_REC.TRIP_ID);
943     WSH_DEBUG_SV.log(l_module_name,'TRIP_NAME',X_BATCH_REC.TRIP_NAME);
944     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_ID',X_BATCH_REC.DELIVERY_ID);
945     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_NAME',X_BATCH_REC.DELIVERY_NAME);
946     WSH_DEBUG_SV.log(l_module_name,'INCLUDE_PLANNED_LINES',X_BATCH_REC.INCLUDE_PLANNED_LINES);
947     WSH_DEBUG_SV.log(l_module_name,'PICK_GROUPING_RULE_ID',X_BATCH_REC.PICK_GROUPING_RULE_ID);
948     WSH_DEBUG_SV.log(l_module_name,'PICK_GROUPING_RULE_NAME',X_BATCH_REC.PICK_GROUPING_RULE_NAME);
949     WSH_DEBUG_SV.log(l_module_name,'PICK_SEQUENCE_RULE_ID',X_BATCH_REC.PICK_SEQUENCE_RULE_ID);
950     WSH_DEBUG_SV.log(l_module_name,'PICK_SEQUENCE_RULE_NAME',X_BATCH_REC.PICK_SEQUENCE_RULE_NAME);
951     WSH_DEBUG_SV.log(l_module_name,'AUTOCREATE_DELIVERY_FLAG',X_BATCH_REC.AUTOCREATE_DELIVERY_FLAG);
952     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE_CATEGORY',X_BATCH_REC.ATTRIBUTE_CATEGORY);
953     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE1',X_BATCH_REC.ATTRIBUTE1);
954     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE2',X_BATCH_REC.ATTRIBUTE2);
955     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE3',X_BATCH_REC.ATTRIBUTE3);
956     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE4',X_BATCH_REC.ATTRIBUTE4);
957     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE5',X_BATCH_REC.ATTRIBUTE5);
958     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE6',X_BATCH_REC.ATTRIBUTE6);
959     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE7',X_BATCH_REC.ATTRIBUTE7);
960     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE8',X_BATCH_REC.ATTRIBUTE8);
961     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE9',X_BATCH_REC.ATTRIBUTE9);
962     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE10',X_BATCH_REC.ATTRIBUTE10);
963     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE11',X_BATCH_REC.ATTRIBUTE11);
964     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE12',X_BATCH_REC.ATTRIBUTE12);
965     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE13',X_BATCH_REC.ATTRIBUTE13);
966     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE14',X_BATCH_REC.ATTRIBUTE14);
967     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE15',X_BATCH_REC.ATTRIBUTE15);
968     WSH_DEBUG_SV.log(l_module_name,'AUTODETAIL_PR_FLAG',X_BATCH_REC.AUTODETAIL_PR_FLAG);
969     WSH_DEBUG_SV.log(l_module_name,'STOP_ID',X_BATCH_REC.TRIP_STOP_ID);
970     WSH_DEBUG_SV.log(l_module_name,'STOP_LOCATION_ID',X_BATCH_REC.TRIP_STOP_LOCATION_ID);
971     WSH_DEBUG_SV.log(l_module_name,'DEFAULT_STAGE_SUBINVENTORY',X_BATCH_REC.DEFAULT_STAGE_SUBINVENTORY);
972     WSH_DEBUG_SV.log(l_module_name,'DEFAULT_STAGE_LOCATOR_ID',X_BATCH_REC.DEFAULT_STAGE_LOCATOR_ID);
973     WSH_DEBUG_SV.log(l_module_name,'PICK_FROM_SUBINVENTORY',X_BATCH_REC.PICK_FROM_SUBINVENTORY);
974     WSH_DEBUG_SV.log(l_module_name,'PICK_FROM_LOCATOR_ID',X_BATCH_REC.PICK_FROM_LOCATOR_ID);
975     WSH_DEBUG_SV.log(l_module_name,'AUTO_PICK_CONFIRM_FLAG',X_BATCH_REC.AUTO_PICK_CONFIRM_FLAG);
976     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_DETAIL_ID',X_BATCH_REC.DELIVERY_DETAIL_ID);
977     WSH_DEBUG_SV.log(l_module_name,'PROJECT_ID',X_BATCH_REC.PROJECT_ID);
978     WSH_DEBUG_SV.log(l_module_name,'TASK_ID',X_BATCH_REC.TASK_ID);
979     WSH_DEBUG_SV.log(l_module_name,'ORGANIZATION_ID',X_BATCH_REC.ORGANIZATION_ID);
980     WSH_DEBUG_SV.log(l_module_name,'ORGANIZATION_CODE',X_BATCH_REC.ORGANIZATION_CODE);
981     WSH_DEBUG_SV.log(l_module_name,'CONFIRM_RULE_ID',X_BATCH_REC.SHIP_CONFIRM_RULE_ID);
982     WSH_DEBUG_SV.log(l_module_name,'CONFIRM_RULE_NAME',X_BATCH_REC.SHIP_CONFIRM_RULE_NAME);
983     WSH_DEBUG_SV.log(l_module_name,'AUTOPACK_FLAG',X_BATCH_REC.AUTOPACK_FLAG);
984     WSH_DEBUG_SV.log(l_module_name,'AUTOPACK_LEVEL',X_BATCH_REC.AUTOPACK_LEVEL);
985     WSH_DEBUG_SV.log(l_module_name,'TASK_PLANNING_FLAG',X_BATCH_REC.TASK_PLANNING_FLAG);
986     WSH_DEBUG_SV.log(l_module_name,'CATEGORY_SET_ID',X_BATCH_REC.CATEGORY_SET_ID);
987     WSH_DEBUG_SV.log(l_module_name,'CATEGORY_ID',X_BATCH_REC.CATEGORY_ID);
988     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_SMC_FLAG',X_BATCH_REC.SHIP_SET_SMC_FLAG);
989     WSH_DEBUG_SV.log(l_module_name,'p_region_ID',X_BATCH_REC.region_ID);
990     WSH_DEBUG_SV.log(l_module_name,'zone_ID',X_BATCH_REC.zone_ID);
991     WSH_DEBUG_SV.log(l_module_name,'ac_Delivery_Criteria',X_BATCH_REC.ac_Delivery_Criteria);
992     WSH_DEBUG_SV.log(l_module_name,'rel_subinventory',X_BATCH_REC.rel_subinventory);
993     WSH_DEBUG_SV.log(l_module_name,'append_flag',X_BATCH_REC.append_flag);
994     WSH_DEBUG_SV.log(l_module_name,'task_priority',X_BATCH_REC.task_priority);
995     WSH_DEBUG_SV.log(l_module_name,'Actual Departure Date',x_batch_rec.actual_departure_date);
996     WSH_DEBUG_SV.log(l_module_name,'allocation_method',X_BATCH_REC.allocation_method); -- X-dock
997     WSH_DEBUG_SV.log(l_module_name,'crossdock_criteria_id',X_BATCH_REC.crossdock_criteria_id); -- X-dock
998     WSH_DEBUG_SV.log(l_module_name,'dynamic_replenishment_flag ',X_BATCH_REC.dynamic_replenishment_flag); --bug# 6689448 (replenishment project)
999     WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
1000     --}
1001   END IF;
1002 
1003 
1004 
1005   IF FND_API.TO_BOOLEAN(p_commit) THEN
1006     COMMIT WORK;
1007   END IF;
1008 
1009   FND_MSG_PUB.Count_And_Get
1010      (
1011         p_count =>  x_msg_count,
1012         p_data  =>  x_msg_data,
1013         p_encoded => FND_API.G_FALSE
1014      );
1015 
1016   IF l_debug_on THEN
1017     WSH_DEBUG_SV.pop(l_module_name);
1018   END IF;
1019   --
1020   EXCEPTION
1021         WHEN FND_API.G_EXC_ERROR THEN
1022              IF c_batch_info%ISOPEN THEN
1023                CLOSE c_batch_info;
1024              END IF;
1025               x_return_status := FND_API.G_RET_STS_ERROR ;
1026              wsh_util_core.add_message(x_return_status);
1027              FND_MSG_PUB.Count_And_Get
1028                  (
1029                    p_count  => x_msg_count,
1030                    p_data  =>  x_msg_data,
1031                    p_encoded => FND_API.G_FALSE
1032                   );
1033 
1034             IF l_debug_on THEN
1035 	    --{
1036                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1037                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1038             --}
1039 	    END IF;
1040 --
1041 
1042         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1043              IF c_batch_info%ISOPEN THEN
1044                CLOSE c_batch_info;
1045              END IF;
1046               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1047              wsh_util_core.add_message(x_return_status, l_module_name);
1048              FND_MSG_PUB.Count_And_Get
1049                  (
1050                     p_count  => x_msg_count,
1051                     p_data  =>  x_msg_data,
1052                     p_encoded => FND_API.G_FALSE
1053                  );
1054                   --
1055 
1056             IF l_debug_on THEN
1057 	    --{
1058                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1059                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1060             --}
1061 	    END IF;
1062 
1063        WHEN OTHERS THEN
1064              IF c_batch_info%ISOPEN THEN
1065                CLOSE c_batch_info;
1066              END IF;
1067              wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.GET_BATCH_RECORD');
1068             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1069             FND_MSG_PUB.Count_And_Get
1070                 (
1071                     p_count  => x_msg_count,
1072                     p_data  =>  x_msg_data,
1073                     p_encoded => FND_API.G_FALSE
1074                  );
1075 
1076             IF l_debug_on THEN
1077 	    --{
1078                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1079                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1080             --}
1081 	    END IF;
1082             --
1083 END Get_Batch_Record;
1084 
1085 END WSH_PICKING_BATCHES_PUB;