utl_file包的使用
首先看一下oracle 脚本
- /* # $Header: HTMomse12.sql 12.0.4 20121015 Support $
- #+======================================================================================+
- #| Copyright (c) 2002 Oracle Corporation Redwood Shores, California, USA |
- #| Oracle Support Services. All rights reserved |
- #+======================================================================================+
- #========================================================================================
- # PURPOSE: This script will collect information related to a sales order
- # transaction and it's Workflow processes. This script should be
- # run whenever there are problems related to a sales order
- # transaction, including processes like Pick Release, Shipping,
- # Invoice interface.
- #
- # FILE NAME: HTMomse12.sql
- # FILE VERSION: 12.0.4
- # PRODUCT: Oracle Order Management
- # PRODUCT VERSIONS: 12.0 (and above)
- # PLATFORM: Generic
- # PARAMETERS: Order_Number, Header_Id (opt), Line_Id (opt)
- #========================================================================================
- # USAGE: sqlplus apps/apps @HTMomse12.sql
- #
- # This script requires a header_id to be passed in as a parameter ONLY if there are
- # multiple header_id's for the order requested. If there is only one header_id returned
- # after inputting the order number, simply hit enter and this header_id will be assumed.
- #
- # Entering a line_id is only required when you wish to have output for one order line.
- # Otherwise, hit enter without entering a line_id and all lines will be output in the
- # script.
- #
- # The script writes to an output file named HTMomse12_<ordernumber>.html on DB Server
- # under 'utl_file_dir', this file may be viewed in any HTML browser.
- #
- */
- set term off;
- /*
- #=========================================================================================
- # CHANGE HISTORY:
- This script is based on HTMomse11i version 7.5.1, for the complete
- change history please see HTMomse11i (Note 133464.1)
- From HTMomse11i:
- 31-MAR-00 Created rnmercer
- 12-DEC-00 Major modifications to the look of the report including rnmercer
- abreviated column names for flags, etc. A legend cross
- referencing the abreviations is included in the output.
- Got rid of the need to input the org_id. It is set via
- derived data from the header_id.
- 17-MAY-01 Fix the line number to display all 5 numbers rnmercer
- line.shipment.option.component.service
- 05-DEC-01 Changed format of output filename as part of the iTar
- automated scripting initiative. rodavid
- 13-JUN-02 Modified to change version numbering to match Repository rodavid
- 02-APR-04 Modified to create HTML output file and included basic
- 14-APR-04 verifications to help the Analysis rijames
- 14-APR-04 include table ONT_WF_SKIP_LOG on header and lines rijames
- 01-NOV-07 Changed output function from DBMS_OUTOUT for UTL_FILE, rijames Ver. 7.5
- due to size limitations on DBMS_OUTPUT function.
- Output file will now be located on DB Server under 'utl_file_dir'.
- Script will printout the filename and location.
- Added some columns as requested by Support.
- For HTMomse12:
- 09-JAN-08 Created as copy of HTMomse11i 7.5.1 rijames
- 11-JAN-08 Modified set environment using rodavid script rijames
- Exclude IC tables (for OPM) as now OPM information is
- contained on OM/WSH base tables.
- 14-JAN-08 Corrected conditions for sections to use UPPER() when rijames
- answer is provided on lower case.
- 04-FEB-08 Move INVentory and OM Interface Flags after the Release rijames Ver 12.0.2
- status field.
- Correction on decode of the Hold Entity Code, label for
- code 'W' is changed to 'Warehouse' (from 'Workflow').
- 06-FEB-08 Add outer join to MTL_SALES_ORDERS to print when Order rijames
- Type definition has been deleted.
- Move Parameters summary to top of output.
- Modify to handle Orders with no lines, only Header
- information will be printed.
- 07-FEB-08 Add Hostname on printout for ouput location. rijames
- 05-MAR-08 Add OPM fields on ORDER_LINES and most MTL queries, rijames
- MTL_TRANSACTION_LOT_NUMBERS table included on MTL queries.
- 06-SEP-11 Correct Header on RA_INTERFACE_TABLE field rijames Ver 12.0.3
- RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6 (was Line_ID_5)
- 06-SEP-11 Add transaction date and transaction interface id to rijames
- MTL_TRANSACTIONS_INTERFACE.
- 06-SEP-11 Add transaction date to MTL_MATERIAL_TRANSACTIONS_TEMP. rijames
- 06-SEP-11 Add transaction date to MTL_MATERIAL_TRANSACTIONS. rijames
- 06-SEP-11 Add transaction date to MTL_UNIT_TRANSACTIONS. rijames
- 16-SEP-11 Add table MTL_SERIAL_NUMBERS. rijames
- 22-SEP-11 Add option to All or only first 10 records from tables rijames
- MTL_UNIT_TRANSACTIONS (MUT), WSH_SERIAL_NUMBERS (WSN)
- and MTL_SERIAL_NUMBERS
- 26-SEP-11 Add multiple Close and Reopen of Output file, so in case rijames
- of SQL failure only a few tables are not printed.
- 29-SEP-11 Add additional fields to ORGANIZATIONS listing. rijames
- 17-OCT-11 Add 'SERIAL NUMBER Details' on Parameters Listing rijames
- 17-OCT-11 Modify title for column Transaction_Interface_Id for rijames
- table MTL_TRANSACTIONS_INTERFACE
- 17-OCT-11 Modify title color for column INV_INTERFACED_FLAG for rijames
- table WSH_DELIVERY_DETAILS, also the title bar will be
- printed every 35 rows instead of every 50.
- 16-NOV-11 Split printout for ORGANIZATIONS and ACCOUNTING PERIODS rijames
- 10-FEB-12 Correct print sequence on Order Lines (Ordered Item) rijames
- 10-FEB-12 Print Column Headers for Order Lines every 35 lines rijames
- 10-FEB-12 Modify query for ACCOUNTING PERIODS to include Period rijames
- for lines not Shipped yet.
- 14-MAR-12 Modify 'Serial Num. Details' title on Parameters Listing rijames
- 14-MAR-12 Add new close/open after ACCOUNTING PERIODS table rijames
- 04-MAY-12 Correct printout for 'UNPICKED LINES' table. rijames
- 11-OCT-12 Include WMS Rules tables. rijames
- 11-OCT-12 Include link to table WMS Rules on Tables Index. rijames
- 11-OCT-12 Change version to 12.0.4 rijames
- 15-OCT-12 Include line number and Internal Result code on lines rijames
- Workflow table
- 15-OCT-12 Include Internal Result code on header Workflow table rijames
- 15-OCT-12 Correct OE_LINES FULFIL_QTY field printed rijames
- 15-MAR-13 Set WMS Information to Default to 'N' as the file rijames
- created is too extense.
- 14-OCT-13 Sorting for Workflow lines corrected rijames
- 14-OCT-13 Change Version numbering to include date .yymmdd rijames
- 24-MAR-14 Change SQL to obtain utl_file_dir value rijames
- 24-MAR-14 Add field Source_line_set_id to Delivery Details query rijames
- 10-JUN-14 Correct WSH_DELIVERY_DETAILS (DET) table Headers rijames
- 10-JUN-14 Correct WSH_DELIVERY_DETAILS (CONTAINERS) columns order rijames
- 10-JUN-14 Add field Source Line Set Id to WSH_DELIVERY_DETAILS rijames
- #
- #========================================================================================
- References
- ----------
- For documentation and white papers on the Order Management product suite go to Metalink,
- http://metalink.us.oracle.com, click on Top Tech Docs button -> E-Business Suite: ERP ->
- Distribution/Supply Chain -> OM Suite: Order Management.
- */
- variable v_order_num varchar2(100);
- variable v_error number;
- variable v_line_tot number;
- variable v_line_cnt number;
- variable sales_ord_id number;
- variable v_op_unit number;
- variable v_head_cnt number;
- variable v_header_id number;
- variable v_head_only varchar2(1);
- variable r_line_t varchar2(100);
- variable r_res_q number;
- variable r_wdd number;
- variable r_flag varchar2(100);
- variable r_pro_na varchar2(100);
- variable r_act_na varchar2(100);
- variable r_result varchar2(100);
- variable r_act_s varchar2(100);
- variable r_error number;
- variable is_opm varchar2(2);
- variable all_or_top10 varchar2(100);
- set arraysize 4;
- set pagesize 58;
- set term on;
- set linesize 145;
- set underline =;
- set verify off;
- set serveroutput on size 1000000;
- set feedback off;
- -- OE_ORDER_HEADERS
- column HEADER_ID format 99999999;
- column ORGANIZATION_NAME format A30;
- column TYPE_ID format 99999999;
- column TYPE_NAME format A15;
- column ORD_DATE_TYPE format a15;
- column ORD_NUM format 999999999;
- column VERS format 9999;
- column ORD_TYPE_ID format 999999999;
- column FLOW_CODE format a22;
- column CUST_NAME format A20;
- column CUST_ID format 999999999;
- column SHIP_TO_ID format 999999999;
- column SHIP_TO format A12;
- column SOLD_TO_ID format 999999999;
- column PO_NUMBER format A09;
- column DATE_ORD format A15;
- column PL_ID format 99999;
- column PRICE_LIST_NAME format A15;
- column PL_NAME format A15;
- column SHIP_PART format A09;
- column ORGANIZATION format 9999999;
- column WH_ID format 99999;
- column DEMAND_CLASS format A12;
- column OP format A05;
- column CN format A05;
- column BK format A05;
- column DRP_SHP format A07;
- column CYCLE_ID format 99999999;
- column ORD_SRC_ID format 99999999;
- column TRANS_TYPE format A12;
- column CATEGORY format A08;
- column SP format A05;
- column CAT format A06;
- -- WF_NOTIFICATIONS
- column TO_USER format a22;
- column ORIG_RECIP format a10;
- column RECIP_ROLE format a10;
- column MAIL_STAT format a9;
- column MESSAGE_NAME format a25;
- column SUBJECT format a45;
- -- OE_TRANSACTION_TYPES_ALL
- column ORDER_TYPE_NAME format A25;
- column TYPE_NAME format A15;
- column CONSTANTOE format A15;
- column SHIP_PRIORITY format A13;
- column SYS_REQD format A08;
- -- OE_ORDER_LINES_ALL
- column LINE_ID format 99999999;
- column LINE format A08;
- column LINE_NUM format A08;
- column LINE_CTG format A09;
- column CONFIG_HDR_ID format B99999999;
- column SSCHED format B9999;
- column PRT_LINE_ID format B99999999;
- column ATO_LINE_ID format B99999999;
- column LNK_LINE_ID format B99999999;
- column SHP_LINE_ID format B99999999;
- column SRC_LINE_ID format B99999999;
- column SRV_LINE_ID format B99999999;
- column ITEM_ID format 99999999;
- column ITEM format A17;
- column ORD_Q format 999999.99;
- column ORG_Q format 999999.99;
- column REQ_Q format 999999.99;
- column PRICE format $999999999.99;
- column SHP_Q format 999999.99;
- column Q_INC format 999999.99;
- column SHN_Q format 999999.99;
- column SHP_Q format 999999.99;
- column FUL_Q format 999999.99
- column RES_Q format 999999.99;
- column INC_Q format 999999.99;
- column CAN_Q format 999999.99;
- column LN_SET_TY format A11;
- column SH_SET_TY format A11;
- column AR_SET_TY format A11;
- column REQUEST_D format A15;
- column SCHEDUL_D format A15;
- column SOURCE_TYPE format A11;
- column DEM_CLASS format A10;
- column LINE_DETAIL_ID format 9999999999;
- --column OPEN_FL format A07;
- --column CANC_FL format A07;
- --column BOOKED format A07;
- column SH format A05;
- column VD format A05;
- column FF format A05;
- column SUBINV format A10;
- column SSC format A05;
- column SI format A05;
- column II format A05;
- column INVC_INT_STAT format A14;
- column SHIPPABLE format A08;
- column TRANSACTABLE format A08;
- column RESERVABLE format A08;
- column RELEASED format A08;
- column FOR_REVENUE format A08;
- column DELIVERY format 9999999999;
- column SET_TYPE format A15;
- column SET_NAME format A10;
- column STATUS format A06;
- column SCH_SHP_DT format A10;
- column SCH_ARV_DT format A10;
- column CARRIER format A15;
- column SHIP_METHOD format A15;
- column wf_act_code format a11;
- column wf_result format a9;
- column hist_comments format a45;
- column hist_type format a12;
- -- column PRICE format $9999999999.99;
- -- WORKFLOW TABLES
- column ITEM_KEY format A08;
- column FLOW_PROCESS format A22;
- column RESULT_CODE format A15;
- column RESULT format A15;
- column ASSIGNED_USER format A10;
- column ERROR_NAME format A19;
- column PROCESS_NAME format A25;
- column ACTIVITY_NAME format A25;
- column ERROR_ACTIVITY_NAME format A31;
- column ACT_STATUS format A10;
- column HEAD_ID format A08;
- column LIN_ID format A08;
- column NOTIF_ID format 99999999;
- column ERROR_NAME format A14;
- column ERR_RETRY_ROLE format A14;
- column ERR_RETRY_USER format A14;
- column BEGIN_DATE format A18;
- column END_DATE format A18;
- column ORD_TYPE_NAME format A20;
- column CONSTANTOE format A12;
- column DEMAND_ID format 9999999999;
- column PARDEM_ID format 9999999999;
- column DS_HEADER_ID format 99999999;
- column DS_LINE format A08;
- column RSV_QTY format 9999999.99;
- column SAT_QTY format 9999999.99;
- column PND_QTY format 9999999.99;
- column REQUIRD_D format A15;
- column TY format 99999;
- column UP format 99999.99;
- column MRP format 99999.99;
- column ATP format 99999.99;
- column PICKING_HEADER_ID format 9999999999;
- column PICK_SLIP format 9999999999;
- column BATCH_ID format 99999999;
- column STATUS_CODE format A11;
- column BATCH_NAME format A30;
- column PICKING_LINE_ID format 9999999999;
- column CONFIRMED format A09;
- column RA_INTERFACE format A12;
- column IN_INTERFACE format A15;
- column PICK_LN_DTL_ID format 9999999999;
- column SUBINVENTORY format A12;
- column REV format A05;
- column LOT_NUMBER format A15;
- column SERIAL_NUMBER format A20;
- column LOCATION_ID format 9999999999;
- column ORG format A05;
- column ATO format A05;
- column OPT format A05;
- column CFG format A05;
- column SHIP_MC format A07;
- column SHIP_SET format 99999999;
- column ITEM_TYPE format A09;
- column LINE_TYPE format A09;
- column ENTER format A10;
- column CANCEL_ORD format A10;
- column CANCEL_LIN format A10;
- column CTG format A05;
- column INCL format A05;
- column CONF format A05;
- column WIP_RSV format 9999999;
- column WIP_COM format 9999999;
- column COMP_CODE format A10;
- column SRC_TYP format 9999999;
- column DEM_TYP format 9999999;
- column WIP_ID format B99999999;
- column JOB_NAME format A15;
- column JOB_STAT format A12;
- column UOM format A5;
- column REL_FL format A06;
- column SHIP_FL format A07;
- column FOR_REV format A07;
- column AUTOSCH format A06;
- column DEP_NAME format a10;
- column ORG_ID format 99999;
- column WSH_ID format 9999999;
- column SOURCE_CD format a12;
- column STAT_CODE format A11;
- column CLOSED_DT format A09;
- column FREIGHT format A09;
- column PLN_DEP_DT format A10;
- column ACT_DEP_DT format A10;
- column PLN_DEP_ID format 9999999999;
- column ACT_DEP_ID format 9999999999;
- column LOAD_ORD_FLG format A12;
- column DEL_SEL format A07;
- column DEP_SEL format A07;
- column REL_STAT format A08;
- column LIN_STAT format A08;
- column WIP_ENT_ID format 9999999999;
- column CONFIRM_D format A09;
- column INVC_STAT format A10;
- column INVC_INTF format A10;
- column SHIP_STAT format A10;
- column SHIP_INTF format A10;
- column LOT format A10;
- column REV format A05;
- column SERIAL_NUM format A10;
- column LOC_ID format 99999999;
- column RESV_FL format A07;
- column TRAN_FL format A07;
- column SCHED_STAT format A10;
- column INVOICE_TRIGGER format A15;
- column SOURCING_STATUS format A15;
- column INVOICING_STATUS format A16;
- column CANCELLED_FLAG format A14;
- column OPEN_FLAG format A09;
- column CONSOLIDATION_STATUS_CODE format A25;
- column CONSOLIDATION_PREF_FLAG format A23;
- column PURCHASE_ORDER_NUM format A18;
- column DEL_ID format 9999999;
- column DEL_NAME format A10;
- -- PO_REQUISITION_INTERFACE_ALL
- column AUTH_STATUS format A11;
- column DEST_TYPE format A10;
- column SRC_CODE format A11;
- column SRC_TYPE_CODE format A13;
- -- PO_REQUISITION_HEADERS_ALL
- column REQ_NUMBER format A10;
- column SUMMARY format A07;
- column XFR_OE_FLAG format A11;
- column REQ_TYPE format A11;
- column ENABLED format A07;
- column ITEM_DESC format A40;
- column CANC format A05;
- column ENC_FL format A06;
- column RFQ format A05;
- column SRC_TYPE format a09;
- column SRC_ORG format 9999999;
- -- PO_HEADERS
- column PO_NUM format A06;
- -- MTL_SUPPLY
- column SUP_TYPE format a08;
- -- MTL_RESERVATIONS
- column SHIP_READY format A12;
- column SS_TYPE_ID format A11;
- -- WSH_TRIPS
- column TRIP_ID format 9999999;
- column TRIP_NAME format A10;
- column PLND format A05;
- column VEH_NUM format A10;
- column CARR_ID format 9999999;
- column DET_Q format 99999;
- column DS_TYPE format 9999999;
- column ROUTE_ID format 99999999;
- column VEH_ORG_ID format 9999999999;
- -- WSH_TRIP_STOPS
- column STOP_ID format 99999999;
- column SEQ_NUM format 9999999;
- column STOP_LOC_ID format 99999999999;
- column PLN_DEP_DATE format A15;
- column PLN_ARV_DATE format A15;
- column ACT_DEP_DATE format A15;
- column ACT_ARV_DATE format A15;
- column PEND_INTERF format A11;
- -- WSH_DELIVERY_LEGS
- column LEG_ID format 9999999;
- column LOAD_TENDER_STAT format A15;
- -- WSH_NEW_DELIVERIES DEL
- column DEL_NAME format A12;
- column BOOKING_NUM format A12;
- column WAYBILL format A12;
- column ACCEPTED format A15;
- column PICKUP_DT format A15;
- column DROPOFF_DT format A15;
- -- WSH_DELIVERY_ASSIGNMENTS ASG
- column ACTIVE format A06;
- -- WSH_DELIVERY_DETAILS
- column REL_STATUS format A17;
- column STA format 99999;
- column STB format 99999;
- column HOLD_CODE format A09;
- column SMC format A05;
- column SUB format A09;
- column CUR_SUB format A09;
- column ORG_SUB format A09;
- column REV format A05;
- column LOT format A05;
- column SERIAL format A10;
- column LOC_ID format 99999999;
- column SHIP_METH format A10;
- column OMI format A05;
- column INI format A05;
- column MVT_STATUS format A10;
- column INV_INT format A07;
- column CONT_NAME format A15;
- column CONT_TYPE format A10;
- column UNIT_NUM format A08;
- column CONTAINER format A09;
- column REQ_DATE format A15;
- column MVT_STAT format A08;
- column DEL_DET_ID format 9999999999;
- column RELEASE_STAT format A15;
- column REQ_Q format 999999.99;
- column DLV_Q format 999999.99;
- column SRQ_Q format 999999.99;
- column BO_Q format 999999.99;
- --column CAN_QTY format 9999999;
- column SHIP_TO_ID format 999999999;
- column LINE_REQ_QTY format 999999999999;
- column TYPE format A05;
- column MO_LINE_ID format 9999999999;
- column DELIV_ID format 999999999;
- column SH_FROM_ID format 999999999;
- column SH_TO_ID format 99999999;
- --WSH_PICK_SLIP_V
- column LINE_STAT format A11;
- column FROM_SUB format A09;
- column TO_SUB format A09;
- column DETL_DATE format A15;
- column LINE_STATUS format A11;
- --MTL_TXN_REQUEST_LINES_V
- column REQ_NUM format A10;
- column MV_LINE_STAT format A14;
- column MO_NUMBER format A09;
- column MOVE_TYPE_NAME format A14;
- column TRNS_SRC_TYPE format A13;
- column TRNS_TYPE_NAME format A30;
- column TRNS_ACTION format A15;
- column LOT_NUM format A10;
- --MTL_MATERIAL_TRANSACTIONS_TEMP
- column ERROR_EXPL format A10;
- -- RA_CUSTOMER_TRX
- -- RA_CUSTOMER_TRX_LINES
- column ORD_LINE_NUM format 999999999999;
- column TRX_NUMBER format A10;
- column CONTEXT format A12;
- column Order_Num_1 format A11;
- column Order_Type_2 format A12;
- column Delivery_3 format A10;
- column WayBill_4 format A09;
- column Line_ID_5 format A09;
- column Pick_Line_Id_7 format A14;
- column Bill_Lading_8 format A13;
- column Warehouse_10 format A12;
- column SOURCE format A30;
- column TAX_FL format A06;
- column QTY_ORD format 9999999.99;
- column QTY format 9999999.99;
- column ORD_LINE_NUM format A12;
- column HEAD_CAT format A8;
- column CURR format A4;
- column TAX_EX_FL format A09;
- column TERR_SEG1 format A09;
- column TERR_SEG2 format A09;
- column TERR_SEG3 format A09;
- column MESSAGE_TEXT format A145;
- column INVALID_VALUE format A30;
- column STATUS format a8;
- column ERR_TYPE_KEY format a14;
- column ASGND_USER format a10;
- column ERR_PROCESS_NAME format a18;
- column ERR_ACTIVITY_NAME format a22;
- column hold_name format a22;
- column hold_type format a12;
- column WF_ACTIVITY format a15;
- column ENTITY format a8;
- column ENTITY2 format a8;
- column HOLD_UNTIL format a18;
- column RELEASE_REASON format a14;
- column H_REL format a5;
- column S_REL format a5;
- column AF format A5;
- column LIST_TYPE_CODE format a14;
- column UA format A5;
- column UF format A5;
- column AP format A5;
- column ARITH_OP format a8;
- column TAX_CODE format a12;
- column INF format A5;
- column EF format A5;
- column CHG_TY_CD format a9;
- column AC format A5;
- column PI format A5;
- column CD format A5;
- column LIST_LN_NO format a10;
- column LK format 99999;
- column PP format 99999;
- column MOD_LVL format a7;
- column PERC format 9999;
- column STATUS format a6;
- column msg_Source format a14;
- column error format a30;
- column ITEM_DESC format a25;
- column PRICE format $999999999.99
- column REQ_NUM_IK format A9;
- column ACCEPT_REQD format A10;
- column CLS_STAT format A08;
- column CONF_ORD format A08;
- column CURR_CODE format A05;
- column ENABLED format A07;
- column FROZEN format A06;
- column SUMM format A05;
- column TYPE format A10;
- column ITEM_KEY format A09;
- column SHIP_TO format 9999999;
- column PO_LINE format 9999;
- column FIRM format A05;
- column ITEM_DESC format A40;
- column PO_NUM_IK format A9;
- column ERROR_N format A7;
- column SRC_DOC format a9;
- column SHP_LINE_STATUS format a15;
- column RCV_Q format 99999;
- column TRANS_TYPE format A10;
- column INSPECT_STAT format A13;
- column INTF_SRC format A11;
- column SRC_DOC_CODE format A12;
- column QTY format 9999;
- column PROC_MODE format a10;
- column DEST_TYPE format a9;
- column INSP_STAT format a13;
- column INSP_SRC format a8;
- column PROC_STAT format a9;
- column RCPT_SRC format a8;
- column TRNS_STAT format a9;
- column TRNS_TYPE format a9;
- column error_wie format a100;
- column status format a9;
- column firm format 9999;
- column WIP_SUP_TYPE format a13;
- column JOB_NAME format a8;
- column TRANS_TYPE format a19;
- column SRC_CODE format a8;
- column PHS format 99999;
- column STAT_TY format 9999999;
- column STAT format 9999;
- column LOAD format 9999;
- column status format a9;
- column firm format 9999;
- column WIP_SUP_TYPE format a13;
- column JOB_NAME format a8;
- column TRANS_TYPE format a19;
- column SRC_CODE format a8;
- column PHS format 99999;
- column STAT_TY format 9999999;
- column STAT format 9999;
- column LOAD format 9999;
- column STOP_DESCRIPTION format A58;
- column GRS_WT format 999999;
- column FL_PER format 999.99;
- column VOL format 9999;
- column VOL_UOM format a07;
- column CF format A05;
- column WT_UOM format a06;
- column FOB_CODE format a11;
- column FRT_TERMS format a9;
- column LCK format 99999;
- column PROCESS format 9999999;
- column ERROR_CODE format A30;
- column ERROR_EXPL format A60;
- column FRT_NAME format a30;
- column FRT_TYPE format a15;
- column FRT_LEVEL format a15;
- column QTY format 9999;
- column PRM_Q format 99999;
- column DLV_Q format 99999;
- column DTL_Q format 99999;
- column LCK format A05;
- column PROCESS format A07;
- column ERROR_CODE format A11;
- column ERROR_EXPL format A30;
- column TRANS_TYPE format A11;
- column QTY format 9999;
- column LINE_NUM format 99999999;
- column BATCH_SOURCE format a20;
- column SO_LIN format a06;
- column AR_ID format 99999;
- column IR_ID format 99999;
- column WH_ID_10 format a08;
- column PA_ID_11 format a08;
- column C_RATE format 999999;
- column TR format 9999;
- column EF format A05;
- column INTF_LINE_ID format 99999999999;
- column CRD_Q format 99999;
- column PRICE format $9999999.99;
- column PO_NUMBER format A09;
- column COMP_FL format a07;
- column EXTD_AMT format $999,999.99;
- column REV_AMT format $999,999.99;
- column TF format A05;
- column SOURCE format A11;
- column INV_Q format 99999;
- column SHIP_VIA format A12;
- Set heading on
- WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
- prompt
- accept order_number_selected prompt 'Please enter Sales Order number: '
- prompt
- begin
- :v_error := 0;
- :v_order_num := '&order_number_selected';
- select count(*)
- into :v_head_cnt
- from oe_order_headers_all
- where
- order_number = :v_order_num;
- if :v_head_cnt = 0 then
- RAISE no_data_found;
- end if;
- if :v_head_cnt = 1 then
- select header_id
- into :v_header_id
- from oe_order_headers_all
- where order_number = :v_order_num;
- end if;
- exception
- when no_data_found then
- dbms_output.put_line('ERROR - Invalid order number entered');
- dbms_output.put_line('ACTION - Script execution must be aborted');
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- :v_error := 1;
- raise;
- when others then
- dbms_output.put_line('ERROR - Unable to retrieve order due to error: '||SQLERRM);
- dbms_output.put_line('ACTION - Script execution must be aborted');
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- :v_error := 1;
- raise;
- end;
- /
- -- spool &out_file;
- /* Display list of header_ids matching the order number entered */
- select
- ORD.HEADER_ID HEADER_ID,
- TYP.NAME ORDER_TYPE_NAME,
- ORD.ORDER_CATEGORY_CODE CATEGORY,
- ORD.ORG_ID ORG_ID,
- (select name
- from hr_operating_units
- where organization_id = nvl(ORD.ORG_ID,-99)) ORGANIZATION_NAME
- from
- OE_ORDER_HEADERS_ALL ORD,
- OE_TRANSACTION_TYPES_TL TYP,
- FND_LANGUAGES FLA
- where
- ORD.ORDER_NUMBER = :v_order_num
- and TYP.LANGUAGE = FLA.LANGUAGE_CODE
- and FLA.INSTALLED_FLAG = 'B'
- and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
- and :v_error = 0;
- prompt
- accept header_id_selected prompt 'Please enter HEADER_ID from list above (optional): '
- prompt
- /* Set client info context based on the org_id from sales order */
- begin
- select org_id
- into :v_op_unit
- from oe_order_headers_all ord
- where
- ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
- mo_global.set_policy_context(p_access_mode => 'S', p_org_id => :v_op_unit); -- by rodavid
- exception
- when no_data_found then
- dbms_output.put_line('ERROR - Invalid order number entered');
- dbms_output.put_line('ACTION - Script execution must be aborted');
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- :v_error := 1;
- raise;
- when others then
- dbms_output.put_line('ERROR - Unable to retrieve order due to error: '||SQLERRM);
- dbms_output.put_line('ACTION - Script execution must be aborted');
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- :v_error := 1;
- raise;
- end;
- /
- begin
- select count(*)
- into :v_line_tot
- from oe_order_lines_all
- where header_id = nvl('&header_id_selected',:v_header_id);
- if :v_line_tot = 0 then
- dbms_output.put_line('WARNING - Order selected does not have any lines');
- dbms_output.put_line('WARNING - Please hit CTL-C to abort');
- dbms_output.put_line('WARNING - If you chose to continue only Header information will be printed,');
- dbms_output.put_line('WARNING - all additional entries will be ignored.');
- :v_head_only := 'Y';
- else
- :v_head_only := 'N';
- end if;
- end;
- /
- /* Display all line_ids associated with this order number */
- select
- substr(LIN.LINE_ID,1,15) LINE_ID,
- substr(to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)),1,10) LINE_NUM,
- ITM.SEGMENT1 ITEM,
- substr(LIN.LINE_CATEGORY_CODE,1,10) lin_cat,
- nvl(LIN.ORDERED_QUANTITY,0) Order_QTY,
- LIN.ORDER_QUANTITY_UOM uom,
- substr(LIN.FLOW_STATUS_CODE,1,20) Line_status,
- nvl(LIN.SHIPPED_QUANTITY,0) shipped,
- nvl(LIN.FULFILLED_QUANTITY,0) fulfilled,
- nvl(LIN.INVOICED_QUANTITY,0) invoiced,
- nvl(LIN.CANCELLED_QUANTITY,0) cancelled
- from
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM
- where
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and LIN.OPTION_NUMBER IS NULL
- and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
- order by
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- /* Display any header or line sets associated with this order */
- PROMPT
- PROMPT OE_SETS (SET)
- select ST1.SET_ID SET_ID,
- ST1.SET_NAME SET_NAME,
- ST1.SET_TYPE SET_TYPE,
- ST1.HEADER_ID HEADER_ID,
- ST1.INVENTORY_ITEM_ID ITEM_ID,
- ST1.ORDERED_QUANTITY_UOM UOM,
- ST1.LINE_TYPE_ID LINE_TYPE_ID,
- nvl(LST.SYSTEM_REQUIRED_FLAG,'N') SYS_REQD,
- ST1.SET_STATUS STATUS,
- to_char(ST1.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') SCH_SHP_DT,
- to_char(ST1.SCHEDULE_ARRIVAL_DATE,'DD-MON-RR_HH24:MI:SS') SCH_ARV_DT,
- ST1.SHIP_FROM_ORG_ID SHIP_FROM,
- ST1.SHIP_TO_ORG_ID SHIP_TO_ID,
- ST1.SHIPMENT_PRIORITY_CODE SHIP_PRIORITY,
- ST1.FREIGHT_CARRIER_CODE CARRIER,
- ST1.SHIPPING_METHOD_CODE SHIP_METHOD,
- ST1.SHIP_TOLERANCE_ABOVE STA,
- ST1.SHIP_TOLERANCE_BELOW STB
- from OE_SETS ST1,
- OE_LINE_SETS LST
- where ST1.SET_ID = LST.SET_ID(+)
- and ST1.HEADER_ID = nvl('&header_id_selected',:v_header_id);
- prompt
- accept line_id_selected prompt 'Please enter LINE_ID from list above(leave blank for all lines): '
- begin
- if :v_line_tot > 0 then -- check for line_id
- begin
- select count(*)
- into :v_line_cnt
- from oe_order_lines_all
- where header_id = nvl('&header_id_selected',:v_header_id)
- and nvl('&line_id_selected',0) in (0,line_id);
- if :v_line_cnt = 0 then
- RAISE no_data_found;
- end if;
- exception
- when no_data_found then
- dbms_output.put_line('ERROR - Invalid line_id entered');
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- dbms_output.put_line('.');
- :v_error := 1;
- raise;
- when others then
- dbms_output.put_line('ERROR - Unable to retrieve order line due to error: '||SQLERRM);
- dbms_output.put_line('ACTION - Please hit CTL-C to exit');
- dbms_output.put_line('.');
- :v_error := 1;
- raise;
- end;
- end if;
- end;
- /
- WHENEVER SQLERROR CONTINUE;
- prompt
- accept do_analysis prompt 'Do you want validation performed on this order (Default=Y): '
- prompt
- prompt
- accept prt_wf prompt 'Do you want WorkFlow information printed? (Default=Y): '
- accept prt_price prompt 'Do you want Pricing information printed? (Default=Y): '
- accept prt_po prompt 'Do you want Purchasing information printed? (Default=Y): '
- accept prt_rec prompt 'Do you want Receiving information printed? (Default=Y): '
- accept prt_wip prompt 'Do you want Work In Progress information printed? (Default=Y): '
- accept prt_inv prompt 'Do you want Inventory information printed? (Default=Y): '
- accept prt_ar prompt 'Do you want Receivables information printed? (Default=Y): '
- prompt
- prompt Listing of tables for WMS could be extense, *** Note Default is No ***
- accept prt_wms prompt 'Do you want WMS information printed? (Default=N): '
- prompt
- prompt Listing of tables MTL_UNIT_TRANSACTIONS (MUT), WSH_SERIAL_NUMBERS (WSN)
- prompt and MTL_SERIAL_NUMBERS could be extense.
- accept det_cnt prompt 'Do you want complete listing (Y-All records N-only the first 10 records)? (Default=Y): '
- prompt
- set heading off
- def version_code='12.0.4.140610'
- def c1='_'
- def pref='HTMomse12'
- def suff='.html'
- def out_file='&pref&c1&order_number_selected&suff'
- -- Printout the filename and location
- column DUMMY new_value out_dir noprint
- column DUMMY2 new_value host_nam noprint
- select substr(value,1,instr(value||',',',')-1) DUMMY
- from v$parameter where name = 'utl_file_dir';
- select substr(machine,1,20) DUMMY2
- from v$session where upper(program) like '%SMON%';
- Prompt Output file created on Database Server: "&host_nam"
- Prompt Complete path and filename: "&out_dir/&out_file"
- set define '!'
- -- Tables
- def std='<table width=100% border=1 cellpadding=1 cellspacing=1>'
- def et=</Table>
- -- headers
- def sh='<TR bgcolor="#cccc99"><td><font face="arial" color="#336699"> <b><i>'
- def dh='</i></b></font></td><td><font face="arial" color="#336699"> <b><i>'
- def dhr='</i></b></font></td><td><font face="arial" color="#ff0000"> <b><i>'
- def eh='</i></b></font></td></tr>'
- -- def sh='<TR bgcolor="#cccc99"><td><b><i>'
- -- def dh='</i></b></td><td><b><i>'
- -- def eh='</i></b></td></tr>'
- -- lines
- def sld='<tr bgcolor="#f7f7e7"><td><font face="arial" size="-1">'
- def d='</font></td><td><font face="arial" size="-1">'
- def el='</font></td></tr>'
- -- def sld='<tr bgcolor="#f7f7e7"><td>'
- -- def d='</td><td>'
- -- def el='</td></tr>'
- -- otros
- def f=<br> -- eol
- def b=<b> -- bold
- def eb=</b> -- end bold
- def sp=' ' -- space
- set null ' '
- set define '&'
- -- Start of printout
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is -- to print fields
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- function n2(v varchar2,v2 varchar2) return varchar2 is -- to print parameters
- begin
- if v is null then
- return v2;
- else
- return v;
- end if;
- end n2;
- begin
- -- Creation of output file
- -- SQL fails when parameter is loo long
- -- select substr(value,1,instr(value||',',',')-1) into dirname
- -- from v$parameter where name = 'utl_file_dir';
- select substr(value,1,decode(instr(value,','),0,length(value),instr(value,',')-1)) into dirname
- from v$parameter where name = 'utl_file_dir';
- -- handle := UTL_FILE.FOPEN(dirname,dirname||'/&out_file','W',32000);
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','W',32000);
- /* HTML header information */
- UTL_FILE.PUT_LINE(handle,'<html>');
- UTL_FILE.PUT_LINE(handle,'<head>');
- UTL_FILE.PUT_LINE(handle,'<title> &out_file </title>');
- UTL_FILE.PUT_LINE(handle,'</head>');
- UTL_FILE.PUT_LINE(handle,'<body background=#ffffff>');
- UTL_FILE.PUT_LINE(handle,'<font face="arial" color="#336699"> <b><i>');
- -- DataBase name, creation date
- -- User and time script execution
- UTL_FILE.PUT_LINE(handle,'&std &sh DATABASE IDENTIFICATION &dh SCRIPT EXECUTION (Ver. &version_code) &eh');
- select '&sld &b DB Name: &eb '||name||' - &b Release: &eb '||substr(release_name,1,10)||' &d'||
- '&b Script run at Date/Time: &eb'||to_char(sysdate,'DD-MON-RR_HH24:MI:SS')||'&el'||
- '&sld &b Creation Date: &eb'||to_char(created,'DD-MON-RR_HH24:MI:SS')||'&d'
- into text
- from V$DATABASE, fnd_product_groups;
- UTL_FILE.PUT_LINE(handle,text);
- select '&b USER is: '||username into text from user_users;
- UTL_FILE.PUT_LINE(handle,text);
- UTL_FILE.PUT_LINE(handle,'&eb &el &et &f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh The test will be run with the following parameters &dh Sections being printed: &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld &b Order Number = &eb &order_number_selected &d WorkFlow = '||n2('&prt_wf','Y')||' &d Pricing = '||n2('&prt_price','Y')||' &el');
- UTL_FILE.PUT_LINE(handle,'&sld &b Header Id = &eb &header_id_selected &d Purchasing = '||n2('&prt_po','Y')||' &d Receiving = '||n2('&prt_rec','Y')||' &el');
- if :v_head_only = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&sld &b Line Id = &eb '||n2('','Header Only')||' &d Work in Progress = '||n2('&prt_wip','Y')||' &d Inventory = '||n2('&prt_inv','Y')||' &el');
- else
- UTL_FILE.PUT_LINE(handle,'&sld &b Line Id = &eb '||n2('&line_id_selected','All Lines')||' &d Work in Progress = '||n2('&prt_wip','Y')||' &d Inventory = '||n2('&prt_inv','Y')||' &el');
- end if;
- UTL_FILE.PUT_LINE(handle,'&sld &b Validation = &eb '||n2('&do_analysis','Y')||' &d Receivables = '||n2('&prt_ar','Y')||' &d Serial Num. Details = '||n2('&det_cnt','Y')||' &el');
- UTL_FILE.PUT_LINE(handle,'&sld &sp &d WMS info = '||n2('&prt_wms','N')||' &d &sp &el');
- UTL_FILE.PUT_LINE(handle,'&et &f &f');
- -- Index for Major tables direct access
- UTL_FILE.PUT_LINE(handle,'&std &sh INDEX FOR MAJOR TABLES DIRECT ACCESS &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#OE_SETS">OE_SETS (SET)</a> &d <a HREF="#WSH_TRIPS">WSH_TRIPS (TRP)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#OE_ORDER_HEADERS">OE_ORDER_HEADERS (ORD)</a> &d <a HREF="#WSH_TRIP_STOPS">WSH_TRIP_STOPS (STP)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#OE_ORDER_LINES">OE_ORDER_LINES (LIN)</a> &d <a HREF="#WSH_NEW_DELIVERIES">WSH_NEW_DELIVERIES (DEL)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_RESERVATIONS">MTL_RESERVATIONS (RES)</a> &d <a HREF="#WSH_DELIVERY_DETAILS">WSH_DELIVERY_DETAILS (DET)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_TRANSACTIONS_INTERFACE">MTL_TRANSACTIONS_INTERFACE (MTI)</a> &d');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#WMS_RULES">WMS_RULES</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_MATERIAL_TRANSACTIONS_TEMP">MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES</a> &d');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_INTERFACE_LINES">RA_INTERFACE_LINES (RAI)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_MATERIAL_TRANSACTIONS">MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES</a> &d');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_CUSTOMER_TRX">RA_CUSTOMER_TRX (RAH) - INVOICE HEADERS</a> &el');
- UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_TXN_REQUEST_LINES_V">MTL_TXN_REQUEST_LINES_V (MOV)</a> &d ');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_CUSTOMER_TRX_LINES">RA_CUSTOMER_TRX_LINES (RAL)</a> &el');
- UTL_FILE.PUT_LINE(handle,'&et &f &f');
- -- Parameters, initial listings from screen
- UTL_FILE.PUT_LINE(handle,'&std &sh HEADER_ID &dh ORDER_TYPE_NAME &dh CATEGORY &dh ORG_ID &dh ORGANIZATION_NAME &el');
- Declare
- cursor l_orders is
- select
- ORD.HEADER_ID Hea_I,
- TYP.NAME OT_NAME,
- ORD.ORDER_CATEGORY_CODE CAT_co,
- ORD.ORG_ID ORG_I
- from
- OE_ORDER_HEADERS_ALL ORD,
- OE_TRANSACTION_TYPES_TL TYP,
- FND_LANGUAGES FLA
- where
- ORD.ORDER_NUMBER = :v_order_num
- and TYP.LANGUAGE = FLA.LANGUAGE_CODE
- and FLA.INSTALLED_FLAG = 'B'
- and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
- and :v_error = 0;
- or_name varchar2(100);
- begin
- for lo in l_orders
- loop
- -- Organization Name
- select name
- into or_name
- from hr_operating_units
- where organization_id = nvl(lo.ORG_I,-99);
- -- Print line to Output file
- utl_file.put_line(handle,'&sld'||n(lo.hea_i)||'&d'||n(lo.ot_name)||'&d');
- utl_file.put_line(handle,n(lo.Cat_co)||'&d'||n(lo.org_i)||'&d'||n(or_name)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f &b LINE_IDs ASSOCIATED WITH THIS ORDER NUMBER &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh LINE NUMBER &dh LINE_ID &dh ITEM &dh ORDER QTY &dh UOM &dh LINE STATUS &dh SHIP QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'FULFILL QTY &dh INVOICE QTY &dh CANCEL QTY &dh OPEN &dh SHIP &dh CANC &dh SI &dh SHIP FROM &dh ');
- UTL_FILE.PUT_LINE(handle,'LINE TYPE &dh LINE CATEG &dh INVOICED &dh ARRIVAL SET_ID &dh SHIP SET_ID &dh LINE SET_ID &eh');
- Declare
- cursor l_lines_ord is
- select
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE_NUM,
- LIN.LINE_ID LINE_ID,
- ITM.SEGMENT1 ITEM,
- nvl(LIN.ORDERED_QUANTITY,0) ORD_QTY,
- LIN.ORDER_QUANTITY_UOM Orduom,
- substr(LIN.FLOW_STATUS_CODE,1,22) Line_st,
- nvl(LIN.SHIPPED_QUANTITY,0) shpq,
- nvl(LIN.FULFILLED_QUANTITY,0) fulq,
- nvl(LIN.INVOICED_QUANTITY,0) invq,
- nvl(LIN.CANCELLED_QUANTITY,0) canq,
- nvl(LIN.OPEN_FLAG,'N') openf,
- nvl(LIN.SHIPPABLE_FLAG,'N') shipf,
- nvl(LIN.CANCELLED_FLAG,'N') canf,
- nvl(LIN.SHIPPING_INTERFACED_FLAG,'N') SI,
- LIN.SHIP_FROM_ORG_ID shipfrom,
- LIN.LINE_TYPE_ID LINE_TYPE_ID,
- LIN.LINE_CATEGORY_CODE lin_cat,
- nvl(LIN.INVOICE_INTERFACE_STATUS_CODE,'N') INV_INT_STAT,
- LIN.ARRIVAL_SET_ID ARRIV_SET_ID,
- LIN.SHIP_SET_ID SHIP_SET_ID,
- LIN.LINE_SET_ID LINE_SET_ID
- from
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM
- where
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and LIN.OPTION_NUMBER IS NULL
- and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
- order by
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for ll in l_lines_ord
- loop
- utl_file.put_line(handle,'&sld'||n(ll.LINE_NUM)||'&d'||n(ll.LINE_ID)||'&d'||n(ll.ITEM)||'&d');
- utl_file.put_line(handle,n(ll.ORD_QTY)||'&d'||n(ll.Orduom)||'&d');
- utl_file.put_line(handle,n(ll.Line_st)||'&d'||n(ll.shpq)||'&d');
- utl_file.put_line(handle,n(ll.fulq)||'&d'||n(ll.invq)||'&d');
- utl_file.put_line(handle,n(ll.canq)||'&d'||n(ll.openf)||'&d');
- utl_file.put_line(handle,n(ll.shipf)||'&d'||n(ll.canf)||'&d');
- utl_file.put_line(handle,n(ll.SI)||'&d'||n(ll.shipfrom)||'&d');
- utl_file.put_line(handle,n(ll.LINE_TYPE_ID)||'&d'||n(ll.LIN_CAT)||'&d');
- utl_file.put_line(handle,n(ll.INV_INT_STAT)||'&d'||n(ll.ARRIV_SET_ID)||'&d');
- utl_file.put_line(handle,n(ll.SHIP_SET_ID)||'&d'||n(ll.LINE_SET_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- /* Display any header or line sets associated with this order */
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_SETS"> OE_SETS (SET) </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh SET_ID &dh SET_NAME &dh SET_TYPE &dh HEADER_ID &dh LINE_ID &dh ITEM_ID &dh UOM &dh LINE_TYPE_ID &dh SYS_REQD &dh ');
- UTL_FILE.PUT_LINE(handle,'STATUS &dh SCH_SHP_DT &dh SCH_ARV_DT &dh SHIP_FROM &dh SHIP_TO_ID &dh SHIP_PRIORITY &dh CARRIER &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP_METHOD &dh STA &dh STB &eh');
- Declare
- cursor l_oe_sets is
- select ST1.SET_ID SET_ID,
- ST1.SET_NAME SET_NAME,
- ST1.SET_TYPE SET_TYPE,
- ST1.HEADER_ID HEADER_ID,
- LST.LINE_ID LINE_ID,
- ST1.INVENTORY_ITEM_ID ITEM_ID,
- ST1.ORDERED_QUANTITY_UOM UOM,
- ST1.LINE_TYPE_ID LINE_TYPE_ID,
- nvl(LST.SYSTEM_REQUIRED_FLAG,'N') SYS_REQD,
- ST1.SET_STATUS STATUS,
- to_char(ST1.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') SCH_SHP_DT,
- to_char(ST1.SCHEDULE_ARRIVAL_DATE,'DD-MON-RR_HH24:MI:SS') SCH_ARV_DT,
- ST1.SHIP_FROM_ORG_ID SHIP_FROM,
- ST1.SHIP_TO_ORG_ID SHIP_TO_ID,
- ST1.SHIPMENT_PRIORITY_CODE SHIP_PRIORITY,
- ST1.FREIGHT_CARRIER_CODE CARRIER,
- ST1.SHIPPING_METHOD_CODE SHIP_METHOD,
- ST1.SHIP_TOLERANCE_ABOVE STA,
- ST1.SHIP_TOLERANCE_BELOW STB
- from OE_SETS ST1,
- OE_LINE_SETS LST
- where ST1.SET_ID = LST.SET_ID(+)
- and ST1.HEADER_ID = nvl('&header_id_selected',:v_header_id);
- begin
- for ll in l_oe_sets
- loop
- utl_file.put_line(handle,'&sld'||n(ll.SET_ID)||'&d'||n(ll.SET_NAME)||'&d');
- utl_file.put_line(handle,n(ll.SET_TYPE)||'&d'||n(ll.HEADER_ID)||'&d');
- utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(ll.UOM)||'&d'||n(ll.LINE_TYPE_ID)||'&d');
- utl_file.put_line(handle,n(ll.SYS_REQD)||'&d'||n(ll.STATUS)||'&d');
- utl_file.put_line(handle,n(ll.SCH_SHP_DT)||'&d'||n(ll.SCH_ARV_DT)||'&d');
- utl_file.put_line(handle,n(ll.SHIP_FROM)||'&d'||n(ll.SHIP_TO_ID)||'&d');
- utl_file.put_line(handle,n(ll.SHIP_PRIORITY)||'&d'||n(ll.CARRIER)||'&d');
- utl_file.put_line(handle,n(ll.SHIP_METHOD)||'&d'||n(ll.STA)||'&d');
- utl_file.put_line(handle,n(ll.STB)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et &f &f');
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_ORDER_HEADERS"> OE_ORDER_HEADERS (ORD) </a> <a HREF="#OOH">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh HEADER_ID &dh ORD_NUM &dh TYPE_ID &dh TYPE_NAME &dh FLOW_PROCESS &dh FLOW_CODE &dh BK &dh OP &dh CN &dh SP &dh ');
- UTL_FILE.PUT_LINE(handle,'CUST_ID &dh CUST_NAME &dh SHIP_ID &dh SHIP_TO &dh BILL_ID &dh ORD_DATE &dh WH_ID &dh ORG &dh ');
- UTL_FILE.PUT_LINE(handle,'CAT &dh PL_ID &dh PL_NAME &dh PO_NUMBER &dh STA &dh STB &dh OPERATING_UNIT &eh');
- declare
- cursor header1 is
- select distinct ORD.HEADER_ID head_id,
- ORD.ORDER_NUMBER ord_no,
- ORD.ORDER_TYPE_ID ord_t,
- TYP.NAME ord_tna,
- ORD.SOLD_TO_ORG_ID cus_id,
- substr(CUS.CUSTOMER_NAME,1,20) cus_na,
- ORD.SHIP_TO_ORG_ID ship_t,
- substr(SHP.NAME,1,12) ship_tn,
- ORD.INVOICE_TO_ORG_ID bill_t,
- to_char(ORD.ORDERED_DATE,'DD-MON-RR_HH24:MI:SS') ord_d,
- nvl(ORD.BOOKED_FLAG,'N') book_g,
- nvl(ORD.OPEN_FLAG,'N') open_f,
- nvl(ORD.CANCELLED_FLAG,'N') can_f,
- nvl(ORD.PARTIAL_SHIPMENTS_ALLOWED,'Y') spa,
- ORD.SHIP_FROM_ORG_ID or_id,
- PAR.ORGANIZATION_CODE or_co,
- ORD.FLOW_STATUS_CODE fl_co,
- ORD.ORDER_CATEGORY_CODE cat_co,
- ORD.PRICE_LIST_ID pr_id,
- PRC.NAME pr_na,
- ORD.CUST_PO_NUMBER po_no,
- ORD.SHIP_TOLERANCE_ABOVE shta,
- ORD.SHIP_TOLERANCE_BELOW shtb,
- HR.NAME oper_unit
- from
- OE_ORDER_HEADERS ORD,
- MTL_PARAMETERS PAR,
- OE_TRANSACTION_TYPES_V TYP,
- AR_CUSTOMERS CUS,
- OE_SHIP_TO_ORGS_V SHP,
- QP_LIST_HEADERS_V PRC,
- HR_OPERATING_UNITS HR
- where
- ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ORD.SHIP_FROM_ORG_ID = PAR.ORGANIZATION_ID(+)
- and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID(+)
- and ORD.SHIP_TO_ORG_ID = SHP.SITE_USE_ID(+)
- and ORD.SOLD_TO_ORG_ID = CUS.CUSTOMER_ID(+)
- and ORD.PRICE_LIST_ID = PRC.LIST_HEADER_ID(+)
- and ORD.ORG_ID = HR.ORGANIZATION_ID(+);
- r_ord_t varchar2(100);
- r_open_l number;
- r_canc_l number;
- r_canopen_l number;
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- dbms_output.enable(1000000);
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..60
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(10).descrip := ' 10. Order_Header has associated lines with OPEN and CANCELLED flags set to Y.';
- msg(15).descrip := ' 15. Order_Header status is BOOKED but "Book" activity has not been completed.';
- msg(20).descrip := ' 20. Order_Header status is CLOSED but "Close" activity has not been completed.';
- msg(21).descrip := ' 21. Order_Header status is CLOSED but exist open lines associated to this header.';
- msg(22).descrip := ' 22. All associated lines has been closed but Order_Header is not ready to CLOSE.';
- msg(50).descrip := ' 50. No WorkFlow Process associated to this line.';
- msg(51).descrip := ' 51. Incorrect WorkFlow Process associated to this Order Header.';
- msg(52).descrip := ' 52. Incorrect WorkFlow Activity associated to this Order Header.';
- msg(53).descrip := ' 53. Incorrect WorkFlow Activity Result for this Order Header.';
- msg(54).descrip := ' 54. Incorrect WorkFlow Activity Status for this Order Header.';
- end if;
- for h in header1
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- --
- -- Gather general information
- --
- begin
- -- get Order_Header Flow name
- select WFA1.DISPLAY_NAME
- into r_ord_t
- FROM WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1
- where WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = h.head_id
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID(+)
- and WFP.PROCESS_NAME = 'ROOT'
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select nvl(max(VERSION),-1)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME);
- -- Select current activity
- select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
- LKP.MEANING
- into :r_pro_na, :r_act_na, :r_result, :r_act_s
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = h.head_id
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and Execution_time = (Select Max(execution_time) from WF_ITEM_ACTIVITY_STATUSES
- where ITEM_TYPE = 'OEOH'
- and item_key = h.head_id);
- exception
- when no_data_found then
- :r_flag := :r_flag || '50 ';
- msg(50).flag := '1';
- end;
- -- Check if order has open lines and count also cancelled lines
- begin
- select sum(decode(open_flag,'Y',1,0)),sum(decode(cancelled_flag,'Y',1,0)),sum(decode(cancelled_flag,'Y',decode(open_flag,'Y',1,0),0))
- into r_open_l, r_canc_l, r_canopen_l
- from oe_order_lines_all
- where header_id = h.head_id
- group by header_id;
- exception
- when no_data_found then
- r_open_l := 0;
- r_canc_l := 0;
- r_canopen_l := 0;
- end;
- ---
- -- Basic Verifications
- --
- -- Open lines have cancelled flag showing as open
- if r_canopen_l > 0 then
- :r_flag := :r_flag || '10 ';
- msg(10).flag := '1';
- end if;
- -- All lines closed but Order Header status is not CLOSED and WF is NOT waiting to close.
- if r_open_l = 0 -- no open lines
- and h.fl_co <> 'CLOSED' then
- if :r_pro_na = 'Close - Order' -- check current status
- and :r_act_s = 'Deferred' then
- null; -- OK just waiting for month end
- else
- :r_flag := :r_flag || '22 ';
- msg(22).flag := '1';
- end if;
- end if;
- ---
- -- Verifications for Order Header on ENTERED status
- ---
- If h.fl_co = 'ENTERED' then
- -- verify current WF status
- if :r_pro_na <> 'Book - Order, Manual' then
- :r_flag := :r_flag || '51 ';
- msg(51).flag := '1';
- elsif :r_act_na <> 'Book - Eligible' then
- :r_flag := :r_flag || '52 ';
- msg(52).flag := '1';
- elsif :r_result is not null then
- :r_flag := :r_flag || '53 ';
- msg(53).flag := '1';
- elsif :r_act_s <> 'Notified' then
- :r_flag := :r_flag || '54 ';
- msg(54).flag := '1';
- end if;
- end if; -- ENTERED
- ---
- -- Verifications for Order Header on BOOKED status
- ---
- If h.fl_co = 'BOOKED' then
- -- Check is Book activity has been completed
- begin
- select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
- LKP.MEANING
- into :r_pro_na, :r_act_na, :r_result, :r_act_s
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = h.head_id
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFA1.DISPLAY_NAME = 'Book';
- exception
- when no_data_found then
- :r_flag := :r_flag || '15 ';
- msg(15).flag := '1';
- end;
- if :r_act_na = 'Book' then
- if :r_result = 'Complete'
- and :r_act_s = 'Complete' then
- null; -- status is OK
- else
- :r_flag := :r_flag || '15 ';
- msg(15).flag := '1';
- end if;
- end if;
- end if; -- BOOKED
- ---
- -- Verifications for Order Header on CLOSED status
- ---
- If h.fl_co = 'CLOSED' then
- -- verify current WF status
- if :r_pro_na <> r_ord_t then
- :r_flag := :r_flag || '51 ';
- msg(51).flag := '1';
- elsif :r_act_na <> 'End' then
- :r_flag := :r_flag || '52 ';
- msg(52).flag := '1';
- elsif :r_result <> 'Null' then
- :r_flag := :r_flag || '53 ';
- msg(53).flag := '1';
- elsif :r_act_s <> 'Complete' then
- :r_flag := :r_flag || '54 ';
- msg(54).flag := '1';
- end if;
- -- Get status for CLOSE activity
- begin
- select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
- LKP.MEANING
- into :r_pro_na, :r_act_na, :r_result, :r_act_s
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = h.head_id
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFA1.DISPLAY_NAME = 'Close';
- exception
- when no_data_found then
- :r_flag := :r_flag || '20 ';
- msg(20).flag := '1';
- end;
- -- verify CLOSE activity completed
- if :r_act_na = 'Close' then
- if :r_result = 'Complete'
- and :r_act_s = 'Complete' then
- null; -- status is OK
- else
- :r_flag := :r_flag || '20 ';
- msg(20).flag := '1';
- end if;
- end if;
- -- check for open lines
- if r_open_l > 0 then
- :r_flag := :r_flag || '21 ';
- msg(21).flag := '1';
- end if;
- end if; -- CLOSED
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#OHERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,n(h.head_id)||'&d'||n(h.ord_no)||'&d');
- utl_file.put_line(handle,n(h.ord_t)||'&d'||n(h.ord_tna)||'&d');
- utl_file.put_line(handle,n(r_ord_t)||'&d'||n(h.fl_co)||'&d');
- utl_file.put_line(handle,n(h.book_g)||'&d'||n(h.open_f)||'&d');
- utl_file.put_line(handle,n(h.can_f)||'&d'||n(h.spa)||'&d');
- utl_file.put_line(handle,n(h.cus_id)||'&d'||n(h.cus_na)||'&d');
- utl_file.put_line(handle,n(h.ship_t)||'&d'||n(h.ship_tn)||'&d');
- utl_file.put_line(handle,n(h.bill_t)||'&d'||n(h.ord_d)||'&d');
- utl_file.put_line(handle,n(h.or_id)||'&d'||n(h.or_co)||'&d');
- utl_file.put_line(handle,n(h.cat_co)||'&d'||n(h.pr_id)||'&d');
- utl_file.put_line(handle,n(h.pr_na)||'&d'||n(h.po_no)||'&d');
- utl_file.put_line(handle,n(h.shta)||'&d'||n(h.shtb)||'&d');
- utl_file.put_line(handle,n(h.oper_unit)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="OHERR">Warning List:</a> &eb &f');
- for i in 1..60
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- if UPPER(nvl('&prt_wf','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER STATUS &f');
- UTL_FILE.PUT_LINE(handle,'&std');
- UTL_FILE.PUT_LINE(handle,'&sh PROCESS_NAME &dh ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh NOTIF_ID &dh INT_PROCESS_NAME &dh INT_ACTIVITY_NAME &dh INT_RESULT_CODE &dh BEGIN_DATE &dh END_DATE &dh ERROR_NAME &eh');
- Declare
- cursor l_wf_order is
- select WFA.DISPLAY_NAME Process,
- WFA1.DISPLAY_NAME Activity,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) Result,
- LKP.MEANING Act_status,
- WFS.NOTIFICATION_ID Notif,
- WFP.PROCESS_NAME I_process,
- WFP.ACTIVITY_NAME I_activity,
- WFS.ACTIVITY_RESULT_CODE I_Act_Res_code,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') Begin_d,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') End_d,
- WFS.ERROR_NAME error_name
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- order by WFS.ITEM_KEY,
- WFS.BEGIN_DATE,
- EXECUTION_TIME;
- begin
- for ll in l_wf_order
- loop
- utl_file.put_line(handle,'&sld'||n(ll.Process)||'&d'||n(ll.Activity)||'&d');
- utl_file.put_line(handle,n(ll.Result)||'&d'||n(ll.Act_status)||'&d');
- utl_file.put_line(handle,n(ll.Notif)||'&d'||n(ll.I_process)||'&d');
- utl_file.put_line(handle,n(ll.I_activity)||'&d'||n(ll.I_Act_Res_code)||'&d');
- utl_file.put_line(handle,n(ll.Begin_d)||'&d');
- utl_file.put_line(handle,n(ll.End_d)||'&d'||n(ll.Error_name)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER NOTIFICATION INFORMATION (WFN)&f');
- UTL_FILE.PUT_LINE(handle,'&std &sh NOTIF_ID &dh TO_USER &dh ORIG_RECIP &dh RECIP_ROLE &dh MAIL_STAT &dh MESSAGE_NAME &dh STATUS &dh SUBJECT &eh');
- Declare
- cursor l_wf_ord_noti is
- select WFN.NOTIFICATION_ID NOTIF_ID,
- WFN.TO_USER TO_USER,
- WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
- WFN.RECIPIENT_ROLE RECIP_ROLE,
- WFN.MAIL_STATUS MAIL_STAT,
- WFN.MESSAGE_NAME MESSAGE_NAME,
- WFN.STATUS STATUS,
- WFN.SUBJECT SUBJECT
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_NOTIFICATIONS WFN
- where WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
- and WFS.NOTIFICATION_ID is not null
- and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
- order by WFS.ITEM_KEY,
- WFS.BEGIN_DATE,
- EXECUTION_TIME;
- begin
- for ll in l_wf_ord_noti
- loop
- utl_file.put_line(handle,'&sld'||n(ll.NOTIF_ID)||'&d'||n(ll.TO_USER)||'&d');
- utl_file.put_line(handle,n(ll.ORIG_RECIP)||'&d'||n(ll.RECIP_ROLE)||'&d');
- utl_file.put_line(handle,n(ll.MAIL_STAT)||'&d'||n(ll.MESSAGE_NAME)||'&d');
- utl_file.put_line(handle,n(ll.STATUS)||'&d'||n(ll.SUBJECT)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- /*
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER SKIP INFORMATION (WFSKIP)&f');
- UTL_FILE.PUT_LINE(handle,'&std &sh NOTIF_ID &dh TO_USER &dh ORIG_RECIP &dh RECIP_ROLE &dh MAIL_STAT &dh MESSAGE_NAME &dh STATUS &dh SUBJECT &eh');
- Declare
- r_exist number;
- begin
- select count(*)
- into r_exist
- from all_tables
- where table_name = 'ONT_WF_SKIP_LOG';
- if r_exist = 0 then
- utl_file.put_line(handle,'&et Table ONT_WF_SKIP_LOG is not present on this instance: &f');
- end if;
- end;
- Declare
- cursor l_wf_ord_skip is
- select WFS.HEADER_ID HEADER_ID,
- WFA.DISPLAY_NAME DISPLAY_NAME,
- to_char(WFS.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CRE_DATE,
- WFS.USER_ID USER_ID,
- WFS.RESPONSIBILITY_ID RESPONSIBILITY_ID,
- WFS.APPLICATION_ID APPLICATION_ID
- from ONT_WF_SKIP_LOG WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA
- where WFS.LINE_ID is null
- and WFS.HEADER_ID = nvl('&header_id_selected',to_char(:v_header_id))
- and WFS.ACTIVITY_ID = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- order by WFS.HEADER_ID,
- WFS.CREATION_DATE;
- begin
- for ll in l_wf_ord_skip
- loop
- utl_file.put_line(handle,'&sld'||n(ll.HEADER_ID)||'&d'||n(ll.DISPLAY_NAME)||'&d');
- utl_file.put_line(handle,n(ll.CRE_DATE)||'&d'||n(ll.USER_ID)||'&d');
- utl_file.put_line(handle,n(ll.RESPONSIBILITY_ID)||'&d'||n(ll.APPLICATION_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et'); */
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER LEVEL ERRORS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PROCESS_NAME &dh ERROR_ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh ERROR_NAME &dh ERROR_MESSAGE &dh ERROR_STACK &eh');
- Declare
- cursor l_wf_ord_err is
- select WFA.DISPLAY_NAME Process,
- WFA1.DISPLAY_NAME Activity,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) result,
- LKP.MEANING status,
- WFS.ERROR_NAME err_name,
- WFS.ERROR_MESSAGE err_mess,
- WFS.ERROR_STACK err_stack
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'OEOH'
- and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFS.ACTIVITY_STATUS = 'ERROR'
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for ll in l_wf_ord_err
- loop
- utl_file.put_line(handle,'&sld'||n(ll.Process)||'&d'||n(ll.Activity)||'&d');
- utl_file.put_line(handle,n(ll.result)||'&d'||n(ll.status)||'&d');
- utl_file.put_line(handle,n(ll.err_name)||'&d'||n(ll.err_mess)||'&d');
- utl_file.put_line(handle,n(ll.err_stack)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- -- break on ERR_TYPE_KEY skip 2;
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ACTIVITY STATUS FOR ORDER ERROR PROCESS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh ERR_TYPE_KEY &dh ERR_PROCESS_NAME &dh ERR_ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh NOTIF_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ASGND_USER &dh BEGIN_DATE &dh END_DATE &eh');
- Declare
- cursor l_wf_ord_erp is
- select WFS.ITEM_TYPE || '-' || WFS.ITEM_KEY ERR_TYPE_KEY,
- WFA.DISPLAY_NAME ERR_PROCESS_NAME,
- WFA1.DISPLAY_NAME ERR_ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.NOTIFICATION_ID NOTIF_ID,
- WFS.ASSIGNED_USER ASGND_USER,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP,
- WF_ITEMS WFI
- where
- WFS.ITEM_TYPE = WFI.ITEM_TYPE
- and WFS.item_key = WFI.ITEM_KEY
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFI.PARENT_ITEM_TYPE = 'OEOH'
- and WFI.PARENT_ITEM_KEY = nvl('&header_id_selected',to_char(:v_header_id))
- and WFI.ITEM_TYPE in (select WFAE.ERROR_ITEM_TYPE
- from WF_ITEM_ACTIVITY_STATUSES WFSE,
- WF_PROCESS_ACTIVITIES WFPE,
- WF_ACTIVITIES_VL WFAE,
- WF_ACTIVITIES_VL WFA1E
- where
- WFSE.ITEM_TYPE = 'OEOH'
- and WFSE.ITEM_KEY = nvl('&header_id_selected',to_char(:v_header_id))
- and WFSE.PROCESS_ACTIVITY = WFPE.INSTANCE_ID
- and WFPE.PROCESS_ITEM_TYPE = WFAE.ITEM_TYPE
- and WFPE.PROCESS_NAME = WFAE.NAME
- and WFPE.PROCESS_VERSION = WFAE.VERSION
- and WFPE.ACTIVITY_ITEM_TYPE = WFA1E.ITEM_TYPE
- and WFPE.ACTIVITY_NAME = WFA1E.NAME
- and WFA1E.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2E
- where WF2E.ITEM_TYPE = WFPE.ACTIVITY_ITEM_TYPE
- and WF2E.NAME = WFPE.ACTIVITY_NAME)
- and WFSE.ACTIVITY_STATUS = 'ERROR')
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for ll in l_wf_ord_erp
- loop
- utl_file.put_line(handle,'&sld'||n(ll.ERR_TYPE_KEY)||'&d'||n(ll.ERR_PROCESS_NAME)||'&d');
- utl_file.put_line(handle,n(ll.ERR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
- utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.NOTIF_ID)||'&d');
- utl_file.put_line(handle,n(ll.ASGND_USER)||'&d'||n(ll.BEGIN_DATE)||'&d');
- utl_file.put_line(handle,n(ll.END_DATE)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_wf
- end if; -- v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- UTL_FILE.PUT_LINE(handle,'&f &f GENERIC HOLDS (ORDER AND/OR LINES) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh HOLD_ID &dh HOLD_NAME &dh HOLD_TYPE &dh WF_ITEM &dh WF_ACTIVITY &dh ORD_HOLD_ID &dh HLD_SRC_ID &dh HLD_REL_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'HEADER_ID &dh H_REL &dh S_REL &dh RELEASE_REASON &dh ENTITY &dh ENTITY_ID &dh ENTITY2 &dh ENTITY_ID2 &dh HOLD_UNTIL &eh');
- Declare
- cursor l_ord_hld is
- SELECT
- HDF.HOLD_ID ,
- HDF.NAME ,
- HDF.TYPE_CODE ,
- HDF.ITEM_TYPE ,
- HDF.ACTIVITY_NAME ,
- HLD.ORDER_HOLD_ID ,
- HLD.HOLD_SOURCE_ID ,
- HLD.HOLD_RELEASE_ID ,
- HLD.HEADER_ID ,
- HLD.RELEASED_FLAG Rel_Flag1,
- HSR.RELEASED_FLAG Rel_Flag2,
- HRL.RELEASE_REASON_CODE Rel_code,
- decode(HSR.HOLD_ENTITY_CODE,
- 'B','Bill To',
- 'C','Customer',
- 'I','Item',
- 'O','Order',
- 'S','Ship To',
- 'W','Warehouse',
- HSR.HOLD_ENTITY_CODE) entity,
- HSR.HOLD_ENTITY_ID entity_id,
- decode(HSR.HOLD_ENTITY_CODE2,
- 'B','Bill To',
- 'C','Customer',
- 'I','Item',
- 'O','Order',
- 'S','Ship To',
- 'W','Warehouse',
- HSR.HOLD_ENTITY_CODE2) entity2,
- HSR.HOLD_ENTITY_ID2 entity_id2,
- to_char(HSR.HOLD_UNTIL_DATE,'DD-MON-RR_HH24:MI:SS') Hold_until
- from OE_ORDER_HOLDS_ALL HLD,
- OE_HOLD_SOURCES_ALL HSR,
- OE_HOLD_DEFINITIONS HDF,
- OE_HOLD_RELEASES HRL
- where HLD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and HLD.HOLD_SOURCE_ID = HSR.HOLD_SOURCE_ID
- and HSR.HOLD_ID = HDF.HOLD_ID
- and HLD.HOLD_RELEASE_ID = HRL.HOLD_RELEASE_ID(+)
- and HLD.LINE_ID IS NULL;
- begin
- for ll in l_ord_hld
- loop
- utl_file.put_line(handle,'&sld'||n(ll.HOLD_ID)||'&d'||n(ll.NAME)||'&d');
- utl_file.put_line(handle,n(ll.TYPE_CODE)||'&d'||n(ll.ITEM_TYPE)||'&d');
- utl_file.put_line(handle,n(ll.ACTIVITY_NAME)||'&d'||n(ll.ORDER_HOLD_ID)||'&d');
- utl_file.put_line(handle,n(ll.HOLD_SOURCE_ID)||'&d'||n(ll.HOLD_RELEASE_ID)||'&d');
- utl_file.put_line(handle,n(ll.HEADER_ID)||'&d'||n(ll.Rel_Flag1)||'&d');
- utl_file.put_line(handle,n(ll.Rel_Flag2)||'&d'||n(ll.Rel_code)||'&d');
- utl_file.put_line(handle,n(ll.entity)||'&d'||n(ll.entity_id)||'&d');
- utl_file.put_line(handle,n(ll.entity2)||'&d'||n(ll.entity_id2)||'&d');
- utl_file.put_line(handle,n(ll.Hold_until)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- -- This section is commented out because it runs slowly without an index
- --<do not run> CREATE INDEX OE_PROCESSING_MSGS_777
- --<do not run> ON ONT.OE_PROCESSING_MSGS
- --<do not run> (header_id, line_id);
- -- column ACTIVITY format a15;
- -- column msg_Source format a14;
- -- column DESCRIPTION format a30;
- -- PROMPT
- UTL_FILE.PUT_LINE(handle,'&f &f HEADER PROCESSING MESSAGES &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh HEADER_ID &dh MSG_SOURCE &dh ACTIVITY &dh REQUEST_ID &dh DESCRIPTION &dh MESSAGE_TEXT &eh');
- declare
- cursor h_proc is
- select distinct
- MSG.header_id HEADER_ID,
- decode(MSG.MESSAGE_SOURCE_CODE,
- 'U','U=On-Line(UI)',
- 'C','C=Conc Process',
- 'W','W=Workflow',
- MSG.MESSAGE_SOURCE_CODE) MSG_SOURCE,
- MSG.PROCESS_ACTIVITY PROCESS_ACTIVITY,
- MSG.request_id REQUEST_ID,
- MST.message_text MESSAGE_TEXT
- from oe_processing_msgs_vl MSG,
- oe_processing_msgs_tl MST,
- fnd_languages FLA
- where MSG.header_id = nvl('&header_id_selected',:v_header_id)
- and msg.transaction_id = mst.transaction_id
- and MST.LANGUAGE = FLA.LANGUAGE_CODE
- and FLA.INSTALLED_FLAG = 'B'
- and decode(MSG.LINE_ID,9.99E+125,NULL,MSG.LINE_ID) is NULL;
- r_activity varchar2(100);
- r_descrip varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..10
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. Cannot find Activity name associated to HEADER PROCESSING MESSAGES.';
- msg(2).descrip := ' 2. Cannot find Request Description.';
- end if;
- for hp in h_proc
- loop
- :r_flag := '';
- :r_error := 0;
- r_activity := '';
- r_descrip := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Get Activity name
- begin
- select WFA1.DISPLAY_NAME
- into r_activity
- from WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA1
- where WFP.INSTANCE_ID = hp.PROCESS_ACTIVITY
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME);
- exception
- when no_data_found then
- :r_flag := :r_flag || '1 ';
- msg(1).flag := '1';
- end;
- -- Get Request description
- begin
- select DESCRIPTION
- into r_descrip
- FROM FND_CONCURRENT_REQUESTS FCR
- where FCR.REQUEST_ID = hp.REQUEST_ID;
- exception
- when no_data_found then
- :r_flag := :r_flag || '2 ';
- msg(2).flag := '1';
- end;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#HPMERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,n(hp.HEADER_ID)||'&d'||n(hp.MSG_SOURCE)||'&d');
- utl_file.put_line(handle,n(r_activity)||'&d'||n(hp.REQUEST_ID)||'&d');
- utl_file.put_line(handle,n(r_descrip)||'&d'||n(hp.MESSAGE_TEXT)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="HPMERR">Warning List:</a> &eb &f');
- for i in 1..10
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- -- <do not run> DROP INDEX OE_PROCESSING_MSGS_777
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- if UPPER(nvl('&prt_price','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f HEADER PRICE ADJUSTMENTS (ADJ) <a HREF="#ADJC">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh APPLIED &dh PRC_ADJ_ID &dh LST_HD_ID &dh LST_LN_ID &dh LIST_LN_NO &dh MOD_LVL &dh ');
- UTL_FILE.PUT_LINE(handle,'LIST_TYPE_CODE &dh CHG_TY_CD &dh ARITH_OP &dh OP_PER_QTY &dh ADJ_AMT_PQ &dh OPERAND &dh ');
- UTL_FILE.PUT_LINE(handle,'ADJ_AMT &dh CD &dh AF &dh PI &dh AC &dh IF &dh EF &dh UA &dh UF &dh AP &dh LK &dh ');
- UTL_FILE.PUT_LINE(handle,'PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
- declare
- cursor h_prc_adj is
- select
- ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
- nvl(ADJ.APPLIED_FLAG,'N') APPLIED_FLAG,
- ADJ.LIST_HEADER_ID LST_HD_ID,
- ADJ.LIST_LINE_ID LST_LN_ID,
- ADJ.LIST_LINE_NO LIST_LN_NO,
- ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
- ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
- ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
- ADJ.ARITHMETIC_OPERATOR ARITH_OP,
- ADJ.OPERAND_PER_PQTY OP_PER_QTY,
- ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
- ADJ.OPERAND OPERAND,
- ADJ.ADJUSTED_AMOUNT ADJ_AMT,
- ADJ.CREDIT_OR_CHARGE_FLAG CD,
- ADJ.AUTOMATIC_FLAG AF,
- ADJ.PRINT_ON_INVOICE_FLAG PI,
- ADJ.ACCRUAL_FLAG AC,
- ADJ.INVOICED_FLAG INF,
- ADJ.ESTIMATED_FLAG EF,
- ADJ.UPDATE_ALLOWED UA,
- ADJ.UPDATED_FLAG UF,
- ADJ.APPLIED_FLAG AP,
- ADJ.LOCK_CONTROL LK,
- ADJ.PERCENT PERC,
- ADJ.COST_ID COST_ID,
- ADJ.TAX_CODE TAX_CODE,
- ADJ.PRICING_PHASE_ID PP
- from OE_PRICE_ADJUSTMENTS ADJ
- where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ADJ.LINE_ID IS NULL
- -- and ADJ.APPLIED_FLAG = 'Y'
- order by ADJ.APPLIED_FLAG,LIST_TYPE_CODE;
- begin
- for hh in h_prc_adj
- loop
- utl_file.put_line(handle,'&sld'||n(hh.APPLIED_FLAG)||'&d'||n(hh.PRC_ADJ_ID)||'&d'||n(hh.LST_HD_ID)||'&d');
- utl_file.put_line(handle,n(hh.LST_LN_ID)||'&d'||n(hh.LIST_LN_NO)||'&d'||n(hh.MOD_LVL)||'&d');
- utl_file.put_line(handle,n(hh.LIST_TYPE_CODE)||'&d'||n(hh.CHG_TY_CD)||'&d'||n(hh.ARITH_OP)||'&d');
- utl_file.put_line(handle,n(hh.OP_PER_QTY)||'&d'||n(hh.ADJ_AMT_PQ)||'&d'||n(hh.OPERAND)||'&d');
- utl_file.put_line(handle,n(hh.ADJ_AMT)||'&d'||n(hh.CD)||'&d'||n(hh.AF)||'&d');
- utl_file.put_line(handle,n(hh.PI)||'&d'||n(hh.AC)||'&d'||n(hh.INF)||'&d');
- utl_file.put_line(handle,n(hh.EF)||'&d'||n(hh.UA)||'&d'||n(hh.UF)||'&d');
- utl_file.put_line(handle,n(hh.AP)||'&d'||n(hh.LK)||'&d'||n(hh.PERC)||'&d');
- utl_file.put_line(handle,n(hh.COST_ID)||'&d'||n(hh.TAX_CODE)||'&d'||n(hh.PP)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_price
- UTL_FILE.PUT_LINE(handle,'&f &f MTL_SALES_ORDERS (MSO) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh DS_HEADER_ID &dh HEADER_ID &dh ORDER_NUMBER &dh ORDER_TYPE_NAME &dh CONSTANTOE &eh');
- declare
- cursor mtl_sal is
- select
- MSO.SALES_ORDER_ID ,
- ORD.HEADER_ID ,
- ORD.ORDER_NUMBER ,
- TYP.NAME ,
- MSO.SEGMENT3
- from
- MTL_SALES_ORDERS MSO,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_VL TYP
- where
- ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
- and TO_CHAR(ORD.ORDER_NUMBER) = MSO.SEGMENT1
- and TYP.NAME(+) = MSO.SEGMENT2
- -- klr
- and MSO.SEGMENT1 = '&order_number_selected'
- and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- order by
- ORD.HEADER_ID;
- begin
- for ms in mtl_sal
- loop
- utl_file.put_line(handle,'&sld'||n(ms.SALES_ORDER_ID)||'&d'||n(ms.HEADER_ID)||'&d');
- utl_file.put_line(handle,n(ms.ORDER_NUMBER)||'&d'||n(ms.NAME)||'&d');
- utl_file.put_line(handle,n(ms.SEGMENT3)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- begin
- select distinct(MSO.SALES_ORDER_ID)
- into :sales_ord_id
- from MTL_SALES_ORDERS MSO,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_TL TYP,
- FND_LANGUAGES FLA
- where ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
- and TYP.LANGUAGE = FLA.LANGUAGE_CODE
- and FLA.INSTALLED_FLAG = 'B'
- -- klr
- and MSO.SEGMENT1 = '&order_number_selected'
- and TYP.NAME = MSO.SEGMENT2;
- end;
- end if; -- v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- c_lines number;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- c_lines := 0;
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_ORDER_LINES">OE_ORDER_LINES (LIN)</a> <a HREF="#OOL">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh LINE &dh LINE_ID &dh DELIVERY DETAIL &dh ITEM ID &dh ITEM &dh ');
- UTL_FILE.PUT_LINE(handle,'FLOW PROCESS &dh FLOW CODE &dh OP &dh BK &dh SH &dh CN &dh VD &dh SI &dh FF &dh ATO &dh ');
- UTL_FILE.PUT_LINE(handle,'SMC &dh ORDER QTY &dh UOM &dh SELL PRICE &dh LIST PRICE &dh ');
- UTL_FILE.PUT_LINE(handle,'CALC PRICE &dh RESERV QTY &dh SHIPNG QTY &dh SHIPPD QTY &dh FULFIL QTY &dh CANCEL QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'INVOIC QTY &dh SCHD ST_CD &dh WH_ID &dh ORG &dh CREATE DATE &dh ');
- UTL_FILE.PUT_LINE(handle,'REQUEST DATE &dh SCHED DATE &dh ACTUAL SHIP_DATE &dh LINE TYPE &dh LINE CATEG &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM TYPE &dh ORDERED ITEM_ID &dh ORDERED ITEM &dh SOURCE TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'PRICE LIST_ID &dh DEMAND CLASS &dh CFG &dh WH_ID &dh PRT LN_ID &dh ATO LN_ID &dh LINK LN_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SPLIT BY &dh SPLIT LN_ID &dh CONFIG HD_ID &dh INVOIC INT_STAT &dh STA &dh STB &dh SHIP SET_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP SET_TY &dh LINE SET_ID &dh LINE SET_TY &dh ARRIV SET_ID &dh ARRIV SET_TY &dh OTHER SETS &dh ');
- UTL_FILE.PUT_LINE(handle,'DISCRETE ORDER_QTY &dh DISCR UOM &dh DISCRETE SHPNG_QTY &dh DISCRETE SHPNG_UOM &dh ');
- UTL_FILE.PUT_LINE(handle,'DISCRETE SHIPPD_QTY &dh DISCRETE FULFLL_QTY &dh DISCRETE CANCEL_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'LAST UPD_DATE &dh');
- UTL_FILE.PUT_LINE(handle,'TRACK QTY_IND &dh PRIMARY UOM_COD &dh DUAL_UOM CONTROL &dh SECONDARY DEFAULT_IND &dh ');
- UTL_FILE.PUT_LINE(handle,'SECONDARY UOM_COD &dh CHILD LOT_FLAG &dh PARENT_CHILD GEN_FLAG &dh LOT DIVIS_FLAG &dh ');
- UTL_FILE.PUT_LINE(handle,'GRADE CNTRL_FLAG &dh ONT_PRICING QTY_SOURCE &dh DUAL_UOM DEV_HGH &dh DUAL_UOM DEV_LOW &dh ');
- UTL_FILE.PUT_LINE(handle,'LOT CONTROL &dh LOCATION CTRL_CODE &dh STATUS CONTROL &dh SRC_DOC LINE_ID &eh ');
- declare
- cursor line1 is
- select
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) line_n,
- LIN.LINE_ID Line_i,
- LIN.INVENTORY_ITEM_ID Item_i,
- lpad(' ',length(LIN.SORT_ORDER)/4,rpad('.',80,'....!'))||ITM.SEGMENT1 Item_na,
- substr(LIN.FLOW_STATUS_CODE,1,22) Line_st,
- nvl(LIN.ORDERED_QUANTITY,0) Ordq,
- LIN.ORDER_QUANTITY_UOM Orduom,
- nvl(LIN.ORDERED_QUANTITY2,0) Ordq2,
- LIN.ORDERED_QUANTITY_UOM2 Orduom2,
- LIN.UNIT_SELLING_PRICE sell,
- LIN.UNIT_LIST_PRICE lisl,
- nvl(LIN.SHIPPED_QUANTITY,0) shpq,
- nvl(LIN.SHIPPED_QUANTITY2,0) shpq2,
- nvl(LIN.SHIPPING_QUANTITY,0) SHN_Q,
- nvl(LIN.SHIPPING_QUANTITY2,0) SHN_Q2,
- nvl(LIN.SHIPPING_QUANTITY_UOM2,0) SHN_QUOM2,
- nvl(FULFILLED_QUANTITY,0) fulq,
- nvl(FULFILLED_QUANTITY2,0) fulq2,
- nvl(LIN.CANCELLED_QUANTITY,0) canq,
- nvl(LIN.CANCELLED_QUANTITY2,0) canq2,
- nvl(LIN.INVOICED_QUANTITY,0) invq,
- substr(LIN.SCHEDULE_STATUS_CODE,1,5) schc,
- nvl(LIN.OPEN_FLAG,'N') openf,
- nvl(LIN.BOOKED_FLAG,'N') bookf,
- nvl(LIN.SHIPPABLE_FLAG,'N') shipf,
- nvl(LIN.CANCELLED_FLAG,'N') canf,
- nvl(LIN.VISIBLE_DEMAND_FLAG,'N') vdem,
- nvl(LIN.FULFILLED_FLAG, 'N') fulf,
- nvl(LIN.SHIPPING_INTERFACED_FLAG,'N') SI,
- decode(nvl(LIN.ATO_LINE_ID,0),0,'N','Y') ato_i,
- nvl(LIN.SHIP_MODEL_COMPLETE_FLAG,'N') smcf,
- LIN.SHIP_FROM_ORG_ID shipfrom,
- -- PAR.ORGANIZATION_CODE org_i,
- to_char(LIN.REQUEST_DATE,'DD-MON-RR_HH24:MI:SS') reqd,
- to_char(LIN.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') schd,
- -- TYP.NAME lin_ty,
- LIN.LINE_TYPE_ID LINE_TYPE_ID,
- LIN.LINE_CATEGORY_CODE lin_cat,
- LIN.ITEM_TYPE_CODE itm_tc,
- LIN.ORDERED_ITEM_ID ord_it,
- LIN.ORDERED_ITEM ord_it_name,
- LIN.SOURCE_TYPE_CODE Src_tc,
- LIN.PRICE_LIST_ID prlst,
- LIN.DEMAND_CLASS_CODE demc,
- nvl(LIN.OPTION_FLAG,'N') CFG,
- LIN.SHIP_FROM_ORG_ID WH_ID,
- LIN.TOP_MODEL_LINE_ID PRT_LN_ID,
- LIN.ATO_LINE_ID ATO_LN_ID,
- LIN.LINK_TO_LINE_ID LNK_LN_ID,
- LIN.SPLIT_BY SPL_BY,
- LIN.SPLIT_FROM_LINE_ID SPL_LN_ID,
- LIN.CONFIG_HEADER_ID CFG_HD_ID,
- nvl(LIN.INVOICE_INTERFACE_STATUS_CODE,'N') INVC_INT_STAT,
- LIN.SHIP_TOLERANCE_ABOVE STA,
- LIN.SHIP_TOLERANCE_BELOW STB,
- LIN.SHIP_SET_ID SH_SET_ID,
- ST2.SET_TYPE SH_SET_TY,
- LIN.LINE_SET_ID LN_SET_ID,
- ST3.SET_TYPE LN_SET_TY,
- LIN.ARRIVAL_SET_ID AR_SET_ID,
- ST1.SET_TYPE AR_SET_TY,
- LIN.CALCULATE_PRICE_FLAG CAL_PR,
- to_char(LIN.ACTUAL_SHIPMENT_DATE,'DD-MON-RR_HH24:MI:SS') act_shp,
- to_char(LIN.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
- LIN.ordered_quantity2 ord_qty2,
- LIN.ordered_quantity_uom2 ord_uom2,
- to_char(LIN.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') upd_date,
- ITM.TRACKING_QUANTITY_IND trck_qty_ind,
- ITM.PRIMARY_UOM_CODE PRM_UOM,
- ITM.DUAL_UOM_CONTROL DUAL_UOM,
- ITM.SECONDARY_DEFAULT_IND SEC_DEF_IND,
- ITM.SECONDARY_UOM_CODE SEC_UOM,
- ITM.CHILD_LOT_FLAG CHLD_LOT,
- ITM.PARENT_CHILD_GENERATION_FLAG PAR_CHLD,
- ITM.LOT_DIVISIBLE_FLAG LOT_DIV,
- ITM.GRADE_CONTROL_FLAG GRAD_CTRL,
- Decode(ITM.ONT_PRICING_QTY_SOURCE,
- 'P','Primary', 'Secondary') ONT_PR_QTY,
- ITM.dual_uom_deviation_high DUAL_UOM_DEV_H,
- ITM.dual_uom_deviation_low DUAL_UOM_DEV_L,
- ITM.lot_control_code lot_ctl,
- ITM.location_control_code loct_ctl,
- ITM.lot_status_enabled status_ctl,
- LIN.source_document_line_id sdli
- from
- OE_ORDER_LINES LIN,
- -- OE_TRANSACTION_TYPES TYP,
- MTL_SYSTEM_ITEMS ITM,
- -- MTL_PARAMETERS PAR,
- OE_SETS ST1,
- OE_SETS ST2,
- OE_SETS ST3
- where
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- -- and LIN.LINE_TYPE_ID = TYP.TRANSACTION_TYPE_ID
- -- and LIN.SHIP_FROM_ORG_ID = PAR.ORGANIZATION_ID(+)
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- -- and LIN.OPTION_NUMBER IS NULL
- -- and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
- and LIN.ARRIVAL_SET_ID = ST1.SET_ID(+)
- and LIN.SHIP_SET_ID = ST2.SET_ID(+)
- and LIN.LINE_SET_ID = ST3.SET_ID(+)
- order by
- nvl(LIN.line_number,0), nvl(LIN.shipment_number,0), nvl(LIN.option_number,0),
- nvl(LIN.component_number,0), nvl(LIN.service_number,0);
- -- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- -- NVL(LIN.SORT_ORDER, '0000'),
- -- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- -- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- -- NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
- -- LIN.LINE_ID;
- cursor setl(lin number) is
- select os.set_id, os.set_type
- from oe_sets os, oe_line_sets ols
- where os.set_id = ols.set_id
- and line_id = lin;
- r_del_det varchar2(100);
- r_pro_nab varchar2(100);
- r_act_nab varchar2(100);
- r_resultb varchar2(100);
- r_act_sb varchar2(100);
- r_sets varchar2(100);
- r_omint varchar2(100);
- r_invint varchar2(100);
- org_i varchar2(100);
- lin_ty varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..70
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. Ordered Quantity is less than Shipped Quantity.';
- msg(2).descrip := ' 2. Ordered Quantity is less than Fulfilled Quantity.';
- msg(3).descrip := ' 3. Ordered Quantity is less than Invoiced Quantity.';
- msg(4).descrip := ' 4. Interface to WSH set to "N" but exist Delivery Details associated to this Order_line.';
- msg(5).descrip := ' 5. Associated Delivery Details has NOT been interface but Shipped, Fulfilled or Invoiced QTY are updated.';
- msg(10).descrip := ' 10. Order_Line shows as OPEN but CANCELLED flag is set to Y.';
- msg(11).descrip := ' 11. Order_Line status ENTERED but Shipped Qty is greater than zero.';
- msg(12).descrip := ' 12. Order_Line status ENTERED but Fulfilled Qty is greater than zero.';
- msg(15).descrip := ' 15. Order_Line status BOOKED but "Book" activity has not been completed.';
- msg(16).descrip := ' 16. Order_Line status BOOKED but Shipped Qty is greater than zero.';
- msg(17).descrip := ' 17. Order_Line status BOOKED but Fulfilled Qty is greater than zero.';
- msg(20).descrip := ' 20. Order_Line status AWAITING SHIPPING but Item is set to Non-Shippable.';
- msg(21).descrip := ' 21. Order_Line status AWAITING SHIPPING but Shipped Qty is greater than zero.';
- msg(22).descrip := ' 22. Order_Line status AWAITING SHIPPING but Fulfilled Qty is greater than zero.';
- msg(23).descrip := ' 23. No Delivery Details associated to this Order_line, Interface to WSH is set to "Y".';
- msg(24).descrip := ' 24. Associated Delivery Details have invalid RELEASED status.';
- msg(25).descrip := ' 25. Associated Delivery Details have invalid INTERFACE status (Not Shipped but Interfaced to OM or INV).';
- msg(40).descrip := ' 40. Line status is CLOSED but associated Delivery Details still not interface to OM.';
- msg(41).descrip := ' 41. Line status is CLOSED but associated Delivery Details still not interface to INVentory.';
- msg(45).descrip := ' 45. Line status is CANCELLED but associated Delivery Details has been interfaced to OM.';
- msg(46).descrip := ' 46. Line status is CANCELLED but associated Delivery Details has been interfaced to INVentory.';
- msg(50).descrip := ' 50. No WorkFlow Process associated to this line.';
- msg(51).descrip := ' 51. Incorrect WorkFlow Process associated to this line.';
- msg(52).descrip := ' 52. Incorrect WorkFlow Activity associated to this line.';
- msg(53).descrip := ' 53. Incorrect WorkFlow Activity Result for this line.';
- msg(54).descrip := ' 54. Incorrect WorkFlow Activity Status for this line.';
- msg(55).descrip := ' 55. Order Line status is BOOKED, WorkFlow Activities shows additional activities for this line.';
- msg(60).descrip := ' 60. Organization_id is Null for this line.';
- msg(61).descrip := ' 61. Transaction Type is Null for this line.';
- end if;
- for i in line1
- loop
- :r_flag := '';
- r_del_det := '';
- r_sets := '';
- -- get Order_line WF name
- begin
- :r_line_t := '';
- select WFA.DISPLAY_NAME
- into :r_line_t
- FROM WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA
- WHERE WFS.ITEM_TYPE = 'OEOL'
- -- klr
- and WFS.ITEM_KEY = to_char(I.LINE_I)
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_NAME = 'ROOT'
- and WFP.ACTIVITY_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA.NAME
- and nvl(WFA.VERSION,-1) = (select nvl(max(VERSION),-1)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME);
- exception
- when no_data_found then
- :r_flag := :r_flag || '50 ';
- msg(50).flag := '1';
- end;
- -- get organization code
- begin
- select ORGANIZATION_CODE
- into org_i
- from MTL_PARAMETERS
- where i.shipfrom = ORGANIZATION_ID(+);
- exception
- when no_data_found then
- org_i := null;
- :r_flag := :r_flag || '60 ';
- msg(60).flag := '1';
- end;
- -- get Transaction Type name
- begin
- select NAME
- into lin_ty
- from OE_TRANSACTION_TYPES
- where i.LINE_TYPE_ID = TRANSACTION_TYPE_ID;
- exception
- when others then
- lin_ty := null;
- :r_flag := :r_flag || '61 ';
- msg(61).flag := '1';
- end;
- -- Check if exist associated Delivery Detail id regardles of line status and SI flag.
- begin
- select Delivery_detail_id
- into r_del_det
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE'
- and rownum = 1;
- exception
- when no_data_found then
- null; -- conditions will be evaluated later
- end;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Reservations
- select sum(nvl(RESERVATION_QUANTITY,0))
- into :r_res_q
- from MTL_RESERVATIONS RES
- where RES.DEMAND_SOURCE_HEADER_ID = :sales_ord_id
- and RES.DEMAND_SOURCE_TYPE_ID in (2,8,9,21,22)
- and RES.DEMAND_SOURCE_LINE_ID = i.LINE_I;
- -- current WF status
- begin
- :r_pro_na := '';
- :r_act_na := '';
- :r_result := '';
- :r_act_s := '';
- select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
- LKP.MEANING
- into :r_pro_na, :r_act_na, :r_result, :r_act_s
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where WFS.ITEM_TYPE = 'OEOL'
- and WFS.item_key = i.line_i
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION) from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and Execution_time = (Select Max(execution_time) from WF_ITEM_ACTIVITY_STATUSES
- where item_type = 'OEOL' and Item_key = i.line_i);
- exception
- when no_data_found then
- if msg(50).flag = '1' then
- null; -- problem already discovered
- else
- :r_flag := :r_flag || '50 ';
- msg(50).flag := '1';
- end if;
- end;
- -- Get associated sets
- for sl in setl(i.line_i)
- loop
- r_sets := r_sets || to_char(sl.set_id)||'-'||sl.set_type || ' ';
- end loop;
- ---
- -- Basic Verification
- --
- -- Ordered Qty less than Shipped (with Tolerance)
- If i.Ordq*(100+nvl(i.sta,0))/100 < i.shpq then
- :r_flag := :r_flag || '1 ';
- msg(1).flag := '1';
- end if;
- -- Ordered Qty less than Fulfilled (with Tolerance)
- If i.Ordq*(100+nvl(i.sta,0))/100 < i.fulq then
- :r_flag := :r_flag || '2 ';
- msg(2).flag := '1';
- end if;
- -- Ordered Qty less than Invoiced (with Tolerance)
- If i.Ordq*(100+nvl(i.sta,0))/100 < i.invq then
- :r_flag := :r_flag || '3 ';
- msg(3).flag := '1';
- end if;
- If i.si = 'N' then -- Non interfaced to WSH
- select count(*) -- count total wdd for this line
- into :r_wdd
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE';
- If :r_wdd > 0 then
- :r_flag := :r_flag || '4 ';
- msg(4).flag := '1';
- end if;
- end if;
- -- If line is Shippable
- -- Check if shipped, fulfilled or invoiced quantities has been updated and associated Del.Details still not Interfaced to OM
- if i.shipf = 'Y' then -- Shippable line
- if i.shpq > 0
- or i.fulq > 0
- or i.invq > 0 then
- select count(*) -- count if any associated Delivery Detail has been OM interfaced
- into r_omint
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE'
- and OE_INTERFACED_FLAG = 'Y';
- if r_omint = 0 then
- :r_flag := :r_flag || '5 ';
- msg(5).flag := '1';
- end if;
- end if;
- end if;
- -- line open but Cancelled flag is Y
- if i.openf = 'Y'
- and i.canf = 'Y' then
- :r_flag := :r_flag || '10 ';
- msg(10).flag := '1';
- end if;
- ---
- -- Verifications for Order_Lines on ENTERED status
- ---
- If i.line_st = 'ENTERED' then
- if i.shpq > 0 then -- Quantity Shipped
- :r_flag := :r_flag || '11 ';
- msg(11).flag := '1';
- end if;
- if i.fulq > 0 then -- Quantity Fulfilled
- :r_flag := :r_flag || '12 ';
- msg(12).flag := '1';
- end if;
- -- verify current WF status
- if :r_pro_na <> 'Enter - Line' then
- :r_flag := :r_flag || '51 ';
- msg(51).flag := '1';
- elsif :r_act_na <> 'Wait for Booking' then
- :r_flag := :r_flag || '52 ';
- msg(52).flag := '1';
- elsif :r_result is not null then
- :r_flag := :r_flag || '53 ';
- msg(53).flag := '1';
- elsif :r_act_s <> 'Notified' then
- :r_flag := :r_flag || '54 ';
- msg(54).flag := '1';
- end if;
- end if; -- ENTERED
- ---
- -- Verifications for Order_Lines on BOOKED status
- ---
- If i.line_st = 'BOOKED' then
- -- Check is Book activity has been completed
- begin
- select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
- LKP.MEANING
- into r_pro_nab, r_act_nab, r_resultb, r_act_sb
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where WFS.ITEM_TYPE = 'OEOL'
- and WFS.item_key = i.line_i
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION) from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFA1.DISPLAY_NAME = 'Wait for Booking';
- exception
- when no_data_found then
- :r_flag := :r_flag || '15 ';
- msg(15).flag := '1';
- end;
- if r_act_nab = 'Wait for Booking' then
- if r_resultb = 'Null'
- and r_act_sb = 'Complete' then
- null; -- status is OK
- else
- :r_flag := :r_flag || '15 ';
- msg(15).flag := '1';
- end if;
- end if;
- if i.shpq > 0 then -- Quantity Shipped
- :r_flag := :r_flag || '16 ';
- msg(16).flag := '1';
- end if;
- if i.fulq > 0 then -- Quantity Fulfilled
- :r_flag := :r_flag || '17 ';
- msg(17).flag := '1';
- end if;
- -- Check if there are other activities after Booking.
- if :r_act_na = 'Wait for Booking' then
- null; -- OK last activity is Booking
- else
- :r_flag := :r_flag || '55 ';
- msg(55).flag := '1';
- end if;
- end if; -- BOOKED
- ---
- -- Verifications for Order_Lines on AWAITING SHIPPING status
- ---
- If i.line_st = 'AWAITING_SHIPPING' then
- if i.shipf = 'N' then -- No shippable line
- :r_flag := :r_flag || '20 ';
- msg(20).flag := '1';
- end if;
- if i.shpq > 0 then -- Quantity Shipped
- :r_flag := :r_flag || '21 ';
- msg(21).flag := '1';
- end if;
- if i.fulq > 0 then -- Quantity Fulfilled
- :r_flag := :r_flag || '22 ';
- msg(22).flag := '1';
- end if;
- select count(*) -- count total wdd for this line
- into :r_wdd
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE';
- If :r_wdd = 0 and i.si = 'Y' then
- :r_flag := :r_flag || '23 ';
- msg(23).flag := '1';
- else
- select count(*) -- Invalid Release flag status
- into :r_wdd
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE'
- and RELEASED_STATUS not in ('Y','R','S','B','P','C','N','D','X');
- If :r_wdd > 0 then
- :r_flag := :r_flag || '24 ';
- msg(24).flag := '1';
- end if;
- select count(*) -- count Released status 'R' but OM or INV interfaced
- into :r_wdd
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE'
- and RELEASED_STATUS <> 'C'
- and (nvl(INV_INTERFACED_FLAG,'N') not in ( 'N','X')
- or nvl(OE_INTERFACED_FLAG,'N') <> 'N');
- If :r_wdd > 0 then
- :r_flag := :r_flag || '25 ';
- msg(25).flag := '1';
- end if;
- end if; -- no wdd
- -- verify current WF status
- if :r_pro_na <> 'Ship - Line, Manual' then
- :r_flag := :r_flag || '51 ';
- msg(51).flag := '1';
- elsif :r_act_na <> 'Ship' then
- :r_flag := :r_flag || '52 ';
- msg(52).flag := '1';
- elsif :r_result is not null then
- :r_flag := :r_flag || '53 ';
- msg(53).flag := '1';
- elsif :r_act_s <> 'Notified' then
- :r_flag := :r_flag || '54 ';
- msg(54).flag := '1';
- end if;
- end if; -- AWAITING SHIPPING
- ---
- -- Verifications for Order_Lines on SHIPPED status
- ---
- If i.line_st = 'SHIPPED' then
- null; -- nothing yet
- -- :r_flag := :r_flag || '';
- -- msg(30).flag := '1';
- end if; -- SHIPPED
- ---
- -- Verifications for Order_Lines on FULFILLED status
- ---
- If i.line_st = 'FULFILLED' then
- null; -- nothing yet
- -- :r_flag := :r_flag || '';
- -- msg(40).flag := '1';
- end if; -- FULFILLED
- ---
- -- Verifications for Order_Lines on INVOICED status
- ---
- If i.line_st = 'INVOICED' then
- null; -- nothing yet
- -- :r_flag := :r_flag || '';
- -- msg(40).flag := '1';
- end if; -- INVOICED
- ---
- -- Verifications for Order_Lines on CLOSED status
- ---
- If i.line_st = 'CLOSED' then
- -- If line is Shippable check if associated Del.Details still not Interfaced to OM or INV
- if i.shipf = 'Y' then
- -- count if any associated Delivery Detail has NOT been OM or INV interfaced
- begin
- select sum(decode(nvl(OE_INTERFACED_FLAG,'N'),'N',1,0)), sum(decode(nvl(INV_INTERFACED_FLAG,'N'),'N',1,0))
- into r_omint, r_invint
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and SOURCE_CODE = 'OE'
- and released_status <> 'D'
- group by SOURCE_LINE_ID;
- exception
- when no_data_found then
- r_omint := 0;
- r_invint := 0;
- end;
- if r_omint > 0 then
- :r_flag := :r_flag || '40 ';
- msg(40).flag := '1';
- end if;
- if r_invint > 0 then
- :r_flag := :r_flag || '41 ';
- msg(41).flag := '1';
- end if;
- end if;
- end if; -- CLOSED
- ---
- -- Verifications for Order_Lines on CANCELLED status
- ---
- If i.line_st = 'CANCELLED' then
- -- If line is Shippable check if associated Del.Details open Pending Interfaced to OM or INV
- if i.shipf = 'Y' then
- -- count if any associated Delivery Detail has been interfaced to OM or INV
- begin
- select sum(decode(nvl(OE_INTERFACED_FLAG,'N'),'Y',1,0)), sum(decode(nvl(INV_INTERFACED_FLAG,'N'),'Y',1,0))
- into r_omint, r_invint
- from WSH_Delivery_Details
- where SOURCE_LINE_ID = I.LINE_I
- and source_code = 'OE'
- and RELEASED_STATUS <> 'D'
- group by SOURCE_LINE_ID;
- exception
- when no_data_found then
- r_omint := 0;
- r_invint := 0;
- end;
- if r_omint > 0 then
- :r_flag := :r_flag || '45 ';
- msg(45).flag := '1';
- end if;
- if r_invint > 0 then
- :r_flag := :r_flag || '46 ';
- msg(46).flag := '1';
- end if;
- end if;
- end if; -- CANCELLED
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#OLERR">'||n(:r_flag)||'</a> &eb &d'||n(i.line_n)||'&d');
- utl_file.put_line(handle,'<a NAME="OOE'||i.Line_i||'">'||n(i.Line_i)||'</a>'||'&d'||'<a HREF="#WDD'||r_del_det||'">'||n(r_del_det)||'</a>');
- utl_file.put_line(handle,'&d'||n(i.Item_i)||'&d'||n(i.Item_na)||'&d');
- utl_file.put_line(handle,'<a HREF="#WF'||i.Line_i||'">'||n(:r_line_t)||'</a>'||'&d');
- utl_file.put_line(handle,n(i.Line_st)||'&d'||n(i.openf)||'&d');
- utl_file.put_line(handle,n(i.bookf)||'&d'||n(i.shipf)||'&d');
- utl_file.put_line(handle,n(i.canf)||'&d'||n(i.vdem)||'&d');
- utl_file.put_line(handle,n(i.si)||'&d'||n(i.fulf)||'&d');
- utl_file.put_line(handle,n(i.ato_i)||'&d'||n(i.smcf)||'&d');
- utl_file.put_line(handle,n(i.Ordq)||'&d'||n(i.Orduom)||'&d');
- utl_file.put_line(handle,n(i.sell)||'&d');
- utl_file.put_line(handle,n(i.lisl)||'&d'||n(i.cal_pr)||'&d');
- utl_file.put_line(handle,n(:r_res_q)||'&d'||n(i.shn_q)||'&d');
- utl_file.put_line(handle,n(i.shpq)||'&d'||n(i.fulq)||'&d');
- utl_file.put_line(handle,n(i.canq)||'&d');
- utl_file.put_line(handle,n(i.invq)||'&d'||n(i.schc)||'&d');
- utl_file.put_line(handle,n(i.shipfrom)||'&d'||n(org_i)||'&d');
- utl_file.put_line(handle,n(i.cre_date)||'&d');
- utl_file.put_line(handle,n(i.reqd)||'&d'||n(i.schd)||'&d');
- utl_file.put_line(handle,n(i.act_shp)||'&d');
- utl_file.put_line(handle,n(lin_ty)||'&d'||n(i.lin_cat)||'&d');
- utl_file.put_line(handle,n(i.itm_tc)||'&d'||n(i.ord_it)||'&d');
- utl_file.put_line(handle,n(i.ord_it_name)||'&d'||n(i.Src_tc)||'&d');
- utl_file.put_line(handle,n(i.prlst)||'&d'||n(i.demc)||'&d');
- utl_file.put_line(handle,n(i.CFG)||'&d'||n(i.WH_ID)||'&d');
- utl_file.put_line(handle,n(i.PRT_LN_ID)||'&d'||n(i.ATO_LN_ID)||'&d');
- utl_file.put_line(handle,n(i.LNK_LN_ID)||'&d'||n(i.SPL_BY)||'&d');
- utl_file.put_line(handle,n(i.SPL_LN_ID)||'&d');
- utl_file.put_line(handle,n(i.CFG_HD_ID)||'&d'||n(i.INVC_INT_STAT)||'&d');
- utl_file.put_line(handle,n(i.STA)||'&d');
- utl_file.put_line(handle,n(i.STB)||'&d'||n(i.SH_SET_ID)||'&d');
- utl_file.put_line(handle,n(i.SH_SET_TY)||'&d'||n(i.LN_SET_ID)||'&d');
- utl_file.put_line(handle,n(i.LN_SET_TY)||'&d'||n(i.AR_SET_ID)||'&d');
- utl_file.put_line(handle,n(i.AR_SET_TY)||'&d'||n(r_sets)||'&d');
- utl_file.put_line(handle,n(i.Ordq2)||'&d'||n(i.Orduom2)||'&d');
- utl_file.put_line(handle,n(i.shn_q2)||'&d'||n(i.shn_quom2)||'&d');
- utl_file.put_line(handle,n(i.shpq2)||'&d'||n(i.fulq2)||'&d');
- utl_file.put_line(handle,n(i.canq2)||'&d');
- utl_file.put_line(handle,n(i.upd_date)||'&d');
- utl_file.put_line(handle,n(i.trck_qty_ind)||'&d'||n(i.PRM_UOM)||'&d');
- utl_file.put_line(handle,n(i.DUAL_UOM)||'&d'||n(i.SEC_DEF_IND)||'&d');
- utl_file.put_line(handle,n(i.SEC_UOM)||'&d'||n(i.CHLD_LOT)||'&d');
- utl_file.put_line(handle,n(i.PAR_CHLD)||'&d'||n(i.LOT_DIV)||'&d');
- utl_file.put_line(handle,n(i.GRAD_CTRL)||'&d'||n(i.ONT_PR_QTY)||'&d');
- utl_file.put_line(handle,n(i.DUAL_UOM_DEV_H)||'&d'||n(i.DUAL_UOM_DEV_L)||'&d');
- utl_file.put_line(handle,n(i.LOT_CTL)||'&d'||n(i.LOCT_CTL)||'&d');
- utl_file.put_line(handle,n(i.STATUS_CTL)||'&d'||n(i.sdli)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="OLERR">Warning List:</a> &eb &f');
- for i in 1..70
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- --AQUI
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- UTL_FILE.PUT_LINE(handle,'&f &f OE_ORDER_LINES_HISTORY (HIL) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh LINE_ID &dh LINE &dh ORD_Q &dh LCN_Q &dh SHN_Q &dh SHP_Q &dh FUL_Q &dh CAN_Q &dh INC_Q &dh UOM &dh SSC &dh OP &dh');
- UTL_FILE.PUT_LINE(handle,'BK &dh SH &dh CN &dh VD &dh SI &dh FF &dh WF_ACT_CODE &dh WF_RESULT &dh HIST_TYPE &dh HIST_CREAT_DATE &dh FLOW_CODE &dh');
- UTL_FILE.PUT_LINE(handle,'PRICE &dh REASON_CODE &dh HIST_COMMENTS &eh');
- Declare
- cursor l_lin_his is
- select
- HIL.LINE_ID Line_id,
- to_char(HIL.line_number) ||
- decode(HIL.shipment_number, null, null, '.' || to_char(HIL.shipment_number))||
- decode(HIL.option_number, null, null, '.' || to_char(HIL.option_number)) ||
- decode(HIL.component_number, null, null,
- decode(HIL.option_number, null, '.',null)||
- '.'||to_char(HIL.component_number))||
- decode(HIL.service_number,null,null,
- decode(HIL.component_number, null, '.' , null) ||
- decode(HIL.option_number, null, '.', null ) ||
- '.'|| to_char(HIL.service_number)) line_no,
- nvl(HIL.ORDERED_QUANTITY,0) Ord_q,
- nvl(HIL.LATEST_CANCELLED_QUANTITY,0) lCan_q,
- nvl(HIL.SHIPPING_QUANTITY,0) SHI_q,
- nvl(HIL.SHIPPED_QUANTITY,0) SHP_q,
- nvl(HIL.FULFILLED_QUANTITY,0) Ful_q,
- nvl(HIL.CANCELLED_QUANTITY,0) Can_q,
- nvl(HIL.INVOICED_QUANTITY,0) INV_q,
- HIL.ORDER_QUANTITY_UOM Ord_q_uom,
- substr(HIL.SCHEDULE_STATUS_CODE,1,5) Sch_code,
- nvl(HIL.OPEN_FLAG,'N') OP_f,
- nvl(HIL.BOOKED_FLAG,'N') BK_f,
- nvl(HIL.SHIPPABLE_FLAG,'N') SH_f,
- nvl(HIL.CANCELLED_FLAG,'N') CN_f,
- nvl(HIL.VISIBLE_DEMAND_FLAG,'N') VD_f,
- nvl(HIL.SHIPPING_INTERFACED_FLAG,'N') SI_f,
- nvl(HIL.FULFILLED_FLAG,'N') FL_f,
- HIL.WF_ACTIVITY_CODE Act_code,
- HIL.WF_RESULT_CODE Res_code,
- HIL.HIST_TYPE_CODE Typ_code,
- to_char(HIL.HIST_CREATION_DATE, 'DD-MON-RR_HH24:MI:SS') Hist_cre_date,
- HIL.FLOW_STATUS_CODE Sta_code,
- HIL.UNIT_SELLING_PRICE Sell_p,
- HIL.REASON_CODE Reason,
- HIL.HIST_COMMENTS comments
- from
- OE_ORDER_LINES_HISTORY HIL
- where
- HIL.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,HIL.LINE_ID,
- HIL.TOP_MODEL_LINE_ID,
- HIL.ATO_LINE_ID,
- HIL.LINK_TO_LINE_ID,
- HIL.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(HIL.ATO_LINE_ID, HIL.LINE_ID),
- NVL(HIL.SORT_ORDER, '0000'),
- NVL(HIL.LINK_TO_LINE_ID, HIL.LINE_ID),
- NVL(HIL.SOURCE_DOCUMENT_LINE_ID, HIL.LINE_ID),
- NVL(HIL.SERVICE_REFERENCE_LINE_ID, HIL.LINE_ID),
- HIL.LINE_ID;
- begin
- for ll in l_lin_his
- loop
- utl_file.put_line(handle,'&sld'||n(ll.Line_id)||'&d'||n(ll.line_no)||'&d');
- utl_file.put_line(handle,n(ll.Ord_q)||'&d'||n(ll.lcan_q)||'&d');
- utl_file.put_line(handle,n(ll.SHI_q)||'&d'||n(ll.SHP_q)||'&d');
- utl_file.put_line(handle,n(ll.Ful_q)||'&d'||n(ll.CAN_q)||'&d');
- utl_file.put_line(handle,n(ll.INV_q)||'&d'||n(ll.ord_q_uom)||'&d');
- utl_file.put_line(handle,n(ll.Sch_code)||'&d'||n(ll.OP_f)||'&d');
- utl_file.put_line(handle,n(ll.BK_f)||'&d'||n(ll.SH_f)||'&d');
- utl_file.put_line(handle,n(ll.CN_f)||'&d'||n(ll.VD_f)||'&d');
- utl_file.put_line(handle,n(ll.SI_f)||'&d'||n(ll.FL_f)||'&d');
- utl_file.put_line(handle,n(ll.Act_code)||'&d'||n(ll.Res_code)||'&d');
- utl_file.put_line(handle,n(ll.Typ_code)||'&d'||n(ll.Hist_cre_date)||'&d');
- utl_file.put_line(handle,n(ll.Sta_code)||'&d'||n(ll.Sell_p)||'&d');
- utl_file.put_line(handle,n(ll.Reason)||'&d'||n(ll.comments)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- if UPPER(nvl('&prt_wf','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW LINE STATUS &f');
- -- break on WFS.ITEM_KEY skip 2;
- declare
- cursor WF_LINE is
- select WFS.ITEM_KEY ITEM_KEY,
- WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT_CODE,
- LKP.MEANING MEANING,
- WFS.NOTIFICATION_ID NOTIFICATION_ID,
- WFP.PROCESS_NAME INT_Process_name,
- WFP.ACTIVITY_NAME INT_Activity_name,
- WFS.ACTIVITY_RESULT_CODE INT_Act_Res_code,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') B_Date,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') E_Date,
- WFS.ERROR_NAME Err_name,
- WFS.BEGIN_DATE BEGIN_DATE2,
- WFS.EXECUTION_TIME EXECUTION_TIME2
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'OEOL'
- and WFS.item_key in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- UNION ALL
- select WFS.ITEM_KEY ITEM_KEY,
- WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT_CODE,
- LKP.MEANING MEANING,
- WFS.NOTIFICATION_ID NOTIFICATION_ID,
- WFP.PROCESS_NAME INT_Process_name,
- WFP.ACTIVITY_NAME INT_Activity_name,
- WFS.ACTIVITY_RESULT_CODE INT_Act_Res_code,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') B_Date,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') E_Date,
- WFS.ERROR_NAME Err_name,
- WFS.BEGIN_DATE BEGIN_DATE2,
- WFS.EXECUTION_TIME EXECUTION_TIME2
- from WF_ITEM_ACTIVITY_STATUSES_H WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'OEOL'
- and WFS.item_key in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- order by 1, 13, 14;
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- current_key number;
- line_no varchar2(10);
- begin
- current_key := '';
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..60
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- end if; -- do_analysis
- -- cycle for table information
- for wf in wf_LINE
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null; -- nothing yet
- end if; -- do_analysis
- -- Print line to Output file
- if wf.item_key <> nvl(current_key,0) then -- check if item key changed to place a division
- if current_key is not null then -- first pass don't need to close table
- utl_file.put_line(handle,'&et &f');
- end if;
- utl_file.put_line(handle,'&std &sh <a NAME="WF'||wf.ITEM_KEY||'">WARNING</a> &dh');
- utl_file.put_line(handle,'LIN_NUM &dh');
- utl_file.put_line(handle,'LIN_ID &dh');
- utl_file.put_line(handle,'PROCESS_NAME &dh');
- utl_file.put_line(handle,'ACTIVITY_NAME &dh');
- utl_file.put_line(handle,'RESULT &dh');
- utl_file.put_line(handle,'ACT_STATUS &dh');
- utl_file.put_line(handle,'NOTIF_ID &dh');
- utl_file.put_line(handle,'INT_PROCESS_NAME &dh');
- utl_file.put_line(handle,'INT_ACTIVITY_NAME &dh');
- utl_file.put_line(handle,'INT_RESULT_CODE &dh');
- utl_file.put_line(handle,'BEGIN_DATE &dh');
- utl_file.put_line(handle,'END_DATE &dh');
- utl_file.put_line(handle,'ERROR_NAME &eh');
- current_key := wf.item_key;
- select to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number))
- into line_no
- from OE_ORDER_LINES LIN
- where LIN.Line_id = current_key;
- end if;
- utl_file.put_line(handle,'&sld &b <a HREF="#WFLERR">'||n(:r_flag)||'</a> &eb &d'||n(line_no)||'&d');
- utl_file.put_line(handle,n(wf.ITEM_KEY)||'&d');
- utl_file.put_line(handle,n(wf.Process_name)||'&d'||n(wf.activity_name)||'&d');
- utl_file.put_line(handle,n(wf.Result_code)||'&d'||n(wf.Meaning)||'&d');
- utl_file.put_line(handle,n(wf.Notification_id)||'&d'||n(wf.INT_Process_name)||'&d');
- utl_file.put_line(handle,n(wf.INT_activity_name)||'&d'||n(wf.INT_Act_Res_code)||'&d');
- utl_file.put_line(handle,n(wf.B_date)||'&d');
- utl_file.put_line(handle,n(wf.E_date)||'&d'||n(wf.Err_name)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WFLERR">Warning List:</a> &eb &f');
- for i in 1..60
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- /*
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW LINE SKIP INFORMATION (WFSKIPL)&f');
- UTL_FILE.PUT_LINE(handle,'&std &sh LINE_ID &dh HEADER_ID &dh DISPLAY_NAME &dh CREATION_DATE &dh USER_ID &dh RESPONSIBILITY_ID &dh APPLICATION_ID &eh');
- declare
- r_exist number;
- begin
- select count(*)
- into r_exist
- from all_tables
- where table_name = 'ONT_WF_SKIP_LOG';
- if r_exist = 0 then
- utl_file.put_line(handle,'&et Table ONT_WF_SKIP_LOG is not present on this instance: &f');
- end if;
- end;
- select '&sld', WFS.LINE_ID,
- WFS.HEADER_ID,
- WFA.DISPLAY_NAME,
- to_char(WFS.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
- WFS.USER_ID,
- WFS.RESPONSIBILITY_ID,
- WFS.APPLICATION_ID,'&el'
- from ONT_WF_SKIP_LOG WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA
- where WFS.HEADER_ID = nvl('&header_id_selected',to_char(:v_header_id))
- and WFS.ACTIVITY_ID = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and NVL('&line_id_selected',0) in (0,WFS.LINE_ID)
- order by WFS.HEADER_ID,
- WFS.LINE_ID,
- WFS.CREATION_DATE;
- UTL_FILE.PUT_LINE(handle,'&et'); */
- UTL_FILE.PUT_LINE(handle,'&f &f &b WORKFLOW LINE STATUS ERRORS &f');
- -- break on LIN_ID skip 2;
- UTL_FILE.PUT_LINE(handle,'&std &sh LIN_ID &dh PROCESS_NAME &dh ERROR_ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh ERR_RETRY_ROLE &dh ERR_RETRY_USER &dh ');
- UTL_FILE.PUT_LINE(handle,'ERROR_NAME &dh ERROR_MESSAGE &dh ERROR_STACK &eh');
- Declare
- cursor l_wf_err is
- select
- WFS.ITEM_KEY LIN_ID,
- WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ERROR_ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.ERROR_NAME ERROR_NAME,
- WFS.ERROR_MESSAGE ERROR_MESSAGE,
- WFS.ERROR_STACK ERROR_STACK
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_ITEMS WFI,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'OEOL'
- and WFS.item_key in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFS.ERROR_NAME is not NULL
- and WFI.PARENT_ITEM_TYPE='OEOL'
- and WFI.PARENT_ITEM_KEY in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for ll in l_wf_err
- loop
- utl_file.put_line(handle,'&sld'||n(ll.LIN_ID)||'&d'||n(ll.PROCESS_NAME)||'&d');
- utl_file.put_line(handle,n(ll.ERROR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
- utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.ERROR_NAME)||'&d');
- utl_file.put_line(handle,n(ll.ERROR_MESSAGE)||'&d'||n(ll.ERROR_STACK)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- -- break on ERR_TYPE_KEY skip 2;
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ACTIVITY STATUS FOR LINE ERROR PROCESS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh ERR_TYPE_KEY &dh ERR_PROCESS_NAME &dh ERR_ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh NOTIF_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ASGND_USER &dh BEGIN_DATE &dh END_DATE &eh');
- Declare
- cursor l_wf_proc_err is
- select
- WFS.ITEM_TYPE || '-' || WFS.ITEM_KEY ERR_TYPE_KEY,
- WFA.DISPLAY_NAME ERR_PROCESS_NAME,
- WFA1.DISPLAY_NAME ERR_ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.NOTIFICATION_ID NOTIF_ID,
- WFS.ASSIGNED_USER ASGND_USER,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP,
- WF_ITEMS WFI
- where
- WFS.ITEM_TYPE = WFI.ITEM_TYPE
- and WFS.item_key = WFI.ITEM_KEY
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFI.PARENT_ITEM_TYPE = 'OEOL'
- and WFI.PARENT_ITEM_KEY in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- and WFI.ITEM_TYPE in (select WFAE.ERROR_ITEM_TYPE
- from WF_ITEM_ACTIVITY_STATUSES WFSE,
- WF_PROCESS_ACTIVITIES WFPE,
- WF_ACTIVITIES_VL WFAE,
- WF_ACTIVITIES_VL WFA1E
- where
- WFSE.ITEM_TYPE = 'OEOL'
- and WFSE.ITEM_KEY in
- (select to_char(line_id) from OE_ORDER_LINES LIN
- where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- and WFSE.PROCESS_ACTIVITY = WFPE.INSTANCE_ID
- and WFPE.PROCESS_ITEM_TYPE = WFAE.ITEM_TYPE
- and WFPE.PROCESS_NAME = WFAE.NAME
- and WFPE.PROCESS_VERSION = WFAE.VERSION
- and WFPE.ACTIVITY_ITEM_TYPE = WFA1E.ITEM_TYPE
- and WFPE.ACTIVITY_NAME = WFA1E.NAME
- and WFA1E.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2E
- where WF2E.ITEM_TYPE = WFPE.ACTIVITY_ITEM_TYPE
- and WF2E.NAME = WFPE.ACTIVITY_NAME)
- and WFSE.ACTIVITY_STATUS = 'ERROR')
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for ll in l_wf_proc_err
- loop
- utl_file.put_line(handle,'&sld'||n(ll.ERR_TYPE_KEY)||'&d'||n(ll.ERR_PROCESS_NAME)||'&d');
- utl_file.put_line(handle,n(ll.ERR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
- utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.NOTIF_ID)||'&d');
- utl_file.put_line(handle,n(ll.ASGND_USER)||'&d'||n(ll.BEGIN_DATE)||'&d');
- utl_file.put_line(handle,n(ll.END_DATE)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_wf
- UTL_FILE.PUT_LINE(handle,'&f &f LINE SPECIFIC HOLDS (LINES ONLY)');
- UTL_FILE.PUT_LINE(handle,'&std &sh LINE &dh HOLD_ID &dh HOLD_NAME &dh HOLD_TYPE &dh WF_ITEM &dh WF_ACTIVITY &dh ORD_HOLD_ID &dh HLD_SRC_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'HLD_REL_ID &dh HEADER_ID &dh LINE_ID &dh H_REL &dh S_REL &dh RELEASE_REASON &dh ENTITY &dh ENTITY_ID &dh ENTITY2 &dh ');
- UTL_FILE.PUT_LINE(handle,'ENTITY_ID2 &dh HOLD_UNTIL &eh');
- Declare
- cursor l_holds is
- SELECT
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- HDF.HOLD_ID HOLD_ID,
- HDF.NAME HOLD_NAME,
- HDF.TYPE_CODE HOLD_TYPE,
- HDF.ITEM_TYPE WF_ITEM,
- HDF.ACTIVITY_NAME WF_ACTIVITY,
- HLD.ORDER_HOLD_ID ORD_HOLD_ID,
- HLD.HOLD_SOURCE_ID HLD_SRC_ID,
- HLD.HOLD_RELEASE_ID HLD_REL_ID,
- HLD.HEADER_ID HEADER_ID,
- HLD.LINE_ID LINE_ID,
- HLD.RELEASED_FLAG H_REL,
- HSR.RELEASED_FLAG S_REL,
- HRL.RELEASE_REASON_CODE RELEASE_REASON,
- decode(HSR.HOLD_ENTITY_CODE,
- 'B','Bill To',
- 'C','Customer',
- 'I','Item',
- 'O','Order',
- 'S','Ship To',
- 'W','Warehouse',
- HSR.HOLD_ENTITY_CODE) ENTITY,
- HSR.HOLD_ENTITY_ID ENTITY_ID,
- decode(HSR.HOLD_ENTITY_CODE2,
- 'B','Bill To',
- 'C','Customer',
- 'I','Item',
- 'O','Order',
- 'S','Ship To',
- 'W','Warehouse',
- HSR.HOLD_ENTITY_CODE2) ENTITY2,
- HSR.HOLD_ENTITY_ID2 ENTITY_ID2,
- to_char(HSR.HOLD_UNTIL_DATE,'DD-MON-RR_HH24:MI:SS') HOLD_UNTIL
- from OE_ORDER_HOLDS_ALL HLD,
- OE_HOLD_SOURCES_ALL HSR,
- OE_HOLD_DEFINITIONS HDF,
- OE_HOLD_RELEASES HRL,
- OE_ORDER_LINES_ALL LIN
- where HLD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and HLD.LINE_ID IS NOT NULL
- and HLD.LINE_ID = LIN.LINE_ID
- and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and HLD.HOLD_SOURCE_ID = HSR.HOLD_SOURCE_ID
- and HSR.HOLD_ID = HDF.HOLD_ID
- and HLD.HOLD_RELEASE_ID = HRL.HOLD_RELEASE_ID(+);
- begin
- for ll in l_holds
- loop
- utl_file.put_line(handle,'&sld'||n(ll.LINE)||'&d'||n(ll.HOLD_ID)||'&d');
- utl_file.put_line(handle,n(ll.HOLD_NAME)||'&d'||n(ll.HOLD_TYPE)||'&d');
- utl_file.put_line(handle,n(ll.WF_ITEM)||'&d'||n(ll.WF_ACTIVITY)||'&d');
- utl_file.put_line(handle,n(ll.ORD_HOLD_ID)||'&d'||n(ll.HLD_SRC_ID)||'&d');
- utl_file.put_line(handle,n(ll.HLD_REL_ID)||'&d'||n(ll.HEADER_ID)||'&d');
- utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.H_REL)||'&d');
- utl_file.put_line(handle,n(ll.S_REL)||'&d'||n(ll.RELEASE_REASON)||'&d');
- utl_file.put_line(handle,n(ll.ENTITY)||'&d'||n(ll.ENTITY_ID)||'&d');
- utl_file.put_line(handle,n(ll.ENTITY2)||'&d'||n(ll.ENTITY_ID2)||'&d');
- utl_file.put_line(handle,n(ll.HOLD_UNTIL)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- -- This is commented out because it runs slowly without an index
- --<do not run> CREATE INDEX OE_PROCESSING_MSGS_777
- --<do not run> ON ONT.OE_PROCESSING_MSGS
- --<do not run> (header_id, line_id);
- UTL_FILE.PUT_LINE(handle,'&f &f LINE PROCESSING MESSAGES &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh LINE &dh HEADER_ID &dh LINE_ID &dh MSG_SOURCE &dh ACTIVITY &dh REQUEST_ID &dh DESCRIPTION &dh MESSAGE_TEXT &eh');
- declare
- cursor l_proc is
- select distinct
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- MSG.header_id HEADER_ID,
- MSG.line_id LINE_ID,
- decode(MSG.MESSAGE_SOURCE_CODE,
- 'U','U=On-Line(UI)',
- 'C','C=Conc Process',
- 'W','W=Workflow',
- MSG.MESSAGE_SOURCE_CODE) MSG_SOURCE,
- MSG.PROCESS_ACTIVITY PROCESS_ACTIVITY,
- MSG.request_id REQUEST_ID,
- MST.message_text MESSAGE_TEXT
- from oe_processing_msgs_vl MSG,
- oe_processing_msgs_tl MST,
- oe_order_lines_all LIN,
- fnd_languages FLA
- where MSG.header_id = nvl('&header_id_selected',:v_header_id)
- and MSG.HEADER_ID = LIN.HEADER_ID
- and msg.transaction_id = mst.transaction_id
- and MST.LANGUAGE = FLA.LANGUAGE_CODE
- and FLA.INSTALLED_FLAG = 'B'
- and MSG.LINE_ID = LIN.LINE_ID
- and MSG.LINE_ID is not NULL
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- r_activity varchar2(100);
- r_descrip varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..10
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. Cannot find Activity name associated to LINE PROCESSING MESSAGES.';
- msg(2).descrip := ' 2. Cannot find Request Description.';
- end if;
- for lp in l_proc
- loop
- :r_flag := '';
- :r_error := 0;
- r_activity := '';
- r_descrip := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Get Activity name
- begin
- select WFA1.DISPLAY_NAME
- into r_activity
- from WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA1
- where WFP.INSTANCE_ID = lp.PROCESS_ACTIVITY
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION = (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME);
- exception
- when no_data_found then
- :r_flag := :r_flag || '1 ';
- msg(1).flag := '1';
- end;
- -- Get Request description
- begin
- select DESCRIPTION
- into r_descrip
- FROM FND_CONCURRENT_REQUESTS FCR
- where FCR.REQUEST_ID = lp.REQUEST_ID;
- exception
- when no_data_found then
- :r_flag := :r_flag || '2 ';
- msg(2).flag := '1';
- end;
- end if; -- do_analysis
- -- Print line to Output file
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#LPMERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,n(lp.LINE)||'&d'||n(lp.HEADER_ID)||'&d');
- utl_file.put_line(handle,n(lp.LINE_ID)||'&d'||n(lp.MSG_SOURCE)||'&d');
- utl_file.put_line(handle,n(r_activity)||'&d'||n(lp.REQUEST_ID)||'&d');
- utl_file.put_line(handle,n(r_descrip)||'&d'||n(lp.MESSAGE_TEXT)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="LPMERR">Warning List:</a> &eb &f');
- for i in 1..10
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- --<do not run> DROP INDEX OE_PROCESSING_MSGS_777
- if UPPER(nvl('&prt_price','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="APPLIED LINE PRICE ADJUSTMENTS">APPLIED LINE PRICE ADJUSTMENTS (ADJ)</a> <a HREF="#ALA">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PRC_ADJ_ID &dh LINE &dh LST_HD_ID &dh LST_LN_ID &dh LIST_LN_NO &dh MOD_LVL &dh LIST_TYPE_CODE &dh CHG_TY_CD &dh');
- UTL_FILE.PUT_LINE(handle,'ARITH_OP &dh OP_PER_QTY &dh ADJ_AMT_PQ &dh OPERAND &dh ADJ_AMT &dh CD &dh AF &dh PI &dh AC &dh IF &dh EF &dh UA &dh UF &dh');
- UTL_FILE.PUT_LINE(handle,'AP &dh LK &dh PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
- Declare
- cursor l_prc_adj is
- select
- ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- ADJ.LIST_HEADER_ID LST_HD_ID,
- ADJ.LIST_LINE_ID LST_LN_ID,
- ADJ.LIST_LINE_NO LIST_LN_NO,
- ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
- ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
- ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
- ADJ.ARITHMETIC_OPERATOR ARITH_OP,
- ADJ.OPERAND_PER_PQTY OP_PER_QTY,
- ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
- ADJ.OPERAND OPERAND,
- ADJ.ADJUSTED_AMOUNT ADJ_AMT,
- ADJ.CREDIT_OR_CHARGE_FLAG CD,
- ADJ.AUTOMATIC_FLAG AF,
- ADJ.PRINT_ON_INVOICE_FLAG PI,
- ADJ.ACCRUAL_FLAG AC,
- ADJ.INVOICED_FLAG INF,
- ADJ.ESTIMATED_FLAG EF,
- ADJ.UPDATE_ALLOWED UA,
- ADJ.UPDATED_FLAG UF,
- ADJ.APPLIED_FLAG AP,
- ADJ.LOCK_CONTROL LK,
- ADJ.PERCENT PERC,
- ADJ.COST_ID COST_ID,
- ADJ.TAX_CODE TAX_CODE,
- ADJ.PRICING_PHASE_ID PP
- from OE_PRICE_ADJUSTMENTS ADJ,
- OE_ORDER_LINES_ALL LIN
- where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ADJ.LINE_ID IS NOT NULL
- and ADJ.LINE_ID = LIN.LINE_ID
- and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and ADJ.APPLIED_FLAG = 'Y'
- order by LINE,
- LIST_LINE_TYPE_CODE;
- begin
- for ll in l_prc_adj
- loop
- utl_file.put_line(handle,'&sld'||n(ll.PRC_ADJ_ID)||'&d'||n(ll.LINE)||'&d');
- utl_file.put_line(handle,n(ll.LST_HD_ID)||'&d'||n(ll.LST_LN_ID)||'&d');
- utl_file.put_line(handle,n(ll.LIST_LN_NO)||'&d'||n(ll.MOD_LVL)||'&d');
- utl_file.put_line(handle,n(ll.LIST_TYPE_CODE)||'&d'||n(ll.CHG_TY_CD)||'&d');
- utl_file.put_line(handle,n(ll.ARITH_OP)||'&d'||n(ll.OP_PER_QTY)||'&d');
- utl_file.put_line(handle,n(ll.ADJ_AMT_PQ)||'&d'||n(ll.OPERAND)||'&d');
- utl_file.put_line(handle,n(ll.ADJ_AMT)||'&d'||n(ll.CD)||'&d');
- utl_file.put_line(handle,n(ll.AF)||'&d'||n(ll.PI)||'&d');
- utl_file.put_line(handle,n(ll.AC)||'&d'||n(ll.INF)||'&d');
- utl_file.put_line(handle,n(ll.EF)||'&d'||n(ll.UA)||'&d');
- utl_file.put_line(handle,n(ll.UF)||'&d'||n(ll.AP)||'&d');
- utl_file.put_line(handle,n(ll.LK)||'&d'||n(ll.PERC)||'&d');
- utl_file.put_line(handle,n(ll.COST_ID)||'&d'||n(ll.TAX_CODE)||'&d');
- utl_file.put_line(handle,n(ll.PP)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="UN-APPLIED LINE PRICE ADJUSTMENTS">UN-APPLIED LINE PRICE ADJUSTMENTS (ADJ)</a> <a HREF="#ALA">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PRC_ADJ_ID &dh LINE &dh LST_HD_ID &dh LST_LN_ID &dh LIST_LN_NO &dh MOD_LVL &dh LIST_TYPE_CODE &dh CHG_TY_CD &dh');
- UTL_FILE.PUT_LINE(handle,'ARITH_OP &dh OP_PER_QTY &dh ADJ_AMT_PQ &dh OPERAND &dh ADJ_AMT &dh CD &dh AF &dh PI &dh AC &dh IF &dh EF &dh UA &dh UF &dh');
- UTL_FILE.PUT_LINE(handle,'AP &dh LK &dh PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
- Declare
- cursor l_prc_adj_un is
- select
- ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- ADJ.LIST_HEADER_ID LST_HD_ID,
- ADJ.LIST_LINE_ID LST_LN_ID,
- ADJ.LIST_LINE_NO LIST_LN_NO,
- ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
- ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
- ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
- ADJ.ARITHMETIC_OPERATOR ARITH_OP,
- ADJ.OPERAND_PER_PQTY OP_PER_QTY,
- ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
- ADJ.OPERAND OPERAND,
- ADJ.ADJUSTED_AMOUNT ADJ_AMT,
- ADJ.CREDIT_OR_CHARGE_FLAG CD,
- ADJ.AUTOMATIC_FLAG AF,
- ADJ.PRINT_ON_INVOICE_FLAG PI,
- ADJ.ACCRUAL_FLAG AC,
- ADJ.INVOICED_FLAG INF,
- ADJ.ESTIMATED_FLAG EF,
- ADJ.UPDATE_ALLOWED UA,
- ADJ.UPDATED_FLAG UF,
- ADJ.APPLIED_FLAG AP,
- ADJ.LOCK_CONTROL LK,
- ADJ.PERCENT PERC,
- ADJ.COST_ID COST_ID,
- ADJ.TAX_CODE TAX_CODE,
- ADJ.PRICING_PHASE_ID PP
- from OE_PRICE_ADJUSTMENTS ADJ,
- OE_ORDER_LINES_ALL LIN
- where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ADJ.LINE_ID IS NOT NULL
- and ADJ.LINE_ID = LIN.LINE_ID
- and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and nvl(ADJ.APPLIED_FLAG,'N') = 'N'
- order by LINE,
- LIST_LINE_TYPE_CODE;
- begin
- for ll in l_prc_adj_un
- loop
- utl_file.put_line(handle,'&sld'||n(ll.PRC_ADJ_ID)||'&d'||n(ll.LINE)||'&d');
- utl_file.put_line(handle,n(ll.LST_HD_ID)||'&d'||n(ll.LST_LN_ID)||'&d');
- utl_file.put_line(handle,n(ll.LIST_LN_NO)||'&d'||n(ll.MOD_LVL)||'&d');
- utl_file.put_line(handle,n(ll.LIST_TYPE_CODE)||'&d'||n(ll.CHG_TY_CD)||'&d');
- utl_file.put_line(handle,n(ll.ARITH_OP)||'&d'||n(ll.OP_PER_QTY)||'&d');
- utl_file.put_line(handle,n(ll.ADJ_AMT_PQ)||'&d'||n(ll.OPERAND)||'&d');
- utl_file.put_line(handle,n(ll.ADJ_AMT)||'&d'||n(ll.CD)||'&d');
- utl_file.put_line(handle,n(ll.AF)||'&d'||n(ll.PI)||'&d');
- utl_file.put_line(handle,n(ll.AC)||'&d'||n(ll.INF)||'&d');
- utl_file.put_line(handle,n(ll.EF)||'&d'||n(ll.UA)||'&d');
- utl_file.put_line(handle,n(ll.UF)||'&d'||n(ll.AP)||'&d');
- utl_file.put_line(handle,n(ll.LK)||'&d'||n(ll.PERC)||'&d');
- utl_file.put_line(handle,n(ll.COST_ID)||'&d'||n(ll.TAX_CODE)||'&d');
- utl_file.put_line(handle,n(ll.PP)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_price
- if UPPER(nvl('&prt_po','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f OE_DROP_SHIP_SOURCES (SRC) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh DROP_SHIP_ID &dh HEADER_ID &dh LINE_ID &dh LINE &dh ORG_ID &dh DEST_ID &dh DEST_ORG &dh REQ_HEADER_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'REQ_LINE_ID &dh PO_HEAD_ID &dh PO_LINE_ID &dh LINE_LOC_ID &dh PO_RELEASE_ID &eh');
- Declare
- cursor l_drop_ship is
- select
- SRC.DROP_SHIP_SOURCE_ID DROP_SHIP_ID,
- SRC.HEADER_ID HEADER_ID,
- SRC.LINE_ID LINE_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- SRC.ORG_ID ORG_ID,
- SRC.DESTINATION_ORGANIZATION_ID DEST_ID,
- PAR.ORGANIZATION_CODE DEST_ORG,
- SRC.REQUISITION_HEADER_ID REQ_HEADER_ID,
- SRC.REQUISITION_LINE_ID REQ_LINE_ID,
- SRC.PO_HEADER_ID PO_HEAD_ID,
- SRC.PO_LINE_ID PO_LINE_ID,
- SRC.LINE_LOCATION_ID LINE_LOC_ID,
- SRC.PO_RELEASE_ID PO_RELEASE_ID
- FROM OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN,
- MTL_PARAMETERS PAR
- WHERE
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.DESTINATION_ORGANIZATION_ID = PAR.ORGANIZATION_ID(+)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for ll in l_drop_ship
- loop
- utl_file.put_line(handle,'&sld'||n(ll.DROP_SHIP_ID)||'&d'||n(ll.HEADER_ID)||'&d');
- utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.LINE)||'&d');
- utl_file.put_line(handle,n(ll.ORG_ID)||'&d'||n(ll.DEST_ID)||'&d');
- utl_file.put_line(handle,n(ll.DEST_ORG)||'&d'||n(ll.REQ_HEADER_ID)||'&d');
- utl_file.put_line(handle,n(ll.REQ_LINE_ID)||'&d'||n(ll.PO_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(ll.PO_LINE_ID)||'&d'||n(ll.LINE_LOC_ID)||'&d');
- utl_file.put_line(handle,n(ll.PO_RELEASE_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_po
- end if; -- :v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- If :v_head_only = 'N' then
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- if UPPER(nvl('&prt_po','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITIONS_INTERFACE_ALL (RQI) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh DROP_SHIP_ID &dh LINE &dh AUTH_STATUS &dh DELIV_LOC &dh PREPARER &dh DEST_ORG_ID &dh DEST_TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'SRC_CODE &dh SRC_TYPE_CODE &dh ITEM_ID &dh NEED_BY &dh QTY &dh PRICE &el');
- Declare
- cursor po_req_int is
- Select
- RQI.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RQI.AUTHORIZATION_STATUS AUTH_STATUS,
- RQI.DELIVER_TO_LOCATION_ID DELIV_LOC,
- RQI.PREPARER_ID PREPARER,
- RQI.DESTINATION_ORGANIZATION_ID DEST_ORG_ID,
- RQI.DESTINATION_TYPE_CODE DEST_TYPE,
- RQI.INTERFACE_SOURCE_CODE SRC_CODE,
- RQI.SOURCE_TYPE_CODE SRC_TYPE_CODE,
- RQI.ITEM_ID ITEM_ID,
- to_char(RQI.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
- RQI.QUANTITY QTY,
- RQI.UNIT_PRICE PRICE
- from PO_REQUISITIONS_INTERFACE_ALL RQI,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where SRC.LINE_ID = LIN.LINE_ID
- and SRC.DROP_SHIP_SOURCE_ID = RQI.INTERFACE_SOURCE_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_req_int
- loop
- utl_file.put_line(handle,'&sld'||n(po.DROP_SHIP_ID)||'&d'||n(po.LINE)||'&d');
- utl_file.put_line(handle,n(po.AUTH_STATUS)||'&d'||n(po.DELIV_LOC)||'&d');
- utl_file.put_line(handle,n(po.PREPARER)||'&d'||n(po.DEST_ORG_ID)||'&d');
- utl_file.put_line(handle,n(po.DEST_TYPE)||'&d'||n(po.SRC_CODE)||'&d');
- utl_file.put_line(handle,n(po.SRC_TYPE_CODE)||'&d'||n(po.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(po.NEED_BY)||'&d'||n(po.QTY)||'&d');
- utl_file.put_line(handle,n(po.PRICE)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_INTERFACE_ERRORS_ALL (POE) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTF_TRANS_ID &dh LINE &dh COLUMN_NAME &dh ERROR &dh INTF_TYPE &dh REQUEST_ID &dh TABLE_NAME &eh');
- Declare
- cursor po_int_err is
- select
- POE.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- POE.COLUMN_NAME COLUMN_NAME,
- POE.ERROR_MESSAGE ERRORM,
- POE.INTERFACE_TYPE INTF_TYPE,
- POE.REQUEST_ID REQUEST_ID,
- POE.TABLE_NAME TABLE_NAME
- from
- PO_INTERFACE_ERRORS POE,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN,
- PO_REQUISITIONS_INTERFACE_ALL RQI
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.DROP_SHIP_SOURCE_ID = RQI.INTERFACE_SOURCE_LINE_ID
- and RQI.TRANSACTION_ID = POE.INTERFACE_TRANSACTION_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_int_err
- loop
- utl_file.put_line(handle,'&sld'||n(po.INTF_TRANS_ID)||'&d'||n(po.LINE)||'&d');
- utl_file.put_line(handle,n(po.COLUMN_NAME)||'&d'||n(po.ERRORM)||'&d');
- utl_file.put_line(handle,n(po.INTF_TYPE)||'&d'||n(po.REQUEST_ID)||'&d');
- utl_file.put_line(handle,n(po.TABLE_NAME)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITION_HEADERS_ALL (RQH) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh REQ_HEADER_ID &dh REQ_NUMBER &dh DROP_SHIP_ID &dh AUTH_STATUS &dh ENABLED &dh SRC_CODE &dh SUMMARY &dh ');
- UTL_FILE.PUT_LINE(handle,'XFR_OE_FLAG &dh REQ_TYPE &dh ITEM_TYPE &dh ITEM_KEY &eh');
- Declare
- cursor po_req_hdr is
- select distinct
- RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
- RQH.SEGMENT1 REQ_NUMBER,
- RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
- RQH.AUTHORIZATION_STATUS AUTH_STATUS,
- RQH.ENABLED_FLAG ENABLED,
- RQH.INTERFACE_SOURCE_CODE SRC_CODE,
- RQH.SUMMARY_FLAG SUMMARY,
- RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
- RQH.TYPE_LOOKUP_CODE REQ_TYPE,
- RQH.WF_ITEM_TYPE ITEM_TYPE,
- RQH.WF_ITEM_KEY ITEM_KEY
- from
- PO_REQUISITION_HEADERS_ALL RQH,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_HEADER_ID = RQH.REQUISITION_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select distinct /* INTERNAL REQ */
- RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
- RQH.SEGMENT1 REQ_NUMBER,
- RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
- RQH.AUTHORIZATION_STATUS AUTH_STATUS,
- RQH.ENABLED_FLAG ENABLED,
- RQH.INTERFACE_SOURCE_CODE SRC_CODE,
- RQH.SUMMARY_FLAG SUMMARY,
- RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
- RQH.TYPE_LOOKUP_CODE REQ_TYPE,
- RQH.WF_ITEM_TYPE ITEM_TYPE,
- RQH.WF_ITEM_KEY ITEM_KEY
- from
- PO_REQUISITION_HEADERS_ALL RQH,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_ID = RQH.REQUISITION_HEADER_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10 --INTERNAL REQUISITION
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select distinct /* ATO BUY ITEM */
- RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
- RQH.SEGMENT1 REQ_NUMBER,
- RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
- RQH.AUTHORIZATION_STATUS AUTH_STATUS,
- RQH.ENABLED_FLAG ENABLED,
- RQH.INTERFACE_SOURCE_CODE SRC_CODE,
- RQH.SUMMARY_FLAG SUMMARY,
- RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
- RQH.TYPE_LOOKUP_CODE REQ_TYPE,
- RQH.WF_ITEM_TYPE ITEM_TYPE,
- RQH.WF_ITEM_KEY ITEM_KEY
- from
- PO_REQUISITION_HEADERS_ALL RQH,
- MTL_RESERVATIONS RES
- where
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
- and RES.SUPPLY_SOURCE_TYPE_ID = 17 -- Req
- and RES.SUPPLY_SOURCE_HEADER_ID = RQH.REQUISITION_HEADER_ID;
- begin
- for po in po_req_hdr
- loop
- utl_file.put_line(handle,'&sld'||n(po.REQ_HEADER_ID)||'&d'||n(po.REQ_NUMBER)||'&d');
- utl_file.put_line(handle,n(po.DROP_SHIP_ID)||'&d'||n(po.AUTH_STATUS)||'&d');
- utl_file.put_line(handle,n(po.ENABLED)||'&d'||n(po.SRC_CODE)||'&d');
- utl_file.put_line(handle,n(po.SUMMARY)||'&d'||n(po.XFR_OE_FLAG)||'&d');
- utl_file.put_line(handle,n(po.REQ_TYPE)||'&d'||n(po.ITEM_TYPE)||'&d');
- utl_file.put_line(handle,n(po.ITEM_KEY)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITION_LINES_ALL (RQL) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh REQ_HEAD_ID &dh REQ_LINE_ID &dh DOC_TYPE &dh REQ_LINE &dh LINE &dh ITEM_ID &dh ITEM_DESC &dh UOM &dh PRICE &dh ');
- UTL_FILE.PUT_LINE(handle,'QTY &dh QTY_CNC &dh QTY_DLV &dh CANC &dh SRC_TYPE &dh SRC_ORG &dh DEST_TYPE &dh DEST_ORG &dh ENC_FL &dh LINE_TYPE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'NEED_BY &dh RFQ &dh BUYER_ID &eh');
- Declare
- cursor po_req_lin is
- select /* DROP SHIPMENT */
- RQL.REQUISITION_HEADER_ID REQ_HEAD_ID,
- RQL.REQUISITION_LINE_ID REQ_LINE_ID,
- 'DROP SHIP' DOC_TYPE,
- RQL.LINE_NUM REQ_LINE,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RQL.ITEM_ID ITEM_ID,
- RQL.ITEM_DESCRIPTION ITEM_DESC,
- RQL.UNIT_MEAS_LOOKUP_CODE UOM,
- RQL.UNIT_PRICE PRICE,
- RQL.QUANTITY QTY,
- RQL.QUANTITY_CANCELLED QTY_CNC,
- RQL.QUANTITY_DELIVERED QTY_DLV,
- RQL.CANCEL_FLAG CANC,
- RQL.SOURCE_TYPE_CODE SRC_TYPE,
- RQL.SOURCE_ORGANIZATION_ID SRC_ORG,
- RQL.DESTINATION_CONTEXT DEST_TYPE,
- RQL.DESTINATION_ORGANIZATION_ID DEST_ORG,
- RQL.ENCUMBERED_FLAG ENC_FL,
- RQL.LINE_TYPE_ID LINE_TYPE_ID,
- to_char(RQL.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
- RQL.ON_RFQ_FLAG RFQ ,
- RQL.SUGGESTED_BUYER_ID BUYER_ID
- from
- PO_REQUISITION_LINES_ALL RQL,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and RQL.REQUISITION_LINE_ID = SRC.REQUISITION_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* INTERNAL SALES ORDER */
- RQL.REQUISITION_HEADER_ID REQ_HEAD_ID,
- RQL.REQUISITION_LINE_ID REQ_LINE_ID,
- 'INTERNAL SO' DOC_TYPE,
- RQL.LINE_NUM REQ_LINE,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RQL.ITEM_ID ITEM_ID,
- RQL.ITEM_DESCRIPTION ITEM_DESC,
- RQL.UNIT_MEAS_LOOKUP_CODE UOM,
- RQL.UNIT_PRICE PRICE,
- RQL.QUANTITY QTY,
- RQL.QUANTITY_CANCELLED QTY_CNC,
- RQL.QUANTITY_DELIVERED QTY_DLV,
- RQL.CANCEL_FLAG CANC,
- RQL.SOURCE_TYPE_CODE SRC_TYPE,
- RQL.SOURCE_ORGANIZATION_ID SRC_ORG,
- RQL.DESTINATION_CONTEXT DEST_TYPE,
- RQL.DESTINATION_ORGANIZATION_ID DEST_ORG,
- RQL.ENCUMBERED_FLAG ENC_FL ,
- RQL.LINE_TYPE_ID LINE_TYPE_ID,
- to_char(RQL.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
- RQL.ON_RFQ_FLAG RFQ ,
- RQL.SUGGESTED_BUYER_ID BUYER_ID
- from
- PO_REQUISITION_LINES_ALL RQL,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_LINE_ID = RQL.REQUISITION_LINE_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10 --INTERNAL REQUISITION
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for po in po_req_lin
- loop
- utl_file.put_line(handle,'&sld'||n(po.REQ_HEAD_ID)||'&d'||n(po.REQ_LINE_ID)||'&d');
- utl_file.put_line(handle,n(po.DOC_TYPE)||'&d'||n(po.REQ_LINE)||'&d');
- utl_file.put_line(handle,n(po.LINE)||'&d'||n(po.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(po.ITEM_DESC)||'&d'||n(po.UOM)||'&d');
- utl_file.put_line(handle,n(po.PRICE)||'&d'||n(po.QTY)||'&d');
- utl_file.put_line(handle,n(po.QTY_CNC)||'&d'||n(po.QTY_DLV)||'&d');
- utl_file.put_line(handle,n(po.CANC)||'&d'||n(po.SRC_TYPE)||'&d');
- utl_file.put_line(handle,n(po.SRC_ORG)||'&d'||n(po.DEST_TYPE)||'&d');
- utl_file.put_line(handle,n(po.DEST_ORG)||'&d'||n(po.ENC_FL)||'&d');
- utl_file.put_line(handle,n(po.LINE_TYPE_ID)||'&d'||n(po.NEED_BY)||'&d');
- utl_file.put_line(handle,n(po.RFQ)||'&d'||n(po.BUYER_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL STATUS &f');
- -- break on REQ_NUM_IK skip 2;
- UTL_FILE.PUT_LINE(handle,'&std &sh REQ_NUM_IK &dh PROCESS_NAME &dh ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh NOTIF_ID &dh _BEGIN_DATE_ &dh ');
- UTL_FILE.PUT_LINE(handle,'_END_DATE_ &dh ERROR &eh');
- Declare
- cursor po_req_apprv is
- select WFS.item_key REQ_NUM_IK,
- WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.NOTIFICATION_ID NOTIF_ID,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE,
- WFS.ERROR_NAME ERROR_apprv
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'REQAPPRV'
- and WFS.item_key in (select wf_item_key /*DROP SHIPMENTS*/
- from
- PO_REQUISITION_HEADERS REQ,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select wf_item_key /* INTERNAL SALES ORDERSS */
- from
- PO_REQUISITION_HEADERS REQ,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_req_apprv
- loop
- utl_file.put_line(handle,'&sld'||n(po.REQ_NUM_IK)||'&d'||n(po.PROCESS_NAME)||'&d');
- utl_file.put_line(handle,n(po.ACTIVITY_NAME)||'&d'||n(po.RESULT)||'&d');
- utl_file.put_line(handle,n(po.ACT_STATUS)||'&d'||n(po.NOTIF_ID)||'&d');
- utl_file.put_line(handle,n(po.BEGIN_DATE)||'&d'||n(po.END_DATE)||'&d');
- utl_file.put_line(handle,n(po.ERROR_APPRV)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL NOTIFICATIONS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh NOTIF_ID &dh TO_USER &dh ORIG_RECIP &dh RECIP_ROLE &dh MAIL_STAT &dh MESSAGE_NAME &dh STATUS &dh SUBJECT &eh');
- Declare
- cursor po_req_apprv_not is
- select WFN.NOTIFICATION_ID NOTIF_ID,
- WFN.TO_USER TO_USER,
- WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
- WFN.RECIPIENT_ROLE RECIP_ROLE,
- WFN.MAIL_STATUS MAIL_STAT,
- WFN.MESSAGE_NAME MESSAGE_NAME,
- WFN.STATUS STATUS,
- WFN.SUBJECT SUBJECT
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_NOTIFICATIONS WFN
- where
- WFS.ITEM_TYPE = 'REQAPPRV'
- and WFS.item_key in (select wf_item_key /* DROP SHIPMENTS */
- from
- PO_REQUISITION_HEADERS REQ,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select wf_item_key /* INTERNAL SALES ORDERSS */
- from
- PO_REQUISITION_HEADERS REQ,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.NOTIFICATION_ID is not null
- and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_req_apprv_Not
- loop
- utl_file.put_line(handle,'&sld'||n(po.NOTIF_ID)||'&d'||n(po.To_USER)||'&d');
- utl_file.put_line(handle,n(po.ORIG_RECIP)||'&d'||n(po.RECIP_ROLE)||'&d');
- utl_file.put_line(handle,n(po.MAIL_STAT)||'&d'||n(po.MESSAGE_NAME)||'&d');
- utl_file.put_line(handle,n(po.STATUS)||'&d'||n(po.SUBJECT)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL ERRORS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PROCESS_NAME &dh ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh ERROR_NAME &dh ERROR_MESSAGE &dh ERROR_STACK &eh');
- Declare
- cursor po_req_apprv_err is
- select WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.ERROR_NAME ERROR_NAME,
- WFS.ERROR_MESSAGE ERROR_MESSAGE,
- WFS.ERROR_STACK ERROR_STACK
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'REQAPPRV'
- and WFS.item_key in (select wf_item_key /* DROP SHIPMENTS */
- from
- PO_REQUISITION_HEADERS REQ,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select wf_item_key /* INTERNAL SALES ORDERSS */
- from
- PO_REQUISITION_HEADERS REQ,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFS.ERROR_NAME is not NULL
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_req_apprv_err
- loop
- utl_file.put_line(handle,'&sld'||n(po.PROCESS_NAME)||'&d'||n(po.ACTIVITY_NAME)||'&d');
- utl_file.put_line(handle,n(po.RESULT)||'&d'||n(po.ACT_STATUS)||'&d');
- utl_file.put_line(handle,n(po.ERROR_NAME)||'&d'||n(po.ERROR_MESSAGE)||'&d');
- utl_file.put_line(handle,n(po.ERROR_STACK)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_HEADERS_INTERFACE (PHI) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTF_HEAD_ID &dh BATCH_ID &dh INTF_SRC_CODE &dh PROCESS_CODE &dh ACTION &dh PO_HEADER_ID &dh REL_NUM &dh');
- UTL_FILE.PUT_LINE(handle,'PO_RELEASE_ID &dh VENDOR_NAME &dh APPRV_STAT &dh FIRM &dh FROZEN &dh CLOSE_CODE &dh CLOSE_DATE &dh APPRV_REQD &dh');
- UTL_FILE.PUT_LINE(handle,'REF_NUM &dh VEND_NUM &dh WF_GROUP_ID &eh');
- Declare
- cursor po_hdr_int is
- select
- PHI.INTERFACE_HEADER_ID INTF_HEAD_ID,
- PHI.BATCH_ID BATCH_ID,
- PHI.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
- PHI.PROCESS_CODE PROCESS_CODE,
- PHI.ACTION ACTION,
- PHI.PO_HEADER_ID PO_HEADER_ID,
- PHI.RELEASE_NUM REL_NUM,
- PHI.PO_RELEASE_ID PO_RELEASE_ID,
- PHI.VENDOR_NAME VENDOR_NAME,
- PHI.APPROVAL_STATUS APPRV_STAT,
- PHI.FIRM_FLAG FIRM,
- PHI.FROZEN_FLAG FROZEN,
- PHI.CLOSED_CODE CLOSE_CODE,
- to_char(PHI.CLOSED_DATE,'DD-MON-RR_HH24:MI:SS') CLOSE_DATE,
- PHI.APPROVAL_REQUIRED_FLAG APPRV_REQD,
- PHI.REFERENCE_NUM REF_NUM,
- PHI.VENDOR_NUM VEND_NUM,
- PHI.WF_GROUP_ID WF_GROUP_ID
- from
- PO_HEADERS_INTERFACE PHI,
- PO_LINES_INTERFACE PLI,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
- and PHI.INTERFACE_HEADER_ID = PLI.INTERFACE_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_hdr_int
- loop
- utl_file.put_line(handle,'&sld'||n(po.INTF_HEAD_ID)||'&d'||n(po.BATCH_ID)||'&d');
- utl_file.put_line(handle,n(po.INTF_SRC_CODE)||'&d'||n(po.PROCESS_CODE)||'&d');
- utl_file.put_line(handle,n(po.ACTION)||'&d'||n(po.PO_HEADER_ID)||'&d');
- utl_file.put_line(handle,n(po.REL_NUM)||'&d'||n(po.PO_RELEASE_ID)||'&d');
- utl_file.put_line(handle,n(po.VENDOR_NAME)||'&d'||n(po.APPRV_STAT)||'&d');
- utl_file.put_line(handle,n(po.FIRM)||'&d'||n(po.FROZEN)||'&d');
- utl_file.put_line(handle,n(po.CLOSE_CODE)||'&d'||n(po.CLOSE_DATE)||'&d');
- utl_file.put_line(handle,n(po.APPRV_REQD)||'&d'||n(po.REF_NUM)||'&d');
- utl_file.put_line(handle,n(po.VEND_NUM)||'&d'||n(po.WF_GROUP_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_LINES_INTERFACE (PLI) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTF_LINE_ID &dh INTF_HEAD_ID &dh ACTION &dh PO_LINE &dh LINE &dh PO_LINE_ID &dh SHIP_NUM &dh SHIP_TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'REQ_LINE_ID &dh PO_HEADER_ID &dh LINE_TYPE &dh ITEM &dh UOM &dh QUANTITY &dh PRICE &dh FIRM &dh SHIP_ORG_CODE &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP_ORG_ID &dh SHIP_TO_LOC &dh SHIP_TO_LOC_ID &dh NEED_BY &dh PROMISE &dh WAREH_ID &eh');
- Declare
- cursor po_lin_int is
- select
- PLI.INTERFACE_LINE_ID INTF_LINE_ID,
- PLI.INTERFACE_HEADER_ID INTF_HEAD_ID,
- PLI.ACTION ACTION,
- PLI.LINE_NUM PO_LINE,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- PLI.PO_LINE_ID PO_LINE_ID,
- PLI.SHIPMENT_NUM SHIP_NUM,
- PLI.SHIPMENT_TYPE SHIP_TYPE,
- PLI.REQUISITION_LINE_ID REQ_LINE_ID,
- PLI.PO_HEADER_ID PO_HEADER_ID,
- PLI.LINE_TYPE LINE_TYPE,
- PLI.ITEM ITEM,
- PLI.UNIT_OF_MEASURE UOM,
- PLI.QUANTITY QUANTITY,
- PLI.UNIT_PRICE PRICE,
- PLI.FIRM_FLAG FIRM,
- PLI.SHIP_TO_ORGANIZATION_CODE SHIP_ORG_CODE,
- PLI.SHIP_TO_ORGANIZATION_ID SHIP_ORG_ID,
- PLI.SHIP_TO_LOCATION SHIP_TO_LOC,
- PLI.SHIP_TO_LOCATION_ID SHIP_TO_LOC_ID,
- to_char(PLI.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
- to_char(PLI.PROMISED_DATE,'DD-MON-RR_HH24:MI:SS') PROMISE,
- PLI.ORGANIZATION_ID WAREH_ID
- from PO_LINES_INTERFACE PLI,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_lin_int
- loop
- utl_file.put_line(handle,'&sld'||n(po.INTF_LINE_ID)||'&d'||n(po.INTF_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(po.ACTION)||'&d'||n(po.PO_LINE)||'&d');
- utl_file.put_line(handle,n(po.LINE)||'&d'||n(po.PO_LINE_ID)||'&d');
- utl_file.put_line(handle,n(po.SHIP_NUM)||'&d'||n(po.SHIP_TYPE)||'&d');
- utl_file.put_line(handle,n(po.REQ_LINE_ID)||'&d'||n(po.PO_HEADER_ID)||'&d');
- utl_file.put_line(handle,n(po.LINE_TYPE)||'&d'||n(po.ITEM)||'&d');
- utl_file.put_line(handle,n(po.UOM)||'&d'||n(po.QUANTITY)||'&d');
- utl_file.put_line(handle,n(po.PRICE)||'&d'||n(po.FIRM)||'&d');
- utl_file.put_line(handle,n(po.SHIP_ORG_CODE)||'&d'||n(po.SHIP_ORG_ID)||'&d');
- utl_file.put_line(handle,n(po.SHIP_TO_LOC)||'&d'||n(po.SHIP_TO_LOC_ID)||'&d');
- utl_file.put_line(handle,n(po.NEED_BY)||'&d'||n(po.PROMISE)||'&d');
- utl_file.put_line(handle,n(po.WAREH_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_INTERFACE_ERRORS_ALL (POE) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INF_TRANS_ID &dh COLUMN_NAME &dh ERROR &dh INF_TYPE &dh REQUEST_ID &dh TABLE_NAME &eh');
- Declare
- cursor po_int_err is
- select
- POE.INTERFACE_TRANSACTION_ID INF_TRANS_ID,
- POE.COLUMN_NAME COLUMN_NAME,
- POE.ERROR_MESSAGE ERROR_M,
- POE.INTERFACE_TYPE INF_TYPE,
- POE.REQUEST_ID REQUEST_ID,
- POE.TABLE_NAME TABLE_N
- from
- PO_INTERFACE_ERRORS POE,
- PO_HEADERS_INTERFACE PHI,
- PO_LINES_INTERFACE PLI,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
- and PHI.INTERFACE_HEADER_ID = PLI.INTERFACE_HEADER_ID
- and (POE.INTERFACE_TRANSACTION_ID = PLI.INTERFACE_LINE_ID
- or POE.INTERFACE_TRANSACTION_ID = PHI.INTERFACE_HEADER_ID)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_int_err
- loop
- utl_file.put_line(handle,'&sld'||n(po.INF_TRANS_ID)||'&d'||n(po.COLUMN_NAME)||'&d');
- utl_file.put_line(handle,n(po.ERROR_M)||'&d'||n(po.INF_TYPE)||'&d');
- utl_file.put_line(handle,n(po.REQUEST_ID)||'&d'||n(po.TABLE_N)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_HEADERS_ALL (POH) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PO_HEADER_ID &dh PO_NUM &dh ACCEPT_REQD &dh BILL_TO &dh SHIP_TO &dh CLS_STAT &dh CONF_ORD &dh CURR &dh ');
- UTL_FILE.PUT_LINE(handle,'ENABLED &dh FROZEN &dh SUMM &dh TYPE &dh VEND_CNCACT &dh VEND_ID &dh VEND_SITE &dh ITEM_TYPE &dh ITEM_KEY &eh');
- Declare
- cursor po_hdr is
- select
- POH.PO_HEADER_ID PO_HEADER_ID,
- POH.SEGMENT1 PO_NUM,
- POH.ACCEPTANCE_REQUIRED_FLAG ACCEPT_REQD,
- POH.BILL_TO_LOCATION_ID BILL_TO,
- POH.SHIP_TO_LOCATION_ID SHIP_TO,
- POH.CLOSED_CODE CLS_STAT,
- POH.CONFIRMING_ORDER_FLAG CONF_ORD,
- POH.CURRENCY_CODE CURR,
- POH.ENABLED_FLAG ENABLED,
- POH.FROZEN_FLAG FROZEN,
- POH.SUMMARY_FLAG SUMM,
- POH.TYPE_LOOKUP_CODE TYPE,
- POH.VENDOR_CONTACT_ID VEND_CONT,
- POH.VENDOR_ID VEND_ID,
- POH.VENDOR_SITE_ID VEND_SITE,
- POH.WF_ITEM_TYPE ITEM_TYPE,
- POH.WF_ITEM_KEY ITEM_KEY
- from
- PO_HEADERS POH,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select distinct /* ATO BUY ITEM */
- POH.PO_HEADER_ID PO_HEADER_ID,
- POH.SEGMENT1 PO_NUM,
- POH.ACCEPTANCE_REQUIRED_FLAG ACCEPT_REQD,
- POH.BILL_TO_LOCATION_ID BILL_TO,
- POH.SHIP_TO_LOCATION_ID SHIP_TO,
- POH.CLOSED_CODE CLS_STAT,
- POH.CONFIRMING_ORDER_FLAG CONF_ORD,
- POH.CURRENCY_CODE CURR,
- POH.ENABLED_FLAG ENABLED,
- POH.FROZEN_FLAG FROZEN,
- POH.SUMMARY_FLAG SUMM,
- POH.TYPE_LOOKUP_CODE TYPE,
- POH.VENDOR_CONTACT_ID VEND_CONT,
- POH.VENDOR_ID VEND_ID,
- POH.VENDOR_SITE_ID VEND_SITE,
- POH.WF_ITEM_TYPE ITEM_TYPE,
- POH.WF_ITEM_KEY ITEM_KEY
- from
- PO_HEADERS POH,
- MTL_RESERVATIONS RES
- where
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
- and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
- and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID;
- begin
- for po in po_hdr
- loop
- utl_file.put_line(handle,'&sld'||n(po.PO_HEADER_ID)||'&d'||n(po.PO_NUM)||'&d');
- utl_file.put_line(handle,n(po.ACCEPT_REQD)||'&d'||n(po.BILL_TO)||'&d');
- utl_file.put_line(handle,n(po.SHIP_TO)||'&d'||n(po.CLS_STAT)||'&d');
- utl_file.put_line(handle,n(po.CONF_ORD)||'&d'||n(po.CURR)||'&d');
- utl_file.put_line(handle,n(po.ENABLED)||'&d'||n(po.FROZEN)||'&d');
- utl_file.put_line(handle,n(po.SUMM)||'&d'||n(po.TYPE)||'&d');
- utl_file.put_line(handle,n(po.VEND_CONT)||'&d'||n(po.VEND_ID)||'&d');
- utl_file.put_line(handle,n(po.VEND_SITE)||'&d'||n(po.ITEM_TYPE)||'&d');
- utl_file.put_line(handle,n(po.ITEM_KEY)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f PO_LINES (POL) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PO_HEADER_ID &dh PO_LINE_ID &dh PO_LINE &dh LINE &dh CATEGORY_ID &dh CLS_STAT &dh FIRM &dh ITEM_DESC &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM_ID &dh LINE_TYPE_ID &dh QTY &dh PRICE &eh');
- Declare
- cursor po_lines is
- select
- POL.PO_HEADER_ID PO_HEADER_ID,
- POL.PO_LINE_ID PO_LINE_ID,
- POL.LINE_NUM PO_LINE,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- POL.CATEGORY_ID CATEGORY_ID,
- POL.CLOSED_CODE CLS_STAT,
- POL.FIRM_STATUS_LOOKUP_CODE FIRM,
- POL.ITEM_DESCRIPTION ITEM_DESC,
- POL.ITEM_ID ITEM_ID,
- POL.LINE_TYPE_ID LINE_TYPE_ID,
- POL.QUANTITY QTY,
- POL.UNIT_PRICE PRICE
- from
- PO_LINES POL,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_LINE_ID = POL.PO_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID;
- begin
- for po in po_lines
- loop
- utl_file.put_line(handle,'&sld'||n(po.PO_HEADER_ID)||'&d'||n(po.PO_LINE_ID)||'&d');
- utl_file.put_line(handle,n(po.PO_LINE)||'&d'||n(po.LINE)||'&d');
- utl_file.put_line(handle,n(po.CATEGORY_ID)||'&d'||n(po.CLS_STAT)||'&d');
- utl_file.put_line(handle,n(po.FIRM)||'&d'||n(po.ITEM_DESC)||'&d');
- utl_file.put_line(handle,n(po.ITEM_ID)||'&d'||n(po.LINE_TYPE_ID)||'&d');
- utl_file.put_line(handle,n(po.QTY)||'&d'||n(po.PRICE)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE ORDER APPROVAL STATUS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PO_NUM_IK &dh PROCESS_NAME &dh ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh NOTIF_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'BEGIN_DATE &dh END_DATE &dh ERROR &eh');
- Declare
- cursor po_wf_po_apr is
- select WFS.item_key PO_NUM_IK,
- WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.NOTIFICATION_ID NOTIF_ID,
- to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
- to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE,
- WFS.ERROR_NAME ERROR_N
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'POAPPRV'
- and WFS.item_key in (select wf_item_key
- from
- PO_HEADERS POH,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_wf_po_apr
- loop
- utl_file.put_line(handle,'&sld'||n(po.PO_NUM_IK)||'&d'||n(po.PROCESS_NAME)||'&d');
- utl_file.put_line(handle,n(po.ACTIVITY_NAME)||'&d'||n(po.RESULT)||'&d');
- utl_file.put_line(handle,n(po.ACT_STATUS)||'&d'||n(po.NOTIF_ID)||'&d');
- utl_file.put_line(handle,n(po.BEGIN_DATE)||'&d'||n(po.END_DATE)||'&d');
- utl_file.put_line(handle,n(po.ERROR_N)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE APPROVAL NOTIFICATIONS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh NOTIF_ID &dh TO_USER &dh ORIG_RECIP &dh RECIP_ROLE &dh MAIL_STAT &dh MESSAGE_NAME &dh STATUS &dh SUBJECT &eh');
- Declare
- cursor po_wf_not is
- select WFN.NOTIFICATION_ID NOTIF_ID,
- WFN.TO_USER TO_USER,
- WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
- WFN.RECIPIENT_ROLE RECIP_ROLE,
- WFN.MAIL_STATUS MAIL_STAT,
- WFN.MESSAGE_NAME MESSAGE_NAME,
- WFN.STATUS STATUS,
- WFN.SUBJECT SUBJECT
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_NOTIFICATIONS WFN
- where
- WFS.ITEM_TYPE = 'POAPPRV'
- and WFS.item_key in (select wf_item_key
- from
- PO_HEADERS POH,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.NOTIFICATION_ID is not null
- and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_wf_not
- loop
- utl_file.put_line(handle,'&sld'||n(po.NOTIF_ID)||'&d'||n(po.TO_USER)||'&d');
- utl_file.put_line(handle,n(po.ORIG_RECIP)||'&d'||n(po.RECIP_ROLE)||'&d');
- utl_file.put_line(handle,n(po.MAIL_STAT)||'&d'||n(po.MESSAGE_NAME)||'&d');
- utl_file.put_line(handle,n(po.STATUS)||'&d'||n(po.SUBJECT)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE APPROVAL ERRORS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh PROCESS_NAME &dh ACTIVITY_NAME &dh RESULT &dh ACT_STATUS &dh ERROR_NAME &dh ERROR_MESSAGE &dh ERROR_STACK &eh');
- Declare
- cursor po_hdr_int is
- select WFA.DISPLAY_NAME PROCESS_NAME,
- WFA1.DISPLAY_NAME ACTIVITY_NAME,
- WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
- LKP.MEANING ACT_STATUS,
- WFS.ERROR_NAME ERROR_NAME,
- WFS.ERROR_MESSAGE ERROR_MESSAGE,
- WFS.ERROR_STACK ERROR_STACK
- from WF_ITEM_ACTIVITY_STATUSES WFS,
- WF_PROCESS_ACTIVITIES WFP,
- WF_ACTIVITIES_VL WFA,
- WF_ACTIVITIES_VL WFA1,
- WF_LOOKUPS LKP
- where
- WFS.ITEM_TYPE = 'POAPPRV'
- and WFS.item_key in (select wf_item_key
- from
- PO_HEADERS POH,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
- and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
- and WFP.PROCESS_NAME = WFA.NAME
- and WFP.PROCESS_VERSION = WFA.VERSION
- and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
- and WFP.ACTIVITY_NAME = WFA1.NAME
- and WFA1.VERSION =
- (select max(VERSION)
- from WF_ACTIVITIES WF2
- where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
- and WF2.NAME = WFP.ACTIVITY_NAME)
- and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
- and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
- and WFS.ERROR_NAME is not NULL
- order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
- begin
- for po in po_hdr_int
- loop
- utl_file.put_line(handle,'&sld'||n(po.PROCESS_NAME)||'&d'||n(po.ACTIVITY_NAME)||'&d');
- utl_file.put_line(handle,n(po.RESULT)||'&d'||n(po.ACT_STATUS)||'&d');
- utl_file.put_line(handle,n(po.ERROR_NAME)||'&d'||n(po.ERROR_MESSAGE)||'&d');
- utl_file.put_line(handle,n(po.ERROR_STACK)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_po
- if UPPER(nvl('&prt_rec','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f RCV_SHIPMENT_LINES (SHL) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh SHP_LN_ID &dh SHP_HD_ID &dh SHP_LINE_STATUS &dh RCV_Q &dh SHP_Q &dh DEST_TYPE &dh OE_HD_ID &dh OE_LN_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM_ID &dh TO_ORG &dh SRC_DOC &dh REQUEST_ID &eh');
- Declare
- cursor rcv_shp_lin is
- select /* DROP SHIPMENTS */
- SHL.SHIPMENT_LINE_ID SHP_LN_ID,
- SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
- SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
- SHL.QUANTITY_RECEIVED RCV_Q,
- SHL.QUANTITY_SHIPPED SHP_Q,
- SHL.DESTINATION_TYPE_CODE DEST_TYPE,
- SHL.OE_ORDER_HEADER_ID OE_HD_ID,
- SHL.OE_ORDER_LINE_ID OE_LN_ID,
- SHL.ITEM_ID ITEM_ID,
- SHL.SHIP_TO_LOCATION_ID TO_ORG,
- SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
- SHL.REQUEST_ID REQUEST_ID
- from
- RCV_SHIPMENT_LINES SHL,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_LINE_ID = SHL.PO_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* RETURNS */
- SHL.SHIPMENT_LINE_ID SHP_LN_ID,
- SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
- SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
- SHL.QUANTITY_RECEIVED RCV_Q,
- SHL.QUANTITY_SHIPPED SHP_Q,
- SHL.DESTINATION_TYPE_CODE DEST_TYPE,
- SHL.OE_ORDER_HEADER_ID OE_HD_ID,
- SHL.OE_ORDER_LINE_ID OE_LN_ID,
- SHL.ITEM_ID ITEM_ID,
- SHL.SHIP_TO_LOCATION_ID TO_ORG,
- SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
- SHL.REQUEST_ID REQUEST_ID
- from
- RCV_SHIPMENT_LINES SHL,
- OE_ORDER_LINES LIN
- where
- SHL.OE_ORDER_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* INTERNAL SALES ORDER */
- SHL.SHIPMENT_LINE_ID SHP_LN_ID,
- SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
- SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
- SHL.QUANTITY_RECEIVED RCV_Q,
- SHL.QUANTITY_SHIPPED SHP_Q,
- SHL.DESTINATION_TYPE_CODE DEST_TYPE,
- SHL.OE_ORDER_HEADER_ID OE_HD_ID,
- SHL.OE_ORDER_LINE_ID OE_LN_ID,
- SHL.ITEM_ID ITEM_ID,
- SHL.SHIP_TO_LOCATION_ID TO_ORG,
- SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
- SHL.REQUEST_ID REQUEST_ID
- from
- RCV_SHIPMENT_LINES SHL,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_LINE_ID = SHL.REQUISITION_LINE_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* ATO BUY ITEM */
- SHL.SHIPMENT_LINE_ID SHP_LN_ID,
- SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
- SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
- SHL.QUANTITY_RECEIVED RCV_Q,
- SHL.QUANTITY_SHIPPED SHP_Q,
- SHL.DESTINATION_TYPE_CODE DEST_TYPE,
- SHL.OE_ORDER_HEADER_ID OE_HD_ID,
- SHL.OE_ORDER_LINE_ID OE_LN_ID,
- SHL.ITEM_ID ITEM_ID,
- SHL.SHIP_TO_LOCATION_ID TO_ORG,
- SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
- SHL.REQUEST_ID REQUEST_ID
- from
- RCV_SHIPMENT_LINES SHL,
- MTL_RESERVATIONS RES,
- PO_HEADERS_ALL POH
- where
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_LINE_ID = NVL('&line_id_selected',RES.DEMAND_SOURCE_LINE_ID)
- and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
- and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
- and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
- and POH.PO_HEADER_ID = SHL.PO_HEADER_ID;
- begin
- for rcv in rcv_shp_lin
- loop
- utl_file.put_line(handle,'&sld'||n(rcv.SHP_LN_ID)||'&d'||n(rcv.SHP_HD_ID)||'&d');
- utl_file.put_line(handle,n(rcv.SHP_LINE_STATUS)||'&d'||n(rcv.RCV_Q)||'&d');
- utl_file.put_line(handle,n(rcv.SHP_Q)||'&d'||n(rcv.DEST_TYPE)||'&d');
- utl_file.put_line(handle,n(rcv.OE_HD_ID)||'&d'||n(rcv.OE_LN_ID)||'&d');
- utl_file.put_line(handle,n(rcv.ITEM_ID)||'&d'||n(rcv.TO_ORG)||'&d');
- utl_file.put_line(handle,n(rcv.SRC_DOC)||'&d'||n(rcv.REQUEST_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f RCV_TRANSACTIONS (RCV) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh TRANS_ID &dh PRNT_TRANS_ID &dh LINE &dh TRANS_TYPE &dh TRANS_DATE &dh DEST_TYPE &dh INSPECT_STAT &dh ');
- UTL_FILE.PUT_LINE(handle,'INTF_SRC &dh INTF_TRANS_ID &dh LOC_ID &dh MVT_STAT &dh ORG_ID &dh OE_HEAD_ID &dh OE_LINE_ID &dh PO_HEAD_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'PO_LINE_ID &dh LINE_LOC_ID &dh UNIT_PRICE &dh UOM &dh QTY &dh REQUEST_ID &dh SHIP_HEAD_ID &dh SHIP_LINE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SRC_DOC_CODE &dh VEND_ID &dh VEND_SITE_ID &eh');
- Declare
- cursor rcv_trx is
- select /* DROP SHIPMENTS */
- RCV.TRANSACTION_ID TRANS_ID,
- RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RCV.TRANSACTION_TYPE TRANS_TYPE,
- to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
- RCV.DESTINATION_TYPE_CODE DEST_TYPE,
- RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
- RCV.INTERFACE_SOURCE_CODE INTF_SRC,
- RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
- RCV.LOCATION_ID LOC_ID,
- RCV.MVT_STAT_STATUS MVT_STAT,
- RCV.ORGANIZATION_ID ORG_ID,
- RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RCV.OE_ORDER_LINE_ID OE_LINE_ID,
- RCV.PO_HEADER_ID PO_HEAD_ID,
- RCV.PO_LINE_ID PO_LINE_ID,
- RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
- RCV.PO_UNIT_PRICE UNIT_PRICE,
- RCV.PRIMARY_UNIT_OF_MEASURE UOM,
- RCV.QUANTITY QTY,
- RCV.REQUEST_ID REQUEST_ID,
- RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
- RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
- RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
- RCV.VENDOR_ID VEND_ID,
- RCV.VENDOR_SITE_ID VEND_SITE_ID
- from
- RCV_TRANSACTIONS RCV,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_LINE_ID = RCV.PO_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* RETURNS */
- RCV.TRANSACTION_ID TRANS_ID,
- RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RCV.TRANSACTION_TYPE TRANS_TYPE,
- to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
- RCV.DESTINATION_TYPE_CODE DEST_TYPE,
- RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
- RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
- RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
- RCV.LOCATION_ID LOC_ID,
- RCV.MVT_STAT_STATUS MVT_STAT,
- RCV.ORGANIZATION_ID ORG_ID,
- RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RCV.OE_ORDER_LINE_ID OE_LINE_ID,
- RCV.PO_HEADER_ID PO_HEAD_ID,
- RCV.PO_LINE_ID PO_LINE_ID,
- RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
- RCV.PO_UNIT_PRICE UNIT_PRICE,
- RCV.PRIMARY_UNIT_OF_MEASURE UOM,
- RCV.QUANTITY QTY,
- RCV.REQUEST_ID REQUEST_ID,
- RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
- RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
- RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
- RCV.VENDOR_ID VEND_ID,
- RCV.VENDOR_SITE_ID VEND_SITE_ID
- from
- RCV_TRANSACTIONS RCV,
- OE_ORDER_LINES LIN
- where
- RCV.OE_ORDER_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* INTERNAL SALES ORDERS */
- RCV.TRANSACTION_ID TRANS_ID,
- RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RCV.TRANSACTION_TYPE TRANS_TYPE,
- to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
- RCV.DESTINATION_TYPE_CODE DEST_TYPE,
- RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
- RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
- RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
- RCV.LOCATION_ID LOC_ID,
- RCV.MVT_STAT_STATUS MVT_STAT,
- RCV.ORGANIZATION_ID ORG_ID,
- RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RCV.OE_ORDER_LINE_ID OE_LINE_ID,
- RCV.PO_HEADER_ID PO_HEAD_ID,
- RCV.PO_LINE_ID PO_LINE_ID,
- RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
- RCV.PO_UNIT_PRICE UNIT_PRICE,
- RCV.PRIMARY_UNIT_OF_MEASURE UOM,
- RCV.QUANTITY QTY,
- RCV.REQUEST_ID REQUEST_ID,
- RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
- RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
- RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
- RCV.VENDOR_ID VEND_ID,
- RCV.VENDOR_SITE_ID VEND_SITE_ID
- from
- RCV_TRANSACTIONS RCV,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_LINE_ID = RCV.REQUISITION_LINE_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* ATO BUY ITEM */
- RCV.TRANSACTION_ID TRANS_ID,
- RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
- to_char(RES.DEMAND_SOURCE_LINE_ID) LINE,
- RCV.TRANSACTION_TYPE TRANS_TYPE,
- to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
- RCV.DESTINATION_TYPE_CODE DEST_TYPE,
- RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
- RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
- RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
- RCV.LOCATION_ID LOC_ID,
- RCV.MVT_STAT_STATUS MVT_STAT,
- RCV.ORGANIZATION_ID ORG_ID,
- RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RCV.OE_ORDER_LINE_ID OE_LINE_ID,
- RCV.PO_HEADER_ID PO_HEAD_ID,
- RCV.PO_LINE_ID PO_LINE_ID,
- RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
- RCV.PO_UNIT_PRICE UNIT_PRICE,
- RCV.PRIMARY_UNIT_OF_MEASURE UOM,
- RCV.QUANTITY QTY,
- RCV.REQUEST_ID REQUEST_ID,
- RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
- RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
- RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
- RCV.VENDOR_ID VEND_ID,
- RCV.VENDOR_SITE_ID VEND_SITE_ID
- from
- RCV_TRANSACTIONS RCV,
- MTL_RESERVATIONS RES,
- PO_HEADERS_ALL POH
- where
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_LINE_ID = NVL('&line_id_selected',RES.DEMAND_SOURCE_LINE_ID)
- and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
- and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
- and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
- and POH.PO_HEADER_ID = RCV.PO_HEADER_ID;
- begin
- for rcv in rcv_trx
- loop
- utl_file.put_line(handle,'&sld'||n(rcv.TRANS_ID)||'&d'||n(rcv.PRNT_TRANS_ID)||'&d');
- utl_file.put_line(handle,n(rcv.LINE)||'&d'||n(rcv.TRANS_TYPE)||'&d');
- utl_file.put_line(handle,n(rcv.TRANS_DATE)||'&d'||n(rcv.DEST_TYPE)||'&d');
- utl_file.put_line(handle,n(rcv.INSPECT_STAT)||'&d'||n(rcv.INTF_SRC)||'&d');
- utl_file.put_line(handle,n(rcv.INTF_TRANS_ID)||'&d'||n(rcv.LOC_ID)||'&d');
- utl_file.put_line(handle,n(rcv.MVT_STAT)||'&d'||n(rcv.ORG_ID)||'&d');
- utl_file.put_line(handle,n(rcv.OE_HEAD_ID)||'&d'||n(rcv.OE_LINE_ID)||'&d');
- utl_file.put_line(handle,n(rcv.PO_HEAD_ID)||'&d'||n(rcv.PO_LINE_ID)||'&d');
- utl_file.put_line(handle,n(rcv.LINE_LOC_ID)||'&d'||n(rcv.UNIT_PRICE)||'&d');
- utl_file.put_line(handle,n(rcv.UOM)||'&d'||n(rcv.QTY)||'&d');
- utl_file.put_line(handle,n(rcv.REQUEST_ID)||'&d'||n(rcv.SHIP_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(rcv.SHIP_LINE_ID)||'&d'||n(rcv.SRC_DOC_CODE)||'&d');
- utl_file.put_line(handle,n(rcv.VEND_ID)||'&d'||n(rcv.VEND_SITE_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f RCV_TRANSACTIONS_INTERFACE (RTI) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTF_TRNS_ID &dh PROC_MODE &dh PROC_STAT &dh TRNS_STAT &dh TRNS_DATE &dh TRNS_TYPE &dh DEST_TYPE &dh INSP_STAT &dh');
- UTL_FILE.PUT_LINE(handle,'INSP_SRC &dh OE_HEAD_ID &dh OE_LINE_ID &dh ITEM_ID &dh QTY &dh PRY_Q &dh PO_UNIT_PRC &dh SUB &dh TO_ORG_ID &dh RCPT_SRC &dh');
- UTL_FILE.PUT_LINE(handle,'PRNT_TRN_ID &dh SHP_HEAD_ID &dh SHP_LINE_ID &dh SRC_DOC &dh REQUEST_ID &eh');
- Declare
- cursor rcv_trx_int is
- select /* DROP SHIPMENTS */
- RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
- RTI.PROCESSING_MODE_CODE PROC_MODE,
- RTI.PROCESSING_STATUS_CODE PROC_STAT,
- RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
- to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
- RTI.TRANSACTION_TYPE TRNS_TYPE,
- RTI.DESTINATION_TYPE_CODE DEST_TYPE,
- RTI.INSPECTION_STATUS_CODE INSP_STAT,
- RTI.INTERFACE_SOURCE_CODE INSP_SRC,
- RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RTI.OE_ORDER_LINE_ID OE_LINE_ID,
- RTI.ITEM_ID ITEM_ID,
- RTI.QUANTITY QTY,
- RTI.PRIMARY_QUANTITY PRY_Q,
- RTI.PO_UNIT_PRICE PO_UNIT_PRC,
- RTI.SUBINVENTORY SUB,
- RTI.TO_ORGANIZATION_ID TO_ORG_ID,
- RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
- RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
- RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
- RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
- RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
- RTI.PROCESSING_REQUEST_ID REQUEST_ID
- from
- RCV_TRANSACTIONS_INTERFACE RTI,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_LINE_ID = RTI.PO_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* RETURNS */
- RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
- RTI.PROCESSING_MODE_CODE PROC_MODE,
- RTI.PROCESSING_STATUS_CODE PROC_STAT,
- RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
- to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
- RTI.TRANSACTION_TYPE TRNS_TYPE,
- RTI.DESTINATION_TYPE_CODE DEST_TYPE,
- RTI.INSPECTION_STATUS_CODE INSP_STAT,
- RTI.INTERFACE_SOURCE_CODE INSP_SRC,
- RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RTI.OE_ORDER_LINE_ID OE_LINE_ID,
- RTI.ITEM_ID ITEM_ID,
- RTI.QUANTITY QTY,
- RTI.PRIMARY_QUANTITY PRY_Q,
- RTI.PO_UNIT_PRICE PO_UNIT_PRC,
- RTI.SUBINVENTORY SUB,
- RTI.TO_ORGANIZATION_ID TO_ORG_ID,
- RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
- RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
- RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
- RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
- RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
- RTI.PROCESSING_REQUEST_ID REQUEST_ID
- from
- RCV_TRANSACTIONS_INTERFACE RTI,
- OE_ORDER_LINES LIN
- where
- RTI.OE_ORDER_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* INTERNAL SALES ORDER */
- RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
- RTI.PROCESSING_MODE_CODE PROC_MODE,
- RTI.PROCESSING_STATUS_CODE PROC_STAT,
- RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
- to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
- RTI.TRANSACTION_TYPE TRNS_TYPE,
- RTI.DESTINATION_TYPE_CODE DEST_TYPE,
- RTI.INSPECTION_STATUS_CODE INSP_STAT,
- RTI.INTERFACE_SOURCE_CODE INSP_SRC,
- RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
- RTI.OE_ORDER_LINE_ID OE_LINE_ID,
- RTI.ITEM_ID ITEM_ID,
- RTI.QUANTITY QTY,
- RTI.PRIMARY_QUANTITY PRY_Q,
- RTI.PO_UNIT_PRICE PO_UNIT_PRC,
- RTI.SUBINVENTORY SUB,
- RTI.TO_ORGANIZATION_ID TO_ORG_ID,
- RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
- RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
- RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
- RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
- RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
- RTI.PROCESSING_REQUEST_ID REQUEST_ID
- from
- RCV_TRANSACTIONS_INTERFACE RTI,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_LINE_ID = RTI.REQUISITION_LINE_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for rcv in rcv_trx_int
- loop
- utl_file.put_line(handle,'&sld'||n(rcv.INTF_TRNS_ID)||'&d'||n(rcv.PROC_MODE)||'&d'||n(rcv.PROC_STAT)||'&d');
- utl_file.put_line(handle,n(rcv.TRNS_STAT)||'&d'||n(rcv.TRNS_DATE)||'&d'||n(rcv.TRNS_TYPE)||'&d');
- utl_file.put_line(handle,n(rcv.DEST_TYPE)||'&d'||n(rcv.INSP_STAT)||'&d'||n(rcv.INSP_SRC)||'&d');
- utl_file.put_line(handle,n(rcv.OE_HEAD_ID)||'&d'||n(rcv.OE_LINE_ID)||'&d'||n(rcv.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(rcv.QTY)||'&d'||n(rcv.PRY_Q)||'&d'||n(rcv.PO_UNIT_PRC)||'&d');
- utl_file.put_line(handle,n(rcv.SUB)||'&d'||n(rcv.TO_ORG_ID)||'&d'||n(rcv.RCPT_SRC)||'&d');
- utl_file.put_line(handle,n(rcv.PRNT_TRN_ID)||'&d'||n(rcv.SHP_HEAD_ID)||'&d'||n(rcv.SHP_LINE_ID)||'&d');
- utl_file.put_line(handle,n(rcv.SRC_DOC)||'&d'||n(rcv.REQUEST_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_rec
- if UPPER(nvl('&prt_po','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f MTL_SUPPLY (SUP) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh SUP_TYPE &dh REQ_HEAD_ID &dh REQ_LINE_ID &dh PO_HEAD_ID &dh PO_REL_ID &dh PO_LINE_ID &dh PO_LINE_LOC_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'PO_DIST_ID &dh SHP_HEAD_ID &dh SHP_LINE_ID &dh RCV_TRANS_ID &dh ITEM_ID &dh QTY &dh RECPT_DT &dh NEED_BY_DT &dh ');
- UTL_FILE.PUT_LINE(handle,'DEST_TYPE &dh FROM_ORG &dh FROM_SUB &dh TO_ORG &dh TO_SUB &dh INTRNS_OWN_ORG &eh');
- Declare
- cursor mtl_supply is
- select /* DROP SHIPMENTS */
- SUP.SUPPLY_TYPE_CODE SUP_TYPE,
- SUP.REQ_HEADER_ID REQ_HEAD_ID,
- SUP.REQ_LINE_ID REQ_LINE_ID,
- SUP.PO_HEADER_ID PO_HEAD_ID,
- SUP.PO_RELEASE_ID PO_REL_ID,
- SUP.PO_LINE_ID PO_LINE_ID,
- SUP.PO_LINE_LOCATION_ID PO_LINE_LOC_ID,
- SUP.PO_DISTRIBUTION_ID PO_DIST_ID,
- SUP.SHIPMENT_HEADER_ID SHP_HEAD_ID,
- SUP.SHIPMENT_LINE_ID SHP_LINE_ID,
- SUP.RCV_TRANSACTION_ID RCV_TRANS_ID,
- SUP.ITEM_ID ITEM_ID,
- SUP.QUANTITY QTY,
- to_char(SUP.RECEIPT_DATE,'DD-MON-RR_HH24:MI:SS') RECPT_DT,
- to_char(SUP.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY_DT,
- SUP.DESTINATION_TYPE_CODE DEST_TYPE,
- SUP.FROM_ORGANIZATION_ID FROM_ORG,
- SUP.FROM_SUBINVENTORY FROM_SUB,
- SUP.TO_ORGANIZATION_ID TO_ORG,
- SUP.TO_SUBINVENTORY TO_SUB,
- SUP.INTRANSIT_OWNING_ORG_ID INTRNS_OWN_ORG
- from
- MTL_SUPPLY SUP,
- OE_DROP_SHIP_SOURCES SRC,
- OE_ORDER_LINES LIN
- where
- SRC.LINE_ID = LIN.LINE_ID
- and SRC.PO_LINE_ID = SUP.PO_LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- select /* INTERNAL SALES ORDER */
- SUP.SUPPLY_TYPE_CODE SUP_TYPE,
- --SUP.SUPPLY_SOURCE_ID SUP_SRC,
- SUP.REQ_HEADER_ID REQ_HEAD_ID,
- SUP.REQ_LINE_ID REQ_LINE_ID,
- SUP.PO_HEADER_ID PO_HEAD_ID,
- SUP.PO_RELEASE_ID PO_REL_ID,
- SUP.PO_LINE_ID PO_LINE_ID,
- SUP.PO_LINE_LOCATION_ID PO_LINE_LOC_ID,
- SUP.PO_DISTRIBUTION_ID PO_DIST_ID,
- SUP.SHIPMENT_HEADER_ID SHP_HEAD_ID,
- SUP.SHIPMENT_LINE_ID SHP_LINE_ID,
- SUP.RCV_TRANSACTION_ID RCV_TRANS_ID,
- SUP.ITEM_ID ITEM_ID,
- SUP.QUANTITY QTY,
- to_char(SUP.RECEIPT_DATE,'DD-MON-RR_HH24:MI:SS') RECPT_DT,
- to_char(SUP.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY_DT,
- SUP.DESTINATION_TYPE_CODE DEST_TYPE,
- SUP.FROM_ORGANIZATION_ID FROM_ORG,
- SUP.FROM_SUBINVENTORY FROM_SUB,
- SUP.TO_ORGANIZATION_ID TO_ORG,
- SUP.TO_SUBINVENTORY TO_SUB,
- SUP.INTRANSIT_OWNING_ORG_ID INTRNS_OWN_ORG
- from
- MTL_SUPPLY SUP,
- OE_ORDER_LINES LIN
- where
- LIN.SOURCE_DOCUMENT_LINE_ID = SUP.REQ_LINE_ID
- and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for mtl in mtl_supply
- loop
- utl_file.put_line(handle,'&sld'||n(mtl.SUP_TYPE)||'&d'||n(mtl.REQ_HEAD_ID)||'&d'||n(mtl.REQ_LINE_ID)||'&d');
- utl_file.put_line(handle,n(mtl.PO_HEAD_ID)||'&d'||n(mtl.PO_REL_ID)||'&d'||n(mtl.PO_LINE_ID)||'&d');
- utl_file.put_line(handle,n(mtl.PO_LINE_LOC_ID)||'&d'||n(mtl.PO_DIST_ID)||'&d'||n(mtl.SHP_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(mtl.SHP_LINE_ID)||'&d'||n(mtl.RCV_TRANS_ID)||'&d'||n(mtl.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(mtl.QTY)||'&d'||n(mtl.RECPT_DT)||'&d'||n(mtl.NEED_BY_DT)||'&d');
- utl_file.put_line(handle,n(mtl.DEST_TYPE)||'&d'||n(mtl.FROM_ORG)||'&d'||n(mtl.FROM_SUB)||'&d');
- utl_file.put_line(handle,n(mtl.TO_ORG)||'&d'||n(mtl.TO_SUB)||'&d'||n(mtl.INTRNS_OWN_ORG)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_po
- if UPPER(nvl('&prt_inv','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_RESERVATIONS">MTL_RESERVATIONS (RES) </a> <a HREF="#MR">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh RESERV_ID &dh SHIP_READY &dh DS_HEAD_ID &dh DS_LINE_ID &dh DS_DELIV &dh LINE &dh ITEM_ID &dh ITEM &dh ');
- UTL_FILE.PUT_LINE(handle,'RES_Q &dh DET_Q &dh UOM &dh REQUIRD_D &dh DS_TYPE &dh WH_ID &dh SUBINV &dh LOT &dh REV &dh LOC_ID &dh SERIAL_NUM &dh ');
- UTL_FILE.PUT_LINE(handle,'SS_TYPE_ID &dh WIP_ID &dh JOB_NAME &dh JOB_STAT &dh SS_HEADER_ID &dh SS_SOURCE_LINE_DET &dh SS_SOURCE_LINE &dh ');
- UTL_FILE.PUT_LINE(handle,'SECONDARY RES_QTY &dh CALC_SEC RES_QTY &dh SECONDARY UOM &dh SECONDARY DET_QTY &eh');
- Declare
- cursor mtl_res is
- select
- RES.RESERVATION_ID RESERV_ID,
- decode(RES.SHIP_READY_FLAG,
- 1,'1=Released',
- 2,'2=Submitted',
- to_char(RES.SHIP_READY_FLAG)) SHIP_READY,
- RES.DEMAND_SOURCE_HEADER_ID DS_HEAD_ID,
- RES.DEMAND_SOURCE_LINE_ID DS_LINE_ID,
- RES.DEMAND_SOURCE_DELIVERY DS_DELIV,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- RES.INVENTORY_ITEM_ID ITEM_ID,
- ITM.SEGMENT1 ITEM,
- RES.PRIMARY_RESERVATION_QUANTITY RES_Q,
- RES.DETAILED_QUANTITY DET_Q,
- RES.PRIMARY_UOM_CODE UOM,
- To_char(RES.REQUIREMENT_DATE,'DD-MON-RR_HH24:MI:SS') REQUIRD_D,
- RES.DEMAND_SOURCE_TYPE_ID DS_TYPE,
- RES.ORGANIZATION_ID WH_ID,
- RES.SUBINVENTORY_CODE SUBINV,
- RES.LOT_NUMBER LOT,
- RES.REVISION REV,
- RES.LOCATOR_ID LOC_ID,
- RES.SERIAL_NUMBER SERIAL_NUM,
- decode(RES.SUPPLY_SOURCE_TYPE_ID,
- 5,'5=WIP DJ',
- RES.SUPPLY_SOURCE_TYPE_ID) SS_TYPE_ID,
- WIP.WIP_ENTITY_ID WIP_ID,
- WIP.WIP_ENTITY_NAME JOB_NAME,
- JOB.STATUS_TYPE_DISP JOB_STAT,
- RES.SUPPLY_SOURCE_HEADER_ID SS_HEADER_ID,
- RES.SUPPLY_SOURCE_LINE_DETAIL SS_SOURCE_LINE_DET,
- RES.SUPPLY_SOURCE_LINE_ID SS_SOURCE_LINE,
- res.secondary_reservation_quantity sec_res_q,
- inv_convert.inv_um_convert(
- res.inventory_item_id,
- res.lot_number,
- res.organization_id,
- 5,
- res.primary_reservation_quantity,
- res.primary_uom_code,
- res.secondary_uom_code,
- null,
- null) calc_sec_res_q,
- res.secondary_uom_code uom2,
- res.secondary_detailed_quantity sec_dtl_q
- from
- MTL_RESERVATIONS RES,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM,
- WIP_ENTITIES WIP,
- WIP_DISCRETE_JOBS_V JOB
- where
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_TYPE_ID in (2,8,9,21,22)
- and RES.DEMAND_SOURCE_LINE_ID = LIN.LINE_ID(+)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and RES.ORGANIZATION_ID = ITM.ORGANIZATION_ID(+)
- and RES.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and RES.SUPPLY_SOURCE_HEADER_ID = WIP.WIP_ENTITY_ID(+)
- and WIP.WIP_ENTITY_ID = JOB.WIP_ENTITY_ID(+)
- order by
- NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SORT_ORDER, '0000'),
- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
- LIN.LINE_ID,
- RES.RESERVATION_ID;
- begin
- for mtl in mtl_res
- loop
- utl_file.put_line(handle,'&sld'||n(mtl.RESERV_ID)||'&d'||n(mtl.SHIP_READY)||'&d'||n(mtl.DS_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(mtl.DS_LINE_ID)||'&d'||n(mtl.DS_DELIV)||'&d'||n(mtl.LINE)||'&d');
- utl_file.put_line(handle,n(mtl.ITEM_ID)||'&d'||n(mtl.ITEM)||'&d'||n(mtl.RES_Q)||'&d');
- utl_file.put_line(handle,n(mtl.DET_Q)||'&d'||n(mtl.UOM)||'&d'||n(mtl.REQUIRD_D)||'&d');
- utl_file.put_line(handle,n(mtl.DS_TYPE)||'&d'||n(mtl.WH_ID)||'&d'||n(mtl.SUBINV)||'&d');
- utl_file.put_line(handle,n(mtl.LOT)||'&d'||n(mtl.REV)||'&d'||n(mtl.LOC_ID)||'&d');
- utl_file.put_line(handle,n(mtl.SERIAL_NUM)||'&d'||n(mtl.SS_TYPE_ID)||'&d'||n(mtl.WIP_ID)||'&d');
- utl_file.put_line(handle,n(mtl.JOB_NAME)||'&d'||n(mtl.JOB_STAT)||'&d'||n(mtl.SS_HEADER_ID)||'&d');
- utl_file.put_line(handle,n(mtl.SS_SOURCE_LINE_DET)||'&d'||n(mtl.SS_SOURCE_LINE)||'&d');
- utl_file.put_line(handle,n(mtl.sec_res_q)||'&d'||n(mtl.calc_sec_res_q)||'&d');
- utl_file.put_line(handle,n(mtl.uom2)||'&d'||n(mtl.sec_dtl_q)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_inv
- if UPPER(nvl('&prt_wip','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f WIP_JOB_SCHEDULE_INTERFACE (WJS) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTERF_ID &dh SRC_LINE_ID &dh LINE &dh REQUEST_ID &dh GROUP_ID &dh SRC_CODE &dh PHS &dh STAT_TY &dh ');
- UTL_FILE.PUT_LINE(handle,'STAT &dh ORG &dh LOAD &dh ITEM_ID &dh WIP_SUP_TY &dh START_QTY &eh');
- Declare
- cursor wip_sch_int is
- select
- WJS.INTERFACE_ID INTERF_ID,
- WJS.SOURCE_LINE_ID SRC_LINE_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- WJS.REQUEST_ID REQUEST_ID,
- WJS.GROUP_ID GROUP_ID,
- WJS.SOURCE_CODE SRC_CODE,
- WJS.PROCESS_PHASE PHS,
- WJS.STATUS_TYPE STAT_TY,
- WJS.PROCESS_STATUS STAT,
- WJS.ORGANIZATION_CODE ORG,
- WJS.LOAD_TYPE LOAD,
- WJS.PRIMARY_ITEM_ID ITEM_ID,
- WJS.WIP_SUPPLY_TYPE WIP_SUP_TY,
- WJS.START_QUANTITY START_QTY
- from WIP_JOB_SCHEDULE_INTERFACE WJS,
- OE_ORDER_LINES_ALL LIN
- where WJS.SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for wip in wip_sch_int
- loop
- utl_file.put_line(handle,'&sld'||n(wip.INTERF_ID)||'&d'||n(wip.SRC_LINE_ID)||'&d'||n(wip.LINE)||'&d');
- utl_file.put_line(handle,n(wip.REQUEST_ID)||'&d'||n(wip.GROUP_ID)||'&d'||n(wip.SRC_CODE)||'&d');
- utl_file.put_line(handle,n(wip.PHS)||'&d'||n(wip.STAT_TY)||'&d'||n(wip.STAT)||'&d');
- utl_file.put_line(handle,n(wip.ORG)||'&d'||n(wip.LOAD)||'&d'||n(wip.ITEM_ID)||'&d');
- utl_file.put_line(handle,n(wip.WIP_SUP_TY)||'&d'||n(wip.START_QTY)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WIP_INTERFACE_ERRORS (WIE) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTERF_ID &dh LINE &dh ERROR_TYPE &dh ERROR &eh');
- Declare
- cursor wip_int_err is
- select
- WIE.INTERFACE_ID INTERF_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- WIE.ERROR_TYPE ERROR_TYPE,
- WIE.ERROR ERROR_WIE
- from WIP_INTERFACE_ERRORS WIE,
- WIP_JOB_SCHEDULE_INTERFACE WJS,
- OE_ORDER_LINES_ALL LIN
- where WIE.INTERFACE_ID = WJS.INTERFACE_ID
- and WJS.SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for wip in wip_int_err
- loop
- utl_file.put_line(handle,'&sld'||n(wip.INTERF_ID)||'&d'||n(wip.LINE)||'&d');
- utl_file.put_line(handle,n(wip.ERROR_TYPE)||'&d'||n(wip.ERROR_WIE)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f WIP_DISCRETE_JOBS (WIP) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WIP_ENT_ID &dh JOB_NAME &dh WH_ID &dh REQUEST_ID &dh LINE_ID &dh LINE &dh STATUS &dh PRY_ITEM_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM &dh FIRM &dh JOB_TY &dh WIP_SUP_TYPE &dh SCH_STRT &dh SCH_CMPL &dh RLS_DATE &dh DUE_DATE &dh COMPL_DT &dh ');
- UTL_FILE.PUT_LINE(handle,'CLSD_DT &dh STRT_Q &dh COMP_Q &dh SCRP_Q &dh NET_Q &dh LINE_ID &eh');
- Declare
- cursor wip_d_jobs is
- select
- WIP.WIP_ENTITY_ID WIP_ENT_ID,
- WIV.WIP_ENTITY_NAME JOB_NAME,
- WIP.ORGANIZATION_ID WH_ID,
- WIP.REQUEST_ID REQUEST_ID,
- WIP.SOURCE_LINE_ID LINE_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- WIV.STATUS_TYPE_DISP STATUS,
- WIP.PRIMARY_ITEM_ID PRY_ITEM_ID,
- ITM.SEGMENT1 ITEM,
- WIP.FIRM_PLANNED_FLAG FIRM,
- WIP.JOB_TYPE JOB_TY,
- WIV.WIP_SUPPLY_TYPE_DISP WIP_SUP_TYPE,
- WIP.SCHEDULED_START_DATE SCH_STRT,
- WIP.SCHEDULED_COMPLETION_DATE SCH_CMPL,
- WIP.DATE_RELEASED RLS_DATE,
- WIP.DUE_DATE DUE_DATE,
- WIP.DATE_COMPLETED COMPL_DT,
- WIP.DATE_CLOSED CLSD_DT,
- WIP.START_QUANTITY STRT_Q,
- WIP.QUANTITY_COMPLETED COMP_Q,
- WIP.QUANTITY_SCRAPPED SCRP_Q,
- WIP.NET_QUANTITY NET_Q,
- WIP.LINE_ID WIP_LINE_ID
- from WIP_DISCRETE_JOBS WIP,
- WIP_DISCRETE_JOBS_V WIV,
- MTL_SYSTEM_ITEMS_B ITM,
- OE_ORDER_LINES_ALL LIN
- where WIP.WIP_ENTITY_ID = WIV.WIP_ENTITY_ID
- and WIP.PRIMARY_ITEM_ID = ITM.INVENTORY_ITEM_ID
- and WIP.ORGANIZATION_ID = ITM.ORGANIZATION_ID
- and WIP.SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for wip in wip_d_jobs
- loop
- utl_file.put_line(handle,'&sld'||n(wip.WIP_ENT_ID)||'&d'||n(wip.JOB_NAME)||'&d');
- utl_file.put_line(handle,n(wip.WH_ID)||'&d'||n(wip.REQUEST_ID)||'&d');
- utl_file.put_line(handle,n(wip.LINE_ID)||'&d'||n(wip.LINE)||'&d');
- utl_file.put_line(handle,n(wip.STATUS)||'&d'||n(wip.PRY_ITEM_ID)||'&d');
- utl_file.put_line(handle,n(wip.ITEM)||'&d'||n(wip.FIRM)||'&d');
- utl_file.put_line(handle,n(wip.JOB_TY)||'&d'||n(wip.WIP_SUP_TYPE)||'&d');
- utl_file.put_line(handle,n(wip.SCH_STRT)||'&d'||n(wip.SCH_CMPL)||'&d');
- utl_file.put_line(handle,n(wip.RLS_DATE)||'&d'||n(wip.DUE_DATE)||'&d');
- utl_file.put_line(handle,n(wip.COMPL_DT)||'&d'||n(wip.CLSD_DT)||'&d');
- utl_file.put_line(handle,n(wip.STRT_Q)||'&d'||n(wip.COMP_Q)||'&d');
- utl_file.put_line(handle,n(wip.SCRP_Q)||'&d'||n(wip.NET_Q)||'&d');
- utl_file.put_line(handle,n(wip.WIP_LINE_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f DISCRETE JOB TRANSACTIONS (DJT) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh JOB_NAME &dh LINE &dh ITEM_ID &dh ITEM &dh QTY &dh MTL_TRNS_ID &dh TRANS_TYPE &dh OP_SEQ &dh SERIAL &eh');
- Declare
- cursor wip_job_trx is
- select
- WIE.wip_entity_name JOB_NAME,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- TRN.inventory_item_id ITEM_ID,
- ITM.segment1 ITEM,
- TRN.TRANSACTION_QUANTITY QTY,
- TRN.TRANSACTION_ID MTL_TRNS_ID,
- decode(TRN.TRANSACTION_TYPE_ID,
- 35, 'WIP Component Issue',
- 44, 'WIP Assy Completion',
- TRN.TRANSACTION_TYPE_ID) TRANS_TYPE,
- TRN.OPERATION_SEQ_NUM OP_SEQ,
- UNT.serial_number SERIAL
- from wip_discrete_jobs WIP,
- OE_ORDER_LINES_ALL LIN,
- wip_entities WIE,
- mtl_material_transactions TRN,
- mtl_system_items_b ITM,
- mtl_unit_transactions UNT
- where WIE.wip_entity_id = WIP.wip_entity_id
- and LIN.LINE_ID = WIP.source_line_id
- and TRN.transaction_source_id = WIP.wip_entity_id
- and TRN.transaction_source_type_id = 5
- and TRN.inventory_item_id = ITM.inventory_item_id
- and TRN.organization_id = ITM.organization_id
- and TRN.transaction_id = UNT.transaction_id(+)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for wip in wip_job_trx
- loop
- utl_file.put_line(handle,'&sld'||n(wip.JOB_NAME)||'&d'||n(wip.LINE)||'&d');
- utl_file.put_line(handle,n(wip.ITEM_ID)||'&d'||n(wip.ITEM)||'&d');
- utl_file.put_line(handle,n(wip.QTY)||'&d'||n(wip.MTL_TRNS_ID)||'&d');
- utl_file.put_line(handle,n(wip.TRANS_TYPE)||'&d'||n(wip.OP_SEQ)||'&d');
- utl_file.put_line(handle,n(wip.SERIAL)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; -- prt_wip
- end if; -- :v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- If :v_head_only = 'N' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_TRIPS"> WSH_TRIPS (TRP) </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh TRIP_ID &dh NAME &dh PLND &dh STATUS_CODE &dh VEH_NUM &dh CARR_ID &dh SHIP_METH &dh ROUTE_ID &dh VEH_ORG_ID &eh');
- Declare
- cursor w_trips is
- select distinct
- TRP.TRIP_ID TRIP_ID,
- TRP.NAME NAME,
- TRP.PLANNED_FLAG PLND,
- TRP.STATUS_CODE STATUS_CODE,
- TRP.VEHICLE_NUMBER VEH_NUM,
- TRP.CARRIER_ID CARR_ID,
- TRP.SHIP_METHOD_CODE SHIP_METH,
- TRP.ROUTE_ID ROUTE_ID,
- TRP.VEHICLE_ORGANIZATION_ID VEH_ORG_ID
- FROM
- WSH_TRIPS TRP
- where
- TRIP_ID in
- (select distinct(STP.TRIP_ID)
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG
- WHERE
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- order by TRP.TRIP_ID;
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..30
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. XX.';
- end if;
- for tt in w_trips
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if;
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#WTERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,'<a NAME="T'||tt.TRIP_ID||'">'||n(tt.TRIP_ID)||'</a>'||'&d'||n(tt.NAME)||'&d');
- utl_file.put_line(handle,n(tt.PLND)||'&d'||n(tt.STATUS_CODE)||'&d'||n(tt.VEH_NUM)||'&d'||n(tt.CARR_ID)||'&d');
- utl_file.put_line(handle,n(tt.SHIP_METH)||'&d'||n(tt.ROUTE_ID)||'&d'||n(tt.VEH_ORG_ID)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WTERR">Warning List:</a> &eb &f');
- for i in 1..30
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_TRIP_STOPS">WSH_TRIP_STOPS (STP) </a> &f ');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh STOP_ID &dh STOP_DESCRIPTION &dh TRIP_ID &dh TRIP_NAME &dh STOP_LOC_ID &dh STATUS &dh LOCK_ST_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'PEND_INTERF &dh PLN_DEP_DATE &dh ACT_DEP_DATE &eh');
- Declare cursor w_trip_stops is
- select distinct
- STP.STOP_ID STOP_ID,
- STP1.STOP_DESCRIPTION STOP_DESCRIPTION,
- STP.TRIP_ID TRIP_ID,
- TRP.NAME TRIP_NAME,
- STP.STOP_LOCATION_ID STOP_LOC_ID,
- STP.STATUS_CODE STATUS,
- STP.LOCK_STOP_ID LOCK_ST_ID,
- STP.PENDING_INTERFACE_FLAG PEND_INTERF,
- to_char(STP.PLANNED_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') PLN_DEP_DATE,
- to_char(STP.ACTUAL_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') ACT_DEP_DATE
- FROM
- WSH_TRIP_STOPS STP,
- WSH_SRS_TRIP_STOPS_V STP1,
- WSH_TRIPS TRP
- where
- STP.TRIP_ID = TRP.TRIP_ID(+) AND
- STP1.STOP_ID = STP.STOP_ID AND
- STP.STOP_ID in
- (
- (select distinct(LEG.PICK_UP_STOP_ID)
- from
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_DELIVERY_ASSIGNMENTS ASG
- where
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- UNION
- (select distinct(LEG.DROP_OFF_STOP_ID)
- from
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_DELIVERY_ASSIGNMENTS ASG
- where
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- )
- );
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..30
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. XX.';
- end if;
- for ts in w_trip_stops
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if;
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#WTSERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,'<a NAME="TS'||ts.STOP_ID||'">'||n(ts.STOP_ID)||'</a>'||'&d'||n(ts.STOP_DESCRIPTION)||'&d');
- utl_file.put_line(handle,'<a HREF="#T'||ts.TRIP_ID||'">'||n(ts.TRIP_ID)||'</a>'||'&d');
- utl_file.put_line(handle,n(ts.TRIP_NAME)||'&d'||'<a NAME="PU'||n(ts.STOP_LOC_ID)||'">'||n(ts.STOP_LOC_ID)||'</a>'||'&d');
- utl_file.put_line(handle,n(ts.STATUS)||'&d'||n(ts.LOCK_ST_ID)||'&d');
- utl_file.put_line(handle,n(ts.PEND_INTERF)||'&d'||n(ts.PLN_DEP_DATE)||'&d'||n(ts.ACT_DEP_DATE)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WTSERR">Warning List:</a> &eb &f');
- for i in 1..30
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_LEGS (LEG) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh LEG_ID &dh SEQ_NUM &dh DELIVERY_ID &dh PICKUP_STOP_ID &dh DROPOFF_STOP_ID &eh');
- Declare
- cursor w_del_leg is
- select distinct
- LEG.DELIVERY_LEG_ID LEG_ID,
- LEG.SEQUENCE_NUMBER SEQ_NUM,
- LEG.DELIVERY_ID DELIVERY_ID,
- LEG.PICK_UP_STOP_ID PICKUP_STOP_ID,
- LEG.DROP_OFF_STOP_ID DROPOFF_STOP_ID
- --LEG.LOAD_TENDER_STATUS LOAD_TENDER_STAT
- --ENABLE_TIMESTAMP ,to_char(LEG.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(LEG.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,LEG.REQUEST_ID REQUEST_ID
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG,
- WSH_TRIPS TRP
- where
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
- STP.TRIP_ID = TRP.TRIP_ID AND
- LEG.DELIVERY_ID(+) = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by
- LEG.DELIVERY_LEG_ID;
- begin
- for wdl in w_del_leg
- loop
- utl_file.put_line(handle,'&sld'||n(wdl.LEG_ID)||'&d'||n(wdl.SEQ_NUM)||'&d');
- utl_file.put_line(handle,n(wdl.DELIVERY_ID)||'&d'||n(wdl.PICKUP_STOP_ID)||'&d');
- utl_file.put_line(handle,n(wdl.DROPOFF_STOP_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_NEW_DELIVERIES"> WSH_NEW_DELIVERIES (DEL) </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh DELIVERY_ID &dh DEL_NAME &dh STATUS_CODE &dh WAYBILL &dh PLND &dh PICKUP_DT &dh PICKUP_LOC &dh');
- UTL_FILE.PUT_LINE(handle,'DROPOFF_DT &dh DROPOFF_LOC &dh SHIP_METHOD_CODE &dh CONFIRM_DATE &eh');
- Declare cursor w_deliveries is
- select distinct
- DEL.DELIVERY_ID DELIVERY_ID,
- DEL.NAME DEL_NAME,
- DEL.STATUS_CODE STATUS_CODE,
- DEL.WAYBILL WAYBILL,
- DEL.PLANNED_FLAG PLND,
- to_char(DEL.INITIAL_PICKUP_DATE,'DD-MON-RR_HH24:MI:SS') PICKUP_DT,
- DEL.INITIAL_PICKUP_LOCATION_ID PICKUP_LOC,
- to_char(DEL.ULTIMATE_DROPOFF_DATE,'DD-MON-RR_HH24:MI:SS') DROPOFF_DT,
- DEL.ULTIMATE_DROPOFF_LOCATION_ID DROPOFF_LOC,
- DEL.SHIP_METHOD_CODE SHP_METH,
- to_char(DEL.CONFIRM_DATE,'DD-MON-RR_HH24:MI:SS') CONF_DATE
- --DEL.BOOKING_NUMBER BOOKING_NUM,
- --DEL.ACCEPTANCE_FLAG ACCEPTED
- --ENABLE_TIMESTAMP ,to_char(DEL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(DEL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,DEL.REQUEST_ID REQUEST_ID
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_ASSIGNMENTS ASG
- where
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- order by Del.DELIVERY_ID;
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..30
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. XX.';
- end if;
- for nd in w_deliveries
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#WNDERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,'<a NAME="D'||nd.DELIVERY_ID||'">'||n(nd.DELIVERY_ID)||'</a>'||'&d'||n(nd.DEL_NAME)||'&d');
- utl_file.put_line(handle,n(nd.STATUS_CODE)||'&d'||n(nd.WAYBILL)||'&d'||n(nd.PLND)||'&d'||n(nd.PICKUP_DT)||'&d');
- utl_file.put_line(handle,'<a HREF="#PU'||nd.PICKUP_LOC||'">'||n(nd.PICKUP_LOC)||'</a>'||'&d');
- utl_file.put_line(handle,n(nd.DROPOFF_DT)||'&d'||n(nd.DROPOFF_LOC)||'&d');
- utl_file.put_line(handle,n(nd.SHP_METH)||'&d'||n(nd.CONF_DATE)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WNDERR">Warning List:</a> &eb &f');
- for i in 1..30
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_ASSIGNMENTS (ASG) &f ');
- UTL_FILE.PUT_LINE(handle,'&std &sh DEL_ASGN_ID &dh DELIVERY_ID &dh DEL_DETAIL_ID &dh PAR_DEL_ID &dh PAR_DETAIL_ID &eh ');
- Declare
- cursor w_del_asig is
- select distinct
- ASG.DELIVERY_ASSIGNMENT_ID DEL_ASGN_ID,
- ASG.DELIVERY_ID DELIVERY_ID,
- ASG.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
- ASG.PARENT_DELIVERY_ID PAR_DEL_ID,
- ASG.PARENT_DELIVERY_DETAIL_ID PAR_DETAIL_ID
- -- ASG.ACTIVE_FLAG ACTIVE
- --ENABLE_TIMESTAMP ,to_char(ASG.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(ASG.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,ASG.REQUEST_ID REQUEST_ID
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_DELIVERY_ASSIGNMENTS ASG
- where
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for wda in w_del_asig
- loop
- utl_file.put_line(handle,'&sld'||n(wda.DEL_ASGN_ID)||'&d'||n(wda.DELIVERY_ID)||'&d');
- utl_file.put_line(handle,n(wda.DEL_DETAIL_ID)||'&d'||n(wda.PAR_DEL_ID)||'&d');
- utl_file.put_line(handle,n(wda.PAR_DETAIL_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="ORGANIZATIONS"> ORGANIZATIONS (ORG) </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh ORG_ID &dh ORGANIZATION CODE &dh WMS_ENABLED &dh OPM_ENABLED &dh NEGATIVE BAL_ALLOW ');
- UTL_FILE.PUT_LINE(handle,'&dh PRIMARY COST_METH &dh COST ORG_ID &dh MASTER ORG_ID &dh DAFAULT COST_GRP &dh PROJECT REF_ENABLED ');
- UTL_FILE.PUT_LINE(handle,'&dh COST CUT_DATE &dh EAM ENABLED &dh ENCUMBR REVERSAL &eh ');
- Declare cursor l_orgs is
- SELECT distinct
- mp.organization_id org_id,
- mp.organization_code org,
- decode(mp.primary_cost_method,
- 1, 'Standard',
- 2, 'Average',
- 5, 'FIFO',
- 6, 'LIFO') PCM,
- decode(mp.wms_enabled_flag,
- 'Y', 'Yes',
- 'N', 'No') WMS,
- decode(mp.NEGATIVE_INV_RECEIPT_CODE,
- 1, 'Yes',
- 2, 'No') neg_bal,
- mp.cost_organization_id c_org,
- mp.master_organization_id m_org,
- mp.default_cost_group_id dcg,
- decode(mp.project_reference_enabled,
- 1, 'Yes',
- 2, 'No') PRE,
- to_char(mp.cost_cutoff_date,'dd-mon-rrrr') ccd,
- decode(mp.eam_enabled_flag,
- 'Y','Yes',
- 'N','No') EAM,
- decode (mp.encumbrance_reversal_flag,
- 1, 'Yes',
- 2, 'No') ENC
- FROM MTL_PARAMETERS MP,
- WSH_DELIVERY_DETAILS DET
- where DET.SOURCE_CODE = 'OE'
- and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- for orgi in l_orgs
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(orgi.org_id)||' &d ');
- utl_file.put_line(handle,n(orgi.org)||' &d '||n(orgi.WMS)||' &d ');
- if INV_GMI_RSV_BRANCH.PROCESS_BRANCH(orgi.org_id) then
- utl_file.put_line(handle,'Yes ');
- :is_opm := 'Y';
- else
- utl_file.put_line(handle,'No ');
- :is_opm := 'N';
- end if;
- utl_file.put_line(handle,' &d '||n(orgi.neg_bal)||' &d '||n(orgi.PCM)||' &d ');
- utl_file.put_line(handle,n(orgi.c_org)||' &d '||n(orgi.m_org)||' &d ');
- utl_file.put_line(handle,n(orgi.dcg)||' &d '||n(orgi.PRE)||' &d ');
- utl_file.put_line(handle,n(orgi.ccd)||' &d '||n(orgi.EAM)||' &d ');
- utl_file.put_line(handle,n(orgi.ENC)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="ACCOUNTING PERIODS"> ACCOUNTING PERIODS (ACC) </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh ORG_ID &dh ORGANIZATION CODE &dh PLANNED_DEPART_DT (Shipped Line) &dh ');
- UTL_FILE.PUT_LINE(handle,'SCHEDULE_SHIP_DT (Not Shipped Line) &dh ACCOUNT PERIOD_ID &dh PERIOD NAME ');
- UTL_FILE.PUT_LINE(handle,'&dh OPEN FLAG &dh PERIOD START_DT &dh PERIOD CLOSE_DT &dh SCHEDULE CLOSE_DT &eh ');
- Declare cursor l_orgs is
- SELECT distinct
- mp.organization_id org_id,
- mp.organization_code org,
- to_char(STP.PLANNED_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') plan_dep_date,
- '' schdate,
- oac.acct_period_id acc_per_id,
- oac.period_name per_name,
- oac.open_flag open_fl,
- to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
- to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
- to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
- FROM MTL_PARAMETERS MP,
- ORG_ACCT_PERIODS OAC,
- WSH_DELIVERY_DETAILS DET,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG,
- WSH_TRIPS TRP
- where ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID
- and STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID
- and STP.TRIP_ID = TRP.TRIP_ID(+)
- and LEG.DELIVERY_ID(+) = ASG.DELIVERY_ID
- and DET.SOURCE_CODE = 'OE'
- and MP.ORGANIZATION_ID = OAC.ORGANIZATION_ID
- and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and STP.PLANNED_DEPARTURE_DATE BETWEEN OAC.PERIOD_START_DATE and NVL(OAC.PERIOD_CLOSE_DATE,OAC.SCHEDULE_CLOSE_DATE)
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
- union
- SELECT distinct
- mp.organization_id org_id,
- mp.organization_code org,
- '' plan_dep_date,
- to_char(LIN.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') schdate,
- oac.acct_period_id acc_per_id,
- oac.period_name per_name,
- oac.open_flag open_fl,
- to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
- to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
- to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
- FROM MTL_PARAMETERS MP,
- ORG_ACCT_PERIODS OAC,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- where DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and MP.ORGANIZATION_ID = OAC.ORGANIZATION_ID
- and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and LIN.SCHEDULE_SHIP_DATE BETWEEN OAC.PERIOD_START_DATE and NVL(OAC.PERIOD_CLOSE_DATE,OAC.SCHEDULE_CLOSE_DATE)
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- for orgi in l_orgs
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(orgi.org_id)||' &d ');
- utl_file.put_line(handle,n(orgi.org)||' &d '||n(orgi.plan_dep_date)||' &d ');
- utl_file.put_line(handle,n(orgi.schdate)||' &d '||n(orgi.acc_per_id)||' &d ');
- utl_file.put_line(handle,n(orgi.per_name)||' &d '||n(orgi.open_fl)||' &d ');
- utl_file.put_line(handle,n(orgi.per_sd)||' &d '||n(orgi.per_cd)||' &d ');
- utl_file.put_line(handle,n(orgi.sch_cd)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_DELIVERY_DETAILS"> WSH_DELIVERY_DETAILS (DET)</a> <a HREF="#WDD">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std '); -- just to start the table, header will be printed later
- Declare cursor w_del_details is
- select distinct
- DET.DELIVERY_DETAIL_ID DEL_DET_ID,
- DET.RELEASED_STATUS REL_STATUS_C,
- decode(DET.RELEASED_STATUS,
- 'Y','Y=Staged',
- 'R','R=Ready to Release',
- 'S','S=Rel to Warhouse',
- 'B','B=Backorder',
- 'P','P=Pending Inv',
- 'C','C=Shipped',
- 'N','N=Not Ready',
- 'D','D=Cancelled',
- 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
- DET.MOVE_ORDER_LINE_ID MO_LINE_ID,
- ASG.DELIVERY_ID DELIV_ID,
- TRP.TRIP_ID TRIP_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- DET.SOURCE_LINE_ID LINE_ID,
- DET.INVENTORY_ITEM_ID ITEM_ID,
- ITM.SEGMENT1 ITEM,
- nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
- DET.SRC_REQUESTED_QUANTITY_UOM SRQ_U,
- nvl(DET.SRC_REQUESTED_QUANTITY2,0) SRQ_Q2,
- DET.SRC_REQUESTED_QUANTITY_UOM2 SRQ_U2,
- nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
- DET.REQUESTED_QUANTITY_UOM REQ_U,
- nvl(DET.REQUESTED_QUANTITY2,0) REQ_Q2,
- DET.REQUESTED_QUANTITY_UOM2 REQ_U2,
- nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
- nvl(DET.SHIPPED_QUANTITY2,0) SHP_Q2,
- nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
- nvl(DET.DELIVERED_QUANTITY2,0) DLV_Q2,
- nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
- nvl(DET.CANCELLED_QUANTITY2,0) CAN_Q2,
- nvl(DET.INV_INTERFACED_FLAG,'N') INI,
- nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
- DET.SHIP_TOLERANCE_ABOVE STA,
- DET.SHIP_TOLERANCE_BELOW STB,
- DET.SHIP_FROM_LOCATION_ID SH_FROM_ID,
- DET.SHIP_TO_LOCATION_ID SH_TO_ID,
- -- DET.MVT_STAT_STATUS MVT_STATUS,
- DET.ORGANIZATION_ID WH_ID,
- DET.SUBINVENTORY CUR_SUB,
- DET.ATTRIBUTE15 ORG_SUB,
- DET.REVISION REV,
- DET.LOT_NUMBER LOT,
- DET.SERIAL_NUMBER SERIAL,
- DET.LOCATOR_ID LOC_ID,
- DET.SHIP_METHOD_CODE SHIP_METH,
- -- DET.MOVEMENT_ID MVMT_ID,
- DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
- DET.PICKABLE_FLAG PICKABLE_FLAG,
- nvl(DET.PICKED_QUANTITY,0) PICKED_QUANTITY,
- nvl(DET.PICKED_QUANTITY2,0) PICKED_QUANTITY2,
- DET.SHIP_SET_ID SHIP_SET_ID,
- DET.SHIP_MODEL_COMPLETE_FLAG SHIP_MODEL_COMPLETE_FLAG,
- DET.TRANSACTION_TEMP_ID TRX_TEMP_ID,
- DET.TOP_MODEL_LINE_ID TOP_MO_LIN,
- DET.SOURCE_LINE_SET_ID SRC_LIN_SET,
- to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
- DET.sublot_number slotno,
- DET.CYCLE_COUNT_QUANTITY2 cycle_qty,
- DET.QUALITY_CONTROL_QUANTITY QC_qty,
- DET.QUALITY_CONTROL_QUANTITY2 QC_qty2,
- DET.SCHEDULED_QUANTITY2 sch_qty2,
- to_char(DET.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') upd_date,
- DET.source_line_set_id SRC_LIN_SET_ID
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- MTL_SYSTEM_ITEMS ITM,
- WSH_DELIVERY_ASSIGNMENTS ASG,
- WSH_TRIPS TRP
- where
- DEL.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
- STP.TRIP_ID = TRP.TRIP_ID(+) AND
- LEG.DELIVERY_ID(+) = DEL.DELIVERY_ID AND
- LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+) AND
- LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
- DET.SOURCE_CODE = 'OE' AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- Order by
- DET.SOURCE_LINE_ID, DET.DELIVERY_DETAIL_ID;
- r_uom_lin varchar2(10);
- r_qshp_lin number;
- r_sta_lin varchar2(100);
- r_mtl_trn varchar2(100);
- c_lines number;
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- Procedure prt_DET_head is
- begin
- UTL_FILE.PUT_LINE(handle,'&sh WARNING &dh DELIVERY DETAIL_ID &dh RELEASE STATUS &dhr INI &dh OMI &dh MOVE_ORDER LINE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'DELIVERY ID &dh TRIP_ID &dh LINE &dh LINE_ID &dh ITEM_ID &dh ITEM &dh SOURCE REQ_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'SOURCE REQ_UOM &dh REQUEST QTY &dh REQUEST UOM &dh PICKED QTY &dh SHIPPED QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'DELIVER QTY &dh CANCEL QTY &dh PICK FLAG &dh STA &dh STB &dh SHIP FROM_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP TO_ID &dh WH_ID &dh CURRENT SUBINV &dh ORG SUBINV &dh REV &dh LOT &dh SERIAL &dh ');
- UTL_FILE.PUT_LINE(handle,'TRANSAC TEMP_ID &dh LOCATOR ID &dh SHIP METHOD &dh CREATE DATE &dh SPLIT_FROM DEL_DET_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP SET &dh SHIP MOD_CMP &dh TOP_MODEL LINE_ID &dh SOURCE LINE_SET &dh DISCRETE SRC_REQ_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'DISCRETE SRC_REQ_UOM &dh DISCRETE REQ_QTY &dh DISCRETE REQ_UOM &dh DISCRETE PICK_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'DISCRETE SHP_QTY &dh DISCRETE DEL_QTY &dh DISCRETE CANC_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'CYCLE COUNT_QTY &dh QUALITY CTRL_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'QUALITY CTRL_QTY2 &dh DISCRETE SCHD_QTY &dh SUBLOT NUMBER &dh LAST UPDATE_DATE &dh');
- UTL_FILE.PUT_LINE(handle,'SRC_LIN SET_ID &eh');
- end;
- begin
- :r_error := 0;
- c_lines := 35;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..35
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. Source Requested Quantity is less than Shipped Quantity.';
- msg(10).descrip := ' 10. Pickable_Flag on Delivery Detail does Not Match with Mtl_Transactions_Enabled_Flag on Mtl_System_Items.';
- msg(20).descrip := ' 20. Delivery Detail have no Order Lines Associated.';
- msg(21).descrip := ' 21. Order Line associated to this Delivery Detail have INVALID status.';
- msg(24).descrip := ' 24. Delivery Detail have invalid RELEASED status.';
- msg(25).descrip := ' 25. Delivery Detail has NOT been Shipped but has been INTERFACED to OM or INV.';
- msg(26).descrip := ' 26. Delivery Detail has NOT been Shipped but associated Order Line shows Shipped Quantity.';
- msg(27).descrip := ' 27. Delivery Detail has NOT been Shipped but associated Order Line is Not on AWAITING SHIPPING status.';
- msg(28).descrip := ' 28. Delivery Detail has been Shipped, NOT OM Interfaced but associated Order Line Shipped Qty has been updated.';
- msg(29).descrip := ' 29. Delivery Detail has been Shipped, NOT OM Interfaced but associated Order Line is Not on AWAITING SHIPPING status.';
- msg(30).descrip := ' 30. Delivery Detail has been Shipped and OM Interfaced but associated Order Line Shipped Qty has NOT been updated.';
- msg(31).descrip := ' 31. Delivery Detail has been Shipped and OM Interfaced but associated Order Line still on AWAITING SHIPPING status.';
- msg(32).descrip := ' 32. Delivery Detail has been Shipped and OM interfaced, Shipped Qty on order_line does not match Delivery Detail Shp Qty (maybe a Split line).';
- msg(33).descrip := ' 33. Delivery Detail is Cancelled but has been INTERFACED to OM or INV.';
- end if;
- for dd in w_del_details
- loop
- :r_flag := '';
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Check Pickable_flag against mtl_system_items.mtl_transactions_enabled_flag
- Select nvl(mtl_transactions_enabled_flag,'N')
- into r_mtl_trn
- from Mtl_System_items
- where Inventory_item_Id = dd.ITEM_ID
- and Organization_Id = dd.WH_ID;
- if dd.PICKABLE_FLAG <> r_mtl_trn then
- :r_flag := :r_flag || '10 ';
- msg(10).flag := '1';
- end if;
- begin
- select ORDER_QUANTITY_UOM, nvl(SHIPPED_QUANTITY,0), substr(FLOW_STATUS_CODE,1,22)
- into r_uom_lin, r_qshp_lin, r_sta_lin
- from oe_order_lines_all
- where line_id = dd.LINE_ID;
- exception
- when no_data_found then
- :r_flag := :r_flag || '20 ';
- msg(20).flag := '1';
- end;
- ---
- -- Basic Verification
- --
- If (dd.SRQ_Q*(100+nvl(dd.STA,0))/100 < dd.SHP_Q) AND (dd.SRQ_U = dd.REQ_U) then
- :r_flag := :r_flag || '1 ';
- msg(1).flag := '1';
- end if;
- if dd.REL_STATUS_C not in ('Y','R','S','B','P','C','N','D','X') then -- invalid Released status
- :r_flag := :r_flag || '24 ';
- msg(24).flag := '1';
- end if;
- if dd.REL_STATUS_C not in ('C','D') -- not shipped or cancelled
- and (dd.INI not in ( 'N','X')
- or dd.OMI <> 'N') then -- but interfaced INV or OM
- :r_flag := :r_flag || '25 ';
- msg(25).flag := '1';
- end if;
- if dd.REL_STATUS_C not in ('C','D') -- not shipped nor cancelled
- and dd.OMI = 'N'
- and r_qshp_lin > 0 then -- not OM interfaced but Shipped qty on order line has been updated
- :r_flag := :r_flag || '26 ';
- msg(26).flag := '1';
- end if;
- if dd.REL_STATUS_C not in ('C','D') -- not shipped nor cancelled
- and dd.OMI = 'N'
- and r_sta_lin <> 'AWAITING_SHIPPING' then -- not OM interfaced but order line is not Awaiting Shipping
- :r_flag := :r_flag || '27 ';
- msg(27).flag := '1';
- end if;
- -- Verifications for Shipped Delivery Details
- if dd.REL_STATUS_C = 'C' then
- if dd.OMI = 'N'
- and r_qshp_lin > 0 then -- Shipped, not OM interfaced but order lines Qty has been updated
- :r_flag := :r_flag || '28 ';
- msg(28).flag := '1';
- end if;
- if dd.OMI = 'N'
- and r_sta_lin <> 'AWAITING_SHIPPING' then -- Shipped, not OM interfaced but order line not on Awaiting Shipping
- :r_flag := :r_flag || '29 ';
- msg(29).flag := '1';
- end if;
- if dd.OMI = 'Y'
- and r_qshp_lin = 0 then -- Shipped and OM interfaced, order_line shipped Qty not updated
- :r_flag := :r_flag || '30 ';
- msg(30).flag := '1';
- end if;
- if dd.OMI = 'Y'
- and r_sta_lin = 'AWAITING_SHIPPING' then -- Shipped and OM interfaced, order_line status not updated
- :r_flag := :r_flag || '31 ';
- msg(31).flag := '1';
- end if;
- if dd.OMI = 'Y'
- and r_uom_lin = dd.REQ_U -- same UOM, no conversion
- and r_qshp_lin <> dd.SHP_Q then -- Shipped and OM interfaced, Shipped Qty on order_line does not match Delivery Detail Shp Qty
- :r_flag := :r_flag || '32 ';
- msg(32).flag := '1';
- end if;
- end if; -- Shipped Del.Detail
- -- Verifications for Cancelled Delivery Details
- if dd.REL_STATUS_C = 'D' then
- if (dd.INI = 'Y'
- or dd.OMI = 'Y') then -- Delivery Detail has been cancelled but INV or OM flags are set to Y
- :r_flag := :r_flag || '33 ';
- msg(33).flag := '1';
- end if;
- end if; -- Cancelled Del.Detail
- end if; -- do_analysis
- ---
- if c_lines >= 35 then
- c_lines := 1;
- prt_DET_head;
- else
- c_lines := c_lines + 1;
- end if;
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#WDDERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,'<a NAME="WDD'||dd.DEL_DET_ID||'">'||n(dd.DEL_DET_ID)||'</a> &d');
- utl_file.put_line(handle,n(dd.REL_STATUS)||'&d');
- utl_file.put_line(handle,n(dd.INI)||'&d'||n(dd.OMI)||'&d');
- utl_file.put_line(handle,'<a HREF="#MO'||dd.MO_LINE_ID||'">'||n(dd.MO_LINE_ID)||'</a>'||'&d');
- utl_file.put_line(handle,'<a HREF="#D'||dd.DELIV_ID||'">'||n(dd.DELIV_ID)||'</a>'||'&d');
- utl_file.put_line(handle,'<a HREF="#T'||dd.TRIP_ID||'">'||n(dd.TRIP_ID)||'</a>'||'&d'||n(dd.LINE)||'&d');
- utl_file.put_line(handle,'<a HREF="#OOE'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d');
- utl_file.put_line(handle,n(dd.ITEM_ID)||'&d'||n(dd.ITEM)||'&d');
- utl_file.put_line(handle,n(dd.SRQ_Q)||'&d'||n(dd.SRQ_U)||'&d');
- utl_file.put_line(handle,n(dd.REQ_Q)||'&d'||n(dd.REQ_U)||'&d');
- utl_file.put_line(handle,n(dd.PICKED_QUANTITY)||'&d'||n(dd.SHP_Q)||'&d');
- utl_file.put_line(handle,n(dd.DLV_Q)||'&d'||n(dd.CAN_Q)||'&d');
- utl_file.put_line(handle,n(dd.PICKABLE_FLAG)||'&d');
- utl_file.put_line(handle,n(dd.STA)||'&d');
- utl_file.put_line(handle,n(dd.STB)||'&d'||n(dd.SH_FROM_ID)||'&d');
- utl_file.put_line(handle,n(dd.SH_TO_ID)||'&d');
- utl_file.put_line(handle,n(dd.WH_ID)||'&d'||n(dd.CUR_SUB)||'&d');
- utl_file.put_line(handle,n(dd.ORG_SUB)||'&d'||n(dd.REV)||'&d');
- utl_file.put_line(handle,n(dd.LOT)||'&d'||n(dd.SERIAL)||'&d');
- utl_file.put_line(handle,n(dd.TRX_TEMP_ID)||'&d');
- utl_file.put_line(handle,n(dd.LOC_ID)||'&d'||n(dd.SHIP_METH)||'&d');
- utl_file.put_line(handle,n(dd.CRE_DATE)||'&d');
- utl_file.put_line(handle,n(dd.SPL_DEL_DET_ID)||'&d');
- utl_file.put_line(handle,n(dd.SHIP_SET_ID)||'&d'||n(dd.SHIP_MODEL_COMPLETE_FLAG)||'&d');
- utl_file.put_line(handle,n(dd.TOP_MO_LIN)||'&d'||n(dd.SRC_LIN_SET)||'&d');
- utl_file.put_line(handle,n(dd.SRQ_Q2)||'&d'||n(dd.SRQ_U2)||'&d');
- utl_file.put_line(handle,n(dd.REQ_Q2)||'&d'||n(dd.REQ_U2)||'&d');
- utl_file.put_line(handle,n(dd.PICKED_QUANTITY2)||'&d'||n(dd.SHP_Q2)||'&d');
- utl_file.put_line(handle,n(dd.DLV_Q2)||'&d'||n(dd.CAN_Q2)||'&d');
- utl_file.put_line(handle,n(dd.cycle_qty)||'&d');
- utl_file.put_line(handle,n(dd.QC_qty)||'&d'||n(dd.QC_qty2)||'&d');
- utl_file.put_line(handle,n(dd.sch_qty2)||'&d');
- utl_file.put_line(handle,n(dd.slotno)||'&d'||n(dd.upd_date)||'&d');
- utl_file.put_line(handle,n(dd.SRC_LIN_SET_ID)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WDDERR">Warnings List:</a> &eb &f');
- for i in 1..35
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_DETAILS (CONTAINERS) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh DEL_DET_ID &dh REL_STATUS &dh DELIV_ID &dh TRIP_ID &dh ITEM_ID &dh ITEM &dh CF &dh CONT_NAME &dh CONT_TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'FL_PER &dh GRS_WT &dh NET_WT &dh WT_UOM &dh VOL &dh VOL_UOM &dh SRQ_Q &dh REQ_Q &dh SHP_Q &dh DLV_Q &dh CAN_Q &dh ');
- UTL_FILE.PUT_LINE(handle,'INI &dh OMI &dh SH_FROM_ID &dh SH_TO_ID &dh WH_ID &dh SHIP_METH &dh CREATE_D &dh FOB_CODE &dh FRT_TERMS &dh');
- UTL_FILE.PUT_LINE(handle,'SPL_DEL_DET_ID &dh LPN_ID &eh');
- Declare
- cursor w_del_det_c is
- select distinct
- DET.DELIVERY_DETAIL_ID DEL_DET_ID,
- decode(DET.RELEASED_STATUS,
- 'Y','Y=Staged',
- 'R','R=Ready to Relese',
- 'S','S=Rel to Warhouse',
- 'B','B=Backorder',
- 'P','P=Pending Inv',
- 'C','C=Shipped',
- 'N','N=Not Ready',
- 'D','D=Cancelled',
- 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
- ASG.DELIVERY_ID DELIV_ID,
- TRP.TRIP_ID TRIP_ID,
- DET.INVENTORY_ITEM_ID ITEM_ID,
- ITM.SEGMENT1 ITEM,
- DET.CONTAINER_FLAG CF,
- DET.CONTAINER_NAME CONT_NAME,
- DET.CONTAINER_TYPE_CODE CONT_TYPE,
- DET.FILL_PERCENT FL_PER,
- DET.GROSS_WEIGHT GRS_WT,
- DET.NET_WEIGHT NET_WT,
- DET.WEIGHT_UOM_CODE WT_UOM,
- DET.VOLUME VOL,
- DET.VOLUME_UOM_CODE VOL_UOM,
- nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
- nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
- nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
- nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
- nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
- nvl(DET.INV_INTERFACED_FLAG,'N') INI,
- nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
- DET.SHIP_FROM_LOCATION_ID SH_FROM_ID,
- DET.SHIP_TO_LOCATION_ID SH_TO_ID,
- DET.ORGANIZATION_ID WH_ID,
- DET.SHIP_METHOD_CODE SHIP_METH,
- to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CRE_DT,
- DET.FOB_CODE FOB_CODE,
- DET.FREIGHT_TERMS_CODE FRT_TERMS,
- --DET.MOVEMENT_ID MVMT_ID,
- DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
- DET.LPN_ID LPN_ID
- --ENABLE_TIMESTAMP ,DET.ORG_ID DEL_ORG_ID
- --ENABLE_TIMESTAMP ,to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(DET.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,DET.REQUEST_ID REQUEST_ID
- FROM
- --OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- --WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- MTL_SYSTEM_ITEMS ITM,
- WSH_DELIVERY_ASSIGNMENTS ASG,
- WSH_TRIPS TRP
- where
- --DEL.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.ORGANIZATION_ID = ITM.ORGANIZATION_ID(+) AND
- DET.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
- --DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
- STP.TRIP_ID = TRP.TRIP_ID(+) AND
- LEG.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
- --LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+) AND
- --LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
- DET.SOURCE_CODE = 'WSH' AND
- ASG.DELIVERY_ID IN (select ASG1.DELIVERY_ID
- from WSH_DELIVERY_ASSIGNMENTS ASG1,
- WSH_DELIVERY_DETAILS DET1,
- OE_ORDER_LINES_ALL LIN1
- where DET1.SOURCE_LINE_ID = LIN1.LINE_ID AND
- DET1.DELIVERY_DETAIL_ID = ASG1.DELIVERY_DETAIL_ID AND
- DET1.SOURCE_CODE = 'OE' AND
- LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
- LIN1.TOP_MODEL_LINE_ID,
- LIN1.ATO_LINE_ID,
- LIN1.LINK_TO_LINE_ID,
- LIN1.REFERENCE_LINE_ID,
- LIN1.SERVICE_REFERENCE_LINE_ID));
- begin
- for wddc in w_del_det_c
- loop
- utl_file.put_line(handle,'&sld'||n(wddc.DEL_DET_ID)||'&d'||n(wddc.REL_STATUS)||'&d');
- utl_file.put_line(handle,n(wddc.DELIV_ID)||'&d'||n(wddc.TRIP_ID)||'&d');
- utl_file.put_line(handle,n(wddc.ITEM_ID)||'&d'||n(wddc.ITEM)||'&d');
- utl_file.put_line(handle,n(wddc.CF)||'&d'||n(wddc.CONT_NAME)||'&d');
- utl_file.put_line(handle,n(wddc.CONT_TYPE)||'&d'||n(wddc.FL_PER)||'&d');
- utl_file.put_line(handle,n(wddc.GRS_WT)||'&d'||n(wddc.NET_WT)||'&d');
- utl_file.put_line(handle,n(wddc.WT_UOM)||'&d'||n(wddc.VOL)||'&d');
- utl_file.put_line(handle,n(wddc.VOL_UOM)||'&d'||n(wddc.SRQ_Q)||'&d');
- utl_file.put_line(handle,n(wddc.REQ_Q)||'&d'||n(wddc.SHP_Q)||'&d');
- utl_file.put_line(handle,n(wddc.DLV_Q)||'&d'||n(wddc.CAN_Q)||'&d');
- utl_file.put_line(handle,n(wddc.INI)||'&d'||n(wddc.OMI)||'&d');
- utl_file.put_line(handle,n(wddc.SH_FROM_ID)||'&d'||n(wddc.SH_TO_ID)||'&d');
- utl_file.put_line(handle,n(wddc.WH_ID)||'&d'||n(wddc.SHIP_METH)||'&d');
- utl_file.put_line(handle,n(wddc.CRE_DT)||'&d'||n(wddc.FOB_CODE)||'&d');
- utl_file.put_line(handle,n(wddc.FRT_TERMS)||'&d'||n(wddc.SPL_DEL_DET_ID)||'&d');
- utl_file.put_line(handle,n(wddc.LPN_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_SERIAL_NUMBERS"> WSH_SERIAL_NUMBERS (WSN)</a> <a HREF="#WSN">Column Definitions</a> &f');
- Declare
- r_exist number;
- begin
- select count(*)
- into r_exist
- from all_tables
- where table_name = 'WSH_SERIAL_NUMBERS';
- if r_exist = 0 then
- utl_file.put_line(handle,'&et Table WSH_SERIAL_NUMBER is not present on this instance (introduced on 11.5.9): &f');
- else
- UTL_FILE.PUT_LINE(handle,'&std &sh ERR_FLAG &dh DEL_DET_ID &dh REL_STATUS &dh LINE &dh LINE_ID &dh ITEM_ID &dh SRQ_Q &dh SRQ_U &dh REQ_Q &dh');
- UTL_FILE.PUT_LINE(handle,'REQ_U &dh PIK_Q &dh SHP_Q &dh DLV_Q &dh CAN_Q &dh INI &dh OMI &dh STA &dh STB &dh WH_ID &dh CUR_SUB &dh');
- UTL_FILE.PUT_LINE(handle,'ORG_SUB &dh REV &dh LOT &dh SERIAL &dh LOC_ID &dh SPL_DEL_DET_ID &dh FROM_SERIAL &dh TO_SERIAL &dh SERIAL_QTY &eh');
- end if;
- end;
- Declare cursor w_serial_n is
- select distinct
- DET.DELIVERY_DETAIL_ID DEL_DET_ID,
- DET.RELEASED_STATUS REL_STATUS_C,
- decode(DET.RELEASED_STATUS,
- 'Y','Y=Staged',
- 'R','R=Ready to Release',
- 'S','S=Rel to Warhouse',
- 'B','B=Backorder',
- 'P','P=Pending Inv',
- 'C','C=Shipped',
- 'N','N=Not Ready',
- 'D','D=Cancelled',
- 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- DET.SOURCE_LINE_ID LINE_ID,
- DET.INVENTORY_ITEM_ID ITEM_ID,
- nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
- SRC_REQUESTED_QUANTITY_UOM SRQ_U,
- nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
- SRC_REQUESTED_QUANTITY_UOM REQ_U,
- nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
- nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
- nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
- nvl(DET.INV_INTERFACED_FLAG,'N') INI,
- nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
- DET.SHIP_TOLERANCE_ABOVE STA,
- DET.SHIP_TOLERANCE_BELOW STB,
- DET.ORGANIZATION_ID WH_ID,
- DET.SUBINVENTORY CUR_SUB,
- DET.ATTRIBUTE15 ORG_SUB,
- DET.REVISION REV,
- DET.LOT_NUMBER LOT,
- DET.SERIAL_NUMBER SERIAL,
- DET.LOCATOR_ID LOC_ID,
- DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
- DET.PICKED_QUANTITY PICKED_QUANTITY,
- substr(wsn.fm_serial_number,1,15) FROM_SERIAL,
- substr(wsn.to_serial_number,1,15) TO_SERIAL,
- wsn.quantity WSN_QTY,
- to_char(wsn.creation_date,'DD-MON-RR_HH24:MI:SS') WSN_CRE_DATE
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_SERIAL_NUMBERS WSN
- where DET.DELIVERY_DETAIL_ID = WSN.DELIVERY_DETAIL_ID
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10);
- r_uom_lin varchar2(10);
- r_qshp_lin number;
- r_sta_lin varchar2(100);
- r_mtl_trn varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..1
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. No verifications yet.';
- end if;
- for dd in w_serial_n
- loop
- :r_flag := '';
- -- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Include verifications here
- -- Select nvl(mtl_transactions_enabled_flag,'N')
- -- into r_mtl_trn
- -- from Mtl_System_items
- -- where Inventory_item_Id = dd.ITEM_ID
- -- and Organization_Id = dd.WH_ID;
- -- if dd.PICKABLE_FLAG <> r_mtl_trn then
- -- :r_flag := :r_flag || '1 ';
- -- msg(1).flag := '1';
- -- end if;
- -- end if; -- do_analysis
- ---
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#WSNERR">'||n(:r_flag)||'</a> &eb &d ');
- utl_file.put_line(handle,n(dd.DEL_DET_ID)||' &d ');
- utl_file.put_line(handle,n(dd.REL_STATUS)||' &d '||n(dd.LINE)||' &d ');
- utl_file.put_line(handle,'<a HREF="#'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d ');
- utl_file.put_line(handle,n(dd.ITEM_ID)||' &d');
- utl_file.put_line(handle,n(dd.SRQ_Q)||'&d'||n(dd.SRQ_U)||' &d ');
- utl_file.put_line(handle,n(dd.REQ_Q)||'&d'||n(dd.REQ_U)||' &d ');
- utl_file.put_line(handle,n(dd.PICKED_QUANTITY)||' &d');
- utl_file.put_line(handle,n(dd.SHP_Q)||'&d'||n(dd.DLV_Q)||' &d');
- utl_file.put_line(handle,n(dd.CAN_Q)||'&d'||n(dd.INI)||' &d');
- utl_file.put_line(handle,n(dd.OMI)||'&d'||n(dd.STA)||' &d');
- utl_file.put_line(handle,n(dd.STB)||'&d');
- utl_file.put_line(handle,n(dd.WH_ID)||'&d'||n(dd.CUR_SUB)||' &d');
- utl_file.put_line(handle,n(dd.ORG_SUB)||'&d'||n(dd.REV)||' &d');
- utl_file.put_line(handle,n(dd.LOT)||'&d'||n(dd.SERIAL)||' &d');
- utl_file.put_line(handle,n(dd.LOC_ID)||'&d'||n(dd.SPL_DEL_DET_ID)||' &d');
- utl_file.put_line(handle,n(dd.FROM_SERIAL)||'&d'||n(dd.TO_SERIAL)||' &d');
- utl_file.put_line(handle,n(dd.WSN_QTY)||'&d'||n(dd.WSN_CRE_DATE)||' &el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="WSNERR">Error List:</a> &eb &f');
- for i in 1..1
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f WSH_FREIGHT_COSTS (CST) &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh FRT_CST_ID &dh FRT_NAME &dh FRT_TYPE &dh FRT_LEVEL &dh QTY &dh UNIT_AMT &dh TOT_AMT &dh ENTITY_ID &eh');
- Declare
- cursor w_fre_cst is
- select distinct
- wfc.FREIGHT_COST_ID FRT_CST_ID,
- wfc.FREIGHT_COST_TYPE FRT_NAME,
- lkp.Meaning FRT_TYPE,
- 'DELIV_DETAIL' FRT_LEVEL,
- wfc.QUANTITY QTY,
- wfc.UNIT_AMOUNT UNIT_AMT,
- wfc.TOTAL_AMOUNT TOT_AMT,
- wfc.DELIVERY_DETAIL_ID ENTITY_ID
- from wsh_freight_costs_v wfc,
- wsh_freight_cost_types wft,
- fnd_lookup_values lkp,
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET
- WHERE
- wfc.freight_cost_type_id = wft.freight_cost_type_id AND
- wft.freight_cost_type_code = lkp.lookup_code AND
- lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID) AND
- WFC.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID
- UNION ALL
- select distinct
- wfc.FREIGHT_COST_ID FRT_CST_ID,
- wfc.FREIGHT_COST_TYPE FRT_NAME,
- lkp.Meaning FRT_TYPE,
- 'DELIVERY' FRT_LEVEL,
- wfc.QUANTITY QTY,
- wfc.UNIT_AMOUNT UNIT_AMT,
- wfc.TOTAL_AMOUNT TOT_AMT,
- wfc.DELIVERY_ID ENTITY_ID
- from wsh_freight_costs_v wfc,
- wsh_freight_cost_types wft,
- fnd_lookup_values lkp,
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- --WSH_NEW_DELIVERIES DEL,
- --WSH_DELIVERY_LEGS LEG,
- --WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG
- WHERE
- wfc.freight_cost_type_id = wft.freight_cost_type_id AND
- wft.freight_cost_type_code = lkp.lookup_code AND
- lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
- --DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID) AND
- WFC.DELIVERY_ID = ASG.DELIVERY_ID AND
- WFC.DELIVERY_DETAIL_ID IS NULL
- UNION ALL
- select distinct
- wfc.FREIGHT_COST_ID FRT_CST_ID,
- wfc.FREIGHT_COST_TYPE FRT_NAME,
- lkp.Meaning FRT_TYPE,
- 'LEG' FRT_LEVEL,
- wfc.QUANTITY QTY,
- wfc.UNIT_AMOUNT UNIT_AMT,
- wfc.TOTAL_AMOUNT TOT_AMT,
- wfc.DELIVERY_LEG_ID ENTITY_ID
- from wsh_freight_costs_v wfc,
- wsh_freight_cost_types wft,
- fnd_lookup_values lkp,
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- --WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG
- WHERE
- wfc.freight_cost_type_id = wft.freight_cost_type_id AND
- wft.freight_cost_type_code = lkp.lookup_code AND
- lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID) AND
- WFC.DELIVERY_LEG_ID = LEG.DELIVERY_LEG_ID AND
- WFC.DELIVERY_DETAIL_ID IS NULL AND
- WFC.DELIVERY_ID IS NULL
- UNION ALL
- select distinct
- wfc.FREIGHT_COST_ID FRT_CST_ID,
- wfc.FREIGHT_COST_TYPE FRT_NAME,
- lkp.Meaning FRT_TYPE,
- 'STOP' FRT_LEVEL,
- wfc.QUANTITY QTY,
- wfc.UNIT_AMOUNT UNIT_AMT,
- wfc.TOTAL_AMOUNT TOT_AMT,
- wfc.STOP_ID ENTITY_ID
- from wsh_freight_costs_v wfc,
- wsh_freight_cost_types wft,
- fnd_lookup_values lkp,
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG
- WHERE
- wfc.freight_cost_type_id = wft.freight_cost_type_id AND
- wft.freight_cost_type_code = lkp.lookup_code AND
- lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID) AND
- WFC.STOP_ID = STP.STOP_ID AND
- WFC.DELIVERY_DETAIL_ID IS NULL AND
- WFC.DELIVERY_ID IS NULL AND
- WFC.DELIVERY_LEG_ID IS NULL
- UNION ALL
- select distinct
- wfc.FREIGHT_COST_ID FRT_CST_ID,
- wfc.FREIGHT_COST_TYPE FRT_NAME,
- lkp.Meaning FRT_TYPE,
- 'TRIP' FRT_LEVEL,
- wfc.QUANTITY QTY,
- wfc.UNIT_AMOUNT UNIT_AMT,
- wfc.TOTAL_AMOUNT TOT_AMT,
- wfc.TRIP_ID ENTITY_ID
- from wsh_freight_costs_v wfc,
- wsh_freight_cost_types wft,
- fnd_lookup_values lkp,
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_NEW_DELIVERIES DEL,
- WSH_DELIVERY_LEGS LEG,
- WSH_TRIP_STOPS STP,
- WSH_DELIVERY_ASSIGNMENTS ASG
- WHERE
- wfc.freight_cost_type_id = wft.freight_cost_type_id AND
- wft.freight_cost_type_code = lkp.lookup_code AND
- lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID) AND
- WFC.TRIP_ID = STP.TRIP_ID AND
- WFC.DELIVERY_DETAIL_ID IS NULL AND
- WFC.DELIVERY_ID IS NULL AND
- WFC.STOP_ID IS NULL AND
- WFC.DELIVERY_LEG_ID IS NULL;
- begin
- for wfc in w_fre_cst
- loop
- utl_file.put_line(handle,'&sld'||n(wfc.FRT_CST_ID)||'&d'||n(wfc.FRT_NAME)||'&d');
- utl_file.put_line(handle,n(wfc.FRT_TYPE)||'&d'||n(wfc.FRT_LEVEL)||'&d');
- utl_file.put_line(handle,n(wfc.QTY)||'&d'||n(wfc.UNIT_AMT)||'&d');
- utl_file.put_line(handle,n(wfc.TOT_AMT)||'&d'||n(wfc.ENTITY_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- -- Output for table WSH_EXCEPTIONS being commented by Dev. request to improve performance
- --
- --UTL_FILE.PUT_LINE(handle,'&f &f WSH_EXCEPTIONS (EXC) &f
- --UTL_FILE.PUT_LINE(handle,'NOTE: THESE ARE BASED STRICTLY ON REQUEST_ID, SO MESSAGES MAY NOT APPLY TO THIS SHIPPING TRANSACTION &f
- --
- --column EXCEPT_NAME format a20;
- --column EXC_STATUS format a18;
- --column ERROR_MSG format a30;
- --
- --UTL_FILE.PUT_LINE(handle,'&std &sh EXCEPT_ID &dh EXCEPT_NAME &dh SEV &dh EXC_STATUS &dh TRIP_ID &dh STOP_ID &dh DELIV_ID &dh DEL_DET_ID &dh
- --UTL_FILE.PUT_LINE(handle,'ERROR_MSG &dh REQUEST_ID &dh MESSAGE &eh
- --
- --select distinct '&sld',
- -- EXCEPTION_ID EXCEPT_ID,
- -- EXCEPTION_NAME EXCEPT_NAME,
- -- SEVERITY SEV,
- -- STATUS EXC_STATUS,
- -- TRIP_ID TRIP_ID,
- -- TRIP_STOP_ID STOP_ID,
- -- DELIVERY_ID DELIV_ID,
- -- DELIVERY_DETAIL_ID DEL_DET_ID,
- -- ERROR_MESSAGE ERROR_MSG,
- -- REQUEST_ID REQUEST_ID,
- -- MESSAGE MESSAGE,'&el'
- --FROM WSH_EXCEPTIONS EXC
- --where STATUS <> 'NO_ACTION_REQUIRED'
- -- and EXC.REQUEST_ID IN (
- -- select DET.request_id
- -- from OE_ORDER_LINES LIN,
- -- WSH_DELIVERY_DETAILS DET
- -- WHERE
- -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- -- LIN.TOP_MODEL_LINE_ID,
- -- LIN.ATO_LINE_ID,
- -- LIN.LINK_TO_LINE_ID,
- -- LIN.REFERENCE_LINE_ID,
- -- LIN.SERVICE_REFERENCE_LINE_ID)
- -- UNION ALL
- -- select ASG.REQUEST_ID
- -- from OE_ORDER_LINES LIN,
- -- WSH_DELIVERY_DETAILS DET,
- -- WSH_DELIVERY_ASSIGNMENTS ASG
- -- WHERE
- -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- -- LIN.TOP_MODEL_LINE_ID,
- -- LIN.ATO_LINE_ID,
- -- LIN.LINK_TO_LINE_ID,
- -- LIN.REFERENCE_LINE_ID,
- -- LIN.SERVICE_REFERENCE_LINE_ID)
- -- UNION ALL
- -- select LEG.REQUEST_ID
- -- from OE_ORDER_LINES LIN,
- -- WSH_DELIVERY_DETAILS DET,
- -- WSH_NEW_DELIVERIES DEL,
- -- WSH_DELIVERY_LEGS LEG,
- -- WSH_DELIVERY_ASSIGNMENTS ASG
- -- WHERE
- -- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- -- LIN.TOP_MODEL_LINE_ID,
- -- LIN.ATO_LINE_ID,
- -- LIN.LINK_TO_LINE_ID,
- -- LIN.REFERENCE_LINE_ID,
- -- LIN.SERVICE_REFERENCE_LINE_ID)
- -- UNION ALL
- -- select STP.REQUEST_ID
- -- from OE_ORDER_LINES LIN,
- -- WSH_DELIVERY_DETAILS DET,
- -- WSH_NEW_DELIVERIES DEL, WSH_DELIVERY_LEGS LEG,
- -- WSH_TRIP_STOPS STP,
- -- WSH_DELIVERY_ASSIGNMENTS ASG
- -- WHERE DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- -- LIN.TOP_MODEL_LINE_ID,
- -- LIN.ATO_LINE_ID,
- -- LIN.LINK_TO_LINE_ID,
- -- LIN.REFERENCE_LINE_ID,
- -- LIN.SERVICE_REFERENCE_LINE_ID)
- -- UNION ALL
- -- select TRP.REQUEST_ID
- -- from OE_ORDER_LINES LIN,
- -- WSH_DELIVERY_DETAILS DET,
- -- WSH_NEW_DELIVERIES DEL,
- -- WSH_DELIVERY_LEGS LEG,
- -- WSH_TRIP_STOPS STP,
- -- WSH_TRIPS TRP,
- -- WSH_DELIVERY_ASSIGNMENTS ASG
- -- WHERE DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
- -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
- -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
- -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
- -- TRP.TRIP_ID = STP.TRIP_ID AND
- -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
- -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
- -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- -- LIN.TOP_MODEL_LINE_ID,
- -- LIN.ATO_LINE_ID,
- -- LIN.LINK_TO_LINE_ID,
- -- LIN.REFERENCE_LINE_ID,
- -- LIN.SERVICE_REFERENCE_LINE_ID)
- --);
- --
- end if; -- :v_head_only
- UTL_FILE.FCLOSE(handle);
- end;
- /
- DECLARE
- handle UTL_FILE.FILE_TYPE;
- dirname varchar2(1000);
- text varchar2(1000);
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- -- Append to output file
- handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
- UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
- If :v_head_only = 'N' then
- if UPPER(nvl('&prt_wms','N')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RULES"> WMS_RULES </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh CREATE DATE &dh ORG_ID &dh TYPE CODE &dh NAME &dh ');
- UTL_FILE.PUT_LINE(handle,'DESCRIPTION &dh QTY_FUNCT PARAM &dh ENABLED FLAG &dh USER FLAG &dh TYPE HRD_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'RULE WEIGHT &dh ATTR CATEG &dh MIN_PICK TASK &dh ALLOCAT MODE &dh WMS_ENABLED FLAG &eh ');
- Declare cursor wms_r is
- Select
- WMSR.RULE_ID ruleid,
- WMSR.CREATION_DATE credt,
- WMSR.ORGANIZATION_ID orgid,
- WMSR.TYPE_CODE typc,
- WMSR.NAME nam,
- WMSR.DESCRIPTION des,
- WMSR.QTY_FUNCTION_PARAMETER_ID qty_funct,
- WMSR.ENABLED_FLAG enabf,
- WMSR.USER_DEFINED_FLAG userf,
- WMSR.TYPE_HDR_ID typh,
- WMSR.RULE_WEIGHT rulew,
- WMSR.ATTRIBUTE_CATEGORY attrcat,
- WMSR.MIN_PICK_TASKS_FLAG minpick,
- WMSR.ALLOCATION_MODE_ID allom,
- WMSR.WMS_ENABLED_FLAG wmsf
- FROM WMS_RULES WMSR,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- where DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
- begin
- for wms in wms_r
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
- utl_file.put_line(handle,n(wms.credt)||' &d ');
- utl_file.put_line(handle,n(wms.orgid)||' &d '||n(wms.typc)||' &d ');
- utl_file.put_line(handle,n(wms.nam)||' &d '||n(wms.des)||' &d ');
- utl_file.put_line(handle,n(wms.qty_funct)||' &d '||n(wms.enabf)||' &d ');
- utl_file.put_line(handle,n(wms.userf)||' &d '||n(wms.typh)||' &d ');
- utl_file.put_line(handle,n(wms.rulew)||' &d '||n(wms.attrcat)||' &d ');
- utl_file.put_line(handle,n(wms.minpick)||' &d '||n(wms.allom)||' &d ');
- utl_file.put_line(handle,n(wms.wmsf)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RULE_CONSISTENCIES"> WMS_RULE_CONSISTENCIES </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh CONSISTENCY ID &dh PARAMETER ID &dh CREATE DATE &dh ATTR CATEG &eh ');
- Declare cursor wms_rc is
- Select WRC.RULE_ID ruleid,
- WRC.CONSISTENCY_ID consid,
- WRC.PARAMETER_ID paramid,
- WRC.CREATION_DATE credt,
- WRC.ATTRIBUTE_CATEGORY attrcat
- FROM WMS_RULE_CONSISTENCIES WRC,
- WMS_RULES WMSR,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- WHERE WRC.RULE_ID = WMSR.RULE_ID
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
- ORDER BY 1;
- begin
- for wms in wms_rc
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
- utl_file.put_line(handle,n(wms.consid)||' &d '||n(wms.paramid)||' &d ');
- utl_file.put_line(handle,n(wms.credt)||' &d '||n(wms.attrcat)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RESTRICTIONS"> WMS_RESTRICTIONS </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh SEQUENCE NUMBER &dh CREATE DATE &dh PARAMETER ID &dh ');
- UTL_FILE.PUT_LINE(handle,'OPERAND CODE &dh OPERAND TYPE &dh OPER_NUMBER CONSTANT &dh OPER_CHAR CONSTANT &dh ');
- UTL_FILE.PUT_LINE(handle,'OPER_DATE CONSTANT &dh OPER PARAM_ID &dh OPER EXPRESSION &dh OPER_FLEX VALUE_SET &dh ');
- UTL_FILE.PUT_LINE(handle,'LOGICAL OPER_CODE &dh BRACKET OPEN &dh BRACKET CLOSE &dh ATTR CATEG &eh ');
- Declare cursor wms_res is
- Select WRES.RULE_ID ruleid,
- WRES.SEQUENCE_NUMBER seqno,
- WRES.CREATION_DATE credt,
- WRES.PARAMETER_ID paramid,
- WRES.OPERATOR_CODE opcode,
- WRES.OPERAND_TYPE_CODE optype,
- WRES.OPERAND_CONSTANT_NUMBER opnum,
- WRES.OPERAND_CONSTANT_CHARACTER opchar,
- WRES.OPERAND_CONSTANT_DATE opdate,
- WRES.OPERAND_PARAMETER_ID oppar,
- WRES.OPERAND_EXPRESSION opexp,
- WRES.OPERAND_FLEX_VALUE_SET_ID opfvs,
- WRES.LOGICAL_OPERATOR_CODE logop,
- WRES.BRACKET_OPEN braop,
- WRES.BRACKET_CLOSE bracl,
- WRES.ATTRIBUTE_CATEGORY attrcat
- FROM WMS_RESTRICTIONS WRES,
- WMS_RULES WMSR,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- WHERE WRES.RULE_ID = WMSR.RULE_ID
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
- ORDER BY 1;
- begin
- for wms in wms_res
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
- utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.credt)||' &d ');
- utl_file.put_line(handle,n(wms.paramid)||' &d '||n(wms.opcode)||' &d ');
- utl_file.put_line(handle,n(wms.optype)||' &d '||n(wms.opnum)||' &d ');
- utl_file.put_line(handle,n(wms.opchar)||' &d '||n(wms.opdate)||' &d ');
- utl_file.put_line(handle,n(wms.oppar)||' &d '||n(wms.opexp)||' &d ');
- utl_file.put_line(handle,n(wms.opfvs)||' &d '||n(wms.logop)||' &d ');
- utl_file.put_line(handle,n(wms.braop)||' &d '||n(wms.bracl)||' &d ');
- utl_file.put_line(handle,n(wms.attrcat)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_SORT_CRITERIA"> WMS_SORT_CRITERIA </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh SEQUENCE NUMBER &dh CREATE DATE &dh PARAMETER ID &dh ');
- UTL_FILE.PUT_LINE(handle,'OPERAND CODE &dh ATTR CATEG &eh ');
- Declare cursor wms_sc is
- Select WSOC.RULE_ID ruleid,
- WSOC.SEQUENCE_NUMBER seqno,
- WSOC.CREATION_DATE credt,
- WSOC.PARAMETER_ID paramid,
- WSOC.ORDER_CODE opcode,
- WSOC.ATTRIBUTE_CATEGORY attrcat
- FROM WMS_SORT_CRITERIA WSOC,
- WMS_RULES WMSR,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- WHERE WSOC.RULE_ID = WMSR.RULE_ID
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
- ORDER BY 1;
- begin
- for wms in wms_sc
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
- utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.credt)||' &d ');
- utl_file.put_line(handle,n(wms.paramid)||' &d '||n(wms.opcode)||' &d ');
- utl_file.put_line(handle,n(wms.attrcat)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_SELECTION_CRITERIA_TXN_V"> WMS_SELECTION_CRITERIA_TXN_V </a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh SEQUENCE NUMBER &dh RULE TYPE_CODE &dh RULE TYPE &dh RETURN TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'RETURN TYPE_ID &dh RETURN TYPE_NAME &dh ENABLED FLAG &dh DATE TYPE_COD &dh ');
- UTL_FILE.PUT_LINE(handle,'DATE TYPE_FROM &dh DATE TYPE_TO &dh DATE_TYPE LOOKUP_TYPE &dh EFFECTIVE FROM &dh ');
- UTL_FILE.PUT_LINE(handle,'EFFECTIVE TO &dh FROM ORGANIZATION_ID &dh FROM ORGANIZATION_CODE &dh FROM SUBINVENT_NAME &dh ');
- UTL_FILE.PUT_LINE(handle,'TO ORGANIZATION_ID &dh TO ORGANIZATION_CODE &dh TO SUBINVENT_NAME &dh CUSTOMER ID &dh ');
- UTL_FILE.PUT_LINE(handle,'CUSTOMER NAME &dh FREIGHT CODE &dh FREIGHT CODE_NAME &dh INVENTORY ITEM_ID &dh ITEM &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM TYPE &dh ITEM TYPE_NAME &dh ASSIGNMENT GROUP_ID &dh ABC CLASS_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ABC_GROUP CLASS_NAME &dh CATEGORY SET_ID &dh CATEGORY ID &dh CATEGORY SET_NAME &dh ');
- UTL_FILE.PUT_LINE(handle,'ORDER TYPE_ID &dh ORDER TYPE_NAME &dh VENDOR ID &dh VENDOR NAME &dh PROJECT ID &dh ');
- UTL_FILE.PUT_LINE(handle,'PROJECT NAME &dh TASK ID &dh TASK NAME &dh USER ID &dh USER NAME &dh TRANSACTION ACTION_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'TRANSACTION ACTION_NAME &dh REASON ID &dh REASON NAME &dh TRANSACTION SOURCE_TYPE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'TRANSACTION_SOURCE TYPE_NAME &dh TRANSACTION TYPE_ID &dh TRANSACTION TYPE_NAME &dh ');
- UTL_FILE.PUT_LINE(handle,'UOM_CODE &dh UNIT_OF MEASURE &dh UOM CLASS &dh UOM_CLASS NAME &dh CREATION DATE &dh ');
- UTL_FILE.PUT_LINE(handle,'WMS_ENABLED FLAG &dh LOCATION ID &dh LOCATION NAME &eh ');
- Declare cursor wms_sct is
- Select WSCT.STG_ASSIGNMENT_ID stgasg,
- WSCT.SEQUENCE_NUMBER seqno,
- WSCT.RULE_TYPE_CODE rultyco,
- WSCT.RULE_TYPE rulty,
- WSCT.RETURN_TYPE retty,
- WSCT.RETURN_TYPE_ID rettyid,
- WSCT.RETURN_TYPE_NAME rettyna,
- WSCT.ENABLED_FLAG enaf,
- WSCT.DATE_TYPE_CODE dttyco,
- WSCT.DATE_TYPE_FROM dttyfr,
- WSCT.DATE_TYPE_TO dttyto,
- WSCT.DATE_TYPE_LOOKUP_TYPE dttylty,
- WSCT.EFFECTIVE_FROM efffr,
- WSCT.EFFECTIVE_TO effto,
- WSCT.FROM_ORGANIZATION_ID frorgid,
- WSCT.FROM_ORGANIZATION_CODE frorgco,
- WSCT.FROM_SUBINVENTORY_NAME frsubna,
- WSCT.TO_ORGANIZATION_ID toorgid,
- WSCT.TO_ORGANIZATION_CODE toorgco,
- WSCT.TO_SUBINVENTORY_NAME tosubna,
- WSCT.CUSTOMER_ID cusid,
- WSCT.CUSTOMER_NAME cusna,
- WSCT.FREIGHT_CODE fcod,
- WSCT.FREIGHT_CODE_NAME fcna,
- WSCT.INVENTORY_ITEM_ID inviid,
- WSCT.ITEM it,
- WSCT.ITEM_TYPE ityp,
- WSCT.ITEM_TYPE_NAME itypna,
- WSCT.ASSIGNMENT_GROUP_ID assgid,
- WSCT.ABC_CLASS_ID abcid,
- WSCT.ABC_GROUP_CLASS_NAME abcna,
- WSCT.CATEGORY_SET_ID csid,
- WSCT.CATEGORY_ID catid,
- WSCT.CATEGORY_SET_NAME csna,
- WSCT.ORDER_TYPE_ID otid,
- WSCT.ORDER_TYPE_NAME otna,
- WSCT.VENDOR_ID vid,
- WSCT.VENDOR_NAME vna,
- WSCT.PROJECT_ID pid,
- WSCT.PROJECT_NAME pna,
- WSCT.TASK_ID tid,
- WSCT.TASK_NAME tna,
- WSCT.USER_ID usid,
- WSCT.USER_NAME usna,
- WSCT.TRANSACTION_ACTION_ID taid,
- WSCT.TRANSACTION_ACTION_NAME tana,
- WSCT.REASON_ID resid,
- WSCT.REASON_NAME resna,
- WSCT.TRANSACTION_SOURCE_TYPE_ID tstid,
- WSCT.TRANSACTION_SOURCE_TYPE_NAME tstna,
- WSCT.TRANSACTION_TYPE_ID ttid,
- WSCT.TRANSACTION_TYPE_NAME ttna,
- WSCT.UOM_CODE uomco,
- WSCT.UNIT_OF_MEASURE uomna,
- WSCT.UOM_CLASS uomcl,
- WSCT.UOM_CLASS_NAME uomclna,
- WSCT.CREATION_DATE credt,
- WSCT.WMS_ENABLED_FLAG wmsef,
- WSCT.LOCATION_ID locid,
- WSCT.LOCATION_NAME locna
- FROM WMS_SELECTION_CRITERIA_TXN_V WSCT,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN
- where DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and WSCT.FROM_ORGANIZATION_ID = DET.ORGANIZATION_ID
- and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
- begin
- for wms in wms_sct
- loop
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- end if; -- do_analysis
- -- Print line to Output file
- utl_file.put_line(handle,'&sld '||n(wms.stgasg)||' &d ');
- utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.rultyco)||' &d ');
- utl_file.put_line(handle,n(wms.rulty)||' &d '||n(wms.retty)||' &d ');
- utl_file.put_line(handle,n(wms.rettyid)||' &d '||n(wms.rettyna)||' &d ');
- utl_file.put_line(handle,n(wms.enaf)||' &d '||n(wms.dttyco)||' &d ');
- utl_file.put_line(handle,n(wms.dttyfr)||' &d '||n(wms.dttyto)||' &d ');
- utl_file.put_line(handle,n(wms.dttylty)||' &d '||n(wms.efffr)||' &d ');
- utl_file.put_line(handle,n(wms.effto)||' &d '||n(wms.frorgid)||' &d ');
- utl_file.put_line(handle,n(wms.frorgco)||' &d '||n(wms.frsubna)||' &d ');
- utl_file.put_line(handle,n(wms.toorgid)||' &d '||n(wms.toorgco)||' &d ');
- utl_file.put_line(handle,n(wms.tosubna)||' &d '||n(wms.cusid)||' &d ');
- utl_file.put_line(handle,n(wms.cusna)||' &d '||n(wms.fcod)||' &d ');
- utl_file.put_line(handle,n(wms.fcna)||' &d '||n(wms.inviid)||' &d ');
- utl_file.put_line(handle,n(wms.it)||' &d '||n(wms.ityp)||' &d ');
- utl_file.put_line(handle,n(wms.itypna)||' &d '||n(wms.assgid)||' &d ');
- utl_file.put_line(handle,n(wms.abcid)||' &d '||n(wms.abcna)||' &d ');
- utl_file.put_line(handle,n(wms.csid)||' &d '||n(wms.catid)||' &d ');
- utl_file.put_line(handle,n(wms.csna)||' &d '||n(wms.vid)||' &d ');
- utl_file.put_line(handle,n(wms.otna)||' &d '||n(wms.pid)||' &d ');
- utl_file.put_line(handle,n(wms.vna)||' &d '||n(wms.tid)||' &d ');
- utl_file.put_line(handle,n(wms.pna)||' &d '||n(wms.usid)||' &d ');
- utl_file.put_line(handle,n(wms.usna)||' &d '||n(wms.taid)||' &d ');
- utl_file.put_line(handle,n(wms.tana)||' &d '||n(wms.resid)||' &d ');
- utl_file.put_line(handle,n(wms.resna)||' &d '||n(wms.tstid)||' &d ');
- utl_file.put_line(handle,n(wms.tstna)||' &d '||n(wms.ttid)||' &d ');
- utl_file.put_line(handle,n(wms.ttna)||' &d '||n(wms.uomco)||' &d ');
- utl_file.put_line(handle,n(wms.uomna)||' &d '||n(wms.uomcl)||' &d ');
- utl_file.put_line(handle,n(wms.uomclna)||' &d '||n(wms.credt)||' &d ');
- utl_file.put_line(handle,n(wms.wmsef)||' &d '||n(wms.locid)||' &d ');
- utl_file.put_line(handle,n(wms.locna)||' &el ');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- end if; --prt_wms
- if UPPER(nvl('&prt_inv','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_TRANSACTIONS_INTERFACE"> MTL_TRANSACTIONS_INTERFACE (MTI) </a> <a HREF="#MTI">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh TRX_INT_ID &dh LINE &dh LINE_ID &dh DELIVERY DETAIL_ID &dh ITEM &dh PICKING LINE &dh TRANSACT TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'TRANSACTION DATE &dh PRIM QTY &dh FROM_SUB &dh FROM LOC_ID &dh PROCESS &dh LOCK &dh TRANSACTION MODE &dh LPN_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ERROR CODE &dh ERROR EXPLANATION &dh SECONDARY UOM_CODE &dh SECONDARY TRANS_QTY &DH ');
- UTL_FILE.PUT_LINE(handle,'ACCOUNT PERIOD_ID &dh PERRIOD NAME &dh PERIOD OPEN &dh PERIOD START_DT &dh PERIOD CLOSE_DT ');
- UTL_FILE.PUT_LINE(handle,'&dh SCHEDULE CLOSE_DT &eh');
- Declare
- cursor mtl_trx_int is
- SELECT
- TMP.TRANSACTION_INTERFACE_ID TXN_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- LIN.LINE_ID LINE_ID,
- DET.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
- ITM.SEGMENT1 ITEM,
- TMP.PICKING_LINE_ID PICK_LN_ID,
- decode(TMP.TRANSACTION_TYPE_ID,
- 52,'52-Stage Trans',
- 33,'33-SO Issue',
- 15,'15-RMA Receipt',
- 18,'18-PO Receipt',
- TMP.TRANSACTION_TYPE_ID||'-Unknown') TXN_TYPE,
- TMP.TRANSACTION_DATE TXN_DATE,
- TMP.PRIMARY_QUANTITY PRM_Q,
- TMP.SUBINVENTORY_CODE FROM_SUB,
- TMP.LOCATOR_ID FROM_LOC_ID,
- TMP.PROCESS_FLAG PROCESS,
- TMP.LOCK_FLAG LCK,
- TMP.TRANSACTION_MODE TRANS_MODE,
- TMP.CONTENT_LPN_ID LPN_ID,
- TMP.ERROR_CODE ERROR_CODE,
- TMP.ERROR_EXPLANATION ERROR_EXPL,
- TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- TMP.ACCT_PERIOD_ID ACCT_PER,
- OAC.period_name per_name,
- OAC.open_flag open_fl,
- to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
- to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
- to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
- FROM
- MTL_TRANSACTIONS_INTERFACE TMP,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM,
- ORG_ACCT_PERIODS OAC
- WHERE
- TMP.SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.LINE_CATEGORY_CODE = 'ORDER'
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and TMP.PICKING_LINE_ID = DET.DELIVERY_DETAIL_ID(+)
- and TMP.ACCT_PERIOD_ID = OAC.acct_period_id
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- SELECT
- TMP.TRANSACTION_INTERFACE_ID TXN_ID,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- LIN.LINE_ID LINE_ID,
- DET.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
- ITM.SEGMENT1 ITEM,
- TMP.PICKING_LINE_ID PICK_LN_ID,
- decode(TMP.TRANSACTION_TYPE_ID,
- 52,'Stage Trans',
- 33,'SO Issue',
- 15,'RMA Receipt',
- 18,'PO Receipt',
- TMP.TRANSACTION_TYPE_ID) TXN_TYPE,
- TMP.TRANSACTION_DATE TXN_DATE,
- TMP.PRIMARY_QUANTITY PRM_Q,
- TMP.SUBINVENTORY_CODE FROM_SUB,
- TMP.LOCATOR_ID FROM_LOC_ID,
- TMP.PROCESS_FLAG PROCESS,
- TMP.LOCK_FLAG LCK,
- TMP.TRANSACTION_MODE TRANS_MODE,
- TMP.CONTENT_LPN_ID LPN_ID,
- TMP.ERROR_CODE ERROR_CODE,
- TMP.ERROR_EXPLANATION ERROR_EXPL,
- TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- TMP.ACCT_PERIOD_ID ACCT_PER,
- OAC.period_name per_name,
- OAC.open_flag open_fl,
- to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
- to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
- to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
- FROM
- MTL_TRANSACTIONS_INTERFACE TMP,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM,
- ORG_ACCT_PERIODS OAC
- WHERE
- TMP.TRX_SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.LINE_CATEGORY_CODE = 'RETURN'
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and TMP.PICKING_LINE_ID = DET.DELIVERY_DETAIL_ID(+)
- and TMP.ACCT_PERIOD_ID = OAC.acct_period_id
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for mti in mtl_trx_int
- loop
- utl_file.put_line(handle,'&sld'||n(mti.TXN_ID)||' &d ');
- utl_file.put_line(handle,n(mti.LINE)||' &d '||n(mti.LINE_ID)||' &d ');
- utl_file.put_line(handle,n(mti.DEL_DETAIL_ID)||' &d'||n(mti.ITEM)||' &d ');
- utl_file.put_line(handle,n(mti.PICK_LN_ID)||' &d'||n(mti.TXN_TYPE)||' &d ');
- utl_file.put_line(handle,n(mti.TXN_DATE)||' &d ');
- utl_file.put_line(handle,n(mti.PRM_Q)||' &d '||n(mti.FROM_SUB)||' &d ');
- utl_file.put_line(handle,n(mti.FROM_LOC_ID)||' &d '||n(mti.PROCESS)||' &d ');
- utl_file.put_line(handle,n(mti.LCK)||' &d '||n(mti.TRANS_MODE)||' &d ');
- utl_file.put_line(handle,n(mti.LPN_ID)||' &d '||n(mti.ERROR_CODE)||' &d ');
- utl_file.put_line(handle,n(mti.ERROR_EXPL)||' &d ');
- utl_file.put_line(handle,n(mti.SEC_UOM_CODE)||' &d '||n(mti.SEC_TRN_QTY)||' &d ');
- utl_file.put_line(handle,n(mti.ACCT_PER)||' &d '||n(mti.PER_NAME)||' &d ');
- utl_file.put_line(handle,n(mti.open_fl)||' &d '||n(mti.per_sd)||' &d ');
- utl_file.put_line(handle,n(mti.per_cd)||' &d '||n(mti.sch_cd)||' &el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_MATERIAL_TRANSACTIONS_TEMP"> MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES </a> ');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#TMP">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh MTL_TRNS_ID &dh TRANSACTION DATE &dh MOVE_LINE_ID &dh PICK_SLIP &dh LINE &dh LINE_ID &dh ITEM ');
- UTL_FILE.PUT_LINE(handle,'&dh PRM_Q &dh FROM_SUB &dh FROM_LOC_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'TO_SUB &dh TO_LOC_ID &dh PROCESS &dh LCK &dh TRANS_MODE &dh ERROR_CODE &dh ERROR_EXPL &dh ');
- UTL_FILE.PUT_LINE(handle,'SECONDARY UOM_CODE &dh SECONDARY TRANS_QTY &dh LOT_NUM &dh LOT PRM_QTY &dh LOT SEC_QTY &dh ');
- UTL_FILE.PUT_LINE(handle,'LOT_CAL SEC_QTY &eh');
- Declare
- cursor mtl_trx_tmp is
- SELECT distinct
- TMP.TRANSACTION_TEMP_ID MTL_TRNS_ID,
- TMP.TRANSACTION_DATE MTL_TRNS_DATE,
- TMP.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
- --'UNPICKED' LINE_STATUS,
- TMP.PICK_SLIP_NUMBER PICK_SLIP,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- LIN.LINE_ID LINE_ID,
- --DET.DELIVERY_DETAIL_ID DET_DELIVERY_ID,
- ITM.SEGMENT1 ITEM,
- TMP.PRIMARY_QUANTITY PRM_Q,
- TMP.SUBINVENTORY_CODE FROM_SUB,
- TMP.LOCATOR_ID FROM_LOC_ID,
- TMP.TRANSFER_SUBINVENTORY TO_SUB,
- TMP.TRANSFER_TO_LOCATION TO_LOC_ID,
- TMP.PROCESS_FLAG PROCESS,
- TMP.LOCK_FLAG LCK,
- TMP.TRANSACTION_MODE TRANS_MODE,
- TMP.ERROR_CODE ERROR_CODE,
- TMP.ERROR_EXPLANATION ERROR_EXPL,
- TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- lot.lot_number lot_num,
- lot.primary_quantity lot_prm_q,
- lot.secondary_quantity lot_sec_q,
- inv_convert.inv_um_convert(
- tmp.inventory_item_id,
- lot.lot_number,
- tmp.organization_id,
- 5,
- lot.primary_quantity,
- itm.primary_uom_code,
- tmp.secondary_uom_code,
- null, null) lot_cal_sec_q
- FROM
- MTL_MATERIAL_TRANSACTIONS_TEMP TMP,
- -- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM,
- mtl_transaction_lots_temp lot
- WHERE
- TMP.DEMAND_SOURCE_LINE = LIN.LINE_ID
- and LIN.LINE_CATEGORY_CODE = 'ORDER'
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and lot.transaction_temp_id (+)= tmp.transaction_temp_id
- -- and TMP.DEMAND_SOURCE_LINE = DET.SOURCE_LINE_ID(+) - Creates duplicates for lines with multiple Del_details.
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- UNION ALL
- SELECT distinct
- TMP.TRANSACTION_TEMP_ID MTL_TRNS_ID,
- TMP.TRANSACTION_DATE MTL_TRNS_DATE,
- TMP.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
- --'UNPICKED' LINE_STATUS,
- TMP.PICK_SLIP_NUMBER PICK_SLIP,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- LIN.LINE_ID LINE_ID,
- -- DET.DELIVERY_DETAIL_ID DET_DELIVERY_ID,
- ITM.SEGMENT1 ITEM,
- TMP.PRIMARY_QUANTITY PRM_Q,
- TMP.SUBINVENTORY_CODE FROM_SUB,
- TMP.LOCATOR_ID FROM_LOC_ID,
- TMP.TRANSFER_SUBINVENTORY TO_SUB,
- TMP.TRANSFER_TO_LOCATION TO_LOC_ID,
- TMP.PROCESS_FLAG PROCESS,
- TMP.LOCK_FLAG LCK,
- TMP.TRANSACTION_MODE TRANS_MODE,
- TMP.ERROR_CODE ERROR_CODE,
- TMP.ERROR_EXPLANATION ERROR_EXPL,
- TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- ' ' lot_num,
- 0 lot_prm_q,
- 0 lot_sec_q,
- 0 lot_cal_sec_q
- FROM
- MTL_MATERIAL_TRANSACTIONS_TEMP TMP,
- -- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM
- WHERE
- TMP.TRX_SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.LINE_CATEGORY_CODE = 'RETURN'
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- -- and TMP.DEMAND_SOURCE_LINE = DET.SOURCE_LINE_ID(+)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for mtt in mtl_trx_tmp
- loop
- utl_file.put_line(handle,'&sld'||n(mtt.MTL_TRNS_ID)||'&d'||n(mtt.MTL_TRNS_DATE)||'&d');
- utl_file.put_line(handle,n(mtt.MOVE_LINE_ID)||'&d');
- utl_file.put_line(handle,n(mtt.PICK_SLIP)||'&d'||n(mtt.LINE)||'&d');
- utl_file.put_line(handle,n(mtt.LINE_ID)||'&d'||n(mtt.ITEM)||'&d');
- utl_file.put_line(handle,n(mtt.PRM_Q)||'&d'||n(mtt.FROM_SUB)||'&d');
- utl_file.put_line(handle,n(mtt.FROM_LOC_ID)||'&d'||n(mtt.TO_SUB)||'&d');
- utl_file.put_line(handle,n(mtt.TO_LOC_ID)||'&d'||n(mtt.PROCESS)||'&d');
- utl_file.put_line(handle,n(mtt.LCK)||'&d'||n(mtt.TRANS_MODE)||'&d');
- utl_file.put_line(handle,n(mtt.ERROR_CODE)||'&d'||n(mtt.ERROR_EXPL)||'&d ');
- utl_file.put_line(handle,n(mtt.SEC_UOM_CODE)||'&d'||n(mtt.SEC_TRN_QTY)||'&d');
- utl_file.put_line(handle,n(mtt.LOT_NUM)||'&d'||n(mtt.LOT_PRM_Q)||'&d');
- utl_file.put_line(handle,n(mtt.LOT_SEC_Q)||'&d'||n(mtt.LOT_CAL_SEC_Q)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- -- This is commented out because it runs slowly without an index
- --<do not run> CREATE INDEX MTL_MATL_TRANS_777
- --<do not run> ON INV.MTL_MATERIAL_TRANSACTIONS
- --<do not run> (trx_source_line_id);
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_MATERIAL_TRANSACTIONS"> MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES </a>');
- UTL_FILE.PUT_LINE(handle,'<a HREF="#TRN">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh MTL_TRNS_ID &dh TRANSACTION DATE &dh MOVE_LINE_ID &dh TRANS_TYPE &dh ');
- UTL_FILE.PUT_LINE(handle,'PICK_SLIP &dh LINE &dh LINE_ID &dh PRM_Q &dh');
- UTL_FILE.PUT_LINE(handle,'FROM_SUB &dh FROM_LOC_ID &dh TO_SUB &dh TO_LOC_ID &dh ORG_ID &dh PICKING_LINE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SECONDARY UOM_CODE &dh SECONDARY TRANS_QTY &dh LOT PRM_QTY &dh LOT SEC_QTY &dh LOT_CAL SEC_QTY &eh');
- declare
- cursor Mtl_trans is
- SELECT
- TRN.TRANSACTION_ID MTL_TRNS_ID,
- TRN.TRANSACTION_DATE MTL_TRNS_DATE,
- TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
- --to_char(TRN.TRANSACTION_TYPE_ID) || '=' ||
- -- (select TYP.TRANSACTION_TYPE_NAME
- -- from MTL_TRANSACTION_TYPES TYP
- -- where TRN.TRANSACTION_TYPE_ID = TYP.TRANSACTION_TYPE_ID) TRANS_TYPE,
- -- See header of this script for mapping other TRANSACTION_TYPE_ID's to their meaning
- decode(TRN.TRANSACTION_TYPE_ID,
- 52,'Stage Trans',
- 53,'Stage Trans INT',
- 33,'SO Issue',
- 34,'SO Issue INT',
- 15,'RMA Receipt',
- 18,'PO Receipt',
- 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
- TRN.PICK_SLIP_NUMBER PICK_SLIP,
- TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
- TRN.TRX_SOURCE_LINE_ID LINE_ID,
- TRN.PRIMARY_QUANTITY PRM_Q,
- TRN.SUBINVENTORY_CODE FROM_SUB,
- TRN.LOCATOR_ID FROM_LOC_ID,
- TRN.TRANSFER_SUBINVENTORY TO_SUB,
- TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
- TRN.ORGANIZATION_ID ORG_ID,
- TRN.PICKING_LINE_ID PICKING_LINE_ID,
- TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- lot.primary_quantity lot_prm_q,
- lot.secondary_transaction_quantity lot_sec_q,
- inv_convert.inv_um_convert(
- lot.inventory_item_id,
- lot.lot_number,
- lot.organization_id,
- 5,
- lot.primary_quantity,
- itm.primary_uom_code,
- trn.secondary_uom_code,
- null, null) lot_cal_sec_q
- FROM
- MTL_MATERIAL_TRANSACTIONS TRN,
- MTL_SYSTEM_ITEMS ITM,
- mtl_transaction_lot_numbers lot
- WHERE
- -- klr
- (TRN.TRX_SOURCE_LINE_ID,TRN.ORGANIZATION_ID,TRN.INVENTORY_ITEM_ID) IN (SELECT DISTINCT LINE_ID,SHIP_FROM_ORG_ID,INVENTORY_ITEM_ID
- FROM OE_ORDER_LINES LIN1
- WHERE LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
- LIN1.TOP_MODEL_LINE_ID,
- LIN1.ATO_LINE_ID,
- LIN1.LINK_TO_LINE_ID,
- LIN1.REFERENCE_LINE_ID,
- LIN1.SERVICE_REFERENCE_LINE_ID))
- and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
- and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
- and lot.transaction_id (+) = trn.transaction_id
- UNION ALL
- SELECT /* DROP SHIP */
- TRN.TRANSACTION_ID MTL_TRNS_ID,
- TRN.TRANSACTION_DATE MTL_TRNS_DATE,
- TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
- decode(TRN.TRANSACTION_TYPE_ID,
- 52,'Stage Trans',
- 33,'SO Issue',
- 15,'RMA Receipt',
- 18,'PO Receipt',
- 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
- TRN.PICK_SLIP_NUMBER PICK_SLIP,
- -- to_char(TRN.SOURCE_LINE_ID) LINE,
- TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
- TRN.TRX_SOURCE_LINE_ID LINE_ID,
- TRN.PRIMARY_QUANTITY PRM_Q,
- TRN.SUBINVENTORY_CODE FROM_SUB,
- TRN.LOCATOR_ID FROM_LOC_ID,
- TRN.TRANSFER_SUBINVENTORY TO_SUB,
- TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
- TRN.ORGANIZATION_ID ORG_ID,
- TRN.PICKING_LINE_ID PICKING_LINE_ID,
- TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- 0 lot_prm_q, -- Only for OPM
- 0 lot_sec_q, -- Only for OPM
- 0 lot_cal_sec_q -- Only for OPM
- FROM
- MTL_MATERIAL_TRANSACTIONS TRN,
- MTL_SYSTEM_ITEMS ITM,
- OE_DROP_SHIP_SOURCES DRP,
- PO_HEADERS_ALL POH
- WHERE
- TRN.TRANSACTION_TYPE_ID = 18 -- PO Receipt
- and TRN.TRANSACTION_SOURCE_TYPE_ID = 1
- and TRN.TRANSACTION_SOURCE_ID = POH.PO_HEADER_ID
- and POH.PO_HEADER_ID = DRP.PO_HEADER_ID
- and DRP.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
- and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
- UNION ALL
- SELECT /* PO receipt trx for ATO BUY ITEM */
- TRN.TRANSACTION_ID MTL_TRNS_ID,
- TRN.TRANSACTION_DATE MTL_TRNS_DATE,
- TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
- decode(TRN.TRANSACTION_TYPE_ID,
- 52,'Stage Trans',
- 33,'SO Issue',
- 15,'RMA Receipt',
- 18,'PO Receipt',
- 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
- TRN.PICK_SLIP_NUMBER PICK_SLIP,
- -- to_char(RES.DEMAND_SOURCE_LINE_ID) LINE,
- TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
- TRN.TRX_SOURCE_LINE_ID LINE_ID,
- TRN.PRIMARY_QUANTITY PRM_Q,
- TRN.SUBINVENTORY_CODE FROM_SUB,
- TRN.LOCATOR_ID FROM_LOC_ID,
- TRN.TRANSFER_SUBINVENTORY TO_SUB,
- TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
- TRN.ORGANIZATION_ID ORG_ID,
- TRN.PICKING_LINE_ID PICKING_LINE_ID,
- TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
- TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
- 0 lot_prm_q, -- Only for OPM
- 0 lot_sec_q, -- Only for OPM
- 0 lot_cal_sec_q -- Only for OPM
- FROM
- MTL_MATERIAL_TRANSACTIONS TRN,
- MTL_SYSTEM_ITEMS ITM,
- MTL_RESERVATIONS RES,
- PO_HEADERS_ALL POH
- WHERE
- :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
- and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
- and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
- and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
- and POH.PO_HEADER_ID = TRN.TRANSACTION_SOURCE_ID
- and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
- and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
- and TRN.TRANSACTION_TYPE_ID = 18 -- PO Receipt
- and TRN.TRANSACTION_SOURCE_TYPE_ID = 1;
- r_lin_no varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..30
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := 'x';
- end if;
- for mt in Mtl_trans
- loop
- :r_flag := '';
- -- Order_Line number
- SELECT to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number))
- into r_lin_no
- FROM OE_ORDER_LINES LIN
- WHERE mt.TRX_SOURCE_LINE_ID = LIN.LINE_ID;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- null;
- ---
- -- Basic Verification
- --
- -- If i.Ordq < i.shpq then
- -- :r_flag := :r_flag || '1 ';
- -- end if;
- -- If i.Ordq < i.fulq then
- -- :r_flag := :r_flag || '2 ';
- -- end if;
- ---
- end if;
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#TRNERR">'||n(:r_flag)||'</a> &eb &d');
- utl_file.put_line(handle,n(mt.MTL_TRNS_ID)||'&d'||n(mt.MTL_TRNS_DATE)||'&d');
- utl_file.put_line(handle,'<a NAME="MO'||mt.MOVE_LINE_ID||'">'||n(mt.MOVE_LINE_ID)||'</a>'||'&d');
- utl_file.put_line(handle,n(mt.TRANS_TYPE)||'&d'||n(mt.PICK_SLIP)||'&d');
- utl_file.put_line(handle,n(r_lin_no)||'&d'||n(mt.LINE_ID)||'&d');
- utl_file.put_line(handle,n(mt.PRM_Q)||'&d'||n(mt.FROM_SUB)||'&d');
- utl_file.put_line(handle,n(mt.FROM_LOC_ID)||'&d'||n(mt.TO_SUB)||'&d');
- utl_file.put_line(handle,n(mt.TO_LOC_ID)||'&d'||n(mt.ORG_ID)||'&d');
- utl_file.put_line(handle,n(mt.PICKING_LINE_ID)||'&d ');
- utl_file.put_line(handle,n(mt.SEC_UOM_CODE)||'&d'||n(mt.SEC_TRN_QTY)||'&d');
- utl_file.put_line(handle,n(mt.LOT_PRM_Q)||'&d'||n(mt.LOT_SEC_Q)||'&d');
- utl_file.put_line(handle,n(mt.LOT_CAL_SEC_Q)||'&el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="TRNERR">Warning List:</a> &eb &f');
- for i in 1..30
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- --<do not run> DROP INDEX INDEX MTL_MATL_TRANS_777;
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_SERIAL_NUMBERS"> MTL_SERIAL_NUMBERS (MSN)</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh ERR_FLAG &dh DEL_DET_ID &dh REL_STATUS &dh LINE &dh LINE_ID &dh ITEM_ID &dh FROM_SERIAL &dh TO_SERIAL &dh ');
- UTL_FILE.PUT_LINE(handle,'QUANTITY &dh SERIAL_NUMBER &dh CURR_STATUS &dh CURR_SUBINV &dh REVISION &dh LOT_NUMBER &dh ');
- UTL_FILE.PUT_LINE(handle,'CURR_LOCATION &dh CURR_ORG_ID &dh GROUP_MARK &dh LINE_MARK &dh LOT_MARK &dh ORIGIN_DATE &eh');
- Declare
- cursor m_serial_n is
- select distinct
- DET.DELIVERY_DETAIL_ID DEL_DET_ID,
- decode(DET.RELEASED_STATUS,
- 'Y','Y=Staged',
- 'R','R=Ready to Release',
- 'S','S=Rel to Warhouse',
- 'B','B=Backorder',
- 'P','P=Pending Inv',
- 'C','C=Shipped',
- 'N','N=Not Ready',
- 'D','D=Cancelled',
- 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- DET.SOURCE_LINE_ID LINE_ID,
- DET.INVENTORY_ITEM_ID ITEM_ID,
- substr(wsn.fm_serial_number,1,15) FROM_SERIAL,
- substr(wsn.to_serial_number,1,15) TO_SERIAL,
- wsn.quantity WSN_QTY,
- to_char(wsn.creation_date,'DD-MON-RR_HH24:MI:SS') WSN_CRE_DATE,
- MSN.SERIAL_NUMBER MSN_SN,
- MSN.CURRENT_STATUS MSN_CUR_STA,
- MSN.REVISION MSN_REV,
- MSN.LOT_NUMBER MSN_LOT,
- MSN.CURRENT_SUBINVENTORY_CODE MSN_CUR_SUB,
- MSN.CURRENT_LOCATOR_ID MSN_CUR_LOC,
- MSN.CURRENT_ORGANIZATION_ID MSN_CUR_ORG,
- MSN.GROUP_MARK_ID MSN_GRP_MRK,
- MSN.LINE_MARK_ID MSN_LIN_MRK,
- MSN.LOT_LINE_MARK_ID MSN_LOT_MRK,
- MSN.ORIGINATION_DATE MSN_ORI_DATE
- FROM
- OE_ORDER_LINES LIN,
- WSH_DELIVERY_DETAILS DET,
- WSH_SERIAL_NUMBERS WSN,
- MTL_SERIAL_NUMBERS MSN
- where
- DET.DELIVERY_DETAIL_ID = WSN.DELIVERY_DETAIL_ID
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and DET.SOURCE_CODE = 'OE'
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and DET.INVENTORY_ITEM_ID = MSN.INVENTORY_ITEM_ID
- and MSN.SERIAL_NUMBER between WSN.FM_SERIAL_NUMBER and WSN.TO_SERIAL_NUMBER
- and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10)
- order by
- LINE,MSN.SERIAL_NUMBER;
- r_uom_lin varchar2(10);
- r_qshp_lin number;
- r_sta_lin varchar2(100);
- r_mtl_trn varchar2(100);
- type per_record_typ is RECORD
- (flag varchar2(1),
- descrip varchar2(200));
- type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
- msg msg_tab;
- function n(v varchar2) return varchar2 is
- begin
- if v is null then
- return '&sp';
- else
- return v;
- end if;
- end n;
- begin
- :r_error := 0;
- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- for i in 1..1
- loop
- msg(i).flag := '0';
- msg(i).descrip := '';
- end loop;
- msg(1).descrip := ' 1. No verifications yet.';
- end if;
- for dd in m_serial_n
- loop
- :r_flag := '';
- -- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
- -- Include verifications here
- -- Select nvl(mtl_transactions_enabled_flag,'N')
- -- into r_mtl_trn
- -- from Mtl_System_items
- -- where Inventory_item_Id = dd.ITEM_ID
- -- and Organization_Id = dd.WH_ID;
- -- if dd.PICKABLE_FLAG <> r_mtl_trn then
- -- :r_flag := :r_flag || '1 ';
- -- msg(1).flag := '1';
- -- end if;
- -- end if; -- do_analysis
- ---
- -- Print line to Output file
- utl_file.put_line(handle,'&sld &b <a HREF="#MSNERR">'||n(:r_flag)||'</a> &eb &d ');
- utl_file.put_line(handle,n(dd.DEL_DET_ID)||' &d ');
- utl_file.put_line(handle,n(dd.REL_STATUS)||' &d '||n(dd.LINE)||' &d ');
- utl_file.put_line(handle,'<a HREF="#'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d ');
- utl_file.put_line(handle,n(dd.ITEM_ID)||' &d ');
- utl_file.put_line(handle,n(dd.FROM_SERIAL)||' &d '||n(dd.TO_SERIAL)||' &d ');
- utl_file.put_line(handle,n(dd.WSN_QTY)||' &d '||n(dd.MSN_SN)||' &d ');
- utl_file.put_line(handle,n(dd.MSN_CUR_STA)||' &d '||n(dd.MSN_CUR_SUB)||' &d ');
- utl_file.put_line(handle,n(dd.MSN_REV)||' &d '||n(dd.MSN_LOT)||' &d ');
- utl_file.put_line(handle,n(dd.MSN_CUR_LOC)||' &d '||n(dd.MSN_CUR_ORG)||' &d ');
- utl_file.put_line(handle,n(dd.MSN_GRP_MRK)||' &d '||n(dd.MSN_LIN_MRK)||' &d ');
- utl_file.put_line(handle,n(dd.MSN_LOT_MRK)||' &d '||n(dd.MSN_ORI_DATE)||' &el');
- if :r_flag is not null then
- :r_error := 1;
- end if;
- end loop;
- utl_file.put_line(handle,'&et');
- if :r_error = 1 then
- utl_file.put_line(handle,'&f &b <a NAME="MSNERR">Error List:</a> &eb &f');
- for i in 1..1
- loop
- if msg(i).flag = '1' then
- utl_file.put_line(handle,msg(i).descrip||'&f');
- end if;
- end loop;
- end if;
- end;
- UTL_FILE.PUT_LINE(handle,'&et ');
- UTL_FILE.PUT_LINE(handle,'&f &f MTL_UNIT_TRANSACTIONS (UNT) <a HREF="#UNT">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh TRANS_ID &dh TRANSACTION DATE &dh STATUS_ID &dh SUBINV &dh LOC_ID &dh SERIAL_NUM ');
- UTL_FILE.PUT_LINE(handle,'&dh ITEM_ID &dh WH_ID &dh TRX_DATE &dh ');
- UTL_FILE.PUT_LINE(handle,'TRX_SRC_ID &dh TRX_SRC_TYPE_ID &dh RECEIPT_ISSUE_TYPE &dh CUST_ID &dh SHIP_ID &eh');
- Declare
- cursor mtl_unt_trx is
- select
- UNT.TRANSACTION_ID TRANS_ID,
- UNT.TRANSACTION_DATE MTL_TRNS_DATE,
- UNT.STATUS_ID STATUS_ID,
- UNT.SUBINVENTORY_CODE SUBINV,
- UNT.LOCATOR_ID LOC_ID,
- UNT.SERIAL_NUMBER SERIAL_NUM,
- UNT.INVENTORY_ITEM_ID ITEM_ID,
- UNT.ORGANIZATION_ID WH_ID,
- to_char(UNT.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRX_DATE,
- UNT.TRANSACTION_SOURCE_ID TRX_SRC_ID,
- UNT.TRANSACTION_SOURCE_TYPE_ID TRX_SRC_TYPE_ID,
- --UNT.TRANSACTION_SOURCE_NAME TRX_SOURCE_NAME
- UNT.RECEIPT_ISSUE_TYPE RECEIPT_ISSUE_TYPE,
- UNT.CUSTOMER_ID CUST_ID,
- UNT.SHIP_ID SHIP_ID
- --,UNT.SERIAL_ATTRIBUTE_CATEGORY SERIAL_ATTR_CAT
- --,UNT.ORIGINATION_DATE ORIGIN_DATE
- from MTL_UNIT_TRANSACTIONS UNT
- where UNT.TRANSACTION_ID in (select TRN.TRANSACTION_ID
- FROM
- MTL_MATERIAL_TRANSACTIONS TRN,
- --WSH_DELIVERY_DETAILS DET,
- --OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM
- WHERE
- -- klr
- (TRN.TRX_SOURCE_LINE_ID,TRN.ORGANIZATION_ID,TRN.INVENTORY_ITEM_ID) IN (SELECT DISTINCT LINE_ID,SHIP_FROM_ORG_ID,INVENTORY_ITEM_ID
- FROM OE_ORDER_LINES LIN1
- WHERE LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
- LIN1.TOP_MODEL_LINE_ID,
- LIN1.ATO_LINE_ID,
- LIN1.LINK_TO_LINE_ID,
- LIN1.REFERENCE_LINE_ID,
- LIN1.SERVICE_REFERENCE_LINE_ID))
- and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
- and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID)
- and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10);
- begin
- for mut in mtl_unt_trx
- loop
- utl_file.put_line(handle,'&sld'||n(mut.TRANS_ID)||' &d '||n(mut.MTL_TRNS_DATE)||' &d ');
- utl_file.put_line(handle,n(mut.STATUS_ID)||' &d ');
- utl_file.put_line(handle,n(mut.SUBINV)||' &d '||n(mut.LOC_ID)||' &d ');
- utl_file.put_line(handle,n(mut.SERIAL_NUM)||' &d '||n(mut.ITEM_ID)||' &d ');
- utl_file.put_line(handle,n(mut.WH_ID)||' &d '||n(mut.TRX_DATE)||' &d ');
- utl_file.put_line(handle,n(mut.TRX_SRC_ID)||' &d '||n(mut.TRX_SRC_TYPE_ID)||' &d ');
- utl_file.put_line(handle,n(mut.RECEIPT_ISSUE_TYPE)||' &d '||n(mut.CUST_ID)||' &d ');
- utl_file.put_line(handle,n(mut.SHIP_ID)||' &el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_TXN_REQUEST_LINES_V"> MTL_TXN_REQUEST_LINES_V (MOV) - MOVE TRANSACTIONS </a> <a HREF="#MOV">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh MO_LINE_ID &dh MO_NUMBER &dh MV_HDR_ID &dh MV_LINE_NUM &dh MV_LINE_STAT &dh LINE &dh TXN_SLINE_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'ITEM &dh QTY &dh PRM_Q &dh DLV_Q &dh DTL_Q &dh MOVE_TYPE_NAME &dh TRNS_SRC_TYPE &dh TRNS_TYPE_NAME &dh WH_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'FROM_SUB &dh FROM_LOC_ID &dh TO_SUB &dh TO_LOC_ID &dh LOT_NUM &dh TRNS_HEAD_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SECONDARY QTY &dh SECONDARY DETAIL_Q &dh SECONDARY DELIVER_Q &eh');
- Declare
- cursor mtl_trx_reql is
- select distinct
- TRL.LINE_ID MO_LINE_ID,
- TRH.REQUEST_NUMBER MO_NUMBER,
- TRL.HEADER_ID MV_HDR_ID,
- TRL.LINE_NUMBER MV_LINE_NUM,
- decode(TRL.LINE_STATUS,
- 1, '1=Incomplete',
- 2, '2=Pend Aprvl',
- 3, '3=Approved',
- 4, '4=Not Apprvd',
- 5, '5=Closed',
- 6, '6=Canceled',
- 7, '7=Pre Apprvd',
- 8, '8=Part Aprvd',
- 9, '9=Cncld Source') MV_LINE_STAT,
- to_char(LIN.line_number) ||
- decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
- decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
- decode(LIN.component_number, null, null,
- decode(LIN.option_number, null, '.',null)||
- '.'||to_char(LIN.component_number))||
- decode(LIN.service_number,null,null,
- decode(LIN.component_number, null, '.' , null) ||
- decode(LIN.option_number, null, '.', null ) ||
- '.'|| to_char(LIN.service_number)) LINE,
- TRL.TXN_SOURCE_LINE_ID TXN_SLINE_ID,
- --DET.DELIVERY_DETAIL_ID DEL_DET_ID,
- ITM.SEGMENT1 ITEM,
- TRL.QUANTITY QTY,
- TRL.PRIMARY_QUANTITY PRM_Q,
- TRL.QUANTITY_DELIVERED DLV_Q,
- TRL.QUANTITY_DETAILED DTL_Q,
- TRL.MOVE_ORDER_TYPE_NAME MOVE_TYPE_NAME,
- decode(TRL.TRANSACTION_SOURCE_TYPE_ID,2,'Sales Order',TRL.TRANSACTION_SOURCE_TYPE_ID)
- TRNS_SRC_TYPE,
- TRL.TRANSACTION_TYPE_NAME TRNS_TYPE_NAME,
- TRL.ORGANIZATION_ID WH_ID,
- TRL.FROM_SUBINVENTORY_CODE FROM_SUB,
- TRL.FROM_LOCATOR_ID FROM_LOC_ID,
- TRL.TO_SUBINVENTORY_CODE TO_SUB,
- TRL.TO_LOCATOR_ID TO_LOC_ID,
- TRL.LOT_NUMBER LOT_NUM,
- TRL.TRANSACTION_HEADER_ID TRNS_HEAD_ID,
- trl.secondary_quantity sec_q,
- trl.secondary_quantity_detailed sec_dtl_q,
- trl.secondary_quantity_delivered sec_dlv_q
- from MTL_TXN_REQUEST_LINES_V TRL,
- MTL_TXN_REQUEST_HEADERS TRH,
- WSH_DELIVERY_DETAILS DET,
- OE_ORDER_LINES LIN,
- MTL_SYSTEM_ITEMS ITM
- where TRL.LINE_ID = DET.MOVE_ORDER_LINE_ID
- --TRL.TXN_SOURCE_LINE_ID = LIN.LINE_ID
- and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
- and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
- and DET.SOURCE_LINE_ID = LIN.LINE_ID
- and TRL.HEADER_ID = TRH.HEADER_ID
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID);
- begin
- for mtr in mtl_trx_reql
- loop
- utl_file.put_line(handle,'&sld'||n(mtr.MO_LINE_ID)||'&d'||n(mtr.MO_NUMBER)||'&d');
- utl_file.put_line(handle,n(mtr.MV_HDR_ID)||'&d'||n(mtr.MV_LINE_NUM)||'&d');
- utl_file.put_line(handle,n(mtr.MV_LINE_STAT)||'&d'||n(mtr.LINE)||'&d');
- utl_file.put_line(handle,n(mtr.TXN_SLINE_ID)||'&d'||n(mtr.ITEM)||'&d');
- utl_file.put_line(handle,n(mtr.QTY)||'&d'||n(mtr.PRM_Q)||'&d');
- utl_file.put_line(handle,n(mtr.DLV_Q)||'&d'||n(mtr.DTL_Q)||'&d');
- utl_file.put_line(handle,n(mtr.MOVE_TYPE_NAME)||'&d'||n(mtr.TRNS_SRC_TYPE)||'&d');
- utl_file.put_line(handle,n(mtr.TRNS_TYPE_NAME)||'&d'||n(mtr.WH_ID)||'&d');
- utl_file.put_line(handle,n(mtr.FROM_SUB)||'&d'||n(mtr.FROM_LOC_ID)||'&d');
- utl_file.put_line(handle,n(mtr.TO_SUB)||'&d'||n(mtr.TO_LOC_ID)||'&d');
- utl_file.put_line(handle,n(mtr.LOT_NUM)||'&d'||n(mtr.TRNS_HEAD_ID)||'&d');
- utl_file.put_line(handle,n(mtr.SEC_Q)||'&d'||n(mtr.SEC_DTL_Q)||'&d');
- utl_file.put_line(handle,n(mtr.SEC_DLV_Q)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; --prt_inv
- if UPPER(nvl('&prt_ar','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="RA_INTERFACE_LINES"> RA_INTERFACE_LINES (RAI) - RECEIVABLES INTERFACE LINES </a> <a HREF="#RAI">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTF_LINE_ID &dh BATCH_SOURCE &dh ITEM_ID &dh QTY &dh ORD_Q &dh UOM &dh PRICE &dh SO_LIN &dh AR_ID &dh IR_ID &dh');
- UTL_FILE.PUT_LINE(handle,'LINE_TYPE &dh Order_Num_1 &dh Order_Type_2 &dh Delivery_3 &dh WayBill_4 &dh Line_ID_6 &dh Pick_Line_Id_7 &dh Bill_Lading_8 &dh ');
- UTL_FILE.PUT_LINE(handle,'WH_ID_10 &dh PA_ID_11 &dh C_RATE &dh C_DATE &dh CURR &dh TR &dh S_TAX_ID &dh VAT_ID &dh EF &dh TERR_ID &eh');
- Declare
- cursor ra_int_lin is
- select distinct
- RAI.INTERFACE_LINE_ID INTF_LINE_ID,
- RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
- RAI.INVENTORY_ITEM_ID ITEM_ID,
- RAI.QUANTITY QTY,
- RAI.QUANTITY_ORDERED ORD_Q,
- RAI.UOM_CODE UOM,
- RAI.AMOUNT PRICE,
- trim(RAI.SALES_ORDER_LINE) SO_LIN,
- RAI.ACCOUNTING_RULE_ID AR_ID,
- RAI.INVOICING_RULE_ID IR_ID,
- RAI.LINE_TYPE LINE_TYPE,
- RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
- RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
- RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
- RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
- RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
- RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
- RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
- RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
- RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
- RAI.CONVERSION_RATE C_RATE,
- to_Char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
- RAI.CURRENCY_CODE CURR,
- RAI.TAX_RATE TR,
- RAI.SALES_TAX_ID S_TAX_ID,
- RAI.VAT_TAX_ID VAT_ID,
- RAI.TAX_EXEMPT_FLAG EF,
- RAI.TERRITORY_ID TERR_ID
- --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
- FROM
- RA_INTERFACE_LINES RAI,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and RAI.LINE_TYPE = 'LINE'
- and (NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and NVL(RAI.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- UNION
- select distinct
- RAI.INTERFACE_LINE_ID INTF_LINE_ID,
- RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
- RAI.INVENTORY_ITEM_ID ITEM_ID,
- RAI.QUANTITY QTY,
- RAI.QUANTITY_ORDERED ORD_Q,
- RAI.UOM_CODE UOM,
- RAI.AMOUNT PRICE,
- trim(RAI.SALES_ORDER_LINE) SO_LIN,
- RAI.ACCOUNTING_RULE_ID AR_ID,
- RAI.INVOICING_RULE_ID IR_ID,
- RAI.LINE_TYPE LINE_TYPE,
- RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
- RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
- RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
- RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
- RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
- RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
- RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
- RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
- RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
- RAI.CONVERSION_RATE C_RATE,
- to_char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
- RAI.CURRENCY_CODE CURR,
- RAI.TAX_RATE TR,
- RAI.SALES_TAX_ID S_TAX_ID,
- RAI.VAT_TAX_ID VAT_ID,
- RAI.TAX_EXEMPT_FLAG EF,
- RAI.TERRITORY_ID TERR_ID
- --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
- FROM
- RA_INTERFACE_LINES RAI,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_PRICE_ADJUSTMENTS ADJ,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and RAI.LINE_TYPE = 'FREIGHT'
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and to_number(RAI.INTERFACE_LINE_ATTRIBUTE6) = ADJ.PRICE_ADJUSTMENT_ID
- and ADJ.LINE_ID = LIN.LINE_ID
- and ADJ.LINE_ID IS NOT NULL
- and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- UNION
- select distinct
- RAI.INTERFACE_LINE_ID INTF_LINE_ID,
- RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
- RAI.INVENTORY_ITEM_ID ITEM_ID,
- RAI.QUANTITY QTY,
- RAI.QUANTITY_ORDERED ORD_Q,
- RAI.UOM_CODE UOM,
- RAI.AMOUNT PRICE,
- trim(RAI.SALES_ORDER_LINE) SO_LIN,
- RAI.ACCOUNTING_RULE_ID AR_ID,
- RAI.INVOICING_RULE_ID IR_ID,
- RAI.LINE_TYPE LINE_TYPE,
- RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
- RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
- RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
- RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
- RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
- RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
- RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
- RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
- RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
- RAI.CONVERSION_RATE C_RATE,
- to_char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
- RAI.CURRENCY_CODE CURR,
- RAI.TAX_RATE TR,
- RAI.SALES_TAX_ID S_TAX_ID,
- RAI.VAT_TAX_ID VAT_ID,
- RAI.TAX_EXEMPT_FLAG EF,
- RAI.TERRITORY_ID TERR_ID
- --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
- FROM
- RA_INTERFACE_LINES RAI,
- OE_ORDER_HEADERS ORD,
- OE_PRICE_ADJUSTMENTS ADJ,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and RAI.LINE_TYPE = 'FREIGHT'
- and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ADJ.LINE_ID IS NULL
- and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
- begin
- for ril in ra_int_lin
- loop
- utl_file.put_line(handle,'&sld'||n(ril.INTF_LINE_ID)||'&d'||n(ril.BATCH_SOURCE)||'&d');
- utl_file.put_line(handle,n(ril.ITEM_ID)||'&d'||n(ril.QTY)||'&d');
- utl_file.put_line(handle,n(ril.ORD_Q)||'&d'||n(ril.UOM)||'&d');
- utl_file.put_line(handle,n(ril.PRICE)||'&d'||n(ril.SO_LIN)||'&d');
- utl_file.put_line(handle,n(ril.AR_ID)||'&d'||n(ril.IR_ID)||'&d');
- utl_file.put_line(handle,n(ril.LINE_TYPE)||'&d'||n(ril.ORDER_NUM_1)||'&d');
- utl_file.put_line(handle,n(ril.ORDER_TYPE_2)||'&d'||n(ril.DELIVERY_3)||'&d');
- utl_file.put_line(handle,n(ril.WAYBILL_4)||'&d'||n(ril.LINE_ID_6)||'&d');
- utl_file.put_line(handle,n(ril.PICK_LINE_ID_7)||'&d'||n(ril.BILL_LADING_8)||'&d');
- utl_file.put_line(handle,n(ril.WH_ID_10)||'&d'||n(ril.PA_ID_11)||'&d');
- utl_file.put_line(handle,n(ril.C_RATE)||'&d'||n(ril.C_DATE)||'&d');
- utl_file.put_line(handle,n(ril.CURR)||'&d'||n(ril.TR)||'&d');
- utl_file.put_line(handle,n(ril.S_TAX_ID)||'&d'||n(ril.VAT_ID)||'&d');
- utl_file.put_line(handle,n(ril.EF)||'&d'||n(ril.TERR_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f RA_INTERFACE_ERRORS (RAE) - RECEIVABLES INTERFACE ERRORS &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh INTERFACE_LINE_ID &dh INTERFACE_SALESCREDIT_ID &dh MESSAGE_TEXT &eh');
- Declare
- cursor ra_int_err is
- select distinct
- RAE.INTERFACE_LINE_ID,
- RAE.INTERFACE_SALESCREDIT_ID,
- RAE.MESSAGE_TEXT
- FROM
- RA_INTERFACE_LINES RAI,
- RA_INTERFACE_ERRORS RAE,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and (NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and NVL(RAI.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID))
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- UNION
- select distinct
- RAE.INTERFACE_LINE_ID,
- RAE.INTERFACE_SALESCREDIT_ID,
- RAE.MESSAGE_TEXT
- FROM
- RA_INTERFACE_LINES RAI,
- RA_INTERFACE_ERRORS RAE,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_PRICE_ADJUSTMENTS ADJ,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and RAI.LINE_TYPE = 'FREIGHT'
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and to_number(RAI.INTERFACE_LINE_ATTRIBUTE6) = ADJ.PRICE_ADJUSTMENT_ID
- and ADJ.LINE_ID = LIN.LINE_ID
- and ADJ.LINE_ID IS NOT NULL
- and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- UNION
- select distinct
- RAE.INTERFACE_LINE_ID,
- RAE.INTERFACE_SALESCREDIT_ID,
- RAE.MESSAGE_TEXT
- FROM
- RA_INTERFACE_LINES RAI,
- RA_INTERFACE_ERRORS RAE,
- OE_ORDER_HEADERS ORD,
- OE_PRICE_ADJUSTMENTS ADJ,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and RAI.LINE_TYPE = 'FREIGHT'
- and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- and ADJ.LINE_ID IS NULL
- and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
- begin
- for rie in ra_int_err
- loop
- utl_file.put_line(handle,'&sld'||n(rie.INTERFACE_LINE_ID)||'&d'||n(rie.INTERFACE_SALESCREDIT_ID)||'&d');
- utl_file.put_line(handle,n(rie.MESSAGE_TEXT)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="RA_CUSTOMER_TRX"> RA_CUSTOMER_TRX (RAH) - INVOICE HEADERS </a> <a HREF="#RAH">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh CUST_TRX_ID &dh TRX_NUMBER &dh TRX_TYPE_ID &dh TRX_DATE &dh BATCH_ID &dh SOURCE_ID &dh BILL_CUST &dh BILL_SITE &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP_CUST &dh SHIP_SITE &dh TERM_ID &dh SALESREP_ID &dh PO_NUMBER &dh CURR &dh AGREEMENT &dh COMP_FL &dh IR_ID &dh ');
- UTL_FILE.PUT_LINE(handle,'SHIP_VIA &dh WAYBILL &dh STATUS &eh');
- Declare
- cursor ra_cus_trx is
- select distinct
- RAH.CUSTOMER_TRX_ID CUST_TRX_ID,
- RAH.TRX_NUMBER TRX_NUMBER,
- RAH.CUST_TRX_TYPE_ID TRX_TYPE_ID,
- to_char(RAH.TRX_DATE,'DD-MON-RR_HH24:MI:SS') TRX_DATE,
- RAH.BATCH_ID BATCH_ID,
- RAH.BATCH_SOURCE_ID SOURCE_ID,
- RAH.BILL_TO_CUSTOMER_ID BILL_CUST,
- RAH.BILL_TO_SITE_USE_ID BILL_SITE,
- RAH.SHIP_TO_CUSTOMER_ID SHIP_CUST,
- RAH.SHIP_TO_SITE_USE_ID SHIP_SITE,
- RAH.TERM_ID TERM_ID,
- RAH.PRIMARY_SALESREP_ID SALESREP_ID,
- RAH.PURCHASE_ORDER PO_NUMBER,
- RAH.INVOICE_CURRENCY_CODE CURR,
- RAH.AGREEMENT_ID AGREEMENT,
- RAH.COMPLETE_FLAG COMP_FL,
- RAH.INVOICING_RULE_ID IR_ID,
- RAH.SHIP_VIA SHIP_VIA,
- RAH.WAYBILL_NUMBER WAYBILL,
- RAH.STATUS_TRX STATUS
- --ENABLE_TIMESTAMP ,to_char(RAH.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAH.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAH.REQUEST_ID REQUEST_ID
- FROM
- RA_CUSTOMER_TRX RAH,
- RA_CUSTOMER_TRX_LINES RAL,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
- and RAL.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAL.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and NVL(RAL.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
- ORDER BY
- RAH.TRX_NUMBER;
- begin
- for rct in ra_cus_trx
- loop
- utl_file.put_line(handle,'&sld'||n(rct.CUST_TRX_ID)||'&d'||n(rct.TRX_NUMBER)||'&d');
- utl_file.put_line(handle,n(rct.TRX_TYPE_ID)||'&d'||n(rct.TRX_DATE)||'&d');
- utl_file.put_line(handle,n(rct.BATCH_ID)||'&d'||n(rct.SOURCE_ID)||'&d');
- utl_file.put_line(handle,n(rct.BILL_CUST)||'&d'||n(rct.BILL_SITE)||'&d');
- utl_file.put_line(handle,n(rct.SHIP_CUST)||'&d'||n(rct.SHIP_SITE)||'&d');
- utl_file.put_line(handle,n(rct.TERM_ID)||'&d'||n(rct.SALESREP_ID)||'&d');
- utl_file.put_line(handle,n(rct.PO_NUMBER)||'&d'||n(rct.CURR)||'&d');
- utl_file.put_line(handle,n(rct.AGREEMENT)||'&d'||n(rct.COMP_FL)||'&d');
- utl_file.put_line(handle,n(rct.IR_ID)||'&d'||n(rct.SHIP_VIA)||'&d');
- utl_file.put_line(handle,n(rct.WAYBILL)||'&d'||n(rct.STATUS)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="RA_CUSTOMER_TRX_LINES"> RA_CUSTOMER_TRX_LINES (RAL) - INVOICE LINES </a> <a HREF="#RAL">Column Definitions</a> &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh TRX_LINE_ID &dh LINK_TO_ID &dh CUST_TRX_ID &dh TRX_NUMBER &dh SOURCE &dh LINE_NUM &dh ITEM_ID &dh ORD_Q &dh ');
- UTL_FILE.PUT_LINE(handle,'INV_Q &dh CRD_Q &dh UOM &dh PRICE &dh EXTD_AMT &dh REV_AMT &dh SO_LIN &dh LINE_TYPE &dh Order_Num_1 &dh Order_Type_2 &dh ');
- UTL_FILE.PUT_LINE(handle,'Delivery_3 &dh WayBill_4 &dh Line_ID_5 &dh Bill_Lading_8 &dh WH_ID_10 &dh PA_ID_11 &dh TF &dh TR &dh VAT_ID &dh S_TAX_ID &eh');
- Declare
- cursor ra_cus_trxl is
- select distinct
- RAL.CUSTOMER_TRX_LINE_ID TRX_LINE_ID,
- RAL.LINK_TO_CUST_TRX_LINE_ID LINK_TO_ID,
- RAL.CUSTOMER_TRX_ID CUST_TRX_ID,
- RAH.TRX_NUMBER TRX_NUMBER,
- RAL.SALES_ORDER_SOURCE SOURCE,
- RAL.LINE_NUMBER LINE_NUM,
- RAL.INVENTORY_ITEM_ID ITEM_ID,
- RAL.QUANTITY_ORDERED ORD_Q,
- RAL.QUANTITY_INVOICED INV_Q,
- RAL.QUANTITY_CREDITED CRD_Q,
- RAL.UOM_CODE UOM,
- RAL.UNIT_SELLING_PRICE PRICE,
- RAL.EXTENDED_AMOUNT EXTD_AMT,
- RAL.REVENUE_AMOUNT REV_AMT,
- TRIM(RAL.SALES_ORDER_LINE) SO_LIN,
- RAL.LINE_TYPE LINE_TYPE,
- RAL.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
- RAL.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
- RAL.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
- RAL.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
- RAL.INTERFACE_LINE_ATTRIBUTE6 Line_ID_5,
- RAL.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
- RAL.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
- RAL.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
- RAL.TAXABLE_FLAG TF,
- RAL.TAX_RATE TR,
- RAL.VAT_TAX_ID VAT_ID,
- RAL.SALES_TAX_ID S_TAX_ID
- --ENABLE_TIMESTAMP ,to_char(RAL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAL.REQUEST_ID REQUEST_ID
- FROM
- RA_CUSTOMER_TRX RAH,
- RA_CUSTOMER_TRX_LINES RAL
- WHERE
- RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
- and RAL.CUSTOMER_TRX_LINE_ID in
- (select RAL1.CUSTOMER_TRX_LINE_ID
- FROM
- RA_CUSTOMER_TRX RAH1,
- RA_CUSTOMER_TRX_LINES RAL1,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAH1.CUSTOMER_TRX_ID = RAL1.CUSTOMER_TRX_ID
- and RAL1.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAL1.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and NVL(RAL1.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id))
- UNION
- select /* LINKED LINES */
- distinct
- RAL.CUSTOMER_TRX_LINE_ID TRX_LINE_ID,
- RAL.LINK_TO_CUST_TRX_LINE_ID LINK_TO_ID,
- RAL.CUSTOMER_TRX_ID CUST_TRX_ID,
- RAH.TRX_NUMBER TRX_NUMBER,
- RAL.SALES_ORDER_SOURCE SOURCE,
- RAL.LINE_NUMBER LINE_NUM,
- RAL.INVENTORY_ITEM_ID ITEM_ID,
- RAL.QUANTITY_ORDERED ORD_Q,
- RAL.QUANTITY_INVOICED INV_Q,
- RAL.QUANTITY_CREDITED CRD_Q,
- RAL.UOM_CODE UOM,
- RAL.UNIT_SELLING_PRICE PRICE,
- RAL.EXTENDED_AMOUNT EXTD_AMT,
- RAL.REVENUE_AMOUNT REV_AMT,
- TRIM(RAL.SALES_ORDER_LINE) SO_LIN,
- RAL.LINE_TYPE LINE_TYPE,
- RAL.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
- RAL.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
- RAL.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
- RAL.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
- RAL.INTERFACE_LINE_ATTRIBUTE6 Line_ID_5,
- RAL.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
- RAL.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
- RAL.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
- RAL.TAXABLE_FLAG TF,
- RAL.TAX_RATE TR,
- RAL.VAT_TAX_ID VAT_ID,
- RAL.SALES_TAX_ID S_TAX_ID
- --ENABLE_TIMESTAMP ,to_char(RAL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
- --ENABLE_TIMESTAMP ,to_char(RAL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
- --ENABLE_TIMESTAMP ,RAL.REQUEST_ID REQUEST_ID
- FROM
- RA_CUSTOMER_TRX RAH,
- RA_CUSTOMER_TRX_LINES RAL
- WHERE
- RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
- and RAL.LINK_TO_CUST_TRX_LINE_ID in
- (select RAL1.CUSTOMER_TRX_LINE_ID
- FROM
- RA_CUSTOMER_TRX RAH1,
- RA_CUSTOMER_TRX_LINES RAL1,
- OE_ORDER_LINES LIN,
- OE_ORDER_HEADERS ORD,
- OE_TRANSACTION_TYPES_V TYP
- WHERE
- RAH1.CUSTOMER_TRX_ID = RAL1.CUSTOMER_TRX_ID
- and RAL1.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
- and RAL1.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
- and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
- and ORD.HEADER_ID = LIN.HEADER_ID
- and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and NVL(RAL1.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
- LIN.TOP_MODEL_LINE_ID,
- LIN.ATO_LINE_ID,
- LIN.LINK_TO_LINE_ID,
- LIN.REFERENCE_LINE_ID,
- LIN.SERVICE_REFERENCE_LINE_ID)
- and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id))
- order by
- TRX_NUMBER,
- TRX_LINE_ID;
- begin
- for rctl in ra_cus_trxl
- loop
- utl_file.put_line(handle,'&sld'||n(rctl.TRX_LINE_ID)||'&d'||n(rctl.LINK_TO_ID)||'&d');
- utl_file.put_line(handle,n(rctl.CUST_TRX_ID)||'&d'||n(rctl.TRX_NUMBER)||'&d');
- utl_file.put_line(handle,n(rctl.SOURCE)||'&d'||n(rctl.LINE_NUM)||'&d');
- utl_file.put_line(handle,n(rctl.ITEM_ID)||'&d'||n(rctl.ORD_Q)||'&d');
- utl_file.put_line(handle,n(rctl.INV_Q)||'&d'||n(rctl.CRD_Q)||'&d');
- utl_file.put_line(handle,n(rctl.UOM)||'&d'||n(rctl.PRICE)||'&d');
- utl_file.put_line(handle,n(rctl.EXTD_AMT)||'&d'||n(rctl.REV_AMT)||'&d');
- utl_file.put_line(handle,n(rctl.SO_LIN)||'&d'||n(rctl.LINE_TYPE)||'&d');
- utl_file.put_line(handle,n(rctl.ORDER_NUM_1)||'&d'||n(rctl.ORDER_TYPE_2)||'&d');
- utl_file.put_line(handle,n(rctl.DELIVERY_3)||'&d'||n(rctl.WAYBILL_4)||'&d');
- utl_file.put_line(handle,n(rctl.LINE_ID_5)||'&d'||n(rctl.BILL_LADING_8)||'&d');
- utl_file.put_line(handle,n(rctl.WH_ID_10)||'&d'||n(rctl.PA_ID_11)||'&d');
- utl_file.put_line(handle,n(rctl.TF)||'&d'||n(rctl.TR)||'&d');
- utl_file.put_line(handle,n(rctl.VAT_ID)||'&d'||n(rctl.S_TAX_ID)||'&el');
- end loop;
- end;
- UTL_FILE.PUT_LINE(handle,'&et');
- end if; --prt_ar
- end if; -- :v_head_only
- -- Column descriptions for each table
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <CENTER> COLUMN DEFINITIONS </CENTER> &eh &et &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="OOH">OE_ORDER_HEADERS (ORD)</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld OP => OPEN FLAG &d BK => BOOKED FLAG &d SP => PARTIAL SHIPMENTS ALLOWED &el ');
- UTL_FILE.PUT_LINE(handle,'&sld CN => CANCEL FLAG &d STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="OOL">OE_ORDER_LINES (LIN)</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld SHN_Q => SHIPPING QUANTITY &d OP => OPEN FLAG &d ORG => ORGANIZATION CODE &el');
- UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d BK => BOOKED FLAG &d SI => Shipping Interfaced Flag &el');
- UTL_FILE.PUT_LINE(handle,'&sld FUL_Q => FULFILLED QUANTITY &d SH => SHIPPABLE FLAG &d II => Inventory Interfaced Flag &el');
- UTL_FILE.PUT_LINE(handle,'&sld CAN_Q => CANCELLED QUANTITY &d CN => CANCELLED FLAG &d ATO => ATO FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld INC_Q => INVOICED QUANTITY &d VD => VISIBLE DEMAND FLAG &d OPT => OPTION FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld RES_Q => RESERVATION QUANTITY &d SMC => SHIP MODEL COMPLETE &d FF => FULFILLED_FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld LCN_Q => LAST CANCELLED QTY &d CAL_PR => CALCULATE PRICE &d &sp &el');
- UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- if UPPER(nvl('&prt_price','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="ADJC">APPLIED and UN-APPLIED HEADER PRICE ADJUSTMENTS (ADJ)</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MOD_LVL => MODIFIER_LEVEL &d IF => INVOICED FLAG &d LK => LOCK CONTROL &el');
- UTL_FILE.PUT_LINE(handle,'&sld CHG_TY_CD => CHARGE_TYPE_CODE &d EF => ESTIMATED FLAG &d PP => PRICING PHASE &el');
- UTL_FILE.PUT_LINE(handle,'&sld CD => CREDIT_OR_DEBIT &d UA => UPDATE ALLOWED &d PI => PRINT ON INVOICE &el');
- UTL_FILE.PUT_LINE(handle,'&sld AF => AUTOMATIC FLAG &d UF => UPDATED FLAG &d AP => APPLIED FLAG &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="ALA">APPLIED AND UNAPPLIED LINE PRICE ADJUSTMENTS</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MOD_LVL => MODIFIER_LEVEL_CODE &d CD => CREDIT_OR_CHARGE_FLAG &d UA => UPDATE_ALLOWED &el');
- UTL_FILE.PUT_LINE(handle,'&sld CHG_TY_CD => CHARGE_TYPE_CODE &d AF => AUTOMATIC_FLAG &d UF => UPDATED_FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld ARITH_OP => ARITHMETIC_OPERATOR &d PI => PRINT_ON_INVOICE_FLAG &d AP => APPLIED_FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld OP_PER_QTY => OPERAND_PER_PQTY &d AC => ACCRUAL_FLAG &d LK => LOCK_CONTROL &el');
- UTL_FILE.PUT_LINE(handle,'&sld ADJ_AMT_PO => ADJUSTED_AMOUNT_PER_PQTY &d EF => ESTIMATED_FLAG &d PERC => PERCENT &el');
- UTL_FILE.PUT_LINE(handle,'&sld ADJ_AMT => ADJUSTED_AMOUNT &d PP => PRICING_PHASE_ID &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- end if; -- prt_price
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="WDD">WSH_DELIVERY_DETAILS (DET)</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MO_LINE_ID => MOVE ORDER LINE ID &d DLV_Q => DELIVERED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld DELIV_ID => DELIVERY ID &d CAN_Q => CANCELLED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld SRQ_Q => SOURCE REQUESTED QUANTITY &d SRQ_U => SOURCE REQUESTED QUANTITY UOM &el');
- UTL_FILE.PUT_LINE(handle,'&sld REQ_Q => REQUESTED QUANTITY &d REQ_U => REQUESTED QUANTITY UOM &el');
- UTL_FILE.PUT_LINE(handle,'&sld OMI => ORDER MANAGEMENT INTERFACED &d INI => INVENTORY INTERFACED &el');
- UTL_FILE.PUT_LINE(handle,'&sld PIKF => PICKABLE_FLAG &d PIK_Q => PICKED_QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d ORG_SUB => ORIGINAL SUBINVENTORY &el');
- UTL_FILE.PUT_LINE(handle,'&sld CUR_SUB => CURRENT SUBINVENTORY &d CF => CONTAINER FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld FL_PERC => FILL PERCENTAGE &d SHP_SET => SHIP_SET_ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el');
- UTL_FILE.PUT_LINE(handle,'&sld TRX_TEMP_ID=> TRANSACTION_TEMP_ID &d TOP_MO_LIN => TOP_MODEL_LINE_ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld SHP_MC => SHIP_MODEL_COMPLETE_FLAG &d SPL_DEL_DET_ID ==> SPLIT FROM DEL.DETAIL ID &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="WSN">WSH_SERIAL_NUMBERS (WSN)</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld DET_DET_ID => DELIVERY DETAIL ID &d DLV_Q => DELIVERED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld REL_STATUS => RELEASED STATUS &d CAN_Q => CANCELLED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld SRQ_Q => SOURCE REQUESTED QUANTITY &d SRQ_U => SOURCE REQUESTED QUANTITY UOM &el');
- UTL_FILE.PUT_LINE(handle,'&sld REQ_Q => REQUESTED QUANTITY &d REQ_U => REQUESTED QUANTITY UOM &el');
- UTL_FILE.PUT_LINE(handle,'&sld OMI => ORDER MANAGEMENT INTERFACED &d INI => INVENTORY INTERFACED &el');
- UTL_FILE.PUT_LINE(handle,'&sld PIKF => PICKABLE_FLAG &d PIK_Q => PICKED_QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d ORG_SUB => ORIGINAL SUBINVENTORY &el');
- UTL_FILE.PUT_LINE(handle,'&sld CUR_SUB => CURRENT SUBINVENTORY &d CF => CONTAINER FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld FL_PERC => FILL PERCENTAGE &d SHP_SET => SHIP_SET_ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el');
- UTL_FILE.PUT_LINE(handle,'&sld SHP_MC => SHIP_MODEL_COMPLETE_FLAG &d SPL_DEL_DET_ID ==> SPLIT FROM DEL.DETAIL ID &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- if UPPER(nvl('&prt_inv','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MR">MTL_RESERVATIONS (RES)</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld RES_Q => PRIMARY RESERVATION QUANTITY &d DET_Q => DETAILED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld DS_TYPE => DEMAND SOURCE TYPE &d WH_ID => ORGANIZATION ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld SS_TYPE_ID => SUPPLY SOURCE TYPE ID &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MTI">MTL_TRANSACTIONS_INTERFACE (MTI)</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld TRX_INT_ID => TRANSACTION_INTERFACE_ID &d PRM_Q => PRIMARY QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld LCK => LOCK CODE &d FROM_SUB => FROM SUBINVENTORY &el');
- UTL_FILE.PUT_LINE(handle,'&sld FROM_LOC_ID => FROM LOCATOR ID &d TRANS_MODE => TRANSACTION MODE &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="TMP">MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MTL_TRNS_ID => MTL TRANSACTION ID &d PICK_SLIP => PICK SLIP NUMBER &el');
- UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d LCK => LOCK CODE &el');
- UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld TRANS_MODE => TRANSACTION MODE &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="TRN">MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MTL_TRNS_ID => MTL TRANSACTION ID &d TRANS_TYPE => TRANSACTION TYPE &el');
- UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d LCK => LOCK CODE &el');
- UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld TO_SUB => TO SUBINVENTORY &d TO_LOC_ID => TO LOCATOR ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld TRANS_MODE => TRANSACTION MODE &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="UNT">MTL_UNIT_TRANSACTIONS (UNT)</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld TRANS_ID => TRANSACTION ID &d SUBINV => SUBINVENTRY CODE &el');
- UTL_FILE.PUT_LINE(handle,'&sld LOC_ID => LOCATOR ID &d SERIAL_NUM => SERIAL NUMBER &el');
- UTL_FILE.PUT_LINE(handle,'&sld WH_ID => WAREHOUSE ID &d TRX_DATE => TRANSACTION DATE &el');
- UTL_FILE.PUT_LINE(handle,'&sld TRX_SRC_ID => TRANSACTION SOURCE ID &d TRX_SRC_TYPE_ID => TRANSACTION SOURCE TYPE ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld CUST_ID => CUSTOMER ID &d SHIP_ID => SHIPMENT ID &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MOV">MTL_TXN_REQUEST_LINES_V (MOV) - MOVE TRANSACTIONS</a> &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld MO_LINE_ID => MOVE ORDER LINE ID &d MO_NUMBER => MOVE ORDER NUMBER &el');
- UTL_FILE.PUT_LINE(handle,'&sld MV_HDR_ID => MOVE ORDER HEADER ID &d MV_LINE_NUM => MOVE ORDER LINE NUMBER &el');
- UTL_FILE.PUT_LINE(handle,'&sld MV_LINE_STAT => MOVE ORDER LINE STATUS &d TXN_SLINE_ID=> TRANSACTION SOURCE LINE ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d DLV_Q => DELIVERED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld DTL_Q => DETAILED QUANTITY &d WH_ID => WAREHOUSE ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld TO_SUB => TO SUBINVENTORY &d TO_LOC_ID => TO LOCATOR ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld LOT_NUM => LOT NUMBER &d TRNS_HEAD_ID=> TRANSACTION HEADER ID &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- end if; -- prt_inv
- if UPPER(nvl('&prt_ar','Y')) = 'Y' then
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAI">RA_INTERFACE_LINES (RAI)</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld QTY => QUANTITY &d IR_ID => INVOICING RULE ID &d TR => TAX RATE &el');
- UTL_FILE.PUT_LINE(handle,'&sld ORD_Q => ORDERED QUANTITY &d PA_ID_11 => PRICE ADJUSTMENT ID &d EF => TAX EXEMPT FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld SO_LIN => SALES ORDER LINE ID &d C_RATE => CONVERSION RATE &d S_TAX_ID => SALES TAX ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld AR_ID => ACCOUNTING RULE ID &d C_DATE => CONVERSION DATE &d CURR => CURRENCY CODE &el');
- UTL_FILE.PUT_LINE(handle,'&sld WH_ID => WAREHOUSE ID &d VAT_ID => VALUE ADDED TAX ID &d EF => TAX EXEMPT FLAG &el');
- UTL_FILE.PUT_LINE(handle,'&sld TERR_ID=> TERRITORY ID &d &sp &d &sp &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAH">RA_CUSTOMER_TRX (RAH) - INVOICE HEADERS</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld CUST_TRX_ID => CUSTOMER TRANSACTION ID &d TRX_NUMBER => TRANSACTION NUMBER &d TRX_DATE => TRANSACTION DATE &el');
- UTL_FILE.PUT_LINE(handle,'&sld CURR => CURRENCY &d COMP_FL => COMPLETE FLAG &d IR_ID => INVOICING RULE ID &el &et');
- UTL_FILE.PUT_LINE(handle,'&f &f');
- UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAL">RA_CUSTOMER_TRX_LINES (RAL) - INVOICE LINES</a> &dh &sp &dh &sp &eh');
- UTL_FILE.PUT_LINE(handle,'&sld TRX_LINE_ID => TRANSACTION LINE ID &d CUST_TRX_ID => CUSTOMER TRANSACTION ID &d TRX_NUMBER => TRANSACTION NUMBER &el');
- UTL_FILE.PUT_LINE(handle,'&sld ORD_Q => ORDERED QUANTITY &d INV_Q => INVOICED QUANTITY &d CRD_Q => CREDITED QUANTITY &el');
- UTL_FILE.PUT_LINE(handle,'&sld EXTD_AMT => EXTENDED AMOUNT &d REV_AMT => REVISED AMOUNT &d PA_ID_11 => PRICE ADJUSTMENT ID &el');
- UTL_FILE.PUT_LINE(handle,'&sld TF => TAXABLE FLAG &d TR => TAX RATE &d VAT_ID => VALUE ADDED TAX ID &el &et');
- end if; -- prt_ar
- UTL_FILE.PUT_LINE(handle,'&f &f');
- -- Closing Time
- select '&std &sh Script completion time: &eh &sld '||to_char(sysdate,'DD-MON-RR_HH24:MI:SS')||' &el &et &f &f'
- into text
- from dual;
- UTL_FILE.PUT_LINE(handle,text);
- UTL_FILE.PUT_LINE(handle,'</HTML>');
- -- Close output file
- UTL_FILE.FCLOSE(handle);
- END;
- /
此脚本用于诊断销售订单的所有信息,运行完成后生产html报表,放在服务器上;
好了下面开始研究UTL_FILE包
包中主要的函数
FOPEN
IS_OPEN
GET_LINE
PUT
NEW_LINE
PUT_LINE
PUTF
FFLUSH
FCLOSE
FCLOSE_ALL
使用utl_file包之前应先建立目录
create or replace directory BFILE_DIR as
'f:/home/oracle/bfiletest';
给用户读写该目录的权限
grant read,write on directory BFILE_DIR to lunar;
GRANT EXECUTE ON utl_file TO wangyh
UTL_FILE.FOPEN
用法
FOPEN会打开指定文件并返回一个文件句柄用于操作文件。
FUNCTION UTL_FILE.FOPEN (
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
RETURN file_type;
参数
location
文件地址
filename
文件名
openmode
打开文件的模式(参见下面说明)
max_linesize
文件每行最大的字符数,包括换行符。最小为1,最大为32767
3种文件打开模式:
R 只读模式。一般配合UTL_FILE的GET_LINE来读文件。
W 写(替换)模式。文件的所有行会被删除。PUT, PUT_LINE, NEW_LINE, PUTF和FFLUSH都可使用
A 写(附加)模式。原文件的所有行会被保留。在最末尾行附加新行。PUT, PUT_LINE, NEW_LINE, PUTF和FFLUSH都可使用
打开文件时注意以下几点:
文件路径和文件名合起来必须表示操作系统中一个合法的文件。
文件路径必须存在并可访问;FOPEN并不会新建一个文件夹。
如果你想打开文件进行读操作,文件必须存在;如果你想打开文件进行写操作,文件不存在时,会新建一个文件。
如果你想打开文件进行附加操作,文件必须存在。A模式不同于W模式。文件不存在时,会抛出INVALID_OPERATION异常。
FOPEN 会抛出以下异常
UTL_FILE.INVALID_MODE
UTL_FILE.INVALID_OPERATION
UTL_FILE.INVALID_PATH
UTL_FILE.INVALID_MAXLINESIZE
UTL_FILE.IS_OPEN用法
如果文件句柄指定的文件已打开,返回TRUE,否则FALSE
FUNCTION UTL_FILE.IS_OPEN (file IN UTL_FILE.FILE_TYPE) RETURN BOOLEAN;
UTL_FILE只提供一个方法去读取数据:GET_LINE
UTL_FILE.GET_LINE用法
读取指定文件的一行到提供的缓存。
PROCEDURE UTL_FILE.GET_LINE
(file IN UTL_FILE.FILE_TYPE,
buffer OUT VARCHAR2);
file
由FOPEN返回的文件句柄
buffer
读取的一行数据的存放缓存
buffer必须足够大。否则,会抛出VALUE_ERROR 异常。行终止符不会被传进buffer。
异常
NO_DATA_FOUND
VALUE_ERROR
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.READ_ERROR
UTL_FILE.PUT用法
在当前行输出数据
PROCEDURE UTL_FILE.PUT
(file IN UTL_FILE.FILE_TYPE,
buffer OUT VARCHAR2);
file
由FOPEN返回的文件句柄
buffer
包含要写入文件的数据缓存;Oracle8.0.3及以上最大允许32kB,早期版本只有1023B
UTL_FILE.PUT输出数据时不会附加行终止符。
UTL_FILE.PUT会产生以下异常
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
UTL_FILE.NEW_LINE
在当前位置输出新行或行终止符,必须使用NEW_LINE来结束当前行,或者使用PUT_LINE输出带有行终止符的完整行数据。
PROCEDURE UTL_FILE.NEW_LINE
(file IN UTL_FILE.FILE_TYPE,
lines IN NATURAL := 1);
file
由FOPEN返回的文件句柄
lines
要插入的行数
如果不指定lines参数,NEW_LINE会使用默认值1,在当前行尾换行。如果要插入一个空白行,可以使用以下语句:
UTL_FILE.NEW_LINE (my_file, 2);
如果lines参数为0或负数,什么都不会写入文件。
NEW_LINE会产生以下异常
VALUE_ERROR
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
例子
如果要在UTL_FILE.PUT后立刻换行,可以如下例所示:
PROCEDURE add_line (file_in IN UTL_FILE.FILE_TYPE, line_in IN VARCHAR2)
IS
BEGIN
UTL_FILE.PUT (file_in, line_in);
UTL_FILE.NEW_LINE (file_in);
END;
UTL_FILE.PUT_LINE
输出一个字符串以及一个与系统有关的行终止符
PROCEDURE UTL_FILE.PUT_LINE
(file IN UTL_FILE.FILE_TYPE,
buffer IN VARCHAR2);
file
由FOPEN返回的文件句柄
buffer
包含要写入文件的数据缓存;Oracle8.0.3及以上最大允许32kB,早期版本只有1023B
在调用UTL_FILE.PUT_LINE前,必须先打开文件。
UTL_FILE.PUT_LINE会产生以下异常
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
例子
这里利用UTL_FILE.PUT_LINE从表emp读取数据到文件:
declare
fileID UTL_FILE.FILE_TYPE;
BEGIN
fileID := UTL_FILE.FOPEN ('BFILE_DIR', 'emp.TXT', 'W');
/* Quick and dirty construction here! */
FOR emprec IN (SELECT * FROM emp)
LOOP
UTL_FILE.PUT_LINE
(FILEID,TO_CHAR (emprec.empno) || ',' ||
emprec.ename || ',' ||
TO_CHAR (emprec.deptno));
END LOOP;
UTL_FILE.FCLOSE (fileID);
END;
/
GRANT READ ON DIRECTORY BFILE_DIR TO SCOTT;
GRANT write ON DIRECTORY BFILE_DIR TO SCOTT;PUT_LINE相当于PUT后加上NEW_LINE;也相当于PUTF的格式串"%s\n"。
UTL_FILE.PUTF
以一个模版样式输出至多5个字符串,类似C中的printf
PROCEDURE UTL_FILE.PUTF
(file IN FILE_TYPE
,format IN VARCHAR2
,arg1 IN VARCHAR2 DEFAULT NULL
,arg2 IN VARCHAR2 DEFAULT NULL
,arg3 IN VARCHAR2 DEFAULT NULL
,arg4 IN VARCHAR2 DEFAULT NULL
,arg5 IN VARCHAR2 DEFAULT NULL);
file
由FOPEN返回的文件句柄
format
决定格式的格式串
argN
可选的5个参数,最多5个
格式串可使用以下样式
%s
在格式串中可以使用最多5个%s,与后面的5个参数一一对应
\n
换行符。在格式串中没有个数限制
%s会被后面的参数依次填充,如果没有足够的参数,%s会被忽视,不被写入文件
UTL_FILE.PUTF会产生以下异常
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
declare
fileID UTL_FILE.FILE_TYPE;
BEGIN
fileID := UTL_FILE.FOPEN ('BFILE_DIR', 'emp.TXT', 'W');
/* Quick and dirty construction here! */
FOR emprec IN (SELECT * FROM emp)
LOOP
UTL_FILE.PUTf
(FILEID,TO_CHAR (emprec.empno) || ',' ||
emprec.ename || ',' ||
TO_CHAR (emprec.deptno),',');
utl_file.new_line(fileid);
END LOOP;
UTL_FILE.FCLOSE (fileID);
END;
/
UTL_FILE.FFLUSH
确保所有数据写入文件。
PROCEDURE UTL_FILE.FFLUSH (file IN UTL_FILE.FILE_TYPE);
file
由FOPEN返回的文件句柄
操作系统可能会缓存数据来提高性能。因此可能调用put后,打开文件却看不到写入的数据。在关闭文件前要读取数据的话可以使用UTL_FILE.FFLUSH。
典型的使用方法包括分析执行进度和调试纪录。
UTL_FILE.FFLUSH会产生以下异常
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
UTL_FILE.FCLOSE
关闭文件
PROCEDURE UTL_FILE.FCLOSE (file IN OUT FILE_TYPE);
file
由FOPEN返回的文件句柄
注意file是一个IN OUT参数,因为在关闭文件后会设置为NULL
当试图关闭文件时有缓存数据未写入文件,会抛出WRITE_ERROR异常
UTL_FILE.FCLOSE会产生以下异常
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.WRITE_ERROR
UTL_FILE.FCLOSE_ALL
关闭所有已打开的文件
PROCEDURE UTL_FILE.FCLOSE_ALL;
在结束程序时要确保所有打开的文件已关闭,可使用FCLOSE_ALL
也可以在EXCEPTION使用,当异常退出时,文件也会被关闭。
EXCEPTION
WHEN OTHERS
THEN
UTL_FILE.FCLOSE_ALL;
... other clean up activities ...
END;
注意:当使用FCLOSE_ALL关闭所有文件时,文件句柄并不会标记为NULL,使用IS_OPEN会返回TRUE。但是,那些关闭的文件不能执行读写操作(除非你再次打开文件)。
UTL_FILE.FCLOSE_ALL会产生以下异常
UTL_FILE.WRITE_ERROR
其他的资料
0.为避免目录修改导致程序的修改,目录可以定义为一个常量,或ORACLE的directory。
1.fopen的模式: R(只读),W(读写,且首先清除原有数据),A(读写,原有数据基础上追加数据)。
fopen的限制:
(1)目录和文件名必须合法
(2)目录必须存在
(3)若为R模式,文件必须存在
(4)若为W模式,若文件不存在,则自动创建
(5)若为A模式,则文件必须存在
2.is_open:检查文件是否打开(其实只检查句柄是否为空,比如fclose_all关闭的文件,is_open仍返回true)。
3.get_line:读取一行数据到varchar2变量中。
nvarchar2数据使用get_line_nchar;raw数据使用get_raw。
读取到文件末尾,产生no_data_found异常。还有如下三种情况也会产生no_data_found异常
(1)无返回行的select
(2)pl/sql集合中未定义的行
(3)使用dbms_lob读取bfile文件至末尾。
所以以上四种no_data_found情况在一个pl/sql块中,要区分捕获异常
4.put
9.fclose:若关闭前缓冲区中仍有未写入文件的数据,则触发write_error异常
.fclose_all:关闭所有打开的文件。关闭后,所有文件的句柄不变(仍为非NULL),例如测试中
步骤3使用fclose_all关闭文件,而is_opened仍为TRUE。但此时文件以不可读写。
原因:fclose传入文件句柄参数,且为IN OUT模式,调用后将句柄设置为NULL,而fclose_all
并未传入任何文件句柄参数,所以并未修改文件句柄的值(仍保持原值)。
6.frename:可以重命名文件,也可重命名路径(相当于FCOPY+FREMOVE),也可都改变
7.putf:put format
8.fgetattr:获取文件属性(是否存在,大小,块大小)
*/
PROCEDURE prc_utl_file
IS
file_read_handle utl_file.file_type;
file_write_handle utl_file.file_type;
is_opened BOOLEAN;
v_one_line VARCHAR2(1000);
b_file_exist BOOLEAN;
n_file_length NUMBER(10,2);
bi_block_size BINARY_INTEGER;
BEGIN
--1.读/读写模式打开文件
file_read_handle := utl_file.fopen('TEST_UTL_FILE_DIR_READ', 'orcl_ora_396.trc', 'R');
file_write_handle := utl_file.fopen('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE.txt', 'W');
--2.检查文件是否打开
is_opened := utl_file.is_open(file_read_handle);
IF is_opened THEN
dbms_output.put_line('file is opened');
ELSE
dbms_output.put_line('file is not opened');
END IF;
--3.读文件
LOOP
BEGIN
utl_file.get_line(file_read_handle, v_one_line);
dbms_output.put_line(v_one_line);
-- 4.将读入结果写入新文件中
utl_file.put(file_write_handle, v_one_line);
utl_file.new_line(file_write_handle, 2);
--utl_file.put_line(file_write_handle, v_one_line);
--utl_file.put_line(file_write_handle, v_one_line, TRUE);
EXCEPTION
WHEN no_data_found THEN
EXIT;
WHEN OTHERS THEN
dbms_output.put_line('error1:'||SQLERRM);
EXIT;
END;
END LOOP;
--5.关闭文件
utl_file.fclose(file_read_handle);
--6确认所有未决的数据都写到物理文件中
--utl_file.fflush(file_write_handle);
utl_file.fclose(file_write_handle);
--utl_file.fclose_all;
--6.检查文件是否关闭
is_opened := utl_file.is_open(file_read_handle);
IF is_opened THEN
dbms_output.put_line('file is still opened');
ELSE
dbms_output.put_line('file is already closed');
END IF;
--7.拷贝文件
utl_file.fcopy('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE.txt', 'TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY.txt', 1, 10);
--8.删除文件
utl_file.fcopy('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE.txt', 'TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY_DELETE.txt', 1, 10);
utl_file.fremove('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY_DELETE.txt');
--9.重命名
--utl_file.frename('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY.txt', 'TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY_DELETE_RENAME.txt', FALSE);
--10.获取重命名后的文件属性
utl_file.fgetattr('TEST_UTL_FILE_DIR_WRITE', 'TEST_UTL_FILE_DIR_WRITE_COPY.txt',b_file_exist,n_file_length, bi_block_size);
IF b_file_exist THEN
dbms_output.put_line('n_file_length:'||n_file_length||'\n'||'bi_block_size'||bi_block_size);
END IF;
END;
utl_file包的使用的更多相关文章
- ORACLE之UTL_FILE包详解
1 Utl_File包简介Oracle的UTL_FILE包用来实现对磁盘文件的I/O操作.(1)Oracle10g之前的版本需要指定utl_file包可以操作的目录. 方法: ...
- oracle读写文件--利用utl_file包对磁盘文件的读写操作
oracle读写文件--利用utl_file包对磁盘文件的读写操作 摘要: 用户提出一个需求,即ORACLE中的一个表存储了照片信息,字段类型为BLOB,要求能导出成文件形式. 本想写个C#程序来做, ...
- Oracle之UTL_FILE 包用法详解
[转自] http://zhangzhongjie.iteye.com/blog/1903024 UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等)和服 ...
- oracle中utl_file包读写文件操作实例学习
在oracle中utl_file包提供了一些操作文本文件的函数和过程,学习了一下他的基本操作 1.创建directory,并给用户授权 复制代码 代码如下: --创建directory create ...
- UTL_FILE 包使用介绍
Postgresql 不支持 package功能,这给oracle 向 postgresql迁移增加了很多迁移工作.人大金仓Kingbase数据库实现了类似 oracle package 功能,并提供 ...
- Oracle学习笔记十四 内置程序包
扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...
- UTL_FILE
在PL/SQL中,UTL_FILE包提供文本文件输入和输出功能. 可以访问的目录通过初始化参数UTL_FILE_DIR设置. 注意:UTL_FILE只能读取服务器端文本文件,不能读取二进制文件.这时候 ...
- PL/SQL之--包
一.包 包是一组相关过程.函数.常量.变量.游标.异常等PL/SQL程序设计元素的组合.它类似于C++和Java中的类,其中变量相当于类中的成员变量,过程和函数相当于类中的方法.通过使用包,可以使开发 ...
- 利用utl_file来读取文件.
以前写过用external table来加载trace文件,详情参考下面链接. http://www.cnblogs.com/princessd8251/p/3779145.html 今天要做到是用U ...
随机推荐
- Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- JQuery插件使用之Validation 快速完成表单验证的几种方式
JQuery的Validation插件可以到http://plugins.jquery.com/上去下载.今天来分享一下,关于这个插件的使用. 简易使用 这第一种方式可谓是傻瓜式的使用,我们只需要按照 ...
- Scala actor的使用
Actor 为什么需要Actor? Actor的本质即万物皆Actor, Actor之间只有发送消息这一种通信方式.例如,无论是管理员让工作者干活,还是工作者把成果交还给管理员,它们之间也要通过发送消 ...
- scala for spark
写了点scala的内容,方便看spark源码,估计一两天就能看完,内容比较粗浅. 下载地址: http://download.csdn.net/detail/lsshlsw/7983541
- UNIX环境高级编程——Linux终端设备详解
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备.tty是Teletype的缩写.Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype ...
- leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题
三星机试也考了类似的题目,只不过是要针对给出的数独修改其中三个错误数字,总过10个测试用例只过了3个与世界500强无缘了 36. Valid Sudoku Determine if a Sudoku ...
- windows下实现win32俄罗斯方块练手,编程的几点心得
编程珠玑2阅读笔记: 1.使用c语言性能监视器,完成对代码的调优工作 2.关联数组: 拓扑排序算法,可以用于当存在遮挡的时候决定三维场景的绘制顺序. 3.小型算法中的测试与调试工具 脚手架程序:&l ...
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是Jav ...
- 11 PopupMenu菜单和代码例子
PopupMenu 弹出式菜单 API 11以上可用 1. 获取弹出菜单的对象 2. 在res里的menu添加菜单项 3. 将布局里的菜单项 给弹出菜单 4. 进行监听弹出菜单 5. 展示出弹出菜单 ...
- hadoop端口使用配置总结(非常好的总结)
转自http://www.aboutyun.com/thread-7513-1-1.html Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以 ...