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.3 2007/12/21 14:25:29 mvudugul 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 	WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
208      --}
209      END IF;
210 
211   IF NOT FND_API.compatible_api_call( l_api_version,
212                                p_api_version,
213                                l_api_name,
214                                G_PKG_NAME) THEN
215      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
216   END IF;
217 
218   -- Check p_init_msg_list
219   IF FND_API.to_boolean(p_init_msg_list)  THEN
220   --{
221     FND_MSG_PUB.initialize;
222   --}
223   END IF;
224   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
225   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
226 
227   l_rule_id       :=  p_rule_id;
228   l_rule_name     :=  p_rule_name;
229   l_batch_rec     :=  p_batch_rec;
230   l_batch_prefix  :=  p_batch_prefix;
231 
232 
233   IF l_debug_on THEN
234   --{
235      WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_PICKING_BATCHES_GRP.CREATE_BATCH',WSH_DEBUG_SV.C_PROC_LEVEL);
236   --}
237   END IF;
238 
239   --
240   -- X-dock
241   -- 1)Validate CrossDock Criteria Name for WMS org.
242   --   Always use crossdock_criteria_id except when crossdock_criteria_id is null
243   --   and crossdock_criteria_name has been specified
244   -- 2)The values of crossdock criteria will be ignored for non-WMS org
245   --
246   IF WSH_UTIL_VALIDATE.check_wms_org(p_batch_rec.organization_id) = 'Y' THEN
247     IF (l_batch_rec.crossdock_criteria_id IS NULL AND
248         l_batch_rec.crossdock_criteria_name IS NOT NULL) THEN
249       -- derive crossdock criteria id
250       WMS_CROSSDOCK_GRP.chk_planxd_crt_id_name
251         (p_criterion_id   => l_batch_rec.crossdock_criteria_id,
252          p_criterion_name => l_batch_rec.crossdock_criteria_name,
253          x_return_status  => l_return_status);
254 
255       wsh_util_core.api_post_call(
256                p_return_status => l_return_status,
257                x_num_warnings  => l_number_of_warnings,
258                x_num_errors    => l_number_of_errors,
259                p_msg_data      => l_msg_data
260                );
261     END IF;
262   END IF;
263   -- end of X-dock
264   --
265 
266   -- ECO 4634966
267   IF l_batch_rec.existing_rsvs_only_flag = 'Y' AND
268      WSH_UTIL_VALIDATE.check_wms_org(l_batch_rec.organization_id) = 'Y' AND
269      l_batch_rec.allocation_method IN (WSH_PICK_LIST.C_CROSSDOCK_ONLY,
270                               WSH_PICK_LIST.C_PRIORITIZE_CROSSDOCK,
271                               WSH_PICK_LIST.C_PRIORITIZE_INVENTORY) THEN
272     ROLLBACK TO PICKING_BATCH_PUB;
273     FND_MESSAGE.SET_NAME('WSH','WSH_INVALID_COMBINATION');
274     x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
275     wsh_util_core.add_message(x_return_status);
276     IF l_debug_on THEN
277       WSH_DEBUG_SV.pop(l_module_name);
278     END IF;
279     --
280     return;
281   END IF;
282   -- End of ECO 4634966
283 
284    WSH_PICKING_BATCHES_GRP.Create_Batch(
285             p_api_version_number    => p_api_version,
286             p_init_msg_list         => NULL,   --- Treated as False in  Group API
287             p_commit                => NULL,   --- Treated as False in Group API
288             x_return_status         => l_return_status,
289             x_msg_count             => l_msg_count,
290             x_msg_data              => l_msg_data,
291             p_rule_id               => l_rule_id ,
292             p_rule_name             => l_rule_name ,
293 	    p_batch_rec             => l_batch_rec,
294             p_batch_prefix          => l_batch_prefix,
295 	    x_batch_id              => l_batch_id);
296 
297  IF l_debug_on THEN
298  --{
299     WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
300  --}
301  END IF;
302  --
303 
304  wsh_util_core.api_post_call(
305                p_return_status => l_return_status,
306                x_num_warnings  => l_number_of_warnings,
307                x_num_errors    => l_number_of_errors,
308                p_msg_data      => l_msg_data
309                );
310 
311  x_batch_id := l_batch_id;
312 
313  IF l_number_of_warnings > 0 THEN
314  --{
315       x_return_status := wsh_util_core.g_ret_sts_warning;
316  --}
317  END IF;
318 
319 
320  IF FND_API.TO_BOOLEAN(p_commit) THEN
321  --{
322     COMMIT WORK;
323  --}
324  END IF;
325 
326  FND_MSG_PUB.Count_And_Get
327      (
328         p_count =>  x_msg_count,
329         p_data  =>  x_msg_data,
330         p_encoded => FND_API.G_FALSE
331      );
332 
333  IF l_debug_on THEN
334  --{
335     WSH_DEBUG_SV.pop(l_module_name);
336  --}
337  END IF;
338  --
339 
340 
341  EXCEPTION
342         WHEN FND_API.G_EXC_ERROR THEN
343              ROLLBACK TO PICKING_BATCH_PUB;
344              x_return_status := FND_API.G_RET_STS_ERROR ;
345              wsh_util_core.add_message(x_return_status);
346              FND_MSG_PUB.Count_And_Get
347                  (
348                    p_count  => x_msg_count,
349                    p_data  =>  x_msg_data,
350                    p_encoded => FND_API.G_FALSE
351                   );
352 
353             IF l_debug_on THEN
354 	    --{
355                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
356                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
357             --}
358 	    END IF;
359             --
360 
361         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
362              ROLLBACK TO PICKING_BATCH_PUB;
363              x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
364              wsh_util_core.add_message(x_return_status, l_module_name);
365              FND_MSG_PUB.Count_And_Get
366                  (
367                     p_count  => x_msg_count,
368                     p_data  =>  x_msg_data,
369                     p_encoded => FND_API.G_FALSE
370                  );
371                   --
372 
373             IF l_debug_on THEN
374 	    --{
375                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
376                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
377             --}
378 	    END IF;
379        WHEN OTHERS THEN
380             ROLLBACK TO PICKING_BATCH_PUB;
381             wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.CREATE_BATCH');
382             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
383             FND_MSG_PUB.Count_And_Get
384                 (
385                     p_count  => x_msg_count,
386                     p_data  =>  x_msg_data,
387                     p_encoded => FND_API.G_FALSE
388                  );
389 
390             IF l_debug_on THEN
391 	    --{
392                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
393                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
394             --}
395 	    END IF;
396             --
397  END Create_Batch;
398 /*
399 --======================================================================================================
400 -- Start of comments
401 --
402 -- API Name          : Release_Batch
403 -- Type              : Public
404 -- Purpose
405 -- Pre-reqs          : None.
406 -- Function          : The procedure takes in a Batch_id/ Batch_name and depending on the p_release_mode
407 --                     value it process the batch.   p_log_level value should be greator than 0 when
408 --                     customer want to get the pick release log fine incace of concurrent pick release
409 --                     release.
410 --                     It will do some basic validations on the  the input parameters
411 --                     like log_level should be positive  , and on the not null values of p_batch_rec.
412 --
413 -- PARAMETERS        : p_api_version_number    known api version  number
414 --                     p_init_msg_list         FND_API.G_TRUE to reset list
415 --                     p_commit                FND_API.G_TRUE to perform a commit
416 --                     x_return_status         return status
417 --                     x_msg_count             number of messages in the list
418 --                     x_msg_data              text of messages
419 --                     p_batch_id              Picking Batch Id which is used to get Batch
420 --					       information from the wsh_picking_batches table.
421 --                     p_batch_name            Picking Batch Name which is used to get Batch
422 --					       information from the wsh_picking_batches table.
423 --                     p_log_level             Controlls the log message generated by cuncurrent
424 --					       pick release process.
425 --                     p_release_mode          Used to do ONLINE or CONCURRENT pick release,
426 --                                             Default is "CONCURREN"
427 --                     p_release_mode          Returns the batch Id created
428 --                     x_request_id            Returns the Request Id for concurrent pick release request
429 -- VERSION           : current version         1.0
430 --                     initial version         1.0
431 -- End of comments
432 --======================================================================================================
433 */
434 
435 PROCEDURE Release_Batch (
436          -- Standard parameters
437          p_api_version        IN   NUMBER,
438          p_init_msg_list      IN   VARCHAR2  DEFAULT  NULL,
439          p_commit             IN   VARCHAR2  DEFAULT  NULL,
440          x_return_status      OUT  NOCOPY    VARCHAR2,
441          x_msg_count          OUT  NOCOPY    NUMBER,
442          x_msg_data           OUT  NOCOPY    VARCHAR2,
443          -- program specific paramters.
444           p_batch_id          IN   NUMBER    DEFAULT NULL,
445 	  p_batch_name        IN   VARCHAR2    DEFAULT NULL,
446           p_log_level         IN   NUMBER    DEFAULT NULL,
447 	  p_release_mode      IN   VARCHAR2  DEFAULT 'CONCURRENT',
448 	  x_request_id       OUT  NOCOPY    NUMBER
449         )  IS
450 
451 l_api_version        CONSTANT NUMBER := 1.0;
452 l_api_name           CONSTANT VARCHAR2(30):= 'WSH_PICKING_BATCHES_PUB';
453 
454 l_return_status VARCHAR2(30)  := NULL;
455 l_msg_count                 NUMBER;
456 l_msg_data                  VARCHAR2(32767);
457 l_number_of_errors          NUMBER := 0;
458 l_number_of_warnings        NUMBER := 0;
459 
460 l_batch_id                  NUMBER;
461 l_batch_name                VARCHAR2(60);
462 l_release_mode              VARCHAR2(20);
463 l_log_level                 NUMBER;
464 l_request_id                NUMBER;
465 l_num_workers               NUMBER;
466 
467 l_debug_on BOOLEAN;
468 --
469 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'RELEASE_BATCH';
470 --
471 
472 BEGIN
473 
474   --
475   -- Debug Statements
476   --
477   --
478   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
479   --
480   IF l_debug_on IS NULL  THEN
481   --{
482      l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
483   --}
484   END IF;
485   --
486   IF l_debug_on THEN
487   --{
488   --
489   	WSH_DEBUG_SV.push(l_module_name);
490 	--
491         WSH_DEBUG_SV.logmsg(l_module_name,'RELEASE_BATCH BEING CALLED WITH FOLLOWING PARAMETERS');
492         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
493         WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
494 	WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
495 	WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
496 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_ID',P_BATCH_ID);
497 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_NAME',P_BATCH_NAME);
498 	WSH_DEBUG_SV.log(l_module_name,'P_RELEASE_MODE',P_RELEASE_MODE);
499 	WSH_DEBUG_SV.log(l_module_name,'P_LOG_LEVEL',P_LOG_LEVEL);
500         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
501   --}
502   END IF;
503   IF NOT FND_API.compatible_api_call( l_api_version,
504                                p_api_version,
505                                l_api_name,
506                                G_PKG_NAME) THEN
507      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
508   END IF;
509 
510   -- Check p_init_msg_list
511   IF FND_API.to_boolean(p_init_msg_list)  THEN
512   --{
513     FND_MSG_PUB.initialize;
514   --}
515   END IF;
516 
517   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
518   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
519 
520   l_batch_id       :=  p_batch_id;
521   l_batch_name     :=  p_batch_name;
522   l_release_mode   :=  p_release_mode;
523   l_log_level      :=  p_log_level;
524 
525   IF l_release_mode = 'CONCURRENT' THEN
526      l_num_workers := NVL(FND_PROFILE.Value('WSH_PR_NUM_WORKERS'), 1);
527   ELSE
528      l_num_workers := 1;
529   END IF;
530 
531 
532   IF l_debug_on THEN
533   --{
534      WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_PICKING_BATCHES_GRP.RELASE_BATCH',WSH_DEBUG_SV.C_PROC_LEVEL);
535   --}
536   END IF;
537   --
538   WSH_PICKING_BATCHES_GRP.Release_Batch(
539             p_api_version_number    => p_api_version,
540             p_init_msg_list         => NULL,   --- Treated as False in  Group API
541             p_commit                => NULL,   --- Treated as False in Group API
542             x_return_status         => l_return_status,
543             x_msg_count             => l_msg_count,
544             x_msg_data              => l_msg_data,
545             p_batch_id              => l_batch_id,
546             p_batch_name            => l_batch_name,
547 	    p_release_mode          => l_release_mode,
548             p_log_level             => l_log_level,
549             p_num_workers           => l_num_workers,
550             x_request_id            => l_request_id);
551 
552  IF l_debug_on THEN
553  --{
554     WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
555  --}
556  END IF;
557  --
558 
559  wsh_util_core.api_post_call(
560                p_return_status => l_return_status,
561                x_num_warnings  => l_number_of_warnings,
562                x_num_errors    => l_number_of_errors,
563                p_msg_data      => l_msg_data
564                );
565 
566  x_request_id := l_request_id;
567 
568  IF l_number_of_warnings > 0 THEN
569  --{
570       x_return_status := wsh_util_core.g_ret_sts_warning;
571  --}
572  END IF;
573 
574 
575  IF FND_API.TO_BOOLEAN(p_commit) THEN
576  --{
577     COMMIT WORK;
578  --}
579  END IF;
580 
581  FND_MSG_PUB.Count_And_Get
582      (
583         p_count =>  x_msg_count,
584         p_data  =>  x_msg_data,
585         p_encoded => FND_API.G_FALSE
586      );
587 
588  IF l_debug_on THEN
589  --{
590     WSH_DEBUG_SV.pop(l_module_name);
591  --}
592  END IF;
593  --
594  EXCEPTION
595         WHEN FND_API.G_EXC_ERROR THEN
596               x_return_status := FND_API.G_RET_STS_ERROR ;
597              wsh_util_core.add_message(x_return_status);
598              FND_MSG_PUB.Count_And_Get
599                  (
600                    p_count  => x_msg_count,
601                    p_data  =>  x_msg_data,
602                    p_encoded => FND_API.G_FALSE
603                   );
604 
605             IF l_debug_on THEN
606 	    --{
607                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
608                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
609             --}
610 	    END IF;
611 --
612 
613         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
614               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
615              wsh_util_core.add_message(x_return_status, l_module_name);
616              FND_MSG_PUB.Count_And_Get
617                  (
618                     p_count  => x_msg_count,
619                     p_data  =>  x_msg_data,
620                     p_encoded => FND_API.G_FALSE
621                  );
622                   --
623 
624             IF l_debug_on THEN
625 	    --{
626                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
627                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
628             --}
629 	    END IF;
630        WHEN OTHERS THEN
631              wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.RELEASE_BATCH');
632             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
633             FND_MSG_PUB.Count_And_Get
634                 (
635                     p_count  => x_msg_count,
636                     p_data  =>  x_msg_data,
637                     p_encoded => FND_API.G_FALSE
638                  );
639 
640             IF l_debug_on THEN
641 	    --{
642                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
643                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
644             --}
645 	    END IF;
646             --
647 END Release_Batch;
648 
649 
650 
651 
652 
653 
654 -- Start of comments
655 --
656 -- API Name          : Get_Batch_Record
657 -- Type              : Public
658 -- Purpose
659 -- Pre-reqs          : None.
660 -- Function          : The procedure takes in a Batch_id or Batch_name and retrieves
661 --                     the batch record from wsh_picking_batches.
662 --                     Note: Non-database attributes will be NULL.
663 --
664 -- PARAMETERS        : p_api_version_number    known api version  number
665 --                     p_init_msg_list         FND_API.G_TRUE to reset list
666 --                     p_commit                FND_API.G_TRUE to perform a commit
667 --                     x_return_status         return status
668 --                     x_msg_count             number of messages in the list
669 --                     x_msg_data              text of messages
670 --                     p_batch_id              Picking Batch Id which is used to get Batch
671 --					       information from the wsh_picking_batches table.
672 --                     p_batch_name            Picking Batch Name which is used to get Batch
673 --					       information from the wsh_picking_batches table.
674 --                     x_batch_rec             Batch record from wsh_picking_batches
675 -- VERSION           : current version         1.0
676 --                     initial version         1.0
677 -- End of comments
678 
679  PROCEDURE Get_Batch_Record(
680          -- Standard parameters
681          p_api_version        IN   NUMBER,
682          p_init_msg_list      IN   VARCHAR2  DEFAULT NULL,
683          p_commit             IN   VARCHAR2  DEFAULT NULL,
684          x_return_status      OUT  NOCOPY    VARCHAR2,
685          x_msg_count          OUT  NOCOPY    NUMBER,
686          x_msg_data           OUT  NOCOPY    VARCHAR2,
687          -- program specific paramters.
688          p_batch_id           IN   NUMBER     DEFAULT NULL,
689          p_batch_name         IN   VARCHAR2   DEFAULT NULL,
690          x_batch_rec          OUT  NOCOPY     WSH_PICKING_BATCHES_PUB.Batch_Info_Rec
691         ) IS
692   l_api_version        CONSTANT NUMBER := 1.0;
693   l_api_name           CONSTANT VARCHAR2(30):= 'WSH_PICKING_BATCHES_PUB';
694 
695   l_return_status VARCHAR2(30)  := NULL;
696   l_msg_count                 NUMBER;
697   l_msg_data                  VARCHAR2(32767);
698   l_number_of_errors          NUMBER := 0;
699   l_number_of_warnings        NUMBER := 0;
700 
701   l_batch_id                  NUMBER;
702   l_batch_name                VARCHAR2(60);
703 
704   l_debug_on BOOLEAN;
705   --
706   l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'GET_BATCH_RECORD';
707   --
708   CURSOR c_batch_info(x_batch_id NUMBER) IS
709   SELECT
710      Backorders_Only_Flag,
711      Document_Set_Id,
712      NULL,               -- not in table: document_set_name
713      Existing_Rsvs_Only_Flag,
714      Shipment_Priority_Code,
715      Ship_Method_Code,
716      NULL,               -- not in table: ship_method_name
717      Customer_Id,
718      NULL,               -- not in table: customer_number
719      Order_Header_Id,
720      NULL,               -- not in table: order_number
721      NULL,               -- not in table: ship_set_id
722      Ship_Set_Number,
723      Inventory_Item_Id,
724      Order_Type_Id,
725      NULL,               -- not in table: order_type_name
726      From_Requested_Date,
727      To_Requested_Date,
728      From_Scheduled_Ship_Date,
729      To_Scheduled_Ship_Date,
730      Ship_To_Location_Id,
731      NULL,               -- not in table: ship_to_location_code
732      Ship_From_Location_Id,
733      NULL,               -- not in table: ship_from_location_code
734      Trip_Id,
735      NULL,               -- not in table: trip_name
736      Delivery_Id,
737      NULL,               -- not in table: delivery_name
738      Include_Planned_Lines,
739      Pick_Grouping_Rule_Id,
740      NULL,               -- not in table: pick_grouping_rule_name
741      Pick_Sequence_Rule_Id,
742      NULL,               -- not in table: pick_sequence_rule_name
743      Autocreate_Delivery_Flag,
744      Attribute_Category,
745      Attribute1,
746      Attribute2,
747      Attribute3,
748      Attribute4,
749      Attribute5,
750      Attribute6,
751      Attribute7,
752      Attribute8,
753      Attribute9,
754      Attribute10,
755      Attribute11,
756      Attribute12,
757      Attribute13,
758      Attribute14,
759      Attribute15,
760      Autodetail_Pr_Flag,
761      Trip_Stop_Id,
762      NULL,               -- not in table: trip_stop_location_id
763      Default_Stage_Subinventory,
764      Default_Stage_Locator_Id,
765      Pick_From_Subinventory,
766      Pick_From_locator_Id,
767      Auto_Pick_Confirm_Flag,
768      Delivery_Detail_Id,
769      Project_Id,
770      Task_Id,
771      Organization_Id,
772      NULL,               -- not in table: organization_code
773      Ship_Confirm_Rule_Id,
774      NULL,               -- not in table: ship_confirm_rule_name
775      Autopack_Flag,
776      Autopack_Level,
777      Task_Planning_Flag,
778      Category_Set_ID,
779      Category_ID,
780      Ship_Set_Smc_Flag,
781      region_ID,
782      zone_ID,
783      ac_Delivery_Criteria,
784      rel_subinventory,
785      append_flag,
786      task_priority,
787      actual_departure_date,
788      allocation_method, --  X-dock
789      crossdock_criteria_id, --  X-dock
790      NULL, -- not in the table:crossdock_criteria_name
791      dynamic_replenishment_flag  --bug# 6689448 (replenishment project)
792   FROM wsh_picking_batches
793   WHERE batch_id = x_batch_id;
794 
795 BEGIN
796 
797   --
798   -- Debug Statements
799   --
800   --
801   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
802   --
803   IF l_debug_on IS NULL  THEN
804   --{
805      l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
806   --}
807   END IF;
808   --
809   IF l_debug_on THEN
810   --{
811   --
812   	WSH_DEBUG_SV.push(l_module_name);
813 	--
814         WSH_DEBUG_SV.logmsg(l_module_name,'GET_BATCH_RECORD BEING CALLED WITH FOLLOWING PARAMETERS');
815         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
816         WSH_DEBUG_SV.log(l_module_name,'P_API_VERSION',P_API_VERSION);
817 	WSH_DEBUG_SV.log(l_module_name,'P_INIT_MSG_LIST',P_INIT_MSG_LIST);
818 	WSH_DEBUG_SV.log(l_module_name,'P_COMMIT',P_COMMIT);
819 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_ID',P_BATCH_ID);
820 	WSH_DEBUG_SV.log(l_module_name,'P_BATCH_NAME',P_BATCH_NAME);
821         WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
822   --}
823   END IF;
824   IF NOT FND_API.compatible_api_call( l_api_version,
825                                p_api_version,
826                                l_api_name,
827                                G_PKG_NAME) THEN
828      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
829   END IF;
830 
831   -- Check p_init_msg_list
832   IF FND_API.to_boolean(p_init_msg_list)  THEN
833   --{
834     FND_MSG_PUB.initialize;
835   --}
836   END IF;
837 
838   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
839   l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
840 
841   l_batch_id       :=  p_batch_id;
842   l_batch_name     :=  p_batch_name;
843 
844   -- Validating Batch Name and Batch Id
845   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
846   --{
847      IF ( l_batch_Id = FND_API.G_MISS_NUM ) THEN
848      --{
849         l_batch_Id := NULL;
850      --}
851      END IF;
852      IF ( l_batch_name =  FND_API.G_MISS_CHAR ) THEN
853      --{
854         l_batch_name := NULL;
855      --}
856      END IF;
857      IF ( ( l_batch_Id IS NOT NULL) OR ( l_batch_name IS NOT NULL ) ) THEN
858      --{
859         WSH_UTIL_VALIDATE.Validate_Picking_Batch_Name(
860 	      p_picking_batch_Id	=> l_batch_Id,
861 	      p_picking_batch_name      => l_batch_Name,
862 	      x_return_status           => l_return_status);
863 
864         IF l_debug_on THEN
865 	--{
866            WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_UTIL_CORE.API_POST_CALL',WSH_DEBUG_SV.C_PROC_LEVEL);
867         --}
868 	END IF;
869         --
870         wsh_util_core.api_post_call(
871                p_return_status => l_return_status,
872                x_num_warnings  => l_number_of_warnings,
873                x_num_errors    => l_number_of_errors,
874                p_msg_data      => l_msg_data
875                );
876      --}
877      END IF;
878   ELSE
879      --
880      --
881      FND_MESSAGE.SET_NAME('WSH','WSH_REQUIRED_FIELD_NULL');
882      FND_MESSAGE.SET_TOKEN('FIELD_NAME ',' BATCH_ID OR BATCH_NAME ');
883      x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
884      wsh_util_core.add_message(x_return_status);
885      IF l_debug_on THEN
886        WSH_DEBUG_SV.pop(l_module_name);
887      END IF;
888      --
889      return;
890   --}
891   END IF;
892 
893   -- End of Batch Name Validations
894 
895   IF l_debug_on THEN
896     WSH_DEBUG_SV.log(l_module_name, 'open cursor c_batch_info for l_batch_id', l_batch_id);
897   END IF;
898 
899   OPEN  c_batch_info(l_batch_id);
900   -- at this time, it should be valid, so the record would be found.
901   FETCH c_batch_info INTO x_batch_rec;
902   CLOSE c_batch_info;
903 
904   IF l_debug_on THEN
905     WSH_DEBUG_SV.logmsg(l_module_name,'RECORD ATTRIBUTES LOOKED UP');
906     WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
907     WSH_DEBUG_SV.log(l_module_name,'BACKORDERS_ONLY_FLAG',X_BATCH_REC.BACKORDERS_ONLY_FLAG);
908     WSH_DEBUG_SV.log(l_module_name,'DOCUMENT_SET_ID',X_BATCH_REC.DOCUMENT_SET_ID);
909     WSH_DEBUG_SV.log(l_module_name,'DOCUMENT_SET_NAME',X_BATCH_REC.DOCUMENT_SET_NAME);
910     WSH_DEBUG_SV.log(l_module_name,'EXISTING_RSVS_ONLY_FLAG',X_BATCH_REC.EXISTING_RSVS_ONLY_FLAG);
911     WSH_DEBUG_SV.log(l_module_name,'SHIPMENT_PRIORITY_CODE',X_BATCH_REC.SHIPMENT_PRIORITY_CODE);
912     WSH_DEBUG_SV.log(l_module_name,'SHIP_METHOD_CODE',X_BATCH_REC.SHIP_METHOD_CODE);
913     WSH_DEBUG_SV.log(l_module_name,'SHIP_METHOD_NAME',X_BATCH_REC.SHIP_METHOD_NAME);
914     WSH_DEBUG_SV.log(l_module_name,'CUSTOMER_ID',X_BATCH_REC.CUSTOMER_ID);
915     WSH_DEBUG_SV.log(l_module_name,'CUSTOMER_NUMBER',X_BATCH_REC.CUSTOMER_NUMBER);
916     WSH_DEBUG_SV.log(l_module_name,'ORDER_HEADER_ID',X_BATCH_REC.ORDER_HEADER_ID);
917     WSH_DEBUG_SV.log(l_module_name,'ORDER_NUMBER',X_BATCH_REC.ORDER_NUMBER);
918     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_ID',X_BATCH_REC.SHIP_SET_ID);
919     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_NUMBER',X_BATCH_REC.SHIP_SET_NUMBER);
920     WSH_DEBUG_SV.log(l_module_name,'INVENTORY_ITEM_ID',X_BATCH_REC.INVENTORY_ITEM_ID);
921     WSH_DEBUG_SV.log(l_module_name,'ORDER_TYPE_ID',X_BATCH_REC.ORDER_TYPE_ID);
922     WSH_DEBUG_SV.log(l_module_name,'ORDER_TYPE_NAME',X_BATCH_REC.ORDER_TYPE_NAME);
923     WSH_DEBUG_SV.log(l_module_name,'FROM_REQUESTED_DATE',X_BATCH_REC.FROM_REQUESTED_DATE);
924     WSH_DEBUG_SV.log(l_module_name,'TO_REQUESTED_DATE',X_BATCH_REC.TO_REQUESTED_DATE);
925     WSH_DEBUG_SV.log(l_module_name,'FROM_SCHEDULED_SHIP_DATE',X_BATCH_REC.FROM_SCHEDULED_SHIP_DATE);
926     WSH_DEBUG_SV.log(l_module_name,'TO_SCHEDULED_SHIP_DATE',X_BATCH_REC.TO_SCHEDULED_SHIP_DATE);
927     WSH_DEBUG_SV.log(l_module_name,'SHIP_TO_LOCATION_ID',X_BATCH_REC.SHIP_TO_LOCATION_ID);
928     WSH_DEBUG_SV.log(l_module_name,'SHIP_FROM_LOCATION_ID',X_BATCH_REC.SHIP_FROM_LOCATION_ID);
929     WSH_DEBUG_SV.log(l_module_name,'TRIP_ID',X_BATCH_REC.TRIP_ID);
930     WSH_DEBUG_SV.log(l_module_name,'TRIP_NAME',X_BATCH_REC.TRIP_NAME);
931     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_ID',X_BATCH_REC.DELIVERY_ID);
932     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_NAME',X_BATCH_REC.DELIVERY_NAME);
933     WSH_DEBUG_SV.log(l_module_name,'INCLUDE_PLANNED_LINES',X_BATCH_REC.INCLUDE_PLANNED_LINES);
934     WSH_DEBUG_SV.log(l_module_name,'PICK_GROUPING_RULE_ID',X_BATCH_REC.PICK_GROUPING_RULE_ID);
935     WSH_DEBUG_SV.log(l_module_name,'PICK_GROUPING_RULE_NAME',X_BATCH_REC.PICK_GROUPING_RULE_NAME);
936     WSH_DEBUG_SV.log(l_module_name,'PICK_SEQUENCE_RULE_ID',X_BATCH_REC.PICK_SEQUENCE_RULE_ID);
937     WSH_DEBUG_SV.log(l_module_name,'PICK_SEQUENCE_RULE_NAME',X_BATCH_REC.PICK_SEQUENCE_RULE_NAME);
938     WSH_DEBUG_SV.log(l_module_name,'AUTOCREATE_DELIVERY_FLAG',X_BATCH_REC.AUTOCREATE_DELIVERY_FLAG);
939     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE_CATEGORY',X_BATCH_REC.ATTRIBUTE_CATEGORY);
940     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE1',X_BATCH_REC.ATTRIBUTE1);
941     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE2',X_BATCH_REC.ATTRIBUTE2);
942     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE3',X_BATCH_REC.ATTRIBUTE3);
943     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE4',X_BATCH_REC.ATTRIBUTE4);
944     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE5',X_BATCH_REC.ATTRIBUTE5);
945     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE6',X_BATCH_REC.ATTRIBUTE6);
946     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE7',X_BATCH_REC.ATTRIBUTE7);
947     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE8',X_BATCH_REC.ATTRIBUTE8);
948     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE9',X_BATCH_REC.ATTRIBUTE9);
949     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE10',X_BATCH_REC.ATTRIBUTE10);
950     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE11',X_BATCH_REC.ATTRIBUTE11);
951     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE12',X_BATCH_REC.ATTRIBUTE12);
952     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE13',X_BATCH_REC.ATTRIBUTE13);
953     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE14',X_BATCH_REC.ATTRIBUTE14);
954     WSH_DEBUG_SV.log(l_module_name,'ATTRIBUTE15',X_BATCH_REC.ATTRIBUTE15);
955     WSH_DEBUG_SV.log(l_module_name,'AUTODETAIL_PR_FLAG',X_BATCH_REC.AUTODETAIL_PR_FLAG);
956     WSH_DEBUG_SV.log(l_module_name,'STOP_ID',X_BATCH_REC.TRIP_STOP_ID);
957     WSH_DEBUG_SV.log(l_module_name,'STOP_LOCATION_ID',X_BATCH_REC.TRIP_STOP_LOCATION_ID);
958     WSH_DEBUG_SV.log(l_module_name,'DEFAULT_STAGE_SUBINVENTORY',X_BATCH_REC.DEFAULT_STAGE_SUBINVENTORY);
959     WSH_DEBUG_SV.log(l_module_name,'DEFAULT_STAGE_LOCATOR_ID',X_BATCH_REC.DEFAULT_STAGE_LOCATOR_ID);
960     WSH_DEBUG_SV.log(l_module_name,'PICK_FROM_SUBINVENTORY',X_BATCH_REC.PICK_FROM_SUBINVENTORY);
961     WSH_DEBUG_SV.log(l_module_name,'PICK_FROM_LOCATOR_ID',X_BATCH_REC.PICK_FROM_LOCATOR_ID);
962     WSH_DEBUG_SV.log(l_module_name,'AUTO_PICK_CONFIRM_FLAG',X_BATCH_REC.AUTO_PICK_CONFIRM_FLAG);
963     WSH_DEBUG_SV.log(l_module_name,'DELIVERY_DETAIL_ID',X_BATCH_REC.DELIVERY_DETAIL_ID);
964     WSH_DEBUG_SV.log(l_module_name,'PROJECT_ID',X_BATCH_REC.PROJECT_ID);
965     WSH_DEBUG_SV.log(l_module_name,'TASK_ID',X_BATCH_REC.TASK_ID);
966     WSH_DEBUG_SV.log(l_module_name,'ORGANIZATION_ID',X_BATCH_REC.ORGANIZATION_ID);
967     WSH_DEBUG_SV.log(l_module_name,'ORGANIZATION_CODE',X_BATCH_REC.ORGANIZATION_CODE);
968     WSH_DEBUG_SV.log(l_module_name,'CONFIRM_RULE_ID',X_BATCH_REC.SHIP_CONFIRM_RULE_ID);
969     WSH_DEBUG_SV.log(l_module_name,'CONFIRM_RULE_NAME',X_BATCH_REC.SHIP_CONFIRM_RULE_NAME);
970     WSH_DEBUG_SV.log(l_module_name,'AUTOPACK_FLAG',X_BATCH_REC.AUTOPACK_FLAG);
971     WSH_DEBUG_SV.log(l_module_name,'AUTOPACK_LEVEL',X_BATCH_REC.AUTOPACK_LEVEL);
972     WSH_DEBUG_SV.log(l_module_name,'TASK_PLANNING_FLAG',X_BATCH_REC.TASK_PLANNING_FLAG);
973     WSH_DEBUG_SV.log(l_module_name,'CATEGORY_SET_ID',X_BATCH_REC.CATEGORY_SET_ID);
974     WSH_DEBUG_SV.log(l_module_name,'CATEGORY_ID',X_BATCH_REC.CATEGORY_ID);
975     WSH_DEBUG_SV.log(l_module_name,'SHIP_SET_SMC_FLAG',X_BATCH_REC.SHIP_SET_SMC_FLAG);
976     WSH_DEBUG_SV.log(l_module_name,'p_region_ID',X_BATCH_REC.region_ID);
977     WSH_DEBUG_SV.log(l_module_name,'zone_ID',X_BATCH_REC.zone_ID);
978     WSH_DEBUG_SV.log(l_module_name,'ac_Delivery_Criteria',X_BATCH_REC.ac_Delivery_Criteria);
979     WSH_DEBUG_SV.log(l_module_name,'rel_subinventory',X_BATCH_REC.rel_subinventory);
980     WSH_DEBUG_SV.log(l_module_name,'append_flag',X_BATCH_REC.append_flag);
981     WSH_DEBUG_SV.log(l_module_name,'task_priority',X_BATCH_REC.task_priority);
982     WSH_DEBUG_SV.log(l_module_name,'Actual Departure Date',x_batch_rec.actual_departure_date);
983     WSH_DEBUG_SV.log(l_module_name,'allocation_method',X_BATCH_REC.allocation_method); -- X-dock
984     WSH_DEBUG_SV.log(l_module_name,'crossdock_criteria_id',X_BATCH_REC.crossdock_criteria_id); -- X-dock
985     WSH_DEBUG_SV.log(l_module_name,'dynamic_replenishment_flag ',X_BATCH_REC.dynamic_replenishment_flag); --bug# 6689448 (replenishment project)
986     WSH_DEBUG_SV.logmsg(l_module_name,'************************************************************************');
987     --}
988   END IF;
989 
990 
991 
992   IF FND_API.TO_BOOLEAN(p_commit) THEN
993     COMMIT WORK;
994   END IF;
995 
996   FND_MSG_PUB.Count_And_Get
997      (
998         p_count =>  x_msg_count,
999         p_data  =>  x_msg_data,
1000         p_encoded => FND_API.G_FALSE
1001      );
1002 
1003   IF l_debug_on THEN
1004     WSH_DEBUG_SV.pop(l_module_name);
1005   END IF;
1006   --
1007   EXCEPTION
1008         WHEN FND_API.G_EXC_ERROR THEN
1009              IF c_batch_info%ISOPEN THEN
1010                CLOSE c_batch_info;
1011              END IF;
1012               x_return_status := FND_API.G_RET_STS_ERROR ;
1013              wsh_util_core.add_message(x_return_status);
1014              FND_MSG_PUB.Count_And_Get
1015                  (
1016                    p_count  => x_msg_count,
1017                    p_data  =>  x_msg_data,
1018                    p_encoded => FND_API.G_FALSE
1019                   );
1020 
1021             IF l_debug_on THEN
1022 	    --{
1023                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1024                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1025             --}
1026 	    END IF;
1027 --
1028 
1029         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1030              IF c_batch_info%ISOPEN THEN
1031                CLOSE c_batch_info;
1032              END IF;
1033               x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1034              wsh_util_core.add_message(x_return_status, l_module_name);
1035              FND_MSG_PUB.Count_And_Get
1036                  (
1037                     p_count  => x_msg_count,
1038                     p_data  =>  x_msg_data,
1039                     p_encoded => FND_API.G_FALSE
1040                  );
1041                   --
1042 
1043             IF l_debug_on THEN
1044 	    --{
1045                 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
1046                 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1047             --}
1048 	    END IF;
1049 
1050        WHEN OTHERS THEN
1051              IF c_batch_info%ISOPEN THEN
1052                CLOSE c_batch_info;
1053              END IF;
1054              wsh_util_core.default_handler('WSH_PICKING_BATCHES_PUB.GET_BATCH_RECORD');
1055             x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1056             FND_MSG_PUB.Count_And_Get
1057                 (
1058                     p_count  => x_msg_count,
1059                     p_data  =>  x_msg_data,
1060                     p_encoded => FND_API.G_FALSE
1061                  );
1062 
1063             IF l_debug_on THEN
1064 	    --{
1065                WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1066                WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1067             --}
1068 	    END IF;
1069             --
1070 END Get_Batch_Record;
1071 
1072 END WSH_PICKING_BATCHES_PUB;