[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;