DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_LABEL_PVT11

Source


1 PACKAGE BODY inv_label_pvt11 AS
2   /* $Header: INVLA11B.pls 120.5 2011/02/01 06:34:00 ksivasa ship $ */
3 
4   label_b    CONSTANT VARCHAR2(50) := '<label';
5   label_e    CONSTANT VARCHAR2(50) := '</label>' || fnd_global.local_chr(10);
6   variable_b CONSTANT VARCHAR2(50) := '<variable name= "';
7   variable_e CONSTANT VARCHAR2(50) := '</variable>' || fnd_global.local_chr(10);
8   tag_e      CONSTANT VARCHAR2(50) := '>' || fnd_global.local_chr(10);
9   l_debug             NUMBER;
10 
11   PROCEDURE TRACE(p_message VARCHAR2) IS
12   BEGIN
13     inv_label.TRACE(p_message, 'LABEL_INV_13');
14   END TRACE;
15 
16   PROCEDURE get_variable_data(
17     x_variable_content       OUT NOCOPY    inv_label.label_tbl_type
18   , x_msg_count              OUT NOCOPY    NUMBER
19   , x_msg_data               OUT NOCOPY    VARCHAR2
20   , x_return_status          OUT NOCOPY    VARCHAR2
21   , p_label_type_info        IN            inv_label.label_type_rec
22   , p_transaction_id         IN            NUMBER
23   , p_input_param            IN            mtl_material_transactions_temp%ROWTYPE
24   , p_transaction_identifier IN            NUMBER
25   ) IS
26 
27 
28 --    l_lpn_id                 NUMBER;
29     l_content_lpn_id         NUMBER;
30     l_content_item_data      LONG;
31     l_selected_fields        inv_label.label_field_variable_tbl_type;
32     l_selected_fields_count  NUMBER;
33     l_content_rec_index      NUMBER                                  := 0;
34     l_label_format_id        NUMBER                                  := 0;
35     l_label_format           VARCHAR2(100);
36     l_printer                VARCHAR2(30);
37     l_printer_sub            VARCHAR2(30)                            := NULL;
38     l_api_name               VARCHAR2(20)                     := 'get_variable_data';
39     l_return_status          VARCHAR2(240);
40     l_error_message          VARCHAR2(240);
41     l_msg_count              NUMBER;
42     l_api_status             VARCHAR2(240);
43     l_msg_data               VARCHAR2(240);
44 
45     i                        NUMBER;
46 	j                        NUMBER;
47 	k                        NUMBER;
48 
49     l_transaction_identifier NUMBER                                  := 0;
50     l_label_index            NUMBER;
51     l_label_request_id       NUMBER;
52     l_prev_format_id         NUMBER;
53     l_prev_sub               VARCHAR2(30);
54     l_column_name_list       LONG;
55 
56 
57     l_label_status VARCHAR2(1);
58     l_label_err_msg VARCHAR2(1000);
59     l_is_epc_exist VARCHAR2(1) := 'N';
60 
61 	l_batch_id          gme_batch_header.batch_id%TYPE;
62 	l_batch_no          gme_batch_header.batch_no%TYPE;
63 
64 	l_organization      mtl_parameters.organization_code%TYPE;
65 
66 	l_item              		mtl_system_items_vl.concatenated_segments%TYPE;
67 	l_source_container_item 	mtl_system_items_vl.concatenated_segments%TYPE;
68 	l_target_container_item   	mtl_system_items_vl.concatenated_segments%TYPE;
69 	l_dispensed_container       mtl_system_items_vl.concatenated_segments%TYPE;
70 	l_material_container       mtl_system_items_vl.concatenated_segments%TYPE;
71 
72     l_quantity               NUMBER                                           := 0;
73     l_revision               mtl_material_transactions.revision%TYPE;
74     l_item_description       VARCHAR2(240)                                  := NULL;
75     l_locator_id             NUMBER;
76     l_quantity2              NUMBER;
77     l_reason_id              NUMBER;
78 	l_uom2                   VARCHAR2(3);
79 
80 
81 	l_locator                mtl_item_locations_kfv.CONCATENATED_SEGMENTS%TYPE;
82 	l_count NUMBER;
83 
84 	l_dispense_id  			 gmo_material_dispenses.dispense_id%TYPE;
85 	l_dispense_source		 gmo_material_dispenses.dispense_source%TYPE;
86 	l_dispense_number        gmo_material_dispenses.dispense_number%TYPE;
87 	l_dispense_type			 gmo_material_dispenses.dispense_type%TYPE;
88 	l_batchstep_no           gme_batch_steps.batchstep_no%TYPE;
89 	l_oprn_no                gmd_operations.oprn_no%TYPE;
90 	l_inventory_item_id 	 gmo_material_dispenses.inventory_item_id%TYPE;
91 	l_organization_id        gmo_material_dispenses.organization_id%TYPE;
92 	l_subinventory           gmo_material_dispenses.subinventory_code%TYPE;
93 	l_security_code          gmo_material_dispenses.security_code%TYPE;
94 	l_dispense_uom           gmo_material_dispenses.dispense_uom%TYPE;
95 	l_undispense_uom         gmo_material_dispenses.dispense_uom%TYPE;
96 	l_dispensed_date         varchar2(100);
97 	l_mode         			 varchar2(100);
98 	l_required_qty           gmo_material_dispenses.required_qty%TYPE;
99 	l_dispensed_qty          gmo_material_dispenses.dispensed_qty%TYPE;
100 
101 	l_gross_required_weight  gmo_material_dispenses.gross_required_weight%TYPE;
102 	l_source_container_tare  gmo_material_dispenses.source_container_tare%TYPE;
103 	l_source_container_weight gmo_material_dispenses.source_container_weight%TYPE;
104 	l_source_container_reweight   gmo_material_dispenses.source_container_reweight%TYPE;
105 	l_actual_gross_weight       gmo_material_dispenses.actual_gross_weight%TYPE;
106 	l_target_container_tare     gmo_material_dispenses.target_container_tare%TYPE;
107 	l_source_container_item_id  gmo_material_dispenses.source_container_item_id%TYPE;
108 	l_target_container_item_id  gmo_material_dispenses.target_container_item_id%TYPE;
109 
110 	l_lot_number                gmo_material_dispenses.lot_number%TYPE;
111 	l_hazard_class              po_hazard_classes.hazard_class%TYPE;
112 
113 	/*** undispense ****/
114 	l_undispense_id				  gmo_material_undispenses.undispense_id%TYPE;
115 	l_undispense_number			  gmo_material_undispenses.undispense_number%TYPE;
116 	l_undispense_type			  gmo_material_undispenses.undispense_type%TYPE;
117 	l_undispensed_date			  varchar2(100);
118 	l_undispensed_qty			  gmo_material_undispenses.undispensed_qty%TYPE;
119 	l_undispense_source		 	  gmo_material_dispenses.dispense_source%TYPE;
120 
121 
122 	l_material_qty 				NUMBER;
123     l_negation_qty			    NUMBER;
124 
125 	l_print_count			 NUMBER;
126 	l_reprint				 VARCHAR2(10);
127 	l_parent_lot_number		 mtl_lot_numbers.parent_lot_number%TYPE;
128 
129 	l_dispensing_mode		 varchar2(100);
130 	l_undispensing_mode		 varchar2(100);
131 	l_batch_line			 varchar2(100);
132 
133 
134 ---------------------------------------------------------------------------------------------
135 -- Project: 'Custom Labels' (A 11i10+ Project)                                               |
136 ---------------------------------------------------------------------------------------------
137    l_sql_stmt  VARCHAR2(4000);
138    l_sql_stmt_result VARCHAR2(4000) := NULL;
139    TYPE sql_stmt IS REF CURSOR;
140    c_sql_stmt sql_stmt;
141    l_custom_sql_ret_status VARCHAR2(1);
142    l_custom_sql_ret_msg VARCHAR2(2000);
143 
144    -- Fix for bug: 4179593 Start
145    l_CustSqlWarnFlagSet BOOLEAN;
146    l_CustSqlErrFlagSet BOOLEAN;
147    l_CustSqlWarnMsg VARCHAR2(2000);
148    l_CustSqlErrMsg VARCHAR2(2000);
149    -- Fix for bug: 4179593 End
150 
151 ------------------------End of this change for Custom Labels project code--------------------
152 
153 
154 	/* main driving cursor */
155 	--#11703350 Character date international calendar support
156 	CURSOR c_dispense_details IS
157 	SELECT
158 	mp.ORGANIZATION_CODE,
159 	d.dispense_id,
160 	d.dispense_source,
161 	d.dispense_number,
162 	d.dispense_type,
163 	bh.batch_no,
164 	bs.batchstep_no,
165 	gop.oprn_no,
166 	msi.concatenated_segments  dispense_item,
167 	d.organization_id,
168 	d.subinventory_code,
169 	d.security_code,
170 	d.dispense_uom,
171 	FND_DATE.DATE_TO_DISPLAYDT(d.dispensed_date, FND_TIMEZONES.GET_SERVER_TIMEZONE_CODE,calendar_aware=>FND_DATE.calendar_aware_alt) dispensed_date,
172 	d.dispensing_mode,
173 	d.required_qty,
174 	d.dispensed_qty,
175 	d.gross_required_weight,
176 	d.source_container_tare,
177 	d.source_container_weight,
178 	d.source_container_reweight,
179 	d.actual_gross_weight,
180 	d.target_container_tare,
181 	d.source_container_item_id,
182 	d.target_container_item_id,
183 	d.lot_number,
184 	hzc.hazard_class,
185 	d.inventory_item_id
186 	from
187 	gmo_material_dispenses d, gme_batch_header bh,
188 	gme_batch_steps bs, mtl_parameters mp, gmd_operations  gop,
189 	mtl_system_items_vl msi, po_hazard_classes hzc
190 	where d.dispense_id = p_transaction_id AND
191 	d.batch_id = bh.batch_id AND
192 	d.organization_id = mp.organization_id AND
193 	d.batch_step_id = bs.batchstep_id(+) AND
194 	d.inventory_item_id = msi.inventory_item_id  AND
195 	d.organization_id = msi.organization_id  AND
196 	bs.oprn_id = gop.oprn_id(+) AND
197 	msi.hazard_class_id = hzc.hazard_class_id (+);
198 
199    --#11703350 Character date international calendar support
200     /* undispense cursor */
201 	CURSOR c_undispense_details IS
202 	SELECT
203 	mp.ORGANIZATION_CODE,
204 	d.dispense_id,
205 	d.dispense_source,
206 	und.undispense_number,
207 	und.undispense_type,
208 	bh.batch_no,
209 	bs.batchstep_no,
210 	gop.oprn_no,
211 	msi.concatenated_segments  dispense_item,
212 	und.organization_id,
213 	und.subinventory_code,
214 	und.security_code,
215 	und.dispense_uom,
216 	FND_DATE.DATE_TO_DISPLAYDT(und.undispensed_date, FND_TIMEZONES.GET_SERVER_TIMEZONE_CODE,calendar_aware=>FND_DATE.calendar_aware_alt) undispensed_date,
217 	und.undispensing_mode,
218 	d.required_qty,
219 	und.dispensed_qty,
220 	und.gross_required_weight,
221 	und.source_container_tare,
222 	und.source_container_weight,
223 	und.source_container_reweight,
224 	und.actual_gross_weight,
225 	und.target_container_tare,
226 	und.source_container_item_id,
227 	und.target_container_item_id,
228 	und.lot_number,
229 	hzc.hazard_class,
230 	und.undispense_id,
231 	(nvl(und.undispensed_qty,0) + nvl(und.material_loss,0)) undispensed_qty,
232 	und.inventory_item_id
233 	from
234 	gmo_material_dispenses d, gme_batch_header bh,
235 	gme_batch_steps bs, mtl_parameters mp, gmd_operations  gop,
236 	mtl_system_items_vl msi, po_hazard_classes hzc , gmo_material_undispenses und
237 	where  und.undispense_id = p_transaction_id AND
238 	und.dispense_id = d.dispense_id AND
239 	und.batch_id = bh.batch_id AND
240 	und.organization_id = mp.organization_id AND
241 	und.batch_step_id = bs.batchstep_id(+) AND
242 	und.inventory_item_id = msi.inventory_item_id  AND
243 	und.organization_id = msi.organization_id  AND
244 	bs.oprn_id = gop.oprn_id(+) AND
245 	msi.hazard_class_id = hzc.hazard_class_id (+);
246 
247 
248 	cursor c_get_mode_meaning is select meaning from fnd_lookups where lookup_type='GMO_DISPENSE_MODE' and lookup_code=l_mode;
249 
250   BEGIN
251     -- Initialize return status as success
252     x_return_status      := fnd_api.g_ret_sts_success;
253     l_debug              := inv_label.l_debug;
254 	l_label_status := INV_LABEL.G_SUCCESS;
255 
256     IF (l_debug = 1) THEN
257       TRACE('*****  In PVT11: (GMO Label) ***********');
258       TRACE(
259            '  Business_flow= '
260         || p_label_type_info.business_flow_code
261         || ', Transaction ID= '
262         || p_transaction_id
263         || ', Transaction Identifier= '
264         || p_transaction_identifier
265 		|| ', Label Type ID= '
266 		|| p_label_type_info.label_type_id
267       );
268     END IF;
269 
270     inv_label.get_variables_for_format(
271       x_variables                  => l_selected_fields
272     , x_variables_count            => l_selected_fields_count
273     , p_format_id                  => p_label_type_info.default_format_id
274     );
275 
276     IF (l_selected_fields_count = 0)
277        OR (l_selected_fields.COUNT = 0) THEN
278       IF (l_debug = 1) THEN
279         TRACE(
280              'no fields defined for this format: '
281           || p_label_type_info.default_format_id
282           || ','
283           || p_label_type_info.default_format_name
284         );
285       END IF;
286     --return;
287     END IF;
288 
289     IF (l_debug = 1) THEN
290       TRACE(
291            ' Found variable defined for this format, cont = '
292         || l_selected_fields_count
293       );
294       TRACE(' Getting GMO Dispense data...');
295     END IF;
296 
297 
298 	IF p_transaction_id IS NOT NULL
299 	THEN
300      -- txn driven
301      i  := 1;
302      l_content_rec_index  := 0;
303      l_content_item_data  := '';
304 
305      l_printer            := p_label_type_info.default_printer;
306      l_label_index        := 1;
307      l_prev_format_id     := p_label_type_info.default_format_id;
308      l_prev_sub           := '####';
309 
310 
311 	 IF (l_debug = 1) THEN
312       	   TRACE('** in GMO PVT11.get_variable_data ** , start ' || l_label_index  );
313      END IF;
314 
315 	 if (p_transaction_identifier = inv_label.TRX_ID_DIS)
316 	 THEN
317 
318 	 	 OPEN c_dispense_details;
319 
320 	 	 IF c_dispense_details%NOTFOUND
321 	 	 THEN
322 	 	   IF (l_debug = 1) THEN
323       	   	TRACE('** Did NOT find and Dispense details ..' );
324 			close c_dispense_details;
325 		   	Return;
326      	  END IF;
327 	 	 ELSE
328  	 	   IF (l_debug = 1) THEN
329       	   	TRACE('** Found data for Dispense details '  );
330      	  END IF;
331 	 	 END IF;
332 
333 
334 
335 	 	 FETCH c_dispense_details into
336 	      		l_organization ,
337 	    		l_dispense_id,
338 				l_dispense_source,
339 				l_dispense_number,
340 				l_dispense_type,
341 				l_batch_no,
342 				l_batchstep_no,
343 				l_oprn_no,
344 				l_item ,
345 				l_organization_id,
346 				l_subinventory,
347 				l_security_code,
348 				l_dispense_uom,
349 				l_dispensed_date,
350 				l_mode,
351 				l_required_qty,
352 				l_dispensed_qty,
353 				l_gross_required_weight,
354 				l_source_container_tare,
355 				l_source_container_weight,
356 				l_source_container_reweight,
357 				l_actual_gross_weight,
358 				l_target_container_tare,
359 				l_source_container_item_id,
360 				l_target_container_item_id,
361 				l_lot_number,
362 				l_hazard_class,
363 				l_inventory_item_id;
364 		close c_dispense_details;
365 
366 		ELSIF (p_transaction_identifier = inv_label.TRX_ID_UNDIS) -- UNDISPENSIN transaction
367 		THEN
368 	 	 OPEN c_undispense_details;
369 
370 	 	 IF c_undispense_details%NOTFOUND
371 	 	 THEN
372 	 	   IF (l_debug = 1) THEN
373       	   	TRACE('Did NOT find and Dispense details ..' );
374 			close c_undispense_details;
375 		   	Return;
376      	  END IF;
377 	 	 ELSE
378  	 	   IF (l_debug = 1) THEN
379       	   	TRACE('Found data for Dispense details'  );
380      	  END IF;
381 	 	 END IF;
382 
383 	 	 FETCH c_undispense_details into
384 	      		l_organization ,
385 	    		l_dispense_id,
386 				l_undispense_source,
387 				l_undispense_number,
388 				l_undispense_type,
389 				l_batch_no,
390 				l_batchstep_no,
391 				l_oprn_no,
392 				l_item ,
393 				l_organization_id,
394 				l_subinventory,
395 				l_security_code,
396 				l_undispense_uom,
397 				l_undispensed_date,
398 				l_mode,
399 				l_required_qty,
400 				l_dispensed_qty,
401 				l_gross_required_weight,
402 				l_source_container_tare,
403 				l_source_container_weight,
404 				l_source_container_reweight,
405 				l_actual_gross_weight,
406 				l_target_container_tare,
407 				l_source_container_item_id,
408 				l_target_container_item_id,
409 				l_lot_number,
410 				l_hazard_class,
411 				l_undispense_id	,
412 				l_undispensed_qty,
413 				l_inventory_item_id;
414 
415 		close c_undispense_details;
416 	    END IF;
417 
418 		/* source_container_item */
419 		IF l_source_container_item_id IS NOT NULL
420 		THEN
421 			Select concatenated_segments
422 			INTO  l_source_container_item
423 			from mtl_system_items_vl
424 			where organization_id = l_organization_id AND
425 			inventory_item_id = l_source_container_item_id;
426 		END IF;
427 
428         /* target_container_item */
429 		IF l_target_container_item_id IS NOT NULL
430 		THEN
431            Select concatenated_segments
432 		   INTO  l_target_container_item
433 		   from mtl_system_items_vl
434 		   where organization_id = l_organization_id AND
435 		   inventory_item_id = l_target_container_item_id;
436 		END IF;
437 
438 		if (l_batchstep_no is not null)
439 		then
440 			l_batch_line := l_batchstep_no || '-' || l_oprn_no;
441 		end if;
442 
443 		/* dispensed container/material LOGIC */
444 
445 		IF ( p_label_type_info.label_type_id = 11)
446 		-- Process Material label
447 		THEN
448 			if (p_transaction_identifier = inv_label.TRX_ID_DIS)
449 		 	then
450 
451 		 		open c_get_mode_meaning;
452 		 		fetch c_get_mode_meaning into l_dispensing_mode;
453 		 		close c_get_mode_meaning;
454 
455 				IF (l_mode = 'FULL_CONTAINER')
456 				THEN
457 					l_actual_gross_weight := NULL;
458 					l_material_container := NULL;
459 
460 				ELSIF (l_mode = 'TARGET_CONTAINER')
461 				THEN
462 					-- l_actual_gross_weight; use db value
463 					l_material_container := l_source_container_item;
464 					l_material_qty := l_source_container_reweight - l_source_container_tare;
465 					l_dispensed_container := l_target_container_item;
466 
467 				ELSIF (l_mode = 'SOURCE_CONTAINER')
468 				THEN
469 					l_material_container := l_target_container_item;
470     				l_material_qty := l_actual_gross_weight - l_target_container_tare;
471     				l_dispensed_container := l_source_container_item;
472 				END IF;
473 
474 			ELSIF (p_transaction_identifier = inv_label.TRX_ID_UNDIS)
475 		 	THEN
476 		 		open c_get_mode_meaning;
477 		 		fetch c_get_mode_meaning into l_undispensing_mode;
478 		 		close c_get_mode_meaning;
479 
480 				IF (l_mode = 'FULL_CONTAINER')
481 				THEN
482 					l_material_container := l_source_container_item;
483 					l_dispensed_container := NULL;
484 					l_actual_gross_weight := l_source_container_weight;
485 					l_material_qty := l_source_container_weight - l_source_container_tare;
486 
487 				ELSIF (l_mode = 'TARGET_CONTAINER')
488 				THEN
489 					-- l_actual_gross_weight; use db value
490 					l_material_container := l_target_container_item;
491 					l_material_qty := l_actual_gross_weight - l_target_container_tare;
492 					l_dispensed_container := l_source_container_item;
493 
494 				ELSIF (l_mode = 'SOURCE_CONTAINER')
495 				THEN
496 					NULL; -- this mode is not applicable for reverse dispense
497 
498 				END IF;
499 
500   		    END IF;
501 
502 		ELSIF ( p_label_type_info.label_type_id = 12) -- dispense material label
503 		THEN
504 
505 			if (p_transaction_identifier = inv_label.TRX_ID_DIS)
506 			then
507 				open c_get_mode_meaning;
508 				fetch c_get_mode_meaning into l_dispensing_mode;
509 				close c_get_mode_meaning;
510 
511 				IF (l_mode = 'TARGET_CONTAINER')
512 				THEN
513 					l_dispensed_container := l_target_container_item;
514 
515 				ELSIF (l_mode in ('SOURCE_CONTAINER', 'FULL_CONTAINER'))
516 				THEN
517 					-- l_actual_gross_weight; use db value
518 					l_dispensed_container := l_source_container_item;
519 				END IF;
520 
521 
522 				/* dispense qty */
523 				l_dispensed_qty := GMO_DISPENSE_PVT.GET_NET_DISP_DISPENSED_QTY (P_DISPENSE_ID => l_dispense_id);
524 
525 
526 			ELSIF (p_transaction_identifier = inv_label.TRX_ID_UNDIS)
527 			THEN
528 				-- UNDISPENSIN transaction
529 
530 				open c_get_mode_meaning;
531 				fetch c_get_mode_meaning into l_undispensing_mode;
532 				close c_get_mode_meaning;
533 
534 
535 				IF (l_mode = 'FULL_CONTAINER')
536 				THEN
537 					-- l_actual_gross_weight; use db value
538 					l_dispensed_container := l_source_container_item;
539 
540 				ELSIF (l_mode = 'TARGET_CONTAINER')
541 				THEN
542 					l_dispensed_container := l_source_container_item;
543 
544 				ELSIF (l_mode = 'SOURCE_CONTAINER')
545 				THEN
546 					NULL; -- this mode is not applicable for reverse dispense
547 
548 				END IF;
549 
550 
551 			END IF;
552 
553 		END IF;
554 
555 
556 		IF (l_lot_number is not null)
557 		THEN
558 			SELECT parent_lot_number
559 			into l_parent_lot_number
560 			FROM mtl_lot_numbers
561 			WHERE organization_id = l_organization_id
562 			AND inventory_item_id = l_inventory_item_id
563 			AND lot_number = l_lot_number;
564 		END IF;
565 
566 
567         IF (l_debug = 1) THEN
568                TRACE(
569                		 'Organization= '
570             		 || l_organization
571             		 || ' ,Batch= '
572             		 || l_batch_no
573             		 || ' ,Item= '
574             		 || l_item
575           			 );
576         END IF;
577 
578 
579 	  GMO_LABEL_MGMT_GRP.GET_PRINT_COUNT(
580 	  	p_api_version => 1.0,
581 	  	p_init_msg_list => FND_API.G_FALSE,
582 	  	x_return_status => l_return_status,
583 	  	x_msg_count    => l_msg_count,
584 	  	x_msg_data     => l_msg_data,
585 	  	P_WMS_BUSINESS_FLOW_CODE => p_label_type_info.business_flow_code,
586 	  	P_LABEL_TYPE => p_label_type_info.label_type_id,
587 	  	P_TRANSACTION_ID => p_transaction_id ,
588 	  	P_TRANSACTION_TYPE => p_transaction_identifier,
589 	  	x_print_count     => l_print_count
590 	  );
591 
592 	  if (l_print_count > 0) then
593 	  		l_reprint := fnd_message.get_string('GMO', 'GMO_UTIL_YES');
594 	  else
595 	  		l_reprint := fnd_message.get_string('GMO', 'GMO_UTIL_NO');
596 	  end if;
597 
598 
599         l_content_item_data  := '';
600 
601         IF (l_debug = 1) THEN
602           TRACE(
603                'Apply Rules engine for format, printer='
604             || l_printer
605             || ',manual_format_id= '
606             || p_label_type_info.manual_format_id
607             || ',manual_format_name= '
608             || p_label_type_info.manual_format_name
609           );
610          END IF;
611 
612          -- insert a record into wms_label_requests entity to
613          -- call the label rules engine to get appropriate label
614 
615          inv_label.get_format_with_rule(
616            p_document_id                 => p_label_type_info.label_type_id
617          , p_label_format_id            => p_label_type_info.manual_format_id
618          , p_organization_id            => l_organization_id
619          , p_inventory_item_id          => l_inventory_item_id
620          , p_subinventory_code          => l_subinventory
621          , p_locator_id                 => l_locator_id
622          , p_lpn_id                     => NULL
623          , p_lot_number                 => l_lot_number
624          , p_revision                   => l_revision
625          , p_serial_number              => NULL
626          , p_business_flow_code         => p_label_type_info.business_flow_code
627          , p_last_update_date           => SYSDATE
628          , p_last_updated_by            => fnd_global.user_id
629          , p_creation_date              => SYSDATE
630          , p_created_by                 => fnd_global.user_id
631          , p_printer_name               => l_printer
632          , x_return_status              => l_return_status
633          , x_label_format_id            => l_label_format_id
634          , x_label_format               => l_label_format
635          , x_label_request_id           => l_label_request_id
636          );
637 
638          IF l_return_status <> 'S' THEN
639            fnd_message.set_name('WMS', 'WMS_LABL_RULE_ENGINE_FAILED');
640            fnd_msg_pub.ADD;
641            l_label_format     := p_label_type_info.default_format_id;
642            l_label_format_id  := p_label_type_info.default_format_name;
643 		   l_label_status := INV_LABEL.G_ERROR;
644          END IF;
645 
646          IF (l_label_format_id IS NOT NULL) THEN
647            -- Derive the fields for the format either passed in or derived via the rules engine.
648            IF l_label_format_id <> NVL(l_prev_format_id, -999) THEN
649              IF (l_debug = 1) THEN
650                TRACE(' Getting variables for new format '|| l_label_format);
651              END IF;
652 
653             inv_label.get_variables_for_format(
654               x_variables                  => l_selected_fields
655             , x_variables_count            => l_selected_fields_count
656             , p_format_id                  => l_label_format_id
657             );
658 
659             l_prev_format_id  := l_label_format_id;
660 
661             IF (l_selected_fields_count = 0)
662                OR (l_selected_fields.COUNT = 0) THEN
663               IF (l_debug = 1) THEN
664                 TRACE(
665                      'no fields defined for this format: '
666                   || l_label_format
667                   || ','
668                   || l_label_format_id
669                 );
670               END IF;
671 
672             END IF;
673 
674             IF (l_debug = 1) THEN
675               TRACE(
676                    '   Found selected_fields for format '
677                 || l_label_format
678                 || ', num='
679                 || l_selected_fields_count
680               );
681             END IF;
682           END IF;
683          ELSE
684           IF (l_debug = 1) THEN
685             TRACE('No format exists for this label');
686           END IF;
687          END IF;
688 
689          -- variable header
690 
691          l_content_item_data  :=  l_content_item_data || label_b;
692 
693          IF l_label_format <> NVL(p_label_type_info.default_format_name, '@@@') THEN
694            l_content_item_data  :=    l_content_item_data
695                                       || ' _FORMAT="'
696                                       || NVL(
697                                        p_label_type_info.manual_format_name
698                                        , l_label_format
699                                        )
700                                       || '"';
701          END IF;
702 
703          IF  (l_printer IS NOT NULL)
704             AND (l_printer <> NVL(p_label_type_info.default_printer, '###')) THEN
705            l_content_item_data  := l_content_item_data || ' _PRINTERNAME="' || l_printer || '"';
706          END IF;
707 
708          l_content_item_data  :=  l_content_item_data || tag_e;
709 
710          IF (l_debug = 1) THEN
711            TRACE('Starting assign variables, ');
712          END IF;
713 
714          l_column_name_list             :=     'Set variables for ';
715 
716         -- CUSTOM SQL
717         l_custom_sql_ret_status := FND_API.G_RET_STS_SUCCESS;
718         l_CustSqlWarnFlagSet := FALSE;
719         l_CustSqlErrFlagSet := FALSE;
720         l_CustSqlWarnMsg := NULL;
721         l_CustSqlErrMsg := NULL;
722         -- CUSTOM SQL
723 
724 
725          -- Loop for each selected fields, find the columns and write into the XML_content
726 
727          FOR i IN 1 .. l_selected_fields.COUNT LOOP
728 
729             IF (l_debug = 1) THEN
730                 l_column_name_list  := l_column_name_list || ',' || l_selected_fields(i).column_name;
731             END IF;
732 ---------------------------------------------------------------------------------------------
733 -- Project: 'Custom Labels' (A 11i10+ Project)                                               |
734 -- Author: Dinesh ([email protected])                                                      |
735 -- Change Description:                                                                       |
736 --  The check (SQL_STMT <> NULL and COLUMN_NAME = NULL) implies that the field is a          |
737 --  Custom SQL based field. Handle it appropriately.                                         |
738 ---------------------------------------------------------------------------------------------
739           IF (l_selected_fields(i).SQL_STMT IS NOT NULL AND l_selected_fields(i).column_name = 'sql_stmt') THEN
740              IF (l_debug = 1) THEN
741               trace('Custom Labels Trace [INVLA11B.pls]: ------------------------- REPORT BEGIN-------------------------------------');
742               trace('Custom Labels Trace [INVLA11B.pls]: LABEL_FIELD_ID       : ' || l_selected_fields(i).label_field_id);
743               trace('Custom Labels Trace [INVLA11B.pls]: FIELD_VARIABLE_NAME  : ' || l_selected_fields(i).variable_name);
744               trace('Custom Labels Trace [INVLA11B.pls]: COLUMN_NAME          : ' || l_selected_fields(i).column_name);
745               trace('Custom Labels Trace [INVLA11B.pls]: SQL_STMT             : ' || l_selected_fields(i).sql_stmt);
746              END IF;
747              l_sql_stmt := l_selected_fields(i).sql_stmt;
748              IF (l_debug = 1) THEN
749               trace('Custom Labels Trace [INVLAP13B.pls]: l_sql_stmt BEFORE REQUEST_ID Filter Concatenation: ' || l_sql_stmt);
750              END IF;
751              l_sql_stmt := l_sql_stmt || ' AND WLR.LABEL_REQUEST_ID = :REQUEST_ID';
752              IF (l_debug = 1) THEN
753               trace('Custom Labels Trace [INVLAP13B.pls]: l_sql_stmt AFTER REQUEST_ID Filter Concatenation: ' || l_sql_stmt);
754 
755              END IF;
756              BEGIN
757              IF (l_debug = 1) THEN
758               trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 1');
759               trace('Custom Labels Trace [INVLA11B.pls]: LABEL_REQUEST_ID     : ' || l_label_request_id);
760              END IF;
761              OPEN c_sql_stmt FOR l_sql_stmt using l_label_request_id;
762              LOOP
763                  FETCH c_sql_stmt INTO l_sql_stmt_result;
764                  EXIT WHEN c_sql_stmt%notfound OR c_sql_stmt%rowcount >=2;
765              END LOOP;
766 
767           IF (c_sql_stmt%rowcount=1 AND l_sql_stmt_result IS NULL) THEN
768                 x_return_status := FND_API.G_RET_STS_SUCCESS;
769                 l_custom_sql_ret_status := INV_LABEL.G_WARNING;
770                 fnd_message.set_name('WMS','WMS_CS_NULL_VALUE_RETURNED');
771                 fnd_msg_pub.ADD;
772                 -- Fix for bug: 4179593 Start
773                 --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
774                 l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
775                 l_CustSqlWarnMsg := l_custom_sql_ret_msg;
776                 l_CustSqlWarnFlagSet := TRUE;
777                 -- Fix for bug: 4179593 End
778              IF (l_debug = 1) THEN
779                trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 2');
780                trace('Custom Labels Trace [INVLA11B.pls]: l_sql_stmt_result is: ' || l_sql_stmt_result);
781                trace('Custom Labels Trace [INVLA11B.pls]: WARNING: NULL value returned.');
782                trace('Custom Labels Trace [INVLA11B.pls]: l_custom_sql_ret_status is set to : ' || l_custom_sql_ret_status);
783              END IF;
784           ELSIF c_sql_stmt%rowcount=0 THEN
785                 IF (l_debug = 1) THEN
786                  trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 3');
787                  trace('Custom Labels Trace [INVLA11B.pls]: WARNING: No row returned by the Custom SQL query');
788                 END IF;
789                 x_return_status := FND_API.G_RET_STS_SUCCESS;
790                 l_custom_sql_ret_status := INV_LABEL.G_WARNING;
791                 fnd_message.set_name('WMS','WMS_CS_NO_DATA_FOUND');
792                 fnd_msg_pub.ADD;
793                 -- Fix for bug: 4179593 Start
794                 --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
795                 l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
796                 l_CustSqlWarnMsg := l_custom_sql_ret_msg;
797                 l_CustSqlWarnFlagSet := TRUE;
798                 -- Fix for bug: 4179593 End
799           ELSIF c_sql_stmt%rowcount>=2 THEN
800                 IF (l_debug = 1) THEN
801                  trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 4');
802                  trace('Custom Labels Trace [INVLA11B.pls]: ERROR: Multiple values returned by the Custom SQL query');
803                 END IF;
804                 l_sql_stmt_result := NULL;
805                 x_return_status := FND_API.G_RET_STS_SUCCESS;
806                 l_custom_sql_ret_status := FND_API.G_RET_STS_ERROR;
807                 fnd_message.set_name('WMS','WMS_CS_MULTIPLE_VALUES_RETURN');
808                 fnd_msg_pub.ADD;
809                 -- Fix for bug: 4179593 Start
810                 --fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => l_custom_sql_ret_msg);
811                 l_custom_sql_ret_msg := fnd_msg_pub.get(p_msg_index => fnd_msg_pub.g_last, p_encoded => fnd_api.g_false);
812                 l_CustSqlErrMsg := l_custom_sql_ret_msg;
813                 l_CustSqlErrFlagSet := TRUE;
814                 -- Fix for bug: 4179593 End
815              END IF;
816           IF (c_sql_stmt%ISOPEN) THEN
817               CLOSE c_sql_stmt;
818           END IF;
819             EXCEPTION
820             WHEN OTHERS THEN
821            IF (c_sql_stmt%ISOPEN) THEN
822                CLOSE c_sql_stmt;
823            END IF;
824               IF (l_debug = 1) THEN
825                  trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 5');
826                 trace('Custom Labels Trace [INVLA11B.pls]: Unexpected Error has occured in GET_VARIABLES_DATA');
827               END IF;
828               x_return_status := FND_API.G_RET_STS_ERROR;
829               fnd_message.set_name('WMS','WMS_CS_WRONG_SQL_CONSTRUCT');
830               fnd_msg_pub.ADD;
831               fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data);
832               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
833            END;
834            IF (l_debug = 1) THEN
835               trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 6');
836               trace('Custom Labels Trace [INVLA11B.pls]: Before assigning it to l_content_item_data');
837            END IF;
838             l_content_item_data  :=   l_content_item_data
839                                || variable_b
840                                || l_selected_fields(i).variable_name
841                                || '">'
842                                || l_sql_stmt_result
843                                || variable_e;
844             l_sql_stmt_result := NULL;
845             l_sql_stmt        := NULL;
846             IF (l_debug = 1) THEN
847               trace('Custom Labels Trace [INVLA11B.pls]: At Breadcrumb 7');
848               trace('Custom Labels Trace [INVLA11B.pls]: After assigning it to l_content_item_data');
849            trace('Custom Labels Trace [INVLAP3B.pls]: --------------------------REPORT END-------------------------------------');
850             END IF;
851 ------------------------End of this changes for Custom Labels project code--------------------
852             ELSIF LOWER(l_selected_fields(i).column_name) = 'batch_no' THEN
853                  l_content_item_data  :=    l_content_item_data
854                                     || variable_b
855                                     || l_selected_fields(i).variable_name
856                                     || '">'
857                                     || l_batch_no
858                                     || variable_e;
859 
860             ELSIF LOWER(l_selected_fields(i).column_name) = 'oprn_no' THEN
861                  l_content_item_data  :=    l_content_item_data
862                                     || variable_b
863                                     || l_selected_fields(i).variable_name
864                                     || '">'
865                                     || l_batch_line
866                                     || variable_e;
867 
868             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispensing_item' THEN
869                  l_content_item_data  :=    l_content_item_data
870                                     || variable_b
871                                     || l_selected_fields(i).variable_name
872                                     || '">'
873                                     || l_item
874                                     || variable_e;
875 
876             ELSIF LOWER(l_selected_fields(i).column_name) = 'lot_number' THEN
877                  l_content_item_data  :=    l_content_item_data
878                                     || variable_b
879                                     || l_selected_fields(i).variable_name
880                                     || '">'
881                                     || l_lot_number
882                                     || variable_e;
883 
884             ELSIF LOWER(l_selected_fields(i).column_name) = 'organization_code' THEN
885                  l_content_item_data  :=    l_content_item_data
886                                     || variable_b
887                                     || l_selected_fields(i).variable_name
888                                     || '">'
889                                     || l_organization
890                                     || variable_e;
891             ELSIF LOWER(l_selected_fields(i).column_name) = 'subinventory_code' THEN
892                  l_content_item_data  :=    l_content_item_data
893                                     || variable_b
894                                     || l_selected_fields(i).variable_name
895                                     || '">'
896                                     || l_subinventory
897                                     || variable_e;
898 
899             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_source' THEN
900                  l_content_item_data  :=    l_content_item_data
901                                     || variable_b
902                                     || l_selected_fields(i).variable_name
903                                     || '">'
904                                     || l_dispense_source
905                                     || variable_e;
906 
907             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_number' THEN
908                  l_content_item_data  :=    l_content_item_data
909                                     || variable_b
910                                     || l_selected_fields(i).variable_name
911                                     || '">'
912                                     || l_dispense_number
913                                     || variable_e;
914 
915             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_type' THEN
916                  l_content_item_data  :=    l_content_item_data
917                                     || variable_b
918                                     || l_selected_fields(i).variable_name
919                                     || '">'
920                                     || l_dispense_type
921                                     || variable_e;
922 
923             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_id' THEN
924                  l_content_item_data  :=    l_content_item_data
925                                     || variable_b
926                                     || l_selected_fields(i).variable_name
927                                     || '">'
928                                     || l_dispense_id
929                                     || variable_e;
930 
931             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_uom' THEN
932                  l_content_item_data  :=    l_content_item_data
933                                     || variable_b
934                                     || l_selected_fields(i).variable_name
935                                     || '">'
936                                     || l_dispense_uom
937                                     || variable_e;
938 
939             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispensed_date' THEN
940                  l_content_item_data  :=    l_content_item_data
941                                     || variable_b
942                                     || l_selected_fields(i).variable_name
943                                     || '">'
944                                     || l_dispensed_date
945                                     || variable_e;
946 
947             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispensing_mode' THEN
948                  l_content_item_data  :=    l_content_item_data
949                                     || variable_b
950                                     || l_selected_fields(i).variable_name
951                                     || '">'
952                                     || l_dispensing_mode
953                                     || variable_e;
954 
955             ELSIF LOWER(l_selected_fields(i).column_name) = 'required_qty' THEN
956                  l_content_item_data  :=    l_content_item_data
957                                     || variable_b
958                                     || l_selected_fields(i).variable_name
959                                     || '">'
960                                     || l_required_Qty
961                                     || variable_e;
962 
963             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispensed_qty' THEN
964                  l_content_item_data  :=    l_content_item_data
965                                     || variable_b
966                                     || l_selected_fields(i).variable_name
967                                     || '">'
968                                     || l_dispensed_qty
969                                     || variable_e;
970 
971 
972             ELSIF LOWER(l_selected_fields(i).column_name) = 'gross_required_weight' THEN
973                  l_content_item_data  :=    l_content_item_data
974                                     || variable_b
975                                     || l_selected_fields(i).variable_name
976                                     || '">'
977                                     || l_gross_required_weight
978                                     || variable_e;
979 
980             ELSIF LOWER(l_selected_fields(i).column_name) = 'source_container_tare' THEN
981                  l_content_item_data  :=    l_content_item_data
982                                     || variable_b
983                                     || l_selected_fields(i).variable_name
984                                     || '">'
985                                     || l_source_container_tare
986                                     || variable_e;
987 
988             ELSIF LOWER(l_selected_fields(i).column_name) = 'source_container_weight' THEN
989                  l_content_item_data  :=    l_content_item_data
990                                     || variable_b
991                                     || l_selected_fields(i).variable_name
992                                     || '">'
993                                     || l_source_container_weight
994                                     || variable_e;
995 
996             ELSIF LOWER(l_selected_fields(i).column_name) = 'source_container_reweight' THEN
997                  l_content_item_data  :=    l_content_item_data
998                                     || variable_b
999                                     || l_selected_fields(i).variable_name
1000                                     || '">'
1001                                     || l_source_container_reweight
1002                                     || variable_e;
1003 
1004             ELSIF LOWER(l_selected_fields(i).column_name) = 'actual_gross_weight' THEN
1005                  l_content_item_data  :=    l_content_item_data
1006                                     || variable_b
1007                                     || l_selected_fields(i).variable_name
1008                                     || '">'
1009                                     || l_actual_gross_weight
1010                                     || variable_e;
1011 
1012             ELSIF LOWER(l_selected_fields(i).column_name) = 'target_container_tare' THEN
1013                  l_content_item_data  :=    l_content_item_data
1014                                     || variable_b
1015                                     || l_selected_fields(i).variable_name
1016                                     || '">'
1017                                     || l_target_Container_tare
1018                                     || variable_e;
1019 
1020             ELSIF LOWER(l_selected_fields(i).column_name) = 'source_container_item' THEN
1021                  l_content_item_data  :=    l_content_item_data
1022                                     || variable_b
1023                                     || l_selected_fields(i).variable_name
1024                                     || '">'
1025                                     || l_source_container_item
1026                                     || variable_e;
1027 
1028             ELSIF LOWER(l_selected_fields(i).column_name) = 'target_container_item' THEN
1029                  l_content_item_data  :=    l_content_item_data
1030                                     || variable_b
1031                                     || l_selected_fields(i).variable_name
1032                                     || '">'
1033                                     || l_target_container_item
1034                                     || variable_e;
1035 
1036             ELSIF LOWER(l_selected_fields(i).column_name) = 'hazard_class' THEN
1037                  l_content_item_data  :=    l_content_item_data
1038                                     || variable_b
1039                                     || l_selected_fields(i).variable_name
1040                                     || '">'
1041                                     || l_hazard_class
1042                                     || variable_e;
1043             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispensed_container' THEN
1044                  l_content_item_data  :=    l_content_item_data
1045                                     || variable_b
1046                                     || l_selected_fields(i).variable_name
1047                                     || '">'
1048                                     || l_dispensed_container
1049                                     || variable_e;
1050 
1051             ELSIF LOWER(l_selected_fields(i).column_name) = 'dispense_container' THEN
1052                  l_content_item_data  :=    l_content_item_data
1053                                     || variable_b
1054                                     || l_selected_fields(i).variable_name
1055                                     || '">'
1056                                     || l_dispensed_container
1057                                     || variable_e;
1058 
1059             ELSIF LOWER(l_selected_fields(i).column_name) = 'material_container' THEN
1060                  l_content_item_data  :=    l_content_item_data
1061                                     || variable_b
1062                                     || l_selected_fields(i).variable_name
1063                                     || '">'
1064                                     || l_material_container
1065                                     || variable_e;
1066            ELSIF LOWER(l_selected_fields(i).column_name) = 'material_quantity' THEN
1067                  l_content_item_data  :=    l_content_item_data
1068                                     || variable_b
1069                                     || l_selected_fields(i).variable_name
1070                                     || '">'
1071                                     || l_material_qty
1072                                     || variable_e;
1073 
1074            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispense_number' THEN
1075                  l_content_item_data  :=    l_content_item_data
1076                                     || variable_b
1077                                     || l_selected_fields(i).variable_name
1078                                     || '">'
1079                                     || l_undispense_number
1080                                     || variable_e;
1081            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispense_type' THEN
1082                  l_content_item_data  :=    l_content_item_data
1083                                     || variable_b
1084                                     || l_selected_fields(i).variable_name
1085                                     || '">'
1086                                     || l_undispense_type
1087                                     || variable_e;
1088            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispensed_date' THEN
1089                  l_content_item_data  :=    l_content_item_data
1090                                     || variable_b
1091                                     || l_selected_fields(i).variable_name
1092                                     || '">'
1093                                     || l_undispensed_date
1094                                     || variable_e;
1095            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispensed_qty' THEN
1096                  l_content_item_data  :=    l_content_item_data
1097                                     || variable_b
1098                                     || l_selected_fields(i).variable_name
1099                                     || '">'
1100                                     || l_undispensed_qty
1101                                     || variable_e;
1102 
1103            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispensing_mode' THEN
1104                  l_content_item_data  :=    l_content_item_data
1105                                     || variable_b
1106                                     || l_selected_fields(i).variable_name
1107                                     || '">'
1108                                     || l_undispensing_mode
1109                                     || variable_e;
1110 
1111            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispense_uom' THEN
1112                  l_content_item_data  :=    l_content_item_data
1113                                     || variable_b
1114                                     || l_selected_fields(i).variable_name
1115                                     || '">'
1116                                     || l_undispense_uom
1117                                     || variable_e;
1118 
1119            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispense_id' THEN
1120                  l_content_item_data  :=    l_content_item_data
1121                                     || variable_b
1122                                     || l_selected_fields(i).variable_name
1123                                     || '">'
1124                                     || l_undispense_id
1125                                     || variable_e;
1126 
1127            ELSIF LOWER(l_selected_fields(i).column_name) = 'undispense_source' THEN
1128                  l_content_item_data  :=    l_content_item_data
1129                                     || variable_b
1130                                     || l_selected_fields(i).variable_name
1131                                     || '">'
1132                                     || l_undispense_source
1133                                     || variable_e;
1134 
1135            ELSIF LOWER(l_selected_fields(i).column_name) = 'parent_lot_number' THEN
1136                  l_content_item_data  :=    l_content_item_data
1137                                     || variable_b
1138                                     || l_selected_fields(i).variable_name
1139                                     || '">'
1140                                     || l_parent_lot_number
1141                                     || variable_e;
1142 
1143            ELSIF LOWER(l_selected_fields(i).column_name) = 'print_count' THEN
1144                  l_content_item_data  :=    l_content_item_data
1145                                     || variable_b
1146                                     || l_selected_fields(i).variable_name
1147                                     || '">'
1148                                     || l_print_count
1149                                     || variable_e;
1150 
1151            ELSIF LOWER(l_selected_fields(i).column_name) = 'reprint' THEN
1152                  l_content_item_data  :=    l_content_item_data
1153                                     || variable_b
1154                                     || l_selected_fields(i).variable_name
1155                                     || '">'
1156                                     || l_reprint
1157                                     || variable_e;                                 																																	                 ELSIF LOWER(l_selected_fields(i).column_name) = 'security_code' THEN
1158                  l_content_item_data  :=    l_content_item_data
1159                                     || variable_b
1160                                     || l_selected_fields(i).variable_name
1161                                     || '">'
1162                                     ||l_security_code
1163                                     || variable_e;
1164 
1165            END IF;
1166          END LOOP; -- l_selected_fields.COUNT
1167 
1168          l_content_item_data := l_content_item_data || label_e;
1169          x_variable_content(l_label_index).label_content := l_content_item_data;
1170          x_variable_content(l_label_index).label_request_id := l_label_request_id;
1171          x_variable_content(l_label_index).label_status  := l_label_status;
1172          x_variable_content(l_label_index).error_message := l_label_err_msg;
1173 
1174 
1175 ------------------------Start of changes for Custom Labels project code------------------
1176 
1177         -- Fix for bug: 4179593 Start
1178         IF (l_CustSqlWarnFlagSet) THEN
1179          l_custom_sql_ret_status := INV_LABEL.G_WARNING;
1180          l_custom_sql_ret_msg := l_CustSqlWarnMsg;
1181         END IF;
1182 
1183         IF (l_CustSqlErrFlagSet) THEN
1184          l_custom_sql_ret_status := FND_API.G_RET_STS_ERROR;
1185          l_custom_sql_ret_msg := l_CustSqlErrMsg;
1186         END IF;
1187         -- Fix for bug: 4179593 End
1188 
1189         -- We will concatenate the error message from Custom SQL and EPC code.
1190         x_variable_content(l_label_index).error_message := l_custom_sql_ret_msg || ' ' || l_label_err_msg;
1191         IF(l_CustSqlWarnFlagSet OR l_CustSqlErrFlagSet) THEN
1192          x_variable_content(l_label_index).label_status  := l_custom_sql_ret_status;
1193         END IF;
1194 ------------------------End of this changes for Custom Labels project code---------------
1195 
1196 
1197          l_label_index := l_label_index + 1;
1198          l_content_item_data  := '';
1199          l_label_request_id   := NULL;
1200 
1201 ------------------------Start of changes for Custom Labels project code------------------
1202         l_custom_sql_ret_status := NULL;
1203         l_custom_sql_ret_msg    := NULL;
1204 ------------------------End of this changes for Custom Labels project code---------------
1205          IF (l_debug = 1) THEN
1206             TRACE(l_column_name_list);
1207             TRACE(' Finished writing item variables ');
1208          END IF;
1209 	  IF (l_debug = 1) THEN
1210 	     	 TRACE('x_variable_content.count ' || x_variable_content.count);
1211 	  end if;
1212 	END IF;
1213 
1214   END get_variable_data;
1215 
1216   PROCEDURE get_variable_data(
1217     x_variable_content       OUT NOCOPY    LONG
1218   , x_msg_count              OUT NOCOPY    NUMBER
1219   , x_msg_data               OUT NOCOPY    VARCHAR2
1220   , x_return_status          OUT NOCOPY    VARCHAR2
1221   , p_label_type_info        IN            inv_label.label_type_rec
1222   , p_transaction_id         IN            NUMBER
1223   , p_input_param            IN            mtl_material_transactions_temp%ROWTYPE
1224   , p_transaction_identifier IN            NUMBER
1225   ) IS
1226     l_variable_data_tbl inv_label.label_tbl_type;
1227   BEGIN
1228     get_variable_data(
1229       x_variable_content           => l_variable_data_tbl
1230     , x_msg_count                  => x_msg_count
1231     , x_msg_data                   => x_msg_data
1232     , x_return_status              => x_return_status
1233     , p_label_type_info            => p_label_type_info
1234     , p_transaction_id             => p_transaction_id
1235     , p_input_param                => p_input_param
1236     , p_transaction_identifier     => p_transaction_identifier
1237     );
1238     x_variable_content  := '';
1239 
1240     FOR i IN 1 .. l_variable_data_tbl.COUNT() LOOP
1241       x_variable_content  :=
1242                      x_variable_content || l_variable_data_tbl(i).label_content;
1243 	END LOOP;
1244 
1245   END get_variable_data;
1246 END inv_label_pvt11;