标签:init errbuf nan his span esc _id rip oop
1.写包:
包头:
CREATE OR REPLACE PACKAGE CUX_FINANCE_DEBUG_REPORT IS /* =============================================================== * PROCEDURE NAME: MAIN * AUTHOR : LWW * DATE : 2017-03-08 * PURPOSE : CUX:财务侦错报告 * PARAMETER : * * RETURN : * UPDATE HISTORY * VERSION DATE NAME DESCRIPTION * -------- ---------- --------------- -------------------- * V1.0 2017-03-08 LWW CREATION ===============================================================*/ PROCEDURE MAIN ( ERRBUF OUT VARCHAR2, RETCODE OUT NUMBER, p_organization_id in NUMBER --p_error_code varchar2, ); END CUX_FINANCE_DEBUG_REPORT;
包体:
CREATE OR REPLACE PACKAGE BODY CUX_FINANCE_DEBUG_REPORT IS /* =============================================================== * PROCEDURE NAME: MAIN * AUTHOR : LWW * DATE : 2017-03-08 * PURPOSE : CUX:财务侦错报告 * PARAMETER : * * RETURN : * UPDATE HISTORY * VERSION DATE NAME DESCRIPTION * -------- ---------- --------------- -------------------- * V1.0 2017-03-08 LWW CREATION ===============================================================*/ PROCEDURE MAIN ( ERRBUF OUT VARCHAR2, RETCODE OUT NUMBER, p_organization_id in NUMBER --p_error_code varchar2, ) AS /*strWhere varchar2; if p_error_code is not null then strWhere :=‘and TABLE_TEMP.错误代码=‘||p_error_code; end if;*/ CURSOR CUR_ALL IS SELECT TABLE_TEMP.组织ID, ORG.ORGANIZATION_NAME AS 组织, TABLE_TEMP.错误代码, TABLE_TEMP.报错描述, TABLE_TEMP.单据类型, TABLE_TEMP.单据编号, TABLE_TEMP.单据日期 AS 单据日期, TABLE_TEMP.制单人 FROM ( --6.‘领料单‘ SELECT A.ORGANIZATION_ID AS 组织ID, ‘6‘ AS 错误代码, ‘领料单已发放,已超过1天未过账,请查核!‘ AS 报错描述, ‘工单领料‘ AS 单据类型, A.REQUISITION_NUMBER AS 单据编号, A.CREATION_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_PERSON_NAME(A.CREATE_PERSON_ID) AS 制单人 FROM CUX_WIP_STOCK_REQ_HEADERS A WHERE A.REQUISITION_STATUS = ‘RELEASE‘ AND A.REQUISITION_TYPE = ‘JOBS_P‘ AND (SYSDATE - A.CREATION_DATE) >= 1 UNION ALL --7.‘退料单‘ SELECT B.ORGANIZATION_ID AS 组织ID, ‘7‘ AS 错误代码, ‘退料单已发放,已超过1天未过账,请查核!‘ AS 报错描述, ‘工单领料‘ AS 单据类型, B.REQUISITION_NUMBER AS 单据编号, B.CREATION_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_PERSON_NAME(B.CREATE_PERSON_ID) AS 制单人 FROM CUX_WIP_STOCK_REQ_HEADERS B WHERE B.REQUISITION_STATUS = ‘RELEASE‘ AND B.REQUISITION_TYPE = ‘JOBS_B‘ AND (SYSDATE - B.CREATION_DATE) >= 1 UNION ALL --8.‘超领单‘ SELECT C.ORGANIZATION_ID AS 组织ID, ‘8‘ AS 错误代码, ‘超领单已发放,已超过1天未过账,请查核!‘ AS 报错描述, ‘工单领料‘ AS 单据类型, C.REQUISITION_NUMBER AS 单据编号, C.CREATION_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_PERSON_NAME(C.CREATE_PERSON_ID) AS 制单人 FROM CUX_WIP_STOCK_REQ_HEADERS C WHERE C.REQUISITION_STATUS = ‘RELEASE‘ AND C.REQUISITION_TYPE = ‘PUSH_P‘ AND (SYSDATE - C.CREATION_DATE) >= 1 UNION ALL --9.‘完工入库‘ SELECT D.ORGANIZATION_ID AS 组织ID, ‘9‘ AS 错误代码, ‘完工入库单已申请,已超过1天未过账,请查核!‘ AS 报错描述, ‘工单入库‘ AS 单据类型, D.TRANSACTION_NUM AS 单据编号, D.CREATION_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_EMPLOYEE_NAME(D.CREATED_BY) AS 制单人 FROM CUX_BUWWIP_MOVE_TRANS_HEADERS D WHERE D.TRANSACTION_STATUS = ‘RELEASED‘ AND D.TRANSACTION_TYPE = ‘WIP_COMP‘ AND (SYSDATE - D.CREATION_DATE) >= 1 UNION ALL --10.‘完工退回‘ SELECT E.ORGANIZATION_ID AS 组织ID, ‘10‘ AS 错误代码, ‘完工退回单已申请,已超过1天未过账,请查核!‘ AS 报错描述, ‘工单入库‘ AS 单据类型, E.TRANSACTION_NUM AS 单据编号, E.CREATION_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_EMPLOYEE_NAME(E.CREATED_BY) AS 制单人 FROM CUX_BUWWIP_MOVE_TRANS_HEADERS E WHERE E.TRANSACTION_STATUS = ‘RELEASED‘ AND E.TRANSACTION_TYPE = ‘WIP_COMP_F‘ AND (SYSDATE - E.CREATION_DATE) >= 1 UNION ALL --11.‘已完工,但尚未报工‘ SELECT TABLE11.ORGANIZATION_ID AS 组织ID, ‘11‘ AS 错误代码, ‘工单已完工,但尚未报工,请查核!‘ AS 报错描述, ‘工单控制‘ AS 单据类型, TABLE11.WIP_ENTITY_NAME AS 单据编号, TABLE11.SCHEDULED_START_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_EMPLOYEE_NAME(TABLE11.CREATED_BY) AS 制单人 FROM (SELECT A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, SUM(C.QUANTITY_COMPLETED) AS BG_SUM, B.SCHEDULED_START_DATE, A.CREATED_BY FROM WIP_ENTITIES A INNER JOIN WIP_DISCRETE_JOBS B ON B.WIP_ENTITY_ID = A.WIP_ENTITY_ID INNER JOIN WIP_OPERATIONS C ON C.WIP_ENTITY_ID = A.WIP_ENTITY_ID WHERE B.STATUS_TYPE = ‘4‘ AND B.CLASS_CODE<>‘M4-试制‘ GROUP BY A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, B.SCHEDULED_START_DATE, A.CREATED_BY) TABLE11 WHERE TABLE11.BG_SUM = 0 UNION ALL --12‘已有完工入库,但尚未领料‘ SELECT TABLE12.ORGANIZATION_ID AS 组织ID, ‘12‘ AS 错误代码, ‘工单已有完工入库,但尚未领料,请查核!‘ AS 报错描述, ‘工单控制‘ AS 单据类型, TABLE12.WIP_ENTITY_NAME AS 单据编号, TABLE12.SCHEDULED_START_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_EMPLOYEE_NAME(TABLE12.CREATED_BY) AS 制单人 FROM (SELECT A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, B.QUANTITY_COMPLETED, SUM(C.QUANTITY_ISSUED) AS LL_SUM, B.SCHEDULED_START_DATE, A.CREATED_BY FROM WIP_ENTITIES A INNER JOIN WIP_DISCRETE_JOBS B ON B.WIP_ENTITY_ID = A.WIP_ENTITY_ID INNER JOIN WIP_REQUIREMENT_OPERATIONS C ON C.WIP_ENTITY_ID = A.WIP_ENTITY_ID GROUP BY A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, B.QUANTITY_COMPLETED, B.SCHEDULED_START_DATE, A.CREATED_BY) TABLE12 WHERE TABLE12.QUANTITY_COMPLETED > 0 AND TABLE12.LL_SUM = 0 UNION ALL --13‘已完工,已领料,已报工,状态需切换‘ SELECT TABLE13.ORGANIZATION_ID AS 组织ID, ‘13‘ AS 错误代码, ‘工单已完工入库,已充分领料并报工,请及时将工单【状态】修改为"完工-不计费"!‘ AS 报错描述, ‘工单控制‘ AS 单据类型, TABLE13.WIP_ENTITY_NAME AS 单据编号, TABLE13.SCHEDULED_START_DATE AS 单据日期, CUX_PUBLIC_PKG.GET_EMPLOYEE_NAME(TABLE13.CREATED_BY) AS 制单人 FROM (SELECT A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, SUM(C.QUANTITY_COMPLETED) AS BG_SUM, SUM(D.QUANTITY_ISSUED) AS LL_SUM, B.SCHEDULED_START_DATE, A.CREATED_BY FROM WIP_ENTITIES A INNER JOIN WIP_DISCRETE_JOBS B ON B.WIP_ENTITY_ID = A.WIP_ENTITY_ID INNER JOIN WIP_OPERATIONS C ON C.WIP_ENTITY_ID = A.WIP_ENTITY_ID INNER JOIN WIP_REQUIREMENT_OPERATIONS D ON D.WIP_ENTITY_ID = A.WIP_ENTITY_ID WHERE B.STATUS_TYPE = ‘4‘ GROUP BY A.ORGANIZATION_ID, A.WIP_ENTITY_NAME, B.SCHEDULED_START_DATE, A.CREATED_BY) TABLE13 WHERE TABLE13.LL_SUM <> 0 AND TABLE13.BG_SUM <> 0 /*UNION ALL --14‘报工数量<>转移数量‘--某些工单导入EBS成功,但移动事务处理没有产生记录 SELECT TABLE14.ORGANIZATION_ID AS 组织ID, ‘14‘ AS 错误代码, ‘工单对应工序‘ || TABLE14.OPERATION_SEQ_NUM_S || ‘的报工数量不等于转移数量,请查核!‘ AS 报错提示, ‘工单控制‘ AS 单据类型, TABLE14.WIP_ENTITY_NAME AS 单据编号, TABLE14.SCHEDULED_START_DATE AS 单据日期 FROM (SELECT DISTINCT A.ORGANIZATION_ID,A.WIP_ENTITY_ID, A.WIP_ENTITY_NAME, D.OPERATION_SEQ_NUM_S, C.QUANTITY_COMPLETED AS BG_SUM, --报工数量(取报工界面上的总报工数) B.SCHEDULED_START_DATE, (SELECT NVL(SUM(E.TRANSACTION_QUANTITY), 0) FROM WIP_ENTITIES D INNER JOIN WIP_MOVE_TRANSACTIONS E ON E.WIP_ENTITY_ID = D.WIP_ENTITY_ID WHERE D.WIP_ENTITY_NAME = A.WIP_ENTITY_NAME --AND E.FM_INTRAOPERATION_STEP_TYPE = 1 --AND E.TO_INTRAOPERATION_STEP_TYPE = 3 AND E.FM_OPERATION_SEQ_NUM = D.OPERATION_SEQ_NUM_S) AS ZY_SUM --转移数量 FROM WIP_ENTITIES A INNER JOIN CUX_WIP_MOVE_RESOURCES D ON A.WIP_ENTITY_ID=D.WIP_ENTITY_ID INNER JOIN WIP_DISCRETE_JOBS B ON B.WIP_ENTITY_ID = A.WIP_ENTITY_ID INNER JOIN WIP_OPERATIONS C ON C.WIP_ENTITY_ID = A.WIP_ENTITY_ID AND C.OPERATION_SEQ_NUM=D.OPERATION_SEQ_NUM_S ) TABLE14 WHERE TABLE14.BG_SUM <> TABLE14.ZY_SUM*/ ) TABLE_TEMP INNER JOIN ORG_ORGANIZATION_DEFINITIONS ORG ON TABLE_TEMP.组织ID = ORG.ORGANIZATION_ID where ORG.ORGANIZATION_ID=p_organization_id; BEGIN ERRBUF := ‘OK‘; RETCODE := 0; FND_FILE.PUT_LINE(FND_FILE.OUTPUT, ‘<?xml version = ‘‘‘ || ‘1.0‘ || ‘‘‘ encoding = ‘ || ‘‘‘UTF-8‘ || ‘‘‘?>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<G1>‘); --FND_FILE.PUT_LINE(FND_FILE.OUTPUT, ‘<TIME>‘ || TO_CHAR(SYSDATE,‘YYYY-MM-DD hh24:mi:ss‘) || ‘</TIME>‘); FOR CUR_ROW IN CUR_ALL LOOP FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<G_LINES>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<organization_code>‘ || CUR_ROW.组织ID|| ‘</organization_code>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<organization_name>‘ || CUR_ROW.组织|| ‘</organization_name>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<error_code>‘ || CUR_ROW.错误代码 ||‘</error_code>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<error_content>‘ || CUR_ROW.报错描述 ||‘</error_content>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<doc_type>‘ || CUR_ROW.单据类型 ||‘</doc_type>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<doc_number>‘ || CUR_ROW.单据编号 ||‘</doc_number>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<doc_date>‘ || TO_CHAR(CUR_ROW.单据日期,‘YYYY-MM-DD‘) ||‘</doc_date>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘<doc_man>‘ || CUR_ROW.制单人 ||‘</doc_man>‘); FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘</G_LINES>‘); END LOOP; FND_FILE.PUT_LINE(FND_FILE.OUTPUT,‘</G1>‘); fnd_file.put_line(fnd_file.LOG, ‘**************************************************************‘); fnd_file.put_line(fnd_file.LOG, ‘程序开始运行 ‘ || TO_CHAR(SYSDATE, ‘yyyy-mm-dd hh24:mi:ss‘)); fnd_file.put_line(fnd_file.LOG, ‘p_organization_id==‘ || p_organization_id); EXCEPTION WHEN OTHERS THEN RETCODE := 2; ERRBUF := ‘异常:‘||SQLERRM||‘代码行:‘||DBMS_UTILITY.FORMAT_ERROR_BACKTRACE; FND_FILE.PUT_LINE(FND_FILE.LOG,ERRBUF); END MAIN; END CUX_FINANCE_DEBUG_REPORT;
2.建模板(可拿原有的rtf模板,在它的基础上修改)
链接:http://pan.baidu.com/s/1hrDMiLe 密码:k8ug
3.定义可执行程序
4.定义并发程序
5.上传rtf模板
6.跑报表请求
标签:init errbuf nan his span esc _id rip oop
原文地址:http://www.cnblogs.com/doraemon45/p/7435402.html