---Package/Procedure to generate XML report
CREATE OR REPLACE PACKAGE apps.XXJG_PRD_WISE_RPT_PKG
AS
-- +====================================================================+
-- | BexPharmaceuticals Limited |
-- +====================================================================+
-- Owner : BexPharmaceuticals Limited
-- Module(s) : OPM
-- File name : XXJG_PRD_WISE_RPT_PKG
-- Doc Ref(s) : FS_OPM-R-002
--
-- Description: Product Wise Number of Batches Report
--
--
-- Modification History
-- --------------------------
--- Version Date Author Change Reference / Description
-- ------- ----------- ------------------- ------------------------------------
--1.0 05-FEB-2020 Jayanta Ganguly Initial Creation
-- *************************************************************************
PROCEDURE XXJG_PRD_WISE_RPT_PRC (
x_errbuf OUT VARCHAR2,
x_retcode OUT NUMBER,
p_inv_org IN NUMBER,
p_department IN VARCHAR2,
p_resource IN VARCHAR2, ---Added by JG
p_from_date IN VARCHAR2,
p_to_date IN VARCHAR2,
-- p_dosage IN VARCHAR2, --Comment by JG
p_product_type IN VARCHAR2,
p_item_code IN VARCHAR2,
p_user_id IN VARCHAR2
);
END XXJG_PRD_WISE_RPT_PKG;
/
-------------------------------------------------------------------------------------------
CREATE OR REPLACE PACKAGE BODY APPS.XXJG_PRD_WISE_RPT_PKG
AS
-- +====================================================================+
-- | BexPharmaceuticals Limited |
-- +====================================================================+
-- Owner : BexPharmaceuticals Limited
-- Module(s) : OPM
-- File name : XXJG_PRD_WISE_RPT_PKG
-- Doc Ref(s) : FS_OPM-R-002
--
-- Description: Product Wise Number of Batches Report
--
--
-- Modification History
-- --------------------------
--- Version Date Author Change Reference / Description
-- ------- ----------- ------------------- ------------------------------------
--1.0 05-FEB-2020 Jayanta Ganguly Initial Creation
-- *************************************************************************/
PROCEDURE XXJG_PRD_WISE_RPT_PRC (
x_errbuf OUT VARCHAR2,
x_retcode OUT NUMBER,
p_inv_org IN NUMBER,
p_department IN VARCHAR2,
p_resource IN VARCHAR2,
p_from_date IN VARCHAR2,
p_to_date IN VARCHAR2,
-- p_dosage IN VARCHAR2, --Comment by JG
p_product_type IN VARCHAR2,
p_item_code IN VARCHAR2,
p_user_id IN VARCHAR2
)
IS
CURSOR cur_main
IS
SELECT abc.product_code,
REPLACE (abc.product_name, '&', ' and ') product_name,
abc.dosage_type, abc.item_type,
SUM (abc.plan_qty) batch_size, abc.product_type, uom,
MAX
(CASE abc.act_month
WHEN TO_CHAR (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
'MON-YY'
)
THEN cnt
END
) AS month1,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
1
),
'MON-YY'
)
THEN cnt
END
) AS month2,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
2
),
'MON-YY'
)
THEN cnt
END
) AS month3,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
3
),
'MON-YY'
)
THEN cnt
END
) AS month4,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
4
),
'MON-YY'
)
THEN cnt
END
) AS month5,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
5
),
'MON-YY'
)
THEN cnt
END
) AS month6,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
6
),
'MON-YY'
)
THEN cnt
END
) AS month7,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
7
),
'MON-YY'
)
THEN cnt
END
) AS month8,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
8
),
'MON-YY'
)
THEN cnt
END
) AS month9,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
9
),
'MON-YY'
)
THEN cnt
END
) AS month10,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
10
),
'MON-YY'
)
THEN cnt
END
) AS month11,
MAX
(CASE abc.act_month
WHEN TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
11
),
'MON-YY'
)
THEN cnt
END
) AS month12,
SUM (cnt) tt_no_of_batch
FROM (SELECT msib.segment1 product_code,
msib.description product_name,
msib.attribute2 dosage_type,
(SELECT segment2
FROM mtl_item_categories_v mic
WHERE mic.category_set_name =
'Inventory'
AND mic.inventory_item_id =
msib.inventory_item_id
AND mic.organization_id = msib.organization_id)
item_type,
/*TO_CHAR (nvl(trunc(gbh.ACTUAL_START_DATE),trunc(gbh.plan_start_date)), 'MON-YY')*/
/* Change on 9-Mar-2020 For FG Batch
TO_CHAR (DECODE(p_department,'LNP',NVL(TRUNC(gbh.actual_start_date),TRUNC(gbh.plan_start_date))
,'SPL1',NVL(TRUNC(gbh.actual_start_date),TRUNC(gbh.plan_start_date))
,'SPL2',NVL(TRUNC(gbh.actual_start_date),TRUNC(gbh.plan_start_date))
,NVL(TRUNC(gbh.actual_start_date),TRUNC(TO_DATE(gbh.attribute1,'YYYY/MM/DD HH24:MI:SS'))) ) ,'MON-YY') act_month,*/
TO_CHAR
(DECODE
(p_department,
'LNP', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL1', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL2', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
TRUNC (TO_DATE (gbh.attribute1,
'YYYY/MM/DD HH24:MI:SS'
)
)
),
'MON-YY'
) act_month,
COUNT (*) cnt,
(SELECT std_qty
FROM gmd_recipe_validity_rules grv
WHERE 1 = 1
AND grv.organization_id = msib.organization_id
AND grv.preference = 1
AND ROWNUM = 1
AND grv.recipe_id IN (
SELECT gr2.recipe_id
FROM gmd_recipes gr2
WHERE gr2.recipe_no = msib.segment1
AND gr2.owner_organization_id = msib.organization_id
-- and gr2.RECIPE_VERSION =( select max(gr1.RECIPE_VERSION) from gmd_recipes gr1
-- where gr1.RECIPE_NO=msib.segment1
-- and gr1.OWNER_ORGANIZATION_ID= msib.organization_id)
)) plan_qty,
(SELECT detail_uom
FROM gmd_recipe_validity_rules grv
WHERE 1 = 1
AND grv.organization_id = msib.organization_id
AND grv.preference = 1
AND ROWNUM = 1
AND grv.recipe_id IN (
SELECT gr2.recipe_id
FROM gmd_recipes gr2
WHERE gr2.recipe_no = msib.segment1
AND gr2.owner_organization_id = msib.organization_id
-- and gr2.RECIPE_VERSION =( select max(gr1.RECIPE_VERSION) from gmd_recipes gr1
-- where gr1.RECIPE_NO=msib.segment1
-- and gr1.OWNER_ORGANIZATION_ID= msib.organization_id)
)) uom,
msib.attribute3 product_type
FROM gme_batch_header gbh,
org_organization_definitions ood,
mtl_system_items_b msib,
gme_material_details gmd,
fnd_lookup_values flv
-- mtl_item_categories mic,
-- mtl_categories_b_kfv mcb,
-- mtl_category_sets_tl mcs
WHERE 1 = 1
AND gbh.organization_id = ood.organization_id
AND gmd.organization_id = msib.organization_id
AND gmd.inventory_item_id = msib.inventory_item_id
AND gbh.batch_id = gmd.batch_id
AND gmd.line_type = '1'
AND gmd.line_no = 1
AND gbh.batch_status <>
-1
--Cancel Batch not required ---Added by JG
AND flv.lookup_type = 'XXJG_DEPT_SUBDEPT'
AND ood.organization_code = flv.tag
AND NVL (gbh.attribute_category, flv.lookup_code) = flv.lookup_code---Added by JG
AND flv.lookup_code = p_department
AND EXISTS (
SELECT 1
FROM mtl_item_categories_v mic
WHERE mic.category_set_name = 'BEX_PLANNING_CATEGORY'
AND mic.inventory_item_id = msib.inventory_item_id
AND mic.organization_id = msib.organization_id
AND mic.segment1 = flv.lookup_code)
AND gbh.batch_id IN (
SELECT batch_id
FROM gme_batch_steps gbs
WHERE EXISTS (
SELECT 1 --gov.oprn_id, gor.oprn_line_id, gov.oprn_no, gov.oprn_vers ,goa.activity, gor.resources
FROM gmd_operation_resources gor,
gmd_operation_activities goa,
gmd_operations_vl gov
WHERE gov.oprn_id = goa.oprn_id
AND gor.oprn_line_id = goa.oprn_line_id
AND gov.oprn_id = gbs.oprn_id
AND gor.resources = NVL (p_resource, gor.resources )))
-- AND gbh.batch_status != -1
-- AND msib.inventory_item_id = mic.inventory_item_id
-- AND msib.organization_id = mic.organization_id
-- AND mcb.category_id = mic.category_id
-- AND mcs.category_set_name = 'Inventory'
-- AND mic.category_set_id = mcs.category_set_id
---- AND msib.segment1 = '1020000292'
AND gbh.organization_id = NVL (p_inv_org, gbh.organization_id)
/* AND nvl(trunc(gbh.ACTUAL_START_DATE),trunc(gbh.plan_start_date))
BETWEEN TO_DATE (p_from_date,'YYYY/MM/DD HH24:MI:SS')
AND TO_DATE (p_to_date,'YYYY/MM/DD HH24:MI:SS' )*/
--AND NVL(TRUNC(gbh.actual_start_date),TRUNC(gbh.plan_start_date))
----Added by JG
AND DECODE (p_department,
'LNP', NVL (TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL1', NVL (TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL2', NVL (TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
)
---,NVL(TRUNC(gbh.actual_start_date),TRUNC(TO_DATE(gbh.attribute1,'YYYY/MM/DD HH24:MI:SS'))) ) -- Change on 9-Mar-2020 For FG Batch
,
TRUNC (TO_DATE (gbh.attribute1,
'YYYY/MM/DD HH24:MI:SS'
)
)
)
BETWEEN TRUNC (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
)
)
AND TRUNC (TO_DATE (p_to_date,
'YYYY/MM/DD HH24:MI:SS'
)
)
AND msib.inventory_item_id = NVL (p_item_code, msib.inventory_item_id)
AND NVL (msib.attribute3, 'NA') = NVL (p_product_type, NVL (msib.attribute3, 'NA') )
GROUP BY msib.segment1,
msib.inventory_item_id,
msib.organization_id,
msib.description,
msib.attribute2,
msib.attribute3,
msib.organization_id,
--TO_CHAR (nvl(trunc(gbh.ACTUAL_START_DATE),trunc(gbh.plan_start_date)), 'MON-YY')
TO_CHAR
(DECODE
(p_department,
'LNP', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL1', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
'SPL2', NVL
(TRUNC (gbh.actual_start_date),
TRUNC (gbh.plan_start_date)
),
TRUNC (TO_DATE (gbh.attribute1,
'YYYY/MM/DD HH24:MI:SS'
)
)
),
'MON-YY'
)) abc
GROUP BY abc.product_code,
abc.item_type,
abc.product_name, ---comment on 8-Sep-2020 abc.act_month, ---Added on 08-Mar-2020
abc.dosage_type,
uom,
abc.product_type
ORDER BY abc.product_code;
lv_organization_name VARCHAR2 (3000);
l_full_name VARCHAR2 (3000);
BEGIN
--fnd_file.put_line (fnd_file.LOG,'p_from_date:'||p_from_date);
--fnd_file.put_line (fnd_file.LOG,'p_to_date:' || p_to_date );
BEGIN
SELECT TRIM ( INITCAP (a.title)
|| ' '
|| INITCAP ( a.first_name
|| ' '
|| a.middle_names
|| DECODE (a.middle_names, NULL, '', ' ')
|| a.last_name
)
)
INTO l_full_name
FROM per_all_people_f a, fnd_user fu
WHERE fu.employee_id = a.person_id AND fu.user_id = p_user_id;
--fnd_profile.value('USER_ID');
fnd_file.put_line (fnd_file.LOG, 'USER_ID:' || p_user_id);
DBMS_OUTPUT.put_line ('P_USER_ID' || p_user_id);
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG, 'USER_ID' || ' - ' || SQLERRM);
DBMS_OUTPUT.put_line ('USER_ID' || SQLCODE || ' - ' || SQLERRM);
END;
BEGIN
SELECT organization_name
INTO lv_organization_name
FROM org_organization_definitions
WHERE organization_id = p_inv_org;
fnd_file.put_line (fnd_file.LOG,
'ORGANIZATION_NAME:' || lv_organization_name
);
DBMS_OUTPUT.put_line ('lv_ORGANIZATION_NAME:' || lv_organization_name);
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'lv_organization_name' || ' - ' || SQLERRM
);
DBMS_OUTPUT.put_line ( 'lv_organization_name'
|| SQLCODE
|| ' - '
|| SQLERRM
);
END;
BEGIN
fnd_file.put_line (fnd_file.output,
'<?xml version="1.0" encoding="UTF-8"?>'
);
fnd_file.put_line (fnd_file.output, '<XXJG_PRD_WISE_RPT>');
fnd_file.put_line (fnd_file.output,
'<P_FROM_DATE>'
|| TO_DATE (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
'DD-MON-YY'
)
|| '</P_FROM_DATE>'
);
fnd_file.put_line (fnd_file.output,
'<P_INV_ORG>'
|| lv_organization_name
|| '</P_INV_ORG>'
);
fnd_file.put_line (fnd_file.output,
'<P_TO_DATE>'
|| TO_DATE (TO_DATE (p_to_date,
'YYYY/MM/DD HH24:MI:SS'
),
'DD-MON-YY'
)
|| '</P_TO_DATE>'
);
-- fnd_file.put_line (fnd_file.output, '<P_DOSAGE>' || p_dosage || '</P_DOSAGE>' );
fnd_file.put_line (fnd_file.output,
'<P_PRODUCT_TYPE>'
|| p_product_type
|| '</P_PRODUCT_TYPE>'
);
fnd_file.put_line (fnd_file.output,
'<P_ITEM_CODE>' || p_item_code || '</P_ITEM_CODE>'
);
fnd_file.put_line (fnd_file.output,
'<P_DEPARTMENT>'
|| p_department
|| '</P_DEPARTMENT>'
);
fnd_file.put_line (fnd_file.output,
'<P_RESOURCE>' || p_resource || '</P_RESOURCE>'
); ---Added By JG
fnd_file.put_line (fnd_file.output,
'<PRINTED_BY>' || l_full_name || '</PRINTED_BY>'
); ---Added By JG
fnd_file.put_line (fnd_file.output,
'<MONTH1>'
|| TO_CHAR (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
'MON-YY'
)
|| '</MONTH1>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH2>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
1
),
'MON-YY'
)
|| '</MONTH2>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH3>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
2
),
'MON-YY'
)
|| '</MONTH3>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH4>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
3
),
'MON-YY'
)
|| '</MONTH4>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH5>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
4
),
'MON-YY'
)
|| '</MONTH5>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH6>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
5
),
'MON-YY'
)
|| '</MONTH6>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH7>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
6
),
'MON-YY'
)
|| '</MONTH7>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH8>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
7
),
'MON-YY'
)
|| '</MONTH8>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH9>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
8
),
'MON-YY'
)
|| '</MONTH9>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH10>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
9
),
'MON-YY'
)
|| '</MONTH10>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH11>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
10
),
'MON-YY'
)
|| '</MONTH11>'
);
fnd_file.put_line
(fnd_file.output,
'<MONTH12>'
|| TO_CHAR
(ADD_MONTHS (TO_DATE (p_from_date,
'YYYY/MM/DD HH24:MI:SS'
),
11
),
'MON-YY'
)
|| '</MONTH12>'
);
FOR i IN cur_main
LOOP
fnd_file.put_line (fnd_file.output, '<XXJG_MAIN_GRP>');
fnd_file.put_line (fnd_file.output,
'<PRODUCT_CODE>'
|| i.product_code
|| '</PRODUCT_CODE>'
);
fnd_file.put_line (fnd_file.output,
'<PRODUCT_NAME>'
|| i.product_name
|| '</PRODUCT_NAME>'
);
fnd_file.put_line (fnd_file.output,
'<ITEM_TYPE>' || i.item_type || '</ITEM_TYPE>'
);
fnd_file.put_line (fnd_file.output,
'<PRODUCT_TYPE>'
|| i.product_type
|| '</PRODUCT_TYPE>'
);
fnd_file.put_line (fnd_file.output,
'<DOSAGE>' || i.dosage_type || '</DOSAGE>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH8>' || i.month8 || '</MONTH8>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH1>' || i.month1 || '</MONTH1>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH2>' || i.month2 || '</MONTH2>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH3>' || i.month3 || '</MONTH3>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH4>' || i.month4 || '</MONTH4>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH5>' || i.month5 || '</MONTH5>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH6>' || i.month6 || '</MONTH6>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH7>' || i.month7 || '</MONTH7>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH9>' || i.month9 || '</MONTH9>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH10>' || i.month10 || '</MONTH10>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH11>' || i.month11 || '</MONTH11>'
);
fnd_file.put_line (fnd_file.output,
'<MONTH12>' || i.month12 || '</MONTH12>'
);
fnd_file.put_line (fnd_file.output,
'<BATCH_SIZE>' || i.batch_size
|| '</BATCH_SIZE>'
);
fnd_file.put_line (fnd_file.output, '<UOM>' || i.uom || '</UOM>');
fnd_file.put_line (fnd_file.output,
'<TT_NO_OF_BATCH>'
|| i.tt_no_of_batch
|| '</TT_NO_OF_BATCH>'
);
fnd_file.put_line (fnd_file.output, '</XXJG_MAIN_GRP>');
---fnd_file.put_line (fnd_file.LOG, 'Item:'||i.product_code);
DBMS_OUTPUT.put_line ('Item:' || i.product_code);
END LOOP;
---fnd_file.put_line (fnd_file.output, 'XXJG_PRD_WISE_RPT XML');
fnd_file.put_line (fnd_file.output, '</XXJG_PRD_WISE_RPT>');
NULL;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'~~~XXJG_PRD_WISE_RPT XML:' || ' - '
|| SQLERRM
);
DBMS_OUTPUT.put_line ( '~~~XXJG_PRD_WISE_RPT XML'
|| SQLCODE
|| ' - '
|| SQLERRM
);
END;
DBMS_OUTPUT.put_line ('XXJG_PRD_WISE_RPT');
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'Exception In Procedure XXJG_prd_wise_rpt_pkg.XXJG_prd_wise_rpt_prc;'
);
fnd_file.put_line (fnd_file.LOG, SQLCODE || ' - ' || SQLERRM);
DBMS_OUTPUT.put_line ( 'XXJG_PRD_WISE_RPT'
|| SQLCODE
|| ' - '
|| SQLERRM
);
END XXJG_PRD_WISE_RPT_PRC;
END XXJG_PRD_WISE_RPT_PKG;
/