首先看一下oracle 脚本

  1. /* # $Header: HTMomse12.sql 12.0.4 20121015 Support $
  2.  
  3. #+======================================================================================+
  4. #| Copyright (c) 2002 Oracle Corporation Redwood Shores, California, USA |
  5. #| Oracle Support Services. All rights reserved |
  6. #+======================================================================================+
  7.  
  8. #========================================================================================
  9. # PURPOSE: This script will collect information related to a sales order
  10. # transaction and it's Workflow processes. This script should be
  11. # run whenever there are problems related to a sales order
  12. # transaction, including processes like Pick Release, Shipping,
  13. # Invoice interface.
  14. #
  15. # FILE NAME: HTMomse12.sql
  16. # FILE VERSION: 12.0.4
  17. # PRODUCT: Oracle Order Management
  18. # PRODUCT VERSIONS: 12.0 (and above)
  19. # PLATFORM: Generic
  20. # PARAMETERS: Order_Number, Header_Id (opt), Line_Id (opt)
  21. #========================================================================================
  22.  
  23. # USAGE: sqlplus apps/apps @HTMomse12.sql
  24. #
  25. # This script requires a header_id to be passed in as a parameter ONLY if there are
  26. # multiple header_id's for the order requested. If there is only one header_id returned
  27. # after inputting the order number, simply hit enter and this header_id will be assumed.
  28. #
  29. # Entering a line_id is only required when you wish to have output for one order line.
  30. # Otherwise, hit enter without entering a line_id and all lines will be output in the
  31. # script.
  32. #
  33. # The script writes to an output file named HTMomse12_<ordernumber>.html on DB Server
  34. # under 'utl_file_dir', this file may be viewed in any HTML browser.
  35. #
  36. */
  37.  
  38. set term off;
  39. /*
  40. #=========================================================================================
  41. # CHANGE HISTORY:
  42. This script is based on HTMomse11i version 7.5.1, for the complete
  43. change history please see HTMomse11i (Note 133464.1)
  44.  
  45. From HTMomse11i:
  46. 31-MAR-00 Created rnmercer
  47. 12-DEC-00 Major modifications to the look of the report including rnmercer
  48. abreviated column names for flags, etc. A legend cross
  49. referencing the abreviations is included in the output.
  50. Got rid of the need to input the org_id. It is set via
  51. derived data from the header_id.
  52. 17-MAY-01 Fix the line number to display all 5 numbers rnmercer
  53. line.shipment.option.component.service
  54. 05-DEC-01 Changed format of output filename as part of the iTar
  55. automated scripting initiative. rodavid
  56. 13-JUN-02 Modified to change version numbering to match Repository rodavid
  57. 02-APR-04 Modified to create HTML output file and included basic
  58. 14-APR-04 verifications to help the Analysis rijames
  59. 14-APR-04 include table ONT_WF_SKIP_LOG on header and lines rijames
  60. 01-NOV-07 Changed output function from DBMS_OUTOUT for UTL_FILE, rijames Ver. 7.5
  61. due to size limitations on DBMS_OUTPUT function.
  62. Output file will now be located on DB Server under 'utl_file_dir'.
  63. Script will printout the filename and location.
  64. Added some columns as requested by Support.
  65.  
  66. For HTMomse12:
  67. 09-JAN-08 Created as copy of HTMomse11i 7.5.1 rijames
  68. 11-JAN-08 Modified set environment using rodavid script rijames
  69. Exclude IC tables (for OPM) as now OPM information is
  70. contained on OM/WSH base tables.
  71. 14-JAN-08 Corrected conditions for sections to use UPPER() when rijames
  72. answer is provided on lower case.
  73. 04-FEB-08 Move INVentory and OM Interface Flags after the Release rijames Ver 12.0.2
  74. status field.
  75. Correction on decode of the Hold Entity Code, label for
  76. code 'W' is changed to 'Warehouse' (from 'Workflow').
  77. 06-FEB-08 Add outer join to MTL_SALES_ORDERS to print when Order rijames
  78. Type definition has been deleted.
  79. Move Parameters summary to top of output.
  80. Modify to handle Orders with no lines, only Header
  81. information will be printed.
  82. 07-FEB-08 Add Hostname on printout for ouput location. rijames
  83. 05-MAR-08 Add OPM fields on ORDER_LINES and most MTL queries, rijames
  84. MTL_TRANSACTION_LOT_NUMBERS table included on MTL queries.
  85. 06-SEP-11 Correct Header on RA_INTERFACE_TABLE field rijames Ver 12.0.3
  86. RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6 (was Line_ID_5)
  87. 06-SEP-11 Add transaction date and transaction interface id to rijames
  88. MTL_TRANSACTIONS_INTERFACE.
  89. 06-SEP-11 Add transaction date to MTL_MATERIAL_TRANSACTIONS_TEMP. rijames
  90. 06-SEP-11 Add transaction date to MTL_MATERIAL_TRANSACTIONS. rijames
  91. 06-SEP-11 Add transaction date to MTL_UNIT_TRANSACTIONS. rijames
  92. 16-SEP-11 Add table MTL_SERIAL_NUMBERS. rijames
  93. 22-SEP-11 Add option to All or only first 10 records from tables rijames
  94. MTL_UNIT_TRANSACTIONS (MUT), WSH_SERIAL_NUMBERS (WSN)
  95. and MTL_SERIAL_NUMBERS
  96. 26-SEP-11 Add multiple Close and Reopen of Output file, so in case rijames
  97. of SQL failure only a few tables are not printed.
  98. 29-SEP-11 Add additional fields to ORGANIZATIONS listing. rijames
  99. 17-OCT-11 Add 'SERIAL NUMBER Details' on Parameters Listing rijames
  100. 17-OCT-11 Modify title for column Transaction_Interface_Id for rijames
  101. table MTL_TRANSACTIONS_INTERFACE
  102. 17-OCT-11 Modify title color for column INV_INTERFACED_FLAG for rijames
  103. table WSH_DELIVERY_DETAILS, also the title bar will be
  104. printed every 35 rows instead of every 50.
  105. 16-NOV-11 Split printout for ORGANIZATIONS and ACCOUNTING PERIODS rijames
  106. 10-FEB-12 Correct print sequence on Order Lines (Ordered Item) rijames
  107. 10-FEB-12 Print Column Headers for Order Lines every 35 lines rijames
  108. 10-FEB-12 Modify query for ACCOUNTING PERIODS to include Period rijames
  109. for lines not Shipped yet.
  110. 14-MAR-12 Modify 'Serial Num. Details' title on Parameters Listing rijames
  111. 14-MAR-12 Add new close/open after ACCOUNTING PERIODS table rijames
  112. 04-MAY-12 Correct printout for 'UNPICKED LINES' table. rijames
  113. 11-OCT-12 Include WMS Rules tables. rijames
  114. 11-OCT-12 Include link to table WMS Rules on Tables Index. rijames
  115. 11-OCT-12 Change version to 12.0.4 rijames
  116. 15-OCT-12 Include line number and Internal Result code on lines rijames
  117. Workflow table
  118. 15-OCT-12 Include Internal Result code on header Workflow table rijames
  119. 15-OCT-12 Correct OE_LINES FULFIL_QTY field printed rijames
  120. 15-MAR-13 Set WMS Information to Default to 'N' as the file rijames
  121. created is too extense.
  122. 14-OCT-13 Sorting for Workflow lines corrected rijames
  123. 14-OCT-13 Change Version numbering to include date .yymmdd rijames
  124. 24-MAR-14 Change SQL to obtain utl_file_dir value rijames
  125. 24-MAR-14 Add field Source_line_set_id to Delivery Details query rijames
  126. 10-JUN-14 Correct WSH_DELIVERY_DETAILS (DET) table Headers rijames
  127. 10-JUN-14 Correct WSH_DELIVERY_DETAILS (CONTAINERS) columns order rijames
  128. 10-JUN-14 Add field Source Line Set Id to WSH_DELIVERY_DETAILS rijames
  129. #
  130. #========================================================================================
  131.  
  132. References
  133. ----------
  134. For documentation and white papers on the Order Management product suite go to Metalink,
  135. http://metalink.us.oracle.com, click on Top Tech Docs button -> E-Business Suite: ERP ->
  136. Distribution/Supply Chain -> OM Suite: Order Management.
  137. */
  138.  
  139. variable v_order_num varchar2(100);
  140. variable v_error number;
  141. variable v_line_tot number;
  142. variable v_line_cnt number;
  143. variable sales_ord_id number;
  144. variable v_op_unit number;
  145. variable v_head_cnt number;
  146. variable v_header_id number;
  147. variable v_head_only varchar2(1);
  148.  
  149. variable r_line_t varchar2(100);
  150. variable r_res_q number;
  151. variable r_wdd number;
  152. variable r_flag varchar2(100);
  153. variable r_pro_na varchar2(100);
  154. variable r_act_na varchar2(100);
  155. variable r_result varchar2(100);
  156. variable r_act_s varchar2(100);
  157. variable r_error number;
  158. variable is_opm varchar2(2);
  159.  
  160. variable all_or_top10 varchar2(100);
  161.  
  162. set arraysize 4;
  163. set pagesize 58;
  164. set term on;
  165. set linesize 145;
  166. set underline =;
  167. set verify off;
  168. set serveroutput on size 1000000;
  169. set feedback off;
  170.  
  171. -- OE_ORDER_HEADERS
  172. column HEADER_ID format 99999999;
  173. column ORGANIZATION_NAME format A30;
  174. column TYPE_ID format 99999999;
  175. column TYPE_NAME format A15;
  176. column ORD_DATE_TYPE format a15;
  177. column ORD_NUM format 999999999;
  178. column VERS format 9999;
  179. column ORD_TYPE_ID format 999999999;
  180. column FLOW_CODE format a22;
  181. column CUST_NAME format A20;
  182. column CUST_ID format 999999999;
  183. column SHIP_TO_ID format 999999999;
  184. column SHIP_TO format A12;
  185. column SOLD_TO_ID format 999999999;
  186. column PO_NUMBER format A09;
  187. column DATE_ORD format A15;
  188. column PL_ID format 99999;
  189. column PRICE_LIST_NAME format A15;
  190. column PL_NAME format A15;
  191. column SHIP_PART format A09;
  192. column ORGANIZATION format 9999999;
  193. column WH_ID format 99999;
  194. column DEMAND_CLASS format A12;
  195. column OP format A05;
  196. column CN format A05;
  197. column BK format A05;
  198. column DRP_SHP format A07;
  199. column CYCLE_ID format 99999999;
  200. column ORD_SRC_ID format 99999999;
  201. column TRANS_TYPE format A12;
  202. column CATEGORY format A08;
  203. column SP format A05;
  204. column CAT format A06;
  205.  
  206. -- WF_NOTIFICATIONS
  207. column TO_USER format a22;
  208. column ORIG_RECIP format a10;
  209. column RECIP_ROLE format a10;
  210. column MAIL_STAT format a9;
  211. column MESSAGE_NAME format a25;
  212. column SUBJECT format a45;
  213.  
  214. -- OE_TRANSACTION_TYPES_ALL
  215. column ORDER_TYPE_NAME format A25;
  216. column TYPE_NAME format A15;
  217. column CONSTANTOE format A15;
  218. column SHIP_PRIORITY format A13;
  219. column SYS_REQD format A08;
  220.  
  221. -- OE_ORDER_LINES_ALL
  222.  
  223. column LINE_ID format 99999999;
  224. column LINE format A08;
  225. column LINE_NUM format A08;
  226. column LINE_CTG format A09;
  227. column CONFIG_HDR_ID format B99999999;
  228. column SSCHED format B9999;
  229. column PRT_LINE_ID format B99999999;
  230. column ATO_LINE_ID format B99999999;
  231. column LNK_LINE_ID format B99999999;
  232. column SHP_LINE_ID format B99999999;
  233. column SRC_LINE_ID format B99999999;
  234. column SRV_LINE_ID format B99999999;
  235. column ITEM_ID format 99999999;
  236. column ITEM format A17;
  237. column ORD_Q format 999999.99;
  238. column ORG_Q format 999999.99;
  239. column REQ_Q format 999999.99;
  240. column PRICE format $999999999.99;
  241. column SHP_Q format 999999.99;
  242. column Q_INC format 999999.99;
  243. column SHN_Q format 999999.99;
  244. column SHP_Q format 999999.99;
  245. column FUL_Q format 999999.99
  246. column RES_Q format 999999.99;
  247. column INC_Q format 999999.99;
  248. column CAN_Q format 999999.99;
  249. column LN_SET_TY format A11;
  250. column SH_SET_TY format A11;
  251. column AR_SET_TY format A11;
  252. column REQUEST_D format A15;
  253. column SCHEDUL_D format A15;
  254. column SOURCE_TYPE format A11;
  255. column DEM_CLASS format A10;
  256. column LINE_DETAIL_ID format 9999999999;
  257. --column OPEN_FL format A07;
  258. --column CANC_FL format A07;
  259. --column BOOKED format A07;
  260. column SH format A05;
  261. column VD format A05;
  262. column FF format A05;
  263. column SUBINV format A10;
  264. column SSC format A05;
  265. column SI format A05;
  266. column II format A05;
  267. column INVC_INT_STAT format A14;
  268. column SHIPPABLE format A08;
  269. column TRANSACTABLE format A08;
  270. column RESERVABLE format A08;
  271. column RELEASED format A08;
  272. column FOR_REVENUE format A08;
  273. column DELIVERY format 9999999999;
  274.  
  275. column SET_TYPE format A15;
  276. column SET_NAME format A10;
  277. column STATUS format A06;
  278. column SCH_SHP_DT format A10;
  279. column SCH_ARV_DT format A10;
  280. column CARRIER format A15;
  281. column SHIP_METHOD format A15;
  282.  
  283. column wf_act_code format a11;
  284. column wf_result format a9;
  285. column hist_comments format a45;
  286. column hist_type format a12;
  287. -- column PRICE format $9999999999.99;
  288.  
  289. -- WORKFLOW TABLES
  290. column ITEM_KEY format A08;
  291. column FLOW_PROCESS format A22;
  292. column RESULT_CODE format A15;
  293. column RESULT format A15;
  294. column ASSIGNED_USER format A10;
  295. column ERROR_NAME format A19;
  296. column PROCESS_NAME format A25;
  297. column ACTIVITY_NAME format A25;
  298. column ERROR_ACTIVITY_NAME format A31;
  299. column ACT_STATUS format A10;
  300. column HEAD_ID format A08;
  301. column LIN_ID format A08;
  302. column NOTIF_ID format 99999999;
  303. column ERROR_NAME format A14;
  304. column ERR_RETRY_ROLE format A14;
  305. column ERR_RETRY_USER format A14;
  306. column BEGIN_DATE format A18;
  307. column END_DATE format A18;
  308.  
  309. column ORD_TYPE_NAME format A20;
  310. column CONSTANTOE format A12;
  311. column DEMAND_ID format 9999999999;
  312. column PARDEM_ID format 9999999999;
  313. column DS_HEADER_ID format 99999999;
  314. column DS_LINE format A08;
  315. column RSV_QTY format 9999999.99;
  316. column SAT_QTY format 9999999.99;
  317. column PND_QTY format 9999999.99;
  318. column REQUIRD_D format A15;
  319. column TY format 99999;
  320. column UP format 99999.99;
  321. column MRP format 99999.99;
  322. column ATP format 99999.99;
  323. column PICKING_HEADER_ID format 9999999999;
  324. column PICK_SLIP format 9999999999;
  325. column BATCH_ID format 99999999;
  326. column STATUS_CODE format A11;
  327. column BATCH_NAME format A30;
  328. column PICKING_LINE_ID format 9999999999;
  329.  
  330. column CONFIRMED format A09;
  331. column RA_INTERFACE format A12;
  332. column IN_INTERFACE format A15;
  333. column PICK_LN_DTL_ID format 9999999999;
  334. column SUBINVENTORY format A12;
  335. column REV format A05;
  336. column LOT_NUMBER format A15;
  337. column SERIAL_NUMBER format A20;
  338. column LOCATION_ID format 9999999999;
  339. column ORG format A05;
  340. column ATO format A05;
  341. column OPT format A05;
  342. column CFG format A05;
  343. column SHIP_MC format A07;
  344. column SHIP_SET format 99999999;
  345. column ITEM_TYPE format A09;
  346. column LINE_TYPE format A09;
  347. column ENTER format A10;
  348. column CANCEL_ORD format A10;
  349. column CANCEL_LIN format A10;
  350. column CTG format A05;
  351. column INCL format A05;
  352. column CONF format A05;
  353. column WIP_RSV format 9999999;
  354. column WIP_COM format 9999999;
  355. column COMP_CODE format A10;
  356. column SRC_TYP format 9999999;
  357. column DEM_TYP format 9999999;
  358. column WIP_ID format B99999999;
  359. column JOB_NAME format A15;
  360. column JOB_STAT format A12;
  361. column UOM format A5;
  362. column REL_FL format A06;
  363. column SHIP_FL format A07;
  364. column FOR_REV format A07;
  365. column AUTOSCH format A06;
  366. column DEP_NAME format a10;
  367. column ORG_ID format 99999;
  368. column WSH_ID format 9999999;
  369. column SOURCE_CD format a12;
  370. column STAT_CODE format A11;
  371. column CLOSED_DT format A09;
  372. column FREIGHT format A09;
  373. column PLN_DEP_DT format A10;
  374. column ACT_DEP_DT format A10;
  375. column PLN_DEP_ID format 9999999999;
  376. column ACT_DEP_ID format 9999999999;
  377. column LOAD_ORD_FLG format A12;
  378. column DEL_SEL format A07;
  379. column DEP_SEL format A07;
  380. column REL_STAT format A08;
  381. column LIN_STAT format A08;
  382. column WIP_ENT_ID format 9999999999;
  383. column CONFIRM_D format A09;
  384. column INVC_STAT format A10;
  385. column INVC_INTF format A10;
  386. column SHIP_STAT format A10;
  387. column SHIP_INTF format A10;
  388. column LOT format A10;
  389. column REV format A05;
  390. column SERIAL_NUM format A10;
  391. column LOC_ID format 99999999;
  392. column RESV_FL format A07;
  393. column TRAN_FL format A07;
  394. column SCHED_STAT format A10;
  395. column INVOICE_TRIGGER format A15;
  396. column SOURCING_STATUS format A15;
  397. column INVOICING_STATUS format A16;
  398. column CANCELLED_FLAG format A14;
  399. column OPEN_FLAG format A09;
  400. column CONSOLIDATION_STATUS_CODE format A25;
  401. column CONSOLIDATION_PREF_FLAG format A23;
  402. column PURCHASE_ORDER_NUM format A18;
  403.  
  404. column DEL_ID format 9999999;
  405. column DEL_NAME format A10;
  406.  
  407. -- PO_REQUISITION_INTERFACE_ALL
  408. column AUTH_STATUS format A11;
  409. column DEST_TYPE format A10;
  410. column SRC_CODE format A11;
  411. column SRC_TYPE_CODE format A13;
  412.  
  413. -- PO_REQUISITION_HEADERS_ALL
  414. column REQ_NUMBER format A10;
  415. column SUMMARY format A07;
  416. column XFR_OE_FLAG format A11;
  417. column REQ_TYPE format A11;
  418. column ENABLED format A07;
  419.  
  420. column ITEM_DESC format A40;
  421. column CANC format A05;
  422. column ENC_FL format A06;
  423. column RFQ format A05;
  424. column SRC_TYPE format a09;
  425. column SRC_ORG format 9999999;
  426.  
  427. -- PO_HEADERS
  428. column PO_NUM format A06;
  429.  
  430. -- MTL_SUPPLY
  431. column SUP_TYPE format a08;
  432. -- MTL_RESERVATIONS
  433. column SHIP_READY format A12;
  434. column SS_TYPE_ID format A11;
  435. -- WSH_TRIPS
  436. column TRIP_ID format 9999999;
  437. column TRIP_NAME format A10;
  438. column PLND format A05;
  439. column VEH_NUM format A10;
  440. column CARR_ID format 9999999;
  441. column DET_Q format 99999;
  442. column DS_TYPE format 9999999;
  443. column ROUTE_ID format 99999999;
  444. column VEH_ORG_ID format 9999999999;
  445.  
  446. -- WSH_TRIP_STOPS
  447. column STOP_ID format 99999999;
  448. column SEQ_NUM format 9999999;
  449. column STOP_LOC_ID format 99999999999;
  450. column PLN_DEP_DATE format A15;
  451. column PLN_ARV_DATE format A15;
  452. column ACT_DEP_DATE format A15;
  453. column ACT_ARV_DATE format A15;
  454. column PEND_INTERF format A11;
  455.  
  456. -- WSH_DELIVERY_LEGS
  457. column LEG_ID format 9999999;
  458. column LOAD_TENDER_STAT format A15;
  459.  
  460. -- WSH_NEW_DELIVERIES DEL
  461. column DEL_NAME format A12;
  462. column BOOKING_NUM format A12;
  463. column WAYBILL format A12;
  464. column ACCEPTED format A15;
  465. column PICKUP_DT format A15;
  466. column DROPOFF_DT format A15;
  467.  
  468. -- WSH_DELIVERY_ASSIGNMENTS ASG
  469. column ACTIVE format A06;
  470.  
  471. -- WSH_DELIVERY_DETAILS
  472. column REL_STATUS format A17;
  473. column STA format 99999;
  474. column STB format 99999;
  475. column HOLD_CODE format A09;
  476. column SMC format A05;
  477. column SUB format A09;
  478. column CUR_SUB format A09;
  479. column ORG_SUB format A09;
  480. column REV format A05;
  481. column LOT format A05;
  482. column SERIAL format A10;
  483. column LOC_ID format 99999999;
  484. column SHIP_METH format A10;
  485. column OMI format A05;
  486. column INI format A05;
  487. column MVT_STATUS format A10;
  488. column INV_INT format A07;
  489. column CONT_NAME format A15;
  490. column CONT_TYPE format A10;
  491. column UNIT_NUM format A08;
  492. column CONTAINER format A09;
  493. column REQ_DATE format A15;
  494. column MVT_STAT format A08;
  495. column DEL_DET_ID format 9999999999;
  496. column RELEASE_STAT format A15;
  497. column REQ_Q format 999999.99;
  498. column DLV_Q format 999999.99;
  499. column SRQ_Q format 999999.99;
  500. column BO_Q format 999999.99;
  501. --column CAN_QTY format 9999999;
  502. column SHIP_TO_ID format 999999999;
  503. column LINE_REQ_QTY format 999999999999;
  504. column TYPE format A05;
  505. column MO_LINE_ID format 9999999999;
  506. column DELIV_ID format 999999999;
  507. column SH_FROM_ID format 999999999;
  508. column SH_TO_ID format 99999999;
  509.  
  510. --WSH_PICK_SLIP_V
  511. column LINE_STAT format A11;
  512. column FROM_SUB format A09;
  513. column TO_SUB format A09;
  514. column DETL_DATE format A15;
  515.  
  516. column LINE_STATUS format A11;
  517.  
  518. --MTL_TXN_REQUEST_LINES_V
  519. column REQ_NUM format A10;
  520. column MV_LINE_STAT format A14;
  521. column MO_NUMBER format A09;
  522. column MOVE_TYPE_NAME format A14;
  523. column TRNS_SRC_TYPE format A13;
  524. column TRNS_TYPE_NAME format A30;
  525. column TRNS_ACTION format A15;
  526. column LOT_NUM format A10;
  527.  
  528. --MTL_MATERIAL_TRANSACTIONS_TEMP
  529. column ERROR_EXPL format A10;
  530. -- RA_CUSTOMER_TRX
  531. -- RA_CUSTOMER_TRX_LINES
  532. column ORD_LINE_NUM format 999999999999;
  533. column TRX_NUMBER format A10;
  534. column CONTEXT format A12;
  535. column Order_Num_1 format A11;
  536. column Order_Type_2 format A12;
  537. column Delivery_3 format A10;
  538. column WayBill_4 format A09;
  539. column Line_ID_5 format A09;
  540. column Pick_Line_Id_7 format A14;
  541. column Bill_Lading_8 format A13;
  542. column Warehouse_10 format A12;
  543. column SOURCE format A30;
  544. column TAX_FL format A06;
  545.  
  546. column QTY_ORD format 9999999.99;
  547. column QTY format 9999999.99;
  548. column ORD_LINE_NUM format A12;
  549. column HEAD_CAT format A8;
  550. column CURR format A4;
  551. column TAX_EX_FL format A09;
  552. column TERR_SEG1 format A09;
  553. column TERR_SEG2 format A09;
  554. column TERR_SEG3 format A09;
  555.  
  556. column MESSAGE_TEXT format A145;
  557. column INVALID_VALUE format A30;
  558.  
  559. column STATUS format a8;
  560.  
  561. column ERR_TYPE_KEY format a14;
  562. column ASGND_USER format a10;
  563. column ERR_PROCESS_NAME format a18;
  564. column ERR_ACTIVITY_NAME format a22;
  565.  
  566. column hold_name format a22;
  567. column hold_type format a12;
  568. column WF_ACTIVITY format a15;
  569. column ENTITY format a8;
  570. column ENTITY2 format a8;
  571. column HOLD_UNTIL format a18;
  572. column RELEASE_REASON format a14;
  573. column H_REL format a5;
  574. column S_REL format a5;
  575.  
  576. column AF format A5;
  577. column LIST_TYPE_CODE format a14;
  578. column UA format A5;
  579. column UF format A5;
  580. column AP format A5;
  581. column ARITH_OP format a8;
  582. column TAX_CODE format a12;
  583. column INF format A5;
  584. column EF format A5;
  585. column CHG_TY_CD format a9;
  586. column AC format A5;
  587. column PI format A5;
  588. column CD format A5;
  589. column LIST_LN_NO format a10;
  590. column LK format 99999;
  591. column PP format 99999;
  592. column MOD_LVL format a7;
  593. column PERC format 9999;
  594.  
  595. column STATUS format a6;
  596.  
  597. column msg_Source format a14;
  598.  
  599. column error format a30;
  600. column ITEM_DESC format a25;
  601. column PRICE format $999999999.99
  602.  
  603. column REQ_NUM_IK format A9;
  604.  
  605. column ACCEPT_REQD format A10;
  606. column CLS_STAT format A08;
  607. column CONF_ORD format A08;
  608. column CURR_CODE format A05;
  609. column ENABLED format A07;
  610. column FROZEN format A06;
  611. column SUMM format A05;
  612. column TYPE format A10;
  613. column ITEM_KEY format A09;
  614. column SHIP_TO format 9999999;
  615.  
  616. column PO_LINE format 9999;
  617. column FIRM format A05;
  618. column ITEM_DESC format A40;
  619.  
  620. column PO_NUM_IK format A9;
  621. column ERROR_N format A7;
  622.  
  623. column SRC_DOC format a9;
  624. column SHP_LINE_STATUS format a15;
  625. column RCV_Q format 99999;
  626. column TRANS_TYPE format A10;
  627. column INSPECT_STAT format A13;
  628. column INTF_SRC format A11;
  629. column SRC_DOC_CODE format A12;
  630. column QTY format 9999;
  631.  
  632. column PROC_MODE format a10;
  633. column DEST_TYPE format a9;
  634. column INSP_STAT format a13;
  635. column INSP_SRC format a8;
  636. column PROC_STAT format a9;
  637. column RCPT_SRC format a8;
  638. column TRNS_STAT format a9;
  639. column TRNS_TYPE format a9;
  640.  
  641. column error_wie format a100;
  642.  
  643. column status format a9;
  644. column firm format 9999;
  645. column WIP_SUP_TYPE format a13;
  646. column JOB_NAME format a8;
  647. column TRANS_TYPE format a19;
  648.  
  649. column SRC_CODE format a8;
  650. column PHS format 99999;
  651. column STAT_TY format 9999999;
  652. column STAT format 9999;
  653. column LOAD format 9999;
  654.  
  655. column status format a9;
  656. column firm format 9999;
  657. column WIP_SUP_TYPE format a13;
  658. column JOB_NAME format a8;
  659. column TRANS_TYPE format a19;
  660.  
  661. column SRC_CODE format a8;
  662. column PHS format 99999;
  663. column STAT_TY format 9999999;
  664. column STAT format 9999;
  665. column LOAD format 9999;
  666.  
  667. column STOP_DESCRIPTION format A58;
  668.  
  669. column GRS_WT format 999999;
  670. column FL_PER format 999.99;
  671. column VOL format 9999;
  672. column VOL_UOM format a07;
  673. column CF format A05;
  674. column WT_UOM format a06;
  675. column FOB_CODE format a11;
  676. column FRT_TERMS format a9;
  677.  
  678. column LCK format 99999;
  679. column PROCESS format 9999999;
  680. column ERROR_CODE format A30;
  681. column ERROR_EXPL format A60;
  682.  
  683. column FRT_NAME format a30;
  684. column FRT_TYPE format a15;
  685. column FRT_LEVEL format a15;
  686. column QTY format 9999;
  687.  
  688. column PRM_Q format 99999;
  689. column DLV_Q format 99999;
  690. column DTL_Q format 99999;
  691.  
  692. column LCK format A05;
  693. column PROCESS format A07;
  694. column ERROR_CODE format A11;
  695. column ERROR_EXPL format A30;
  696.  
  697. column TRANS_TYPE format A11;
  698.  
  699. column QTY format 9999;
  700. column LINE_NUM format 99999999;
  701. column BATCH_SOURCE format a20;
  702. column SO_LIN format a06;
  703. column AR_ID format 99999;
  704. column IR_ID format 99999;
  705. column WH_ID_10 format a08;
  706. column PA_ID_11 format a08;
  707. column C_RATE format 999999;
  708. column TR format 9999;
  709. column EF format A05;
  710. column INTF_LINE_ID format 99999999999;
  711. column CRD_Q format 99999;
  712. column PRICE format $9999999.99;
  713.  
  714. column PO_NUMBER format A09;
  715. column COMP_FL format a07;
  716. column EXTD_AMT format $999,999.99;
  717. column REV_AMT format $999,999.99;
  718. column TF format A05;
  719. column SOURCE format A11;
  720. column INV_Q format 99999;
  721. column SHIP_VIA format A12;
  722.  
  723. Set heading on
  724.  
  725. WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
  726.  
  727. prompt
  728. accept order_number_selected prompt 'Please enter Sales Order number: '
  729. prompt
  730.  
  731. begin
  732.  
  733. :v_error := 0;
  734. :v_order_num := '&order_number_selected';
  735.  
  736. select count(*)
  737. into :v_head_cnt
  738. from oe_order_headers_all
  739. where
  740. order_number = :v_order_num;
  741.  
  742. if :v_head_cnt = 0 then
  743. RAISE no_data_found;
  744. end if;
  745.  
  746. if :v_head_cnt = 1 then
  747. select header_id
  748. into :v_header_id
  749. from oe_order_headers_all
  750. where order_number = :v_order_num;
  751. end if;
  752.  
  753. exception
  754. when no_data_found then
  755. dbms_output.put_line('ERROR - Invalid order number entered');
  756. dbms_output.put_line('ACTION - Script execution must be aborted');
  757. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  758. :v_error := 1;
  759. raise;
  760. when others then
  761. dbms_output.put_line('ERROR - Unable to retrieve order due to error: '||SQLERRM);
  762. dbms_output.put_line('ACTION - Script execution must be aborted');
  763. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  764. :v_error := 1;
  765. raise;
  766.  
  767. end;
  768. /
  769.  
  770. -- spool &out_file;
  771.  
  772. /* Display list of header_ids matching the order number entered */
  773. select
  774. ORD.HEADER_ID HEADER_ID,
  775. TYP.NAME ORDER_TYPE_NAME,
  776. ORD.ORDER_CATEGORY_CODE CATEGORY,
  777. ORD.ORG_ID ORG_ID,
  778. (select name
  779. from hr_operating_units
  780. where organization_id = nvl(ORD.ORG_ID,-99)) ORGANIZATION_NAME
  781. from
  782. OE_ORDER_HEADERS_ALL ORD,
  783. OE_TRANSACTION_TYPES_TL TYP,
  784. FND_LANGUAGES FLA
  785. where
  786. ORD.ORDER_NUMBER = :v_order_num
  787. and TYP.LANGUAGE = FLA.LANGUAGE_CODE
  788. and FLA.INSTALLED_FLAG = 'B'
  789. and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
  790. and :v_error = 0;
  791.  
  792. prompt
  793. accept header_id_selected prompt 'Please enter HEADER_ID from list above (optional): '
  794. prompt
  795.  
  796. /* Set client info context based on the org_id from sales order */
  797. begin
  798. select org_id
  799. into :v_op_unit
  800. from oe_order_headers_all ord
  801. where
  802. ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
  803.  
  804. mo_global.set_policy_context(p_access_mode => 'S', p_org_id => :v_op_unit); -- by rodavid
  805.  
  806. exception
  807. when no_data_found then
  808. dbms_output.put_line('ERROR - Invalid order number entered');
  809. dbms_output.put_line('ACTION - Script execution must be aborted');
  810. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  811. :v_error := 1;
  812. raise;
  813. when others then
  814. dbms_output.put_line('ERROR - Unable to retrieve order due to error: '||SQLERRM);
  815. dbms_output.put_line('ACTION - Script execution must be aborted');
  816. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  817. :v_error := 1;
  818. raise;
  819. end;
  820. /
  821.  
  822. begin
  823. select count(*)
  824. into :v_line_tot
  825. from oe_order_lines_all
  826. where header_id = nvl('&header_id_selected',:v_header_id);
  827.  
  828. if :v_line_tot = 0 then
  829. dbms_output.put_line('WARNING - Order selected does not have any lines');
  830. dbms_output.put_line('WARNING - Please hit CTL-C to abort');
  831. dbms_output.put_line('WARNING - If you chose to continue only Header information will be printed,');
  832. dbms_output.put_line('WARNING - all additional entries will be ignored.');
  833. :v_head_only := 'Y';
  834. else
  835. :v_head_only := 'N';
  836. end if;
  837. end;
  838. /
  839.  
  840. /* Display all line_ids associated with this order number */
  841. select
  842. substr(LIN.LINE_ID,1,15) LINE_ID,
  843. substr(to_char(LIN.line_number) ||
  844. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  845. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  846. decode(LIN.component_number, null, null,
  847. decode(LIN.option_number, null, '.',null)||
  848. '.'||to_char(LIN.component_number))||
  849. decode(LIN.service_number,null,null,
  850. decode(LIN.component_number, null, '.' , null) ||
  851. decode(LIN.option_number, null, '.', null ) ||
  852. '.'|| to_char(LIN.service_number)),1,10) LINE_NUM,
  853. ITM.SEGMENT1 ITEM,
  854. substr(LIN.LINE_CATEGORY_CODE,1,10) lin_cat,
  855. nvl(LIN.ORDERED_QUANTITY,0) Order_QTY,
  856. LIN.ORDER_QUANTITY_UOM uom,
  857. substr(LIN.FLOW_STATUS_CODE,1,20) Line_status,
  858. nvl(LIN.SHIPPED_QUANTITY,0) shipped,
  859. nvl(LIN.FULFILLED_QUANTITY,0) fulfilled,
  860. nvl(LIN.INVOICED_QUANTITY,0) invoiced,
  861. nvl(LIN.CANCELLED_QUANTITY,0) cancelled
  862. from
  863. OE_ORDER_LINES LIN,
  864. MTL_SYSTEM_ITEMS ITM
  865. where
  866. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  867. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  868. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  869. and LIN.OPTION_NUMBER IS NULL
  870. and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
  871. order by
  872. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  873. NVL(LIN.SORT_ORDER, '0000'),
  874. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  875. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  876. NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
  877. LIN.LINE_ID;
  878.  
  879. /* Display any header or line sets associated with this order */
  880. PROMPT
  881. PROMPT OE_SETS (SET)
  882.  
  883. select ST1.SET_ID SET_ID,
  884. ST1.SET_NAME SET_NAME,
  885. ST1.SET_TYPE SET_TYPE,
  886. ST1.HEADER_ID HEADER_ID,
  887. ST1.INVENTORY_ITEM_ID ITEM_ID,
  888. ST1.ORDERED_QUANTITY_UOM UOM,
  889. ST1.LINE_TYPE_ID LINE_TYPE_ID,
  890. nvl(LST.SYSTEM_REQUIRED_FLAG,'N') SYS_REQD,
  891. ST1.SET_STATUS STATUS,
  892. to_char(ST1.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') SCH_SHP_DT,
  893. to_char(ST1.SCHEDULE_ARRIVAL_DATE,'DD-MON-RR_HH24:MI:SS') SCH_ARV_DT,
  894. ST1.SHIP_FROM_ORG_ID SHIP_FROM,
  895. ST1.SHIP_TO_ORG_ID SHIP_TO_ID,
  896. ST1.SHIPMENT_PRIORITY_CODE SHIP_PRIORITY,
  897. ST1.FREIGHT_CARRIER_CODE CARRIER,
  898. ST1.SHIPPING_METHOD_CODE SHIP_METHOD,
  899. ST1.SHIP_TOLERANCE_ABOVE STA,
  900. ST1.SHIP_TOLERANCE_BELOW STB
  901. from OE_SETS ST1,
  902. OE_LINE_SETS LST
  903. where ST1.SET_ID = LST.SET_ID(+)
  904. and ST1.HEADER_ID = nvl('&header_id_selected',:v_header_id);
  905.  
  906. prompt
  907. accept line_id_selected prompt 'Please enter LINE_ID from list above(leave blank for all lines): '
  908.  
  909. begin
  910. if :v_line_tot > 0 then -- check for line_id
  911. begin
  912. select count(*)
  913. into :v_line_cnt
  914. from oe_order_lines_all
  915. where header_id = nvl('&header_id_selected',:v_header_id)
  916. and nvl('&line_id_selected',0) in (0,line_id);
  917.  
  918. if :v_line_cnt = 0 then
  919. RAISE no_data_found;
  920. end if;
  921.  
  922. exception
  923. when no_data_found then
  924. dbms_output.put_line('ERROR - Invalid line_id entered');
  925. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  926. dbms_output.put_line('.');
  927. :v_error := 1;
  928. raise;
  929. when others then
  930. dbms_output.put_line('ERROR - Unable to retrieve order line due to error: '||SQLERRM);
  931. dbms_output.put_line('ACTION - Please hit CTL-C to exit');
  932. dbms_output.put_line('.');
  933. :v_error := 1;
  934. raise;
  935. end;
  936. end if;
  937. end;
  938. /
  939.  
  940. WHENEVER SQLERROR CONTINUE;
  941.  
  942. prompt
  943. accept do_analysis prompt 'Do you want validation performed on this order (Default=Y): '
  944. prompt
  945.  
  946. prompt
  947. accept prt_wf prompt 'Do you want WorkFlow information printed? (Default=Y): '
  948. accept prt_price prompt 'Do you want Pricing information printed? (Default=Y): '
  949. accept prt_po prompt 'Do you want Purchasing information printed? (Default=Y): '
  950. accept prt_rec prompt 'Do you want Receiving information printed? (Default=Y): '
  951. accept prt_wip prompt 'Do you want Work In Progress information printed? (Default=Y): '
  952. accept prt_inv prompt 'Do you want Inventory information printed? (Default=Y): '
  953. accept prt_ar prompt 'Do you want Receivables information printed? (Default=Y): '
  954. prompt
  955. prompt Listing of tables for WMS could be extense, *** Note Default is No ***
  956. accept prt_wms prompt 'Do you want WMS information printed? (Default=N): '
  957. prompt
  958. prompt Listing of tables MTL_UNIT_TRANSACTIONS (MUT), WSH_SERIAL_NUMBERS (WSN)
  959. prompt and MTL_SERIAL_NUMBERS could be extense.
  960. accept det_cnt prompt 'Do you want complete listing (Y-All records N-only the first 10 records)? (Default=Y): '
  961. prompt
  962.  
  963. set heading off
  964.  
  965. def version_code='12.0.4.140610'
  966. def c1='_'
  967. def pref='HTMomse12'
  968. def suff='.html'
  969. def out_file='&pref&c1&order_number_selected&suff'
  970.  
  971. -- Printout the filename and location
  972. column DUMMY new_value out_dir noprint
  973. column DUMMY2 new_value host_nam noprint
  974. select substr(value,1,instr(value||',',',')-1) DUMMY
  975. from v$parameter where name = 'utl_file_dir';
  976.  
  977. select substr(machine,1,20) DUMMY2
  978. from v$session where upper(program) like '%SMON%';
  979.  
  980. Prompt Output file created on Database Server: "&host_nam"
  981. Prompt Complete path and filename: "&out_dir/&out_file"
  982.  
  983. set define '!'
  984. -- Tables
  985. def std='<table width=100% border=1 cellpadding=1 cellspacing=1>'
  986. def et=</Table>
  987. -- headers
  988. def sh='<TR bgcolor="#cccc99"><td><font face="arial" color="#336699"> <b><i>'
  989. def dh='</i></b></font></td><td><font face="arial" color="#336699"> <b><i>'
  990. def dhr='</i></b></font></td><td><font face="arial" color="#ff0000"> <b><i>'
  991. def eh='</i></b></font></td></tr>'
  992. -- def sh='<TR bgcolor="#cccc99"><td><b><i>'
  993. -- def dh='</i></b></td><td><b><i>'
  994. -- def eh='</i></b></td></tr>'
  995. -- lines
  996. def sld='<tr bgcolor="#f7f7e7"><td><font face="arial" size="-1">'
  997. def d='</font></td><td><font face="arial" size="-1">'
  998. def el='</font></td></tr>'
  999. -- def sld='<tr bgcolor="#f7f7e7"><td>'
  1000. -- def d='</td><td>'
  1001. -- def el='</td></tr>'
  1002. -- otros
  1003. def f=<br> -- eol
  1004. def b=<b> -- bold
  1005. def eb=</b> -- end bold
  1006. def sp=' ' -- space
  1007. set null ' '
  1008. set define '&'
  1009.  
  1010. -- Start of printout
  1011. DECLARE
  1012. handle UTL_FILE.FILE_TYPE;
  1013. dirname varchar2(1000);
  1014. text varchar2(1000);
  1015.  
  1016. function n(v varchar2) return varchar2 is -- to print fields
  1017. begin
  1018. if v is null then
  1019. return '&sp';
  1020. else
  1021. return v;
  1022. end if;
  1023. end n;
  1024.  
  1025. function n2(v varchar2,v2 varchar2) return varchar2 is -- to print parameters
  1026. begin
  1027. if v is null then
  1028. return v2;
  1029. else
  1030. return v;
  1031. end if;
  1032. end n2;
  1033.  
  1034. begin
  1035. -- Creation of output file
  1036. -- SQL fails when parameter is loo long
  1037. -- select substr(value,1,instr(value||',',',')-1) into dirname
  1038. -- from v$parameter where name = 'utl_file_dir';
  1039.  
  1040. select substr(value,1,decode(instr(value,','),0,length(value),instr(value,',')-1)) into dirname
  1041. from v$parameter where name = 'utl_file_dir';
  1042.  
  1043. -- handle := UTL_FILE.FOPEN(dirname,dirname||'/&out_file','W',32000);
  1044. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','W',32000);
  1045.  
  1046. /* HTML header information */
  1047.  
  1048. UTL_FILE.PUT_LINE(handle,'<html>');
  1049. UTL_FILE.PUT_LINE(handle,'<head>');
  1050. UTL_FILE.PUT_LINE(handle,'<title> &out_file </title>');
  1051. UTL_FILE.PUT_LINE(handle,'</head>');
  1052. UTL_FILE.PUT_LINE(handle,'<body background=#ffffff>');
  1053. UTL_FILE.PUT_LINE(handle,'<font face="arial" color="#336699"> <b><i>');
  1054.  
  1055. -- DataBase name, creation date
  1056. -- User and time script execution
  1057. UTL_FILE.PUT_LINE(handle,'&std &sh DATABASE IDENTIFICATION &dh SCRIPT EXECUTION (Ver. &version_code) &eh');
  1058. select '&sld &b DB Name: &eb '||name||' - &b Release: &eb '||substr(release_name,1,10)||' &d'||
  1059. '&b Script run at Date/Time: &eb'||to_char(sysdate,'DD-MON-RR_HH24:MI:SS')||'&el'||
  1060. '&sld &b Creation Date: &eb'||to_char(created,'DD-MON-RR_HH24:MI:SS')||'&d'
  1061. into text
  1062. from V$DATABASE, fnd_product_groups;
  1063.  
  1064. UTL_FILE.PUT_LINE(handle,text);
  1065. select '&b USER is: '||username into text from user_users;
  1066. UTL_FILE.PUT_LINE(handle,text);
  1067. UTL_FILE.PUT_LINE(handle,'&eb &el &et &f &f');
  1068.  
  1069. UTL_FILE.PUT_LINE(handle,'&std &sh The test will be run with the following parameters &dh Sections being printed: &dh &sp &eh');
  1070. 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');
  1071. 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');
  1072. if :v_head_only = 'Y' then
  1073. 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');
  1074. else
  1075. 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');
  1076. end if;
  1077. 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');
  1078. UTL_FILE.PUT_LINE(handle,'&sld &sp &d WMS info = '||n2('&prt_wms','N')||' &d &sp &el');
  1079. UTL_FILE.PUT_LINE(handle,'&et &f &f');
  1080.  
  1081. -- Index for Major tables direct access
  1082. UTL_FILE.PUT_LINE(handle,'&std &sh INDEX FOR MAJOR TABLES DIRECT ACCESS &dh &sp &eh');
  1083. UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#OE_SETS">OE_SETS (SET)</a> &d <a HREF="#WSH_TRIPS">WSH_TRIPS (TRP)</a> &el');
  1084. 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');
  1085. 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');
  1086. 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');
  1087. UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_TRANSACTIONS_INTERFACE">MTL_TRANSACTIONS_INTERFACE (MTI)</a> &d');
  1088. UTL_FILE.PUT_LINE(handle,'<a HREF="#WMS_RULES">WMS_RULES</a> &el');
  1089. UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_MATERIAL_TRANSACTIONS_TEMP">MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES</a> &d');
  1090. UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_INTERFACE_LINES">RA_INTERFACE_LINES (RAI)</a> &el');
  1091. UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_MATERIAL_TRANSACTIONS">MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES</a> &d');
  1092. UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_CUSTOMER_TRX">RA_CUSTOMER_TRX (RAH) - INVOICE HEADERS</a> &el');
  1093. UTL_FILE.PUT_LINE(handle,'&sld <a HREF="#MTL_TXN_REQUEST_LINES_V">MTL_TXN_REQUEST_LINES_V (MOV)</a> &d ');
  1094. UTL_FILE.PUT_LINE(handle,'<a HREF="#RA_CUSTOMER_TRX_LINES">RA_CUSTOMER_TRX_LINES (RAL)</a> &el');
  1095.  
  1096. UTL_FILE.PUT_LINE(handle,'&et &f &f');
  1097.  
  1098. -- Parameters, initial listings from screen
  1099.  
  1100. UTL_FILE.PUT_LINE(handle,'&std &sh HEADER_ID &dh ORDER_TYPE_NAME &dh CATEGORY &dh ORG_ID &dh ORGANIZATION_NAME &el');
  1101.  
  1102. Declare
  1103. cursor l_orders is
  1104. select
  1105. ORD.HEADER_ID Hea_I,
  1106. TYP.NAME OT_NAME,
  1107. ORD.ORDER_CATEGORY_CODE CAT_co,
  1108. ORD.ORG_ID ORG_I
  1109. from
  1110. OE_ORDER_HEADERS_ALL ORD,
  1111. OE_TRANSACTION_TYPES_TL TYP,
  1112. FND_LANGUAGES FLA
  1113. where
  1114. ORD.ORDER_NUMBER = :v_order_num
  1115. and TYP.LANGUAGE = FLA.LANGUAGE_CODE
  1116. and FLA.INSTALLED_FLAG = 'B'
  1117. and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
  1118. and :v_error = 0;
  1119.  
  1120. or_name varchar2(100);
  1121.  
  1122. begin
  1123. for lo in l_orders
  1124. loop
  1125.  
  1126. -- Organization Name
  1127. select name
  1128. into or_name
  1129. from hr_operating_units
  1130. where organization_id = nvl(lo.ORG_I,-99);
  1131.  
  1132. -- Print line to Output file
  1133.  
  1134. utl_file.put_line(handle,'&sld'||n(lo.hea_i)||'&d'||n(lo.ot_name)||'&d');
  1135. utl_file.put_line(handle,n(lo.Cat_co)||'&d'||n(lo.org_i)||'&d'||n(or_name)||'&el');
  1136.  
  1137. end loop;
  1138.  
  1139. end;
  1140.  
  1141. UTL_FILE.PUT_LINE(handle,'&et ');
  1142.  
  1143. UTL_FILE.PUT_LINE(handle,'&f &f &b LINE_IDs ASSOCIATED WITH THIS ORDER NUMBER &f');
  1144.  
  1145. 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 ');
  1146. 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 ');
  1147. 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');
  1148.  
  1149. Declare
  1150. cursor l_lines_ord is
  1151. select
  1152. to_char(LIN.line_number) ||
  1153. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  1154. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  1155. decode(LIN.component_number, null, null,
  1156. decode(LIN.option_number, null, '.',null)||
  1157. '.'||to_char(LIN.component_number))||
  1158. decode(LIN.service_number,null,null,
  1159. decode(LIN.component_number, null, '.' , null) ||
  1160. decode(LIN.option_number, null, '.', null ) ||
  1161. '.'|| to_char(LIN.service_number)) LINE_NUM,
  1162. LIN.LINE_ID LINE_ID,
  1163. ITM.SEGMENT1 ITEM,
  1164. nvl(LIN.ORDERED_QUANTITY,0) ORD_QTY,
  1165. LIN.ORDER_QUANTITY_UOM Orduom,
  1166. substr(LIN.FLOW_STATUS_CODE,1,22) Line_st,
  1167. nvl(LIN.SHIPPED_QUANTITY,0) shpq,
  1168. nvl(LIN.FULFILLED_QUANTITY,0) fulq,
  1169. nvl(LIN.INVOICED_QUANTITY,0) invq,
  1170. nvl(LIN.CANCELLED_QUANTITY,0) canq,
  1171. nvl(LIN.OPEN_FLAG,'N') openf,
  1172. nvl(LIN.SHIPPABLE_FLAG,'N') shipf,
  1173. nvl(LIN.CANCELLED_FLAG,'N') canf,
  1174. nvl(LIN.SHIPPING_INTERFACED_FLAG,'N') SI,
  1175. LIN.SHIP_FROM_ORG_ID shipfrom,
  1176. LIN.LINE_TYPE_ID LINE_TYPE_ID,
  1177. LIN.LINE_CATEGORY_CODE lin_cat,
  1178. nvl(LIN.INVOICE_INTERFACE_STATUS_CODE,'N') INV_INT_STAT,
  1179. LIN.ARRIVAL_SET_ID ARRIV_SET_ID,
  1180. LIN.SHIP_SET_ID SHIP_SET_ID,
  1181. LIN.LINE_SET_ID LINE_SET_ID
  1182. from
  1183. OE_ORDER_LINES LIN,
  1184. MTL_SYSTEM_ITEMS ITM
  1185. where
  1186. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  1187. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  1188. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  1189. and LIN.OPTION_NUMBER IS NULL
  1190. and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
  1191. order by
  1192. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  1193. NVL(LIN.SORT_ORDER, '0000'),
  1194. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  1195. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  1196. NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
  1197. LIN.LINE_ID;
  1198.  
  1199. begin
  1200. for ll in l_lines_ord
  1201. loop
  1202. utl_file.put_line(handle,'&sld'||n(ll.LINE_NUM)||'&d'||n(ll.LINE_ID)||'&d'||n(ll.ITEM)||'&d');
  1203. utl_file.put_line(handle,n(ll.ORD_QTY)||'&d'||n(ll.Orduom)||'&d');
  1204. utl_file.put_line(handle,n(ll.Line_st)||'&d'||n(ll.shpq)||'&d');
  1205. utl_file.put_line(handle,n(ll.fulq)||'&d'||n(ll.invq)||'&d');
  1206. utl_file.put_line(handle,n(ll.canq)||'&d'||n(ll.openf)||'&d');
  1207. utl_file.put_line(handle,n(ll.shipf)||'&d'||n(ll.canf)||'&d');
  1208. utl_file.put_line(handle,n(ll.SI)||'&d'||n(ll.shipfrom)||'&d');
  1209. utl_file.put_line(handle,n(ll.LINE_TYPE_ID)||'&d'||n(ll.LIN_CAT)||'&d');
  1210. utl_file.put_line(handle,n(ll.INV_INT_STAT)||'&d'||n(ll.ARRIV_SET_ID)||'&d');
  1211. utl_file.put_line(handle,n(ll.SHIP_SET_ID)||'&d'||n(ll.LINE_SET_ID)||'&el');
  1212. end loop;
  1213. end;
  1214.  
  1215. UTL_FILE.PUT_LINE(handle,'&et');
  1216.  
  1217. /* Display any header or line sets associated with this order */
  1218.  
  1219. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_SETS"> OE_SETS (SET) </a> &f');
  1220.  
  1221. 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 ');
  1222. 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 ');
  1223. UTL_FILE.PUT_LINE(handle,'SHIP_METHOD &dh STA &dh STB &eh');
  1224.  
  1225. Declare
  1226. cursor l_oe_sets is
  1227. select ST1.SET_ID SET_ID,
  1228. ST1.SET_NAME SET_NAME,
  1229. ST1.SET_TYPE SET_TYPE,
  1230. ST1.HEADER_ID HEADER_ID,
  1231. LST.LINE_ID LINE_ID,
  1232. ST1.INVENTORY_ITEM_ID ITEM_ID,
  1233. ST1.ORDERED_QUANTITY_UOM UOM,
  1234. ST1.LINE_TYPE_ID LINE_TYPE_ID,
  1235. nvl(LST.SYSTEM_REQUIRED_FLAG,'N') SYS_REQD,
  1236. ST1.SET_STATUS STATUS,
  1237. to_char(ST1.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') SCH_SHP_DT,
  1238. to_char(ST1.SCHEDULE_ARRIVAL_DATE,'DD-MON-RR_HH24:MI:SS') SCH_ARV_DT,
  1239. ST1.SHIP_FROM_ORG_ID SHIP_FROM,
  1240. ST1.SHIP_TO_ORG_ID SHIP_TO_ID,
  1241. ST1.SHIPMENT_PRIORITY_CODE SHIP_PRIORITY,
  1242. ST1.FREIGHT_CARRIER_CODE CARRIER,
  1243. ST1.SHIPPING_METHOD_CODE SHIP_METHOD,
  1244. ST1.SHIP_TOLERANCE_ABOVE STA,
  1245. ST1.SHIP_TOLERANCE_BELOW STB
  1246. from OE_SETS ST1,
  1247. OE_LINE_SETS LST
  1248. where ST1.SET_ID = LST.SET_ID(+)
  1249. and ST1.HEADER_ID = nvl('&header_id_selected',:v_header_id);
  1250.  
  1251. begin
  1252. for ll in l_oe_sets
  1253. loop
  1254. utl_file.put_line(handle,'&sld'||n(ll.SET_ID)||'&d'||n(ll.SET_NAME)||'&d');
  1255. utl_file.put_line(handle,n(ll.SET_TYPE)||'&d'||n(ll.HEADER_ID)||'&d');
  1256. utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.ITEM_ID)||'&d');
  1257. utl_file.put_line(handle,n(ll.UOM)||'&d'||n(ll.LINE_TYPE_ID)||'&d');
  1258. utl_file.put_line(handle,n(ll.SYS_REQD)||'&d'||n(ll.STATUS)||'&d');
  1259. utl_file.put_line(handle,n(ll.SCH_SHP_DT)||'&d'||n(ll.SCH_ARV_DT)||'&d');
  1260. utl_file.put_line(handle,n(ll.SHIP_FROM)||'&d'||n(ll.SHIP_TO_ID)||'&d');
  1261. utl_file.put_line(handle,n(ll.SHIP_PRIORITY)||'&d'||n(ll.CARRIER)||'&d');
  1262. utl_file.put_line(handle,n(ll.SHIP_METHOD)||'&d'||n(ll.STA)||'&d');
  1263. utl_file.put_line(handle,n(ll.STB)||'&el');
  1264. end loop;
  1265. end;
  1266.  
  1267. UTL_FILE.PUT_LINE(handle,'&et &f &f');
  1268.  
  1269. UTL_FILE.FCLOSE(handle);
  1270. end;
  1271. /
  1272.  
  1273. DECLARE
  1274. handle UTL_FILE.FILE_TYPE;
  1275. dirname varchar2(1000);
  1276. text varchar2(1000);
  1277.  
  1278. function n(v varchar2) return varchar2 is
  1279. begin
  1280. if v is null then
  1281. return '&sp';
  1282. else
  1283. return v;
  1284. end if;
  1285. end n;
  1286.  
  1287. begin
  1288. -- Append to output file
  1289. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  1290. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  1291.  
  1292. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_ORDER_HEADERS"> OE_ORDER_HEADERS (ORD) </a> <a HREF="#OOH">Column Definitions</a> &f');
  1293. 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 ');
  1294. 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 ');
  1295. UTL_FILE.PUT_LINE(handle,'CAT &dh PL_ID &dh PL_NAME &dh PO_NUMBER &dh STA &dh STB &dh OPERATING_UNIT &eh');
  1296.  
  1297. declare
  1298. cursor header1 is
  1299. select distinct ORD.HEADER_ID head_id,
  1300. ORD.ORDER_NUMBER ord_no,
  1301. ORD.ORDER_TYPE_ID ord_t,
  1302. TYP.NAME ord_tna,
  1303. ORD.SOLD_TO_ORG_ID cus_id,
  1304. substr(CUS.CUSTOMER_NAME,1,20) cus_na,
  1305. ORD.SHIP_TO_ORG_ID ship_t,
  1306. substr(SHP.NAME,1,12) ship_tn,
  1307. ORD.INVOICE_TO_ORG_ID bill_t,
  1308. to_char(ORD.ORDERED_DATE,'DD-MON-RR_HH24:MI:SS') ord_d,
  1309. nvl(ORD.BOOKED_FLAG,'N') book_g,
  1310. nvl(ORD.OPEN_FLAG,'N') open_f,
  1311. nvl(ORD.CANCELLED_FLAG,'N') can_f,
  1312. nvl(ORD.PARTIAL_SHIPMENTS_ALLOWED,'Y') spa,
  1313. ORD.SHIP_FROM_ORG_ID or_id,
  1314. PAR.ORGANIZATION_CODE or_co,
  1315. ORD.FLOW_STATUS_CODE fl_co,
  1316. ORD.ORDER_CATEGORY_CODE cat_co,
  1317. ORD.PRICE_LIST_ID pr_id,
  1318. PRC.NAME pr_na,
  1319. ORD.CUST_PO_NUMBER po_no,
  1320. ORD.SHIP_TOLERANCE_ABOVE shta,
  1321. ORD.SHIP_TOLERANCE_BELOW shtb,
  1322. HR.NAME oper_unit
  1323. from
  1324. OE_ORDER_HEADERS ORD,
  1325. MTL_PARAMETERS PAR,
  1326. OE_TRANSACTION_TYPES_V TYP,
  1327. AR_CUSTOMERS CUS,
  1328. OE_SHIP_TO_ORGS_V SHP,
  1329. QP_LIST_HEADERS_V PRC,
  1330. HR_OPERATING_UNITS HR
  1331. where
  1332. ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  1333. and ORD.SHIP_FROM_ORG_ID = PAR.ORGANIZATION_ID(+)
  1334. and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID(+)
  1335. and ORD.SHIP_TO_ORG_ID = SHP.SITE_USE_ID(+)
  1336. and ORD.SOLD_TO_ORG_ID = CUS.CUSTOMER_ID(+)
  1337. and ORD.PRICE_LIST_ID = PRC.LIST_HEADER_ID(+)
  1338. and ORD.ORG_ID = HR.ORGANIZATION_ID(+);
  1339.  
  1340. r_ord_t varchar2(100);
  1341. r_open_l number;
  1342. r_canc_l number;
  1343. r_canopen_l number;
  1344.  
  1345. type per_record_typ is RECORD
  1346. (flag varchar2(1),
  1347. descrip varchar2(200));
  1348. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  1349. msg msg_tab;
  1350.  
  1351. begin
  1352. dbms_output.enable(1000000);
  1353. :r_error := 0;
  1354. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  1355. for i in 1..60
  1356. loop
  1357. msg(i).flag := '0';
  1358. msg(i).descrip := '';
  1359. end loop;
  1360.  
  1361. msg(10).descrip := ' 10. Order_Header has associated lines with OPEN and CANCELLED flags set to Y.';
  1362. msg(15).descrip := ' 15. Order_Header status is BOOKED but "Book" activity has not been completed.';
  1363.  
  1364. msg(20).descrip := ' 20. Order_Header status is CLOSED but "Close" activity has not been completed.';
  1365. msg(21).descrip := ' 21. Order_Header status is CLOSED but exist open lines associated to this header.';
  1366. msg(22).descrip := ' 22. All associated lines has been closed but Order_Header is not ready to CLOSE.';
  1367.  
  1368. msg(50).descrip := ' 50. No WorkFlow Process associated to this line.';
  1369. msg(51).descrip := ' 51. Incorrect WorkFlow Process associated to this Order Header.';
  1370. msg(52).descrip := ' 52. Incorrect WorkFlow Activity associated to this Order Header.';
  1371. msg(53).descrip := ' 53. Incorrect WorkFlow Activity Result for this Order Header.';
  1372. msg(54).descrip := ' 54. Incorrect WorkFlow Activity Status for this Order Header.';
  1373. end if;
  1374.  
  1375. for h in header1
  1376. loop
  1377. :r_flag := '';
  1378.  
  1379. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  1380. --
  1381. -- Gather general information
  1382. --
  1383. begin
  1384. -- get Order_Header Flow name
  1385. select WFA1.DISPLAY_NAME
  1386. into r_ord_t
  1387. FROM WF_ITEM_ACTIVITY_STATUSES WFS,
  1388. WF_PROCESS_ACTIVITIES WFP,
  1389. WF_ACTIVITIES_VL WFA,
  1390. WF_ACTIVITIES_VL WFA1
  1391. where WFS.ITEM_TYPE = 'OEOH'
  1392. and WFS.item_key = h.head_id
  1393. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID(+)
  1394. and WFP.PROCESS_NAME = 'ROOT'
  1395. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1396. and WFP.PROCESS_NAME = WFA.NAME
  1397. and WFP.PROCESS_VERSION = WFA.VERSION
  1398. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1399. and WFP.ACTIVITY_NAME = WFA1.NAME
  1400. and WFA1.VERSION = (select nvl(max(VERSION),-1)
  1401. from WF_ACTIVITIES WF2
  1402. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1403. and WF2.NAME = WFP.ACTIVITY_NAME);
  1404.  
  1405. -- Select current activity
  1406. select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
  1407. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
  1408. LKP.MEANING
  1409. into :r_pro_na, :r_act_na, :r_result, :r_act_s
  1410. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1411. WF_PROCESS_ACTIVITIES WFP,
  1412. WF_ACTIVITIES_VL WFA,
  1413. WF_ACTIVITIES_VL WFA1,
  1414. WF_LOOKUPS LKP
  1415. where WFS.ITEM_TYPE = 'OEOH'
  1416. and WFS.item_key = h.head_id
  1417. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1418. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1419. and WFP.PROCESS_NAME = WFA.NAME
  1420. and WFP.PROCESS_VERSION = WFA.VERSION
  1421. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1422. and WFP.ACTIVITY_NAME = WFA1.NAME
  1423. and WFA1.VERSION = (select max(VERSION)
  1424. from WF_ACTIVITIES WF2
  1425. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1426. and WF2.NAME = WFP.ACTIVITY_NAME)
  1427. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1428. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1429. and Execution_time = (Select Max(execution_time) from WF_ITEM_ACTIVITY_STATUSES
  1430. where ITEM_TYPE = 'OEOH'
  1431. and item_key = h.head_id);
  1432. exception
  1433. when no_data_found then
  1434. :r_flag := :r_flag || '50 ';
  1435. msg(50).flag := '1';
  1436. end;
  1437.  
  1438. -- Check if order has open lines and count also cancelled lines
  1439. begin
  1440. 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))
  1441. into r_open_l, r_canc_l, r_canopen_l
  1442. from oe_order_lines_all
  1443. where header_id = h.head_id
  1444. group by header_id;
  1445. exception
  1446. when no_data_found then
  1447. r_open_l := 0;
  1448. r_canc_l := 0;
  1449. r_canopen_l := 0;
  1450. end;
  1451. ---
  1452. -- Basic Verifications
  1453. --
  1454.  
  1455. -- Open lines have cancelled flag showing as open
  1456. if r_canopen_l > 0 then
  1457. :r_flag := :r_flag || '10 ';
  1458. msg(10).flag := '1';
  1459. end if;
  1460.  
  1461. -- All lines closed but Order Header status is not CLOSED and WF is NOT waiting to close.
  1462. if r_open_l = 0 -- no open lines
  1463. and h.fl_co <> 'CLOSED' then
  1464. if :r_pro_na = 'Close - Order' -- check current status
  1465. and :r_act_s = 'Deferred' then
  1466. null; -- OK just waiting for month end
  1467. else
  1468. :r_flag := :r_flag || '22 ';
  1469. msg(22).flag := '1';
  1470. end if;
  1471. end if;
  1472.  
  1473. ---
  1474. -- Verifications for Order Header on ENTERED status
  1475. ---
  1476. If h.fl_co = 'ENTERED' then
  1477. -- verify current WF status
  1478. if :r_pro_na <> 'Book - Order, Manual' then
  1479. :r_flag := :r_flag || '51 ';
  1480. msg(51).flag := '1';
  1481. elsif :r_act_na <> 'Book - Eligible' then
  1482. :r_flag := :r_flag || '52 ';
  1483. msg(52).flag := '1';
  1484. elsif :r_result is not null then
  1485. :r_flag := :r_flag || '53 ';
  1486. msg(53).flag := '1';
  1487. elsif :r_act_s <> 'Notified' then
  1488. :r_flag := :r_flag || '54 ';
  1489. msg(54).flag := '1';
  1490. end if;
  1491. end if; -- ENTERED
  1492.  
  1493. ---
  1494. -- Verifications for Order Header on BOOKED status
  1495. ---
  1496. If h.fl_co = 'BOOKED' then
  1497. -- Check is Book activity has been completed
  1498. begin
  1499. select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
  1500. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
  1501. LKP.MEANING
  1502. into :r_pro_na, :r_act_na, :r_result, :r_act_s
  1503. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1504. WF_PROCESS_ACTIVITIES WFP,
  1505. WF_ACTIVITIES_VL WFA,
  1506. WF_ACTIVITIES_VL WFA1,
  1507. WF_LOOKUPS LKP
  1508. where WFS.ITEM_TYPE = 'OEOH'
  1509. and WFS.item_key = h.head_id
  1510. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1511. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1512. and WFP.PROCESS_NAME = WFA.NAME
  1513. and WFP.PROCESS_VERSION = WFA.VERSION
  1514. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1515. and WFP.ACTIVITY_NAME = WFA1.NAME
  1516. and WFA1.VERSION = (select max(VERSION)
  1517. from WF_ACTIVITIES WF2
  1518. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1519. and WF2.NAME = WFP.ACTIVITY_NAME)
  1520. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1521. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1522. and WFA1.DISPLAY_NAME = 'Book';
  1523. exception
  1524. when no_data_found then
  1525. :r_flag := :r_flag || '15 ';
  1526. msg(15).flag := '1';
  1527. end;
  1528.  
  1529. if :r_act_na = 'Book' then
  1530. if :r_result = 'Complete'
  1531. and :r_act_s = 'Complete' then
  1532. null; -- status is OK
  1533. else
  1534. :r_flag := :r_flag || '15 ';
  1535. msg(15).flag := '1';
  1536. end if;
  1537. end if;
  1538. end if; -- BOOKED
  1539.  
  1540. ---
  1541. -- Verifications for Order Header on CLOSED status
  1542. ---
  1543. If h.fl_co = 'CLOSED' then
  1544. -- verify current WF status
  1545. if :r_pro_na <> r_ord_t then
  1546. :r_flag := :r_flag || '51 ';
  1547. msg(51).flag := '1';
  1548. elsif :r_act_na <> 'End' then
  1549. :r_flag := :r_flag || '52 ';
  1550. msg(52).flag := '1';
  1551. elsif :r_result <> 'Null' then
  1552. :r_flag := :r_flag || '53 ';
  1553. msg(53).flag := '1';
  1554. elsif :r_act_s <> 'Complete' then
  1555. :r_flag := :r_flag || '54 ';
  1556. msg(54).flag := '1';
  1557. end if;
  1558.  
  1559. -- Get status for CLOSE activity
  1560. begin
  1561. select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
  1562. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
  1563. LKP.MEANING
  1564. into :r_pro_na, :r_act_na, :r_result, :r_act_s
  1565. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1566. WF_PROCESS_ACTIVITIES WFP,
  1567. WF_ACTIVITIES_VL WFA,
  1568. WF_ACTIVITIES_VL WFA1,
  1569. WF_LOOKUPS LKP
  1570. where WFS.ITEM_TYPE = 'OEOH'
  1571. and WFS.item_key = h.head_id
  1572. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1573. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1574. and WFP.PROCESS_NAME = WFA.NAME
  1575. and WFP.PROCESS_VERSION = WFA.VERSION
  1576. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1577. and WFP.ACTIVITY_NAME = WFA1.NAME
  1578. and WFA1.VERSION = (select max(VERSION)
  1579. from WF_ACTIVITIES WF2
  1580. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1581. and WF2.NAME = WFP.ACTIVITY_NAME)
  1582. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1583. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1584. and WFA1.DISPLAY_NAME = 'Close';
  1585. exception
  1586. when no_data_found then
  1587. :r_flag := :r_flag || '20 ';
  1588. msg(20).flag := '1';
  1589. end;
  1590. -- verify CLOSE activity completed
  1591. if :r_act_na = 'Close' then
  1592. if :r_result = 'Complete'
  1593. and :r_act_s = 'Complete' then
  1594. null; -- status is OK
  1595. else
  1596. :r_flag := :r_flag || '20 ';
  1597. msg(20).flag := '1';
  1598. end if;
  1599. end if;
  1600.  
  1601. -- check for open lines
  1602. if r_open_l > 0 then
  1603. :r_flag := :r_flag || '21 ';
  1604. msg(21).flag := '1';
  1605. end if;
  1606. end if; -- CLOSED
  1607.  
  1608. end if; -- do_analysis
  1609.  
  1610. -- Print line to Output file
  1611. utl_file.put_line(handle,'&sld &b <a HREF="#OHERR">'||n(:r_flag)||'</a> &eb &d');
  1612. utl_file.put_line(handle,n(h.head_id)||'&d'||n(h.ord_no)||'&d');
  1613. utl_file.put_line(handle,n(h.ord_t)||'&d'||n(h.ord_tna)||'&d');
  1614. utl_file.put_line(handle,n(r_ord_t)||'&d'||n(h.fl_co)||'&d');
  1615. utl_file.put_line(handle,n(h.book_g)||'&d'||n(h.open_f)||'&d');
  1616. utl_file.put_line(handle,n(h.can_f)||'&d'||n(h.spa)||'&d');
  1617. utl_file.put_line(handle,n(h.cus_id)||'&d'||n(h.cus_na)||'&d');
  1618. utl_file.put_line(handle,n(h.ship_t)||'&d'||n(h.ship_tn)||'&d');
  1619. utl_file.put_line(handle,n(h.bill_t)||'&d'||n(h.ord_d)||'&d');
  1620. utl_file.put_line(handle,n(h.or_id)||'&d'||n(h.or_co)||'&d');
  1621. utl_file.put_line(handle,n(h.cat_co)||'&d'||n(h.pr_id)||'&d');
  1622. utl_file.put_line(handle,n(h.pr_na)||'&d'||n(h.po_no)||'&d');
  1623. utl_file.put_line(handle,n(h.shta)||'&d'||n(h.shtb)||'&d');
  1624. utl_file.put_line(handle,n(h.oper_unit)||'&el');
  1625.  
  1626. if :r_flag is not null then
  1627. :r_error := 1;
  1628. end if;
  1629. end loop;
  1630. utl_file.put_line(handle,'&et');
  1631.  
  1632. if :r_error = 1 then
  1633. utl_file.put_line(handle,'&f &b <a NAME="OHERR">Warning List:</a> &eb &f');
  1634. for i in 1..60
  1635. loop
  1636. if msg(i).flag = '1' then
  1637. utl_file.put_line(handle,msg(i).descrip||'&f');
  1638. end if;
  1639. end loop;
  1640. end if;
  1641. end;
  1642.  
  1643. UTL_FILE.PUT_LINE(handle,'&et');
  1644.  
  1645. UTL_FILE.FCLOSE(handle);
  1646. end;
  1647. /
  1648.  
  1649. DECLARE
  1650. handle UTL_FILE.FILE_TYPE;
  1651. dirname varchar2(1000);
  1652. text varchar2(1000);
  1653.  
  1654. function n(v varchar2) return varchar2 is
  1655. begin
  1656. if v is null then
  1657. return '&sp';
  1658. else
  1659. return v;
  1660. end if;
  1661. end n;
  1662.  
  1663. begin
  1664. If :v_head_only = 'N' then
  1665.  
  1666. -- Append to output file
  1667. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  1668. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  1669.  
  1670. if UPPER(nvl('&prt_wf','Y')) = 'Y' then
  1671.  
  1672. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER STATUS &f');
  1673.  
  1674. UTL_FILE.PUT_LINE(handle,'&std');
  1675. 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');
  1676.  
  1677. Declare
  1678. cursor l_wf_order is
  1679. select WFA.DISPLAY_NAME Process,
  1680. WFA1.DISPLAY_NAME Activity,
  1681. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) Result,
  1682. LKP.MEANING Act_status,
  1683. WFS.NOTIFICATION_ID Notif,
  1684. WFP.PROCESS_NAME I_process,
  1685. WFP.ACTIVITY_NAME I_activity,
  1686. WFS.ACTIVITY_RESULT_CODE I_Act_Res_code,
  1687. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') Begin_d,
  1688. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') End_d,
  1689. WFS.ERROR_NAME error_name
  1690. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1691. WF_PROCESS_ACTIVITIES WFP,
  1692. WF_ACTIVITIES_VL WFA,
  1693. WF_ACTIVITIES_VL WFA1,
  1694. WF_LOOKUPS LKP
  1695. where
  1696. WFS.ITEM_TYPE = 'OEOH'
  1697. and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
  1698. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1699. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1700. and WFP.PROCESS_NAME = WFA.NAME
  1701. and WFP.PROCESS_VERSION = WFA.VERSION
  1702. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1703. and WFP.ACTIVITY_NAME = WFA1.NAME
  1704. and WFA1.VERSION =
  1705. (select max(VERSION)
  1706. from WF_ACTIVITIES WF2
  1707. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1708. and WF2.NAME = WFP.ACTIVITY_NAME)
  1709. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1710. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1711. order by WFS.ITEM_KEY,
  1712. WFS.BEGIN_DATE,
  1713. EXECUTION_TIME;
  1714.  
  1715. begin
  1716. for ll in l_wf_order
  1717. loop
  1718. utl_file.put_line(handle,'&sld'||n(ll.Process)||'&d'||n(ll.Activity)||'&d');
  1719. utl_file.put_line(handle,n(ll.Result)||'&d'||n(ll.Act_status)||'&d');
  1720. utl_file.put_line(handle,n(ll.Notif)||'&d'||n(ll.I_process)||'&d');
  1721. utl_file.put_line(handle,n(ll.I_activity)||'&d'||n(ll.I_Act_Res_code)||'&d');
  1722. utl_file.put_line(handle,n(ll.Begin_d)||'&d');
  1723. utl_file.put_line(handle,n(ll.End_d)||'&d'||n(ll.Error_name)||'&el');
  1724. end loop;
  1725. end;
  1726.  
  1727. UTL_FILE.PUT_LINE(handle,'&et');
  1728.  
  1729. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER NOTIFICATION INFORMATION (WFN)&f');
  1730. 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');
  1731.  
  1732. Declare
  1733. cursor l_wf_ord_noti is
  1734. select WFN.NOTIFICATION_ID NOTIF_ID,
  1735. WFN.TO_USER TO_USER,
  1736. WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
  1737. WFN.RECIPIENT_ROLE RECIP_ROLE,
  1738. WFN.MAIL_STATUS MAIL_STAT,
  1739. WFN.MESSAGE_NAME MESSAGE_NAME,
  1740. WFN.STATUS STATUS,
  1741. WFN.SUBJECT SUBJECT
  1742. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1743. WF_NOTIFICATIONS WFN
  1744. where WFS.ITEM_TYPE = 'OEOH'
  1745. and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
  1746. and WFS.NOTIFICATION_ID is not null
  1747. and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
  1748. order by WFS.ITEM_KEY,
  1749. WFS.BEGIN_DATE,
  1750. EXECUTION_TIME;
  1751.  
  1752. begin
  1753. for ll in l_wf_ord_noti
  1754. loop
  1755. utl_file.put_line(handle,'&sld'||n(ll.NOTIF_ID)||'&d'||n(ll.TO_USER)||'&d');
  1756. utl_file.put_line(handle,n(ll.ORIG_RECIP)||'&d'||n(ll.RECIP_ROLE)||'&d');
  1757. utl_file.put_line(handle,n(ll.MAIL_STAT)||'&d'||n(ll.MESSAGE_NAME)||'&d');
  1758. utl_file.put_line(handle,n(ll.STATUS)||'&d'||n(ll.SUBJECT)||'&el');
  1759. end loop;
  1760. end;
  1761.  
  1762. UTL_FILE.PUT_LINE(handle,'&et');
  1763.  
  1764. /*
  1765. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER SKIP INFORMATION (WFSKIP)&f');
  1766. 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');
  1767.  
  1768. Declare
  1769. r_exist number;
  1770.  
  1771. begin
  1772. select count(*)
  1773. into r_exist
  1774. from all_tables
  1775. where table_name = 'ONT_WF_SKIP_LOG';
  1776. if r_exist = 0 then
  1777. utl_file.put_line(handle,'&et Table ONT_WF_SKIP_LOG is not present on this instance: &f');
  1778. end if;
  1779. end;
  1780.  
  1781. Declare
  1782. cursor l_wf_ord_skip is
  1783. select WFS.HEADER_ID HEADER_ID,
  1784. WFA.DISPLAY_NAME DISPLAY_NAME,
  1785. to_char(WFS.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CRE_DATE,
  1786. WFS.USER_ID USER_ID,
  1787. WFS.RESPONSIBILITY_ID RESPONSIBILITY_ID,
  1788. WFS.APPLICATION_ID APPLICATION_ID
  1789. from ONT_WF_SKIP_LOG WFS,
  1790. WF_PROCESS_ACTIVITIES WFP,
  1791. WF_ACTIVITIES_VL WFA
  1792. where WFS.LINE_ID is null
  1793. and WFS.HEADER_ID = nvl('&header_id_selected',to_char(:v_header_id))
  1794. and WFS.ACTIVITY_ID = WFP.INSTANCE_ID
  1795. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1796. and WFP.PROCESS_NAME = WFA.NAME
  1797. and WFP.PROCESS_VERSION = WFA.VERSION
  1798. order by WFS.HEADER_ID,
  1799. WFS.CREATION_DATE;
  1800.  
  1801. begin
  1802. for ll in l_wf_ord_skip
  1803. loop
  1804. utl_file.put_line(handle,'&sld'||n(ll.HEADER_ID)||'&d'||n(ll.DISPLAY_NAME)||'&d');
  1805. utl_file.put_line(handle,n(ll.CRE_DATE)||'&d'||n(ll.USER_ID)||'&d');
  1806. utl_file.put_line(handle,n(ll.RESPONSIBILITY_ID)||'&d'||n(ll.APPLICATION_ID)||'&el');
  1807. end loop;
  1808. end;
  1809.  
  1810. UTL_FILE.PUT_LINE(handle,'&et'); */
  1811.  
  1812. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ORDER LEVEL ERRORS &f');
  1813. 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');
  1814.  
  1815. Declare
  1816. cursor l_wf_ord_err is
  1817. select WFA.DISPLAY_NAME Process,
  1818. WFA1.DISPLAY_NAME Activity,
  1819. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) result,
  1820. LKP.MEANING status,
  1821. WFS.ERROR_NAME err_name,
  1822. WFS.ERROR_MESSAGE err_mess,
  1823. WFS.ERROR_STACK err_stack
  1824. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1825. WF_PROCESS_ACTIVITIES WFP,
  1826. WF_ACTIVITIES_VL WFA,
  1827. WF_ACTIVITIES_VL WFA1,
  1828. WF_LOOKUPS LKP
  1829. where
  1830. WFS.ITEM_TYPE = 'OEOH'
  1831. and WFS.item_key = nvl('&header_id_selected',to_char(:v_header_id))
  1832. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1833. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1834. and WFP.PROCESS_NAME = WFA.NAME
  1835. and WFP.PROCESS_VERSION = WFA.VERSION
  1836. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1837. and WFP.ACTIVITY_NAME = WFA1.NAME
  1838. and WFA1.VERSION =
  1839. (select max(VERSION)
  1840. from WF_ACTIVITIES WF2
  1841. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1842. and WF2.NAME = WFP.ACTIVITY_NAME)
  1843. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1844. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1845. and WFS.ACTIVITY_STATUS = 'ERROR'
  1846. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  1847.  
  1848. begin
  1849. for ll in l_wf_ord_err
  1850. loop
  1851. utl_file.put_line(handle,'&sld'||n(ll.Process)||'&d'||n(ll.Activity)||'&d');
  1852. utl_file.put_line(handle,n(ll.result)||'&d'||n(ll.status)||'&d');
  1853. utl_file.put_line(handle,n(ll.err_name)||'&d'||n(ll.err_mess)||'&d');
  1854. utl_file.put_line(handle,n(ll.err_stack)||'&el');
  1855. end loop;
  1856. end;
  1857.  
  1858. UTL_FILE.PUT_LINE(handle,'&et');
  1859.  
  1860. -- break on ERR_TYPE_KEY skip 2;
  1861.  
  1862. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ACTIVITY STATUS FOR ORDER ERROR PROCESS &f');
  1863. 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 ');
  1864. UTL_FILE.PUT_LINE(handle,'ASGND_USER &dh BEGIN_DATE &dh END_DATE &eh');
  1865.  
  1866. Declare
  1867. cursor l_wf_ord_erp is
  1868. select WFS.ITEM_TYPE || '-' || WFS.ITEM_KEY ERR_TYPE_KEY,
  1869. WFA.DISPLAY_NAME ERR_PROCESS_NAME,
  1870. WFA1.DISPLAY_NAME ERR_ACTIVITY_NAME,
  1871. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  1872. LKP.MEANING ACT_STATUS,
  1873. WFS.NOTIFICATION_ID NOTIF_ID,
  1874. WFS.ASSIGNED_USER ASGND_USER,
  1875. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
  1876. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE
  1877. from WF_ITEM_ACTIVITY_STATUSES WFS,
  1878. WF_PROCESS_ACTIVITIES WFP,
  1879. WF_ACTIVITIES_VL WFA,
  1880. WF_ACTIVITIES_VL WFA1,
  1881. WF_LOOKUPS LKP,
  1882. WF_ITEMS WFI
  1883. where
  1884. WFS.ITEM_TYPE = WFI.ITEM_TYPE
  1885. and WFS.item_key = WFI.ITEM_KEY
  1886. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  1887. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  1888. and WFP.PROCESS_NAME = WFA.NAME
  1889. and WFP.PROCESS_VERSION = WFA.VERSION
  1890. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  1891. and WFP.ACTIVITY_NAME = WFA1.NAME
  1892. and WFA1.VERSION =
  1893. (select max(VERSION)
  1894. from WF_ACTIVITIES WF2
  1895. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  1896. and WF2.NAME = WFP.ACTIVITY_NAME)
  1897. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  1898. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  1899. and WFI.PARENT_ITEM_TYPE = 'OEOH'
  1900. and WFI.PARENT_ITEM_KEY = nvl('&header_id_selected',to_char(:v_header_id))
  1901. and WFI.ITEM_TYPE in (select WFAE.ERROR_ITEM_TYPE
  1902. from WF_ITEM_ACTIVITY_STATUSES WFSE,
  1903. WF_PROCESS_ACTIVITIES WFPE,
  1904. WF_ACTIVITIES_VL WFAE,
  1905. WF_ACTIVITIES_VL WFA1E
  1906. where
  1907. WFSE.ITEM_TYPE = 'OEOH'
  1908. and WFSE.ITEM_KEY = nvl('&header_id_selected',to_char(:v_header_id))
  1909. and WFSE.PROCESS_ACTIVITY = WFPE.INSTANCE_ID
  1910. and WFPE.PROCESS_ITEM_TYPE = WFAE.ITEM_TYPE
  1911. and WFPE.PROCESS_NAME = WFAE.NAME
  1912. and WFPE.PROCESS_VERSION = WFAE.VERSION
  1913. and WFPE.ACTIVITY_ITEM_TYPE = WFA1E.ITEM_TYPE
  1914. and WFPE.ACTIVITY_NAME = WFA1E.NAME
  1915. and WFA1E.VERSION =
  1916. (select max(VERSION)
  1917. from WF_ACTIVITIES WF2E
  1918. where WF2E.ITEM_TYPE = WFPE.ACTIVITY_ITEM_TYPE
  1919. and WF2E.NAME = WFPE.ACTIVITY_NAME)
  1920. and WFSE.ACTIVITY_STATUS = 'ERROR')
  1921. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  1922.  
  1923. begin
  1924. for ll in l_wf_ord_erp
  1925. loop
  1926. utl_file.put_line(handle,'&sld'||n(ll.ERR_TYPE_KEY)||'&d'||n(ll.ERR_PROCESS_NAME)||'&d');
  1927. utl_file.put_line(handle,n(ll.ERR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
  1928. utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.NOTIF_ID)||'&d');
  1929. utl_file.put_line(handle,n(ll.ASGND_USER)||'&d'||n(ll.BEGIN_DATE)||'&d');
  1930. utl_file.put_line(handle,n(ll.END_DATE)||'&el');
  1931. end loop;
  1932. end;
  1933.  
  1934. UTL_FILE.PUT_LINE(handle,'&et');
  1935.  
  1936. end if; -- prt_wf
  1937.  
  1938. end if; -- v_head_only
  1939.  
  1940. UTL_FILE.FCLOSE(handle);
  1941. end;
  1942. /
  1943.  
  1944. DECLARE
  1945. handle UTL_FILE.FILE_TYPE;
  1946. dirname varchar2(1000);
  1947. text varchar2(1000);
  1948.  
  1949. function n(v varchar2) return varchar2 is
  1950. begin
  1951. if v is null then
  1952. return '&sp';
  1953. else
  1954. return v;
  1955. end if;
  1956. end n;
  1957.  
  1958. begin
  1959. If :v_head_only = 'N' then
  1960.  
  1961. -- Append to output file
  1962. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  1963. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  1964.  
  1965. UTL_FILE.PUT_LINE(handle,'&f &f GENERIC HOLDS (ORDER AND/OR LINES) &f');
  1966. 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 ');
  1967. 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');
  1968.  
  1969. Declare
  1970. cursor l_ord_hld is
  1971. SELECT
  1972. HDF.HOLD_ID ,
  1973. HDF.NAME ,
  1974. HDF.TYPE_CODE ,
  1975. HDF.ITEM_TYPE ,
  1976. HDF.ACTIVITY_NAME ,
  1977. HLD.ORDER_HOLD_ID ,
  1978. HLD.HOLD_SOURCE_ID ,
  1979. HLD.HOLD_RELEASE_ID ,
  1980. HLD.HEADER_ID ,
  1981. HLD.RELEASED_FLAG Rel_Flag1,
  1982. HSR.RELEASED_FLAG Rel_Flag2,
  1983. HRL.RELEASE_REASON_CODE Rel_code,
  1984. decode(HSR.HOLD_ENTITY_CODE,
  1985. 'B','Bill To',
  1986. 'C','Customer',
  1987. 'I','Item',
  1988. 'O','Order',
  1989. 'S','Ship To',
  1990. 'W','Warehouse',
  1991. HSR.HOLD_ENTITY_CODE) entity,
  1992. HSR.HOLD_ENTITY_ID entity_id,
  1993. decode(HSR.HOLD_ENTITY_CODE2,
  1994. 'B','Bill To',
  1995. 'C','Customer',
  1996. 'I','Item',
  1997. 'O','Order',
  1998. 'S','Ship To',
  1999. 'W','Warehouse',
  2000. HSR.HOLD_ENTITY_CODE2) entity2,
  2001. HSR.HOLD_ENTITY_ID2 entity_id2,
  2002. to_char(HSR.HOLD_UNTIL_DATE,'DD-MON-RR_HH24:MI:SS') Hold_until
  2003. from OE_ORDER_HOLDS_ALL HLD,
  2004. OE_HOLD_SOURCES_ALL HSR,
  2005. OE_HOLD_DEFINITIONS HDF,
  2006. OE_HOLD_RELEASES HRL
  2007. where HLD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  2008. and HLD.HOLD_SOURCE_ID = HSR.HOLD_SOURCE_ID
  2009. and HSR.HOLD_ID = HDF.HOLD_ID
  2010. and HLD.HOLD_RELEASE_ID = HRL.HOLD_RELEASE_ID(+)
  2011. and HLD.LINE_ID IS NULL;
  2012.  
  2013. begin
  2014. for ll in l_ord_hld
  2015. loop
  2016. utl_file.put_line(handle,'&sld'||n(ll.HOLD_ID)||'&d'||n(ll.NAME)||'&d');
  2017. utl_file.put_line(handle,n(ll.TYPE_CODE)||'&d'||n(ll.ITEM_TYPE)||'&d');
  2018. utl_file.put_line(handle,n(ll.ACTIVITY_NAME)||'&d'||n(ll.ORDER_HOLD_ID)||'&d');
  2019. utl_file.put_line(handle,n(ll.HOLD_SOURCE_ID)||'&d'||n(ll.HOLD_RELEASE_ID)||'&d');
  2020. utl_file.put_line(handle,n(ll.HEADER_ID)||'&d'||n(ll.Rel_Flag1)||'&d');
  2021. utl_file.put_line(handle,n(ll.Rel_Flag2)||'&d'||n(ll.Rel_code)||'&d');
  2022. utl_file.put_line(handle,n(ll.entity)||'&d'||n(ll.entity_id)||'&d');
  2023. utl_file.put_line(handle,n(ll.entity2)||'&d'||n(ll.entity_id2)||'&d');
  2024. utl_file.put_line(handle,n(ll.Hold_until)||'&el');
  2025. end loop;
  2026. end;
  2027.  
  2028. UTL_FILE.PUT_LINE(handle,'&et');
  2029.  
  2030. -- This section is commented out because it runs slowly without an index
  2031. --<do not run> CREATE INDEX OE_PROCESSING_MSGS_777
  2032. --<do not run> ON ONT.OE_PROCESSING_MSGS
  2033. --<do not run> (header_id, line_id);
  2034.  
  2035. -- column ACTIVITY format a15;
  2036. -- column msg_Source format a14;
  2037. -- column DESCRIPTION format a30;
  2038.  
  2039. -- PROMPT
  2040. UTL_FILE.PUT_LINE(handle,'&f &f HEADER PROCESSING MESSAGES &f');
  2041. 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');
  2042.  
  2043. declare
  2044. cursor h_proc is
  2045. select distinct
  2046. MSG.header_id HEADER_ID,
  2047. decode(MSG.MESSAGE_SOURCE_CODE,
  2048. 'U','U=On-Line(UI)',
  2049. 'C','C=Conc Process',
  2050. 'W','W=Workflow',
  2051. MSG.MESSAGE_SOURCE_CODE) MSG_SOURCE,
  2052. MSG.PROCESS_ACTIVITY PROCESS_ACTIVITY,
  2053. MSG.request_id REQUEST_ID,
  2054. MST.message_text MESSAGE_TEXT
  2055. from oe_processing_msgs_vl MSG,
  2056. oe_processing_msgs_tl MST,
  2057. fnd_languages FLA
  2058. where MSG.header_id = nvl('&header_id_selected',:v_header_id)
  2059. and msg.transaction_id = mst.transaction_id
  2060. and MST.LANGUAGE = FLA.LANGUAGE_CODE
  2061. and FLA.INSTALLED_FLAG = 'B'
  2062. and decode(MSG.LINE_ID,9.99E+125,NULL,MSG.LINE_ID) is NULL;
  2063.  
  2064. r_activity varchar2(100);
  2065. r_descrip varchar2(100);
  2066.  
  2067. type per_record_typ is RECORD
  2068. (flag varchar2(1),
  2069. descrip varchar2(200));
  2070. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  2071. msg msg_tab;
  2072.  
  2073. begin
  2074. :r_error := 0;
  2075. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  2076. for i in 1..10
  2077. loop
  2078. msg(i).flag := '0';
  2079. msg(i).descrip := '';
  2080. end loop;
  2081.  
  2082. msg(1).descrip := ' 1. Cannot find Activity name associated to HEADER PROCESSING MESSAGES.';
  2083. msg(2).descrip := ' 2. Cannot find Request Description.';
  2084. end if;
  2085.  
  2086. for hp in h_proc
  2087. loop
  2088. :r_flag := '';
  2089. :r_error := 0;
  2090. r_activity := '';
  2091. r_descrip := '';
  2092.  
  2093. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  2094. -- Get Activity name
  2095. begin
  2096. select WFA1.DISPLAY_NAME
  2097. into r_activity
  2098. from WF_PROCESS_ACTIVITIES WFP,
  2099. WF_ACTIVITIES_VL WFA1
  2100. where WFP.INSTANCE_ID = hp.PROCESS_ACTIVITY
  2101. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  2102. and WFP.ACTIVITY_NAME = WFA1.NAME
  2103. and WFA1.VERSION = (select max(VERSION)
  2104. from WF_ACTIVITIES WF2
  2105. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  2106. and WF2.NAME = WFP.ACTIVITY_NAME);
  2107. exception
  2108. when no_data_found then
  2109. :r_flag := :r_flag || '1 ';
  2110. msg(1).flag := '1';
  2111. end;
  2112.  
  2113. -- Get Request description
  2114. begin
  2115. select DESCRIPTION
  2116. into r_descrip
  2117. FROM FND_CONCURRENT_REQUESTS FCR
  2118. where FCR.REQUEST_ID = hp.REQUEST_ID;
  2119. exception
  2120. when no_data_found then
  2121. :r_flag := :r_flag || '2 ';
  2122. msg(2).flag := '1';
  2123. end;
  2124.  
  2125. end if; -- do_analysis
  2126.  
  2127. -- Print line to Output file
  2128. utl_file.put_line(handle,'&sld &b <a HREF="#HPMERR">'||n(:r_flag)||'</a> &eb &d');
  2129. utl_file.put_line(handle,n(hp.HEADER_ID)||'&d'||n(hp.MSG_SOURCE)||'&d');
  2130. utl_file.put_line(handle,n(r_activity)||'&d'||n(hp.REQUEST_ID)||'&d');
  2131. utl_file.put_line(handle,n(r_descrip)||'&d'||n(hp.MESSAGE_TEXT)||'&el');
  2132.  
  2133. if :r_flag is not null then
  2134. :r_error := 1;
  2135. end if;
  2136. end loop;
  2137. utl_file.put_line(handle,'&et');
  2138.  
  2139. if :r_error = 1 then
  2140. utl_file.put_line(handle,'&f &b <a NAME="HPMERR">Warning List:</a> &eb &f');
  2141. for i in 1..10
  2142. loop
  2143. if msg(i).flag = '1' then
  2144. utl_file.put_line(handle,msg(i).descrip||'&f');
  2145. end if;
  2146. end loop;
  2147. end if;
  2148. end;
  2149.  
  2150. UTL_FILE.PUT_LINE(handle,'&et');
  2151.  
  2152. end if; -- v_head_only
  2153.  
  2154. UTL_FILE.FCLOSE(handle);
  2155. end;
  2156. /
  2157.  
  2158. -- <do not run> DROP INDEX OE_PROCESSING_MSGS_777
  2159.  
  2160. DECLARE
  2161. handle UTL_FILE.FILE_TYPE;
  2162. dirname varchar2(1000);
  2163. text varchar2(1000);
  2164.  
  2165. function n(v varchar2) return varchar2 is
  2166. begin
  2167. if v is null then
  2168. return '&sp';
  2169. else
  2170. return v;
  2171. end if;
  2172. end n;
  2173.  
  2174. begin
  2175. If :v_head_only = 'N' then
  2176.  
  2177. -- Append to output file
  2178. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  2179. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  2180.  
  2181. if UPPER(nvl('&prt_price','Y')) = 'Y' then
  2182.  
  2183. UTL_FILE.PUT_LINE(handle,'&f &f HEADER PRICE ADJUSTMENTS (ADJ) <a HREF="#ADJC">Column Definitions</a> &f');
  2184.  
  2185. 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 ');
  2186. 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 ');
  2187. 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 ');
  2188. UTL_FILE.PUT_LINE(handle,'PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
  2189.  
  2190. declare
  2191. cursor h_prc_adj is
  2192. select
  2193. ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
  2194. nvl(ADJ.APPLIED_FLAG,'N') APPLIED_FLAG,
  2195. ADJ.LIST_HEADER_ID LST_HD_ID,
  2196. ADJ.LIST_LINE_ID LST_LN_ID,
  2197. ADJ.LIST_LINE_NO LIST_LN_NO,
  2198. ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
  2199. ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
  2200. ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
  2201. ADJ.ARITHMETIC_OPERATOR ARITH_OP,
  2202. ADJ.OPERAND_PER_PQTY OP_PER_QTY,
  2203. ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
  2204. ADJ.OPERAND OPERAND,
  2205. ADJ.ADJUSTED_AMOUNT ADJ_AMT,
  2206. ADJ.CREDIT_OR_CHARGE_FLAG CD,
  2207. ADJ.AUTOMATIC_FLAG AF,
  2208. ADJ.PRINT_ON_INVOICE_FLAG PI,
  2209. ADJ.ACCRUAL_FLAG AC,
  2210. ADJ.INVOICED_FLAG INF,
  2211. ADJ.ESTIMATED_FLAG EF,
  2212. ADJ.UPDATE_ALLOWED UA,
  2213. ADJ.UPDATED_FLAG UF,
  2214. ADJ.APPLIED_FLAG AP,
  2215. ADJ.LOCK_CONTROL LK,
  2216. ADJ.PERCENT PERC,
  2217. ADJ.COST_ID COST_ID,
  2218. ADJ.TAX_CODE TAX_CODE,
  2219. ADJ.PRICING_PHASE_ID PP
  2220. from OE_PRICE_ADJUSTMENTS ADJ
  2221. where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  2222. and ADJ.LINE_ID IS NULL
  2223. -- and ADJ.APPLIED_FLAG = 'Y'
  2224. order by ADJ.APPLIED_FLAG,LIST_TYPE_CODE;
  2225.  
  2226. begin
  2227. for hh in h_prc_adj
  2228. loop
  2229. utl_file.put_line(handle,'&sld'||n(hh.APPLIED_FLAG)||'&d'||n(hh.PRC_ADJ_ID)||'&d'||n(hh.LST_HD_ID)||'&d');
  2230. utl_file.put_line(handle,n(hh.LST_LN_ID)||'&d'||n(hh.LIST_LN_NO)||'&d'||n(hh.MOD_LVL)||'&d');
  2231. utl_file.put_line(handle,n(hh.LIST_TYPE_CODE)||'&d'||n(hh.CHG_TY_CD)||'&d'||n(hh.ARITH_OP)||'&d');
  2232. utl_file.put_line(handle,n(hh.OP_PER_QTY)||'&d'||n(hh.ADJ_AMT_PQ)||'&d'||n(hh.OPERAND)||'&d');
  2233. utl_file.put_line(handle,n(hh.ADJ_AMT)||'&d'||n(hh.CD)||'&d'||n(hh.AF)||'&d');
  2234. utl_file.put_line(handle,n(hh.PI)||'&d'||n(hh.AC)||'&d'||n(hh.INF)||'&d');
  2235. utl_file.put_line(handle,n(hh.EF)||'&d'||n(hh.UA)||'&d'||n(hh.UF)||'&d');
  2236. utl_file.put_line(handle,n(hh.AP)||'&d'||n(hh.LK)||'&d'||n(hh.PERC)||'&d');
  2237. utl_file.put_line(handle,n(hh.COST_ID)||'&d'||n(hh.TAX_CODE)||'&d'||n(hh.PP)||'&el');
  2238. end loop;
  2239. end;
  2240.  
  2241. UTL_FILE.PUT_LINE(handle,'&et');
  2242.  
  2243. end if; -- prt_price
  2244.  
  2245. UTL_FILE.PUT_LINE(handle,'&f &f MTL_SALES_ORDERS (MSO) &f');
  2246. UTL_FILE.PUT_LINE(handle,'&std &sh DS_HEADER_ID &dh HEADER_ID &dh ORDER_NUMBER &dh ORDER_TYPE_NAME &dh CONSTANTOE &eh');
  2247.  
  2248. declare
  2249. cursor mtl_sal is
  2250. select
  2251. MSO.SALES_ORDER_ID ,
  2252. ORD.HEADER_ID ,
  2253. ORD.ORDER_NUMBER ,
  2254. TYP.NAME ,
  2255. MSO.SEGMENT3
  2256. from
  2257. MTL_SALES_ORDERS MSO,
  2258. OE_ORDER_HEADERS ORD,
  2259. OE_TRANSACTION_TYPES_VL TYP
  2260. where
  2261. ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
  2262. and TO_CHAR(ORD.ORDER_NUMBER) = MSO.SEGMENT1
  2263. and TYP.NAME(+) = MSO.SEGMENT2
  2264. -- klr
  2265. and MSO.SEGMENT1 = '&order_number_selected'
  2266. and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  2267. order by
  2268. ORD.HEADER_ID;
  2269.  
  2270. begin
  2271. for ms in mtl_sal
  2272. loop
  2273. utl_file.put_line(handle,'&sld'||n(ms.SALES_ORDER_ID)||'&d'||n(ms.HEADER_ID)||'&d');
  2274. utl_file.put_line(handle,n(ms.ORDER_NUMBER)||'&d'||n(ms.NAME)||'&d');
  2275. utl_file.put_line(handle,n(ms.SEGMENT3)||'&el');
  2276. end loop;
  2277. end;
  2278.  
  2279. UTL_FILE.PUT_LINE(handle,'&et');
  2280.  
  2281. begin
  2282. select distinct(MSO.SALES_ORDER_ID)
  2283. into :sales_ord_id
  2284. from MTL_SALES_ORDERS MSO,
  2285. OE_ORDER_HEADERS ORD,
  2286. OE_TRANSACTION_TYPES_TL TYP,
  2287. FND_LANGUAGES FLA
  2288. where ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  2289. and ORD.ORDER_TYPE_ID = TYP.TRANSACTION_TYPE_ID
  2290. and TYP.LANGUAGE = FLA.LANGUAGE_CODE
  2291. and FLA.INSTALLED_FLAG = 'B'
  2292. -- klr
  2293. and MSO.SEGMENT1 = '&order_number_selected'
  2294. and TYP.NAME = MSO.SEGMENT2;
  2295. end;
  2296.  
  2297. end if; -- v_head_only
  2298.  
  2299. UTL_FILE.FCLOSE(handle);
  2300. end;
  2301. /
  2302.  
  2303. DECLARE
  2304. handle UTL_FILE.FILE_TYPE;
  2305. dirname varchar2(1000);
  2306. text varchar2(1000);
  2307. c_lines number;
  2308.  
  2309. function n(v varchar2) return varchar2 is
  2310. begin
  2311. if v is null then
  2312. return '&sp';
  2313. else
  2314. return v;
  2315. end if;
  2316. end n;
  2317.  
  2318. begin
  2319. c_lines := 0;
  2320. If :v_head_only = 'N' then
  2321.  
  2322. -- Append to output file
  2323. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  2324. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  2325.  
  2326. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="OE_ORDER_LINES">OE_ORDER_LINES (LIN)</a> <a HREF="#OOL">Column Definitions</a> &f');
  2327.  
  2328. UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh LINE &dh LINE_ID &dh DELIVERY DETAIL &dh ITEM ID &dh ITEM &dh ');
  2329. 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 ');
  2330. UTL_FILE.PUT_LINE(handle,'SMC &dh ORDER QTY &dh UOM &dh SELL PRICE &dh LIST PRICE &dh ');
  2331. UTL_FILE.PUT_LINE(handle,'CALC PRICE &dh RESERV QTY &dh SHIPNG QTY &dh SHIPPD QTY &dh FULFIL QTY &dh CANCEL QTY &dh ');
  2332. UTL_FILE.PUT_LINE(handle,'INVOIC QTY &dh SCHD ST_CD &dh WH_ID &dh ORG &dh CREATE DATE &dh ');
  2333. UTL_FILE.PUT_LINE(handle,'REQUEST DATE &dh SCHED DATE &dh ACTUAL SHIP_DATE &dh LINE TYPE &dh LINE CATEG &dh ');
  2334. UTL_FILE.PUT_LINE(handle,'ITEM TYPE &dh ORDERED ITEM_ID &dh ORDERED ITEM &dh SOURCE TYPE &dh ');
  2335. 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 ');
  2336. 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 ');
  2337. 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 ');
  2338. UTL_FILE.PUT_LINE(handle,'DISCRETE ORDER_QTY &dh DISCR UOM &dh DISCRETE SHPNG_QTY &dh DISCRETE SHPNG_UOM &dh ');
  2339. UTL_FILE.PUT_LINE(handle,'DISCRETE SHIPPD_QTY &dh DISCRETE FULFLL_QTY &dh DISCRETE CANCEL_QTY &dh ');
  2340. UTL_FILE.PUT_LINE(handle,'LAST UPD_DATE &dh');
  2341. UTL_FILE.PUT_LINE(handle,'TRACK QTY_IND &dh PRIMARY UOM_COD &dh DUAL_UOM CONTROL &dh SECONDARY DEFAULT_IND &dh ');
  2342. UTL_FILE.PUT_LINE(handle,'SECONDARY UOM_COD &dh CHILD LOT_FLAG &dh PARENT_CHILD GEN_FLAG &dh LOT DIVIS_FLAG &dh ');
  2343. UTL_FILE.PUT_LINE(handle,'GRADE CNTRL_FLAG &dh ONT_PRICING QTY_SOURCE &dh DUAL_UOM DEV_HGH &dh DUAL_UOM DEV_LOW &dh ');
  2344. UTL_FILE.PUT_LINE(handle,'LOT CONTROL &dh LOCATION CTRL_CODE &dh STATUS CONTROL &dh SRC_DOC LINE_ID &eh ');
  2345.  
  2346. declare
  2347. cursor line1 is
  2348. select
  2349. to_char(LIN.line_number) ||
  2350. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  2351. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  2352. decode(LIN.component_number, null, null,
  2353. decode(LIN.option_number, null, '.',null)||
  2354. '.'||to_char(LIN.component_number))||
  2355. decode(LIN.service_number,null,null,
  2356. decode(LIN.component_number, null, '.' , null) ||
  2357. decode(LIN.option_number, null, '.', null ) ||
  2358. '.'|| to_char(LIN.service_number)) line_n,
  2359. LIN.LINE_ID Line_i,
  2360. LIN.INVENTORY_ITEM_ID Item_i,
  2361. lpad(' ',length(LIN.SORT_ORDER)/4,rpad('.',80,'....!'))||ITM.SEGMENT1 Item_na,
  2362. substr(LIN.FLOW_STATUS_CODE,1,22) Line_st,
  2363. nvl(LIN.ORDERED_QUANTITY,0) Ordq,
  2364. LIN.ORDER_QUANTITY_UOM Orduom,
  2365. nvl(LIN.ORDERED_QUANTITY2,0) Ordq2,
  2366. LIN.ORDERED_QUANTITY_UOM2 Orduom2,
  2367. LIN.UNIT_SELLING_PRICE sell,
  2368. LIN.UNIT_LIST_PRICE lisl,
  2369. nvl(LIN.SHIPPED_QUANTITY,0) shpq,
  2370. nvl(LIN.SHIPPED_QUANTITY2,0) shpq2,
  2371. nvl(LIN.SHIPPING_QUANTITY,0) SHN_Q,
  2372. nvl(LIN.SHIPPING_QUANTITY2,0) SHN_Q2,
  2373. nvl(LIN.SHIPPING_QUANTITY_UOM2,0) SHN_QUOM2,
  2374. nvl(FULFILLED_QUANTITY,0) fulq,
  2375. nvl(FULFILLED_QUANTITY2,0) fulq2,
  2376. nvl(LIN.CANCELLED_QUANTITY,0) canq,
  2377. nvl(LIN.CANCELLED_QUANTITY2,0) canq2,
  2378. nvl(LIN.INVOICED_QUANTITY,0) invq,
  2379. substr(LIN.SCHEDULE_STATUS_CODE,1,5) schc,
  2380. nvl(LIN.OPEN_FLAG,'N') openf,
  2381. nvl(LIN.BOOKED_FLAG,'N') bookf,
  2382. nvl(LIN.SHIPPABLE_FLAG,'N') shipf,
  2383. nvl(LIN.CANCELLED_FLAG,'N') canf,
  2384. nvl(LIN.VISIBLE_DEMAND_FLAG,'N') vdem,
  2385. nvl(LIN.FULFILLED_FLAG, 'N') fulf,
  2386. nvl(LIN.SHIPPING_INTERFACED_FLAG,'N') SI,
  2387. decode(nvl(LIN.ATO_LINE_ID,0),0,'N','Y') ato_i,
  2388. nvl(LIN.SHIP_MODEL_COMPLETE_FLAG,'N') smcf,
  2389. LIN.SHIP_FROM_ORG_ID shipfrom,
  2390. -- PAR.ORGANIZATION_CODE org_i,
  2391. to_char(LIN.REQUEST_DATE,'DD-MON-RR_HH24:MI:SS') reqd,
  2392. to_char(LIN.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') schd,
  2393. -- TYP.NAME lin_ty,
  2394. LIN.LINE_TYPE_ID LINE_TYPE_ID,
  2395. LIN.LINE_CATEGORY_CODE lin_cat,
  2396. LIN.ITEM_TYPE_CODE itm_tc,
  2397. LIN.ORDERED_ITEM_ID ord_it,
  2398. LIN.ORDERED_ITEM ord_it_name,
  2399. LIN.SOURCE_TYPE_CODE Src_tc,
  2400. LIN.PRICE_LIST_ID prlst,
  2401. LIN.DEMAND_CLASS_CODE demc,
  2402. nvl(LIN.OPTION_FLAG,'N') CFG,
  2403. LIN.SHIP_FROM_ORG_ID WH_ID,
  2404. LIN.TOP_MODEL_LINE_ID PRT_LN_ID,
  2405. LIN.ATO_LINE_ID ATO_LN_ID,
  2406. LIN.LINK_TO_LINE_ID LNK_LN_ID,
  2407. LIN.SPLIT_BY SPL_BY,
  2408. LIN.SPLIT_FROM_LINE_ID SPL_LN_ID,
  2409. LIN.CONFIG_HEADER_ID CFG_HD_ID,
  2410. nvl(LIN.INVOICE_INTERFACE_STATUS_CODE,'N') INVC_INT_STAT,
  2411. LIN.SHIP_TOLERANCE_ABOVE STA,
  2412. LIN.SHIP_TOLERANCE_BELOW STB,
  2413. LIN.SHIP_SET_ID SH_SET_ID,
  2414. ST2.SET_TYPE SH_SET_TY,
  2415. LIN.LINE_SET_ID LN_SET_ID,
  2416. ST3.SET_TYPE LN_SET_TY,
  2417. LIN.ARRIVAL_SET_ID AR_SET_ID,
  2418. ST1.SET_TYPE AR_SET_TY,
  2419. LIN.CALCULATE_PRICE_FLAG CAL_PR,
  2420. to_char(LIN.ACTUAL_SHIPMENT_DATE,'DD-MON-RR_HH24:MI:SS') act_shp,
  2421. to_char(LIN.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
  2422. LIN.ordered_quantity2 ord_qty2,
  2423. LIN.ordered_quantity_uom2 ord_uom2,
  2424. to_char(LIN.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') upd_date,
  2425. ITM.TRACKING_QUANTITY_IND trck_qty_ind,
  2426. ITM.PRIMARY_UOM_CODE PRM_UOM,
  2427. ITM.DUAL_UOM_CONTROL DUAL_UOM,
  2428. ITM.SECONDARY_DEFAULT_IND SEC_DEF_IND,
  2429. ITM.SECONDARY_UOM_CODE SEC_UOM,
  2430. ITM.CHILD_LOT_FLAG CHLD_LOT,
  2431. ITM.PARENT_CHILD_GENERATION_FLAG PAR_CHLD,
  2432. ITM.LOT_DIVISIBLE_FLAG LOT_DIV,
  2433. ITM.GRADE_CONTROL_FLAG GRAD_CTRL,
  2434. Decode(ITM.ONT_PRICING_QTY_SOURCE,
  2435. 'P','Primary', 'Secondary') ONT_PR_QTY,
  2436. ITM.dual_uom_deviation_high DUAL_UOM_DEV_H,
  2437. ITM.dual_uom_deviation_low DUAL_UOM_DEV_L,
  2438. ITM.lot_control_code lot_ctl,
  2439. ITM.location_control_code loct_ctl,
  2440. ITM.lot_status_enabled status_ctl,
  2441. LIN.source_document_line_id sdli
  2442. from
  2443. OE_ORDER_LINES LIN,
  2444. -- OE_TRANSACTION_TYPES TYP,
  2445. MTL_SYSTEM_ITEMS ITM,
  2446. -- MTL_PARAMETERS PAR,
  2447. OE_SETS ST1,
  2448. OE_SETS ST2,
  2449. OE_SETS ST3
  2450. where
  2451. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  2452. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  2453. LIN.TOP_MODEL_LINE_ID,
  2454. LIN.ATO_LINE_ID,
  2455. LIN.LINK_TO_LINE_ID,
  2456. LIN.SERVICE_REFERENCE_LINE_ID)
  2457. -- and LIN.LINE_TYPE_ID = TYP.TRANSACTION_TYPE_ID
  2458. -- and LIN.SHIP_FROM_ORG_ID = PAR.ORGANIZATION_ID(+)
  2459. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  2460. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  2461. -- and LIN.OPTION_NUMBER IS NULL
  2462. -- and LIN.ITEM_TYPE_CODE <> 'INCLUDED'
  2463. and LIN.ARRIVAL_SET_ID = ST1.SET_ID(+)
  2464. and LIN.SHIP_SET_ID = ST2.SET_ID(+)
  2465. and LIN.LINE_SET_ID = ST3.SET_ID(+)
  2466. order by
  2467. nvl(LIN.line_number,0), nvl(LIN.shipment_number,0), nvl(LIN.option_number,0),
  2468. nvl(LIN.component_number,0), nvl(LIN.service_number,0);
  2469. -- NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  2470. -- NVL(LIN.SORT_ORDER, '0000'),
  2471. -- NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  2472. -- NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  2473. -- NVL(LIN.SERVICE_REFERENCE_LINE_ID, LIN.LINE_ID),
  2474. -- LIN.LINE_ID;
  2475.  
  2476. cursor setl(lin number) is
  2477. select os.set_id, os.set_type
  2478. from oe_sets os, oe_line_sets ols
  2479. where os.set_id = ols.set_id
  2480. and line_id = lin;
  2481.  
  2482. r_del_det varchar2(100);
  2483. r_pro_nab varchar2(100);
  2484. r_act_nab varchar2(100);
  2485. r_resultb varchar2(100);
  2486. r_act_sb varchar2(100);
  2487. r_sets varchar2(100);
  2488. r_omint varchar2(100);
  2489. r_invint varchar2(100);
  2490. org_i varchar2(100);
  2491. lin_ty varchar2(100);
  2492.  
  2493. type per_record_typ is RECORD
  2494. (flag varchar2(1),
  2495. descrip varchar2(200));
  2496. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  2497. msg msg_tab;
  2498.  
  2499. begin
  2500. :r_error := 0;
  2501.  
  2502. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  2503. for i in 1..70
  2504. loop
  2505. msg(i).flag := '0';
  2506. msg(i).descrip := '';
  2507. end loop;
  2508. msg(1).descrip := ' 1. Ordered Quantity is less than Shipped Quantity.';
  2509. msg(2).descrip := ' 2. Ordered Quantity is less than Fulfilled Quantity.';
  2510. msg(3).descrip := ' 3. Ordered Quantity is less than Invoiced Quantity.';
  2511. msg(4).descrip := ' 4. Interface to WSH set to "N" but exist Delivery Details associated to this Order_line.';
  2512. msg(5).descrip := ' 5. Associated Delivery Details has NOT been interface but Shipped, Fulfilled or Invoiced QTY are updated.';
  2513.  
  2514. msg(10).descrip := ' 10. Order_Line shows as OPEN but CANCELLED flag is set to Y.';
  2515.  
  2516. msg(11).descrip := ' 11. Order_Line status ENTERED but Shipped Qty is greater than zero.';
  2517. msg(12).descrip := ' 12. Order_Line status ENTERED but Fulfilled Qty is greater than zero.';
  2518.  
  2519. msg(15).descrip := ' 15. Order_Line status BOOKED but "Book" activity has not been completed.';
  2520. msg(16).descrip := ' 16. Order_Line status BOOKED but Shipped Qty is greater than zero.';
  2521. msg(17).descrip := ' 17. Order_Line status BOOKED but Fulfilled Qty is greater than zero.';
  2522.  
  2523. msg(20).descrip := ' 20. Order_Line status AWAITING SHIPPING but Item is set to Non-Shippable.';
  2524. msg(21).descrip := ' 21. Order_Line status AWAITING SHIPPING but Shipped Qty is greater than zero.';
  2525. msg(22).descrip := ' 22. Order_Line status AWAITING SHIPPING but Fulfilled Qty is greater than zero.';
  2526. msg(23).descrip := ' 23. No Delivery Details associated to this Order_line, Interface to WSH is set to "Y".';
  2527. msg(24).descrip := ' 24. Associated Delivery Details have invalid RELEASED status.';
  2528. msg(25).descrip := ' 25. Associated Delivery Details have invalid INTERFACE status (Not Shipped but Interfaced to OM or INV).';
  2529.  
  2530. msg(40).descrip := ' 40. Line status is CLOSED but associated Delivery Details still not interface to OM.';
  2531. msg(41).descrip := ' 41. Line status is CLOSED but associated Delivery Details still not interface to INVentory.';
  2532.  
  2533. msg(45).descrip := ' 45. Line status is CANCELLED but associated Delivery Details has been interfaced to OM.';
  2534. msg(46).descrip := ' 46. Line status is CANCELLED but associated Delivery Details has been interfaced to INVentory.';
  2535.  
  2536. msg(50).descrip := ' 50. No WorkFlow Process associated to this line.';
  2537. msg(51).descrip := ' 51. Incorrect WorkFlow Process associated to this line.';
  2538. msg(52).descrip := ' 52. Incorrect WorkFlow Activity associated to this line.';
  2539. msg(53).descrip := ' 53. Incorrect WorkFlow Activity Result for this line.';
  2540. msg(54).descrip := ' 54. Incorrect WorkFlow Activity Status for this line.';
  2541. msg(55).descrip := ' 55. Order Line status is BOOKED, WorkFlow Activities shows additional activities for this line.';
  2542.  
  2543. msg(60).descrip := ' 60. Organization_id is Null for this line.';
  2544. msg(61).descrip := ' 61. Transaction Type is Null for this line.';
  2545. end if;
  2546.  
  2547. for i in line1
  2548. loop
  2549. :r_flag := '';
  2550. r_del_det := '';
  2551. r_sets := '';
  2552.  
  2553. -- get Order_line WF name
  2554. begin
  2555. :r_line_t := '';
  2556. select WFA.DISPLAY_NAME
  2557. into :r_line_t
  2558. FROM WF_ITEM_ACTIVITY_STATUSES WFS,
  2559. WF_PROCESS_ACTIVITIES WFP,
  2560. WF_ACTIVITIES_VL WFA
  2561. WHERE WFS.ITEM_TYPE = 'OEOL'
  2562. -- klr
  2563. and WFS.ITEM_KEY = to_char(I.LINE_I)
  2564. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  2565. and WFP.PROCESS_NAME = 'ROOT'
  2566. and WFP.ACTIVITY_ITEM_TYPE = WFA.ITEM_TYPE
  2567. and WFP.ACTIVITY_NAME = WFA.NAME
  2568. and nvl(WFA.VERSION,-1) = (select nvl(max(VERSION),-1)
  2569. from WF_ACTIVITIES WF2
  2570. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  2571. and WF2.NAME = WFP.ACTIVITY_NAME);
  2572. exception
  2573. when no_data_found then
  2574. :r_flag := :r_flag || '50 ';
  2575. msg(50).flag := '1';
  2576. end;
  2577.  
  2578. -- get organization code
  2579. begin
  2580. select ORGANIZATION_CODE
  2581. into org_i
  2582. from MTL_PARAMETERS
  2583. where i.shipfrom = ORGANIZATION_ID(+);
  2584. exception
  2585. when no_data_found then
  2586. org_i := null;
  2587. :r_flag := :r_flag || '60 ';
  2588. msg(60).flag := '1';
  2589. end;
  2590.  
  2591. -- get Transaction Type name
  2592. begin
  2593. select NAME
  2594. into lin_ty
  2595. from OE_TRANSACTION_TYPES
  2596. where i.LINE_TYPE_ID = TRANSACTION_TYPE_ID;
  2597. exception
  2598. when others then
  2599. lin_ty := null;
  2600. :r_flag := :r_flag || '61 ';
  2601. msg(61).flag := '1';
  2602. end;
  2603.  
  2604. -- Check if exist associated Delivery Detail id regardles of line status and SI flag.
  2605. begin
  2606. select Delivery_detail_id
  2607. into r_del_det
  2608. from WSH_Delivery_Details
  2609. where SOURCE_LINE_ID = I.LINE_I
  2610. and source_code = 'OE'
  2611. and rownum = 1;
  2612. exception
  2613. when no_data_found then
  2614. null; -- conditions will be evaluated later
  2615. end;
  2616.  
  2617. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  2618. -- Reservations
  2619. select sum(nvl(RESERVATION_QUANTITY,0))
  2620. into :r_res_q
  2621. from MTL_RESERVATIONS RES
  2622. where RES.DEMAND_SOURCE_HEADER_ID = :sales_ord_id
  2623. and RES.DEMAND_SOURCE_TYPE_ID in (2,8,9,21,22)
  2624. and RES.DEMAND_SOURCE_LINE_ID = i.LINE_I;
  2625.  
  2626. -- current WF status
  2627. begin
  2628. :r_pro_na := '';
  2629. :r_act_na := '';
  2630. :r_result := '';
  2631. :r_act_s := '';
  2632.  
  2633. select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
  2634. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
  2635. LKP.MEANING
  2636. into :r_pro_na, :r_act_na, :r_result, :r_act_s
  2637. from WF_ITEM_ACTIVITY_STATUSES WFS,
  2638. WF_PROCESS_ACTIVITIES WFP,
  2639. WF_ACTIVITIES_VL WFA,
  2640. WF_ACTIVITIES_VL WFA1,
  2641. WF_LOOKUPS LKP
  2642. where WFS.ITEM_TYPE = 'OEOL'
  2643. and WFS.item_key = i.line_i
  2644. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  2645. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  2646. and WFP.PROCESS_NAME = WFA.NAME
  2647. and WFP.PROCESS_VERSION = WFA.VERSION
  2648. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  2649. and WFP.ACTIVITY_NAME = WFA1.NAME
  2650. and WFA1.VERSION = (select max(VERSION) from WF_ACTIVITIES WF2
  2651. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  2652. and WF2.NAME = WFP.ACTIVITY_NAME)
  2653. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  2654. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  2655. and Execution_time = (Select Max(execution_time) from WF_ITEM_ACTIVITY_STATUSES
  2656. where item_type = 'OEOL' and Item_key = i.line_i);
  2657. exception
  2658. when no_data_found then
  2659. if msg(50).flag = '1' then
  2660. null; -- problem already discovered
  2661. else
  2662. :r_flag := :r_flag || '50 ';
  2663. msg(50).flag := '1';
  2664. end if;
  2665. end;
  2666.  
  2667. -- Get associated sets
  2668. for sl in setl(i.line_i)
  2669. loop
  2670. r_sets := r_sets || to_char(sl.set_id)||'-'||sl.set_type || ' ';
  2671. end loop;
  2672. ---
  2673. -- Basic Verification
  2674. --
  2675. -- Ordered Qty less than Shipped (with Tolerance)
  2676. If i.Ordq*(100+nvl(i.sta,0))/100 < i.shpq then
  2677. :r_flag := :r_flag || '1 ';
  2678. msg(1).flag := '1';
  2679. end if;
  2680.  
  2681. -- Ordered Qty less than Fulfilled (with Tolerance)
  2682. If i.Ordq*(100+nvl(i.sta,0))/100 < i.fulq then
  2683. :r_flag := :r_flag || '2 ';
  2684. msg(2).flag := '1';
  2685. end if;
  2686.  
  2687. -- Ordered Qty less than Invoiced (with Tolerance)
  2688. If i.Ordq*(100+nvl(i.sta,0))/100 < i.invq then
  2689. :r_flag := :r_flag || '3 ';
  2690. msg(3).flag := '1';
  2691. end if;
  2692.  
  2693. If i.si = 'N' then -- Non interfaced to WSH
  2694. select count(*) -- count total wdd for this line
  2695. into :r_wdd
  2696. from WSH_Delivery_Details
  2697. where SOURCE_LINE_ID = I.LINE_I
  2698. and source_code = 'OE';
  2699. If :r_wdd > 0 then
  2700. :r_flag := :r_flag || '4 ';
  2701. msg(4).flag := '1';
  2702. end if;
  2703. end if;
  2704.  
  2705. -- If line is Shippable
  2706. -- Check if shipped, fulfilled or invoiced quantities has been updated and associated Del.Details still not Interfaced to OM
  2707. if i.shipf = 'Y' then -- Shippable line
  2708. if i.shpq > 0
  2709. or i.fulq > 0
  2710. or i.invq > 0 then
  2711. select count(*) -- count if any associated Delivery Detail has been OM interfaced
  2712. into r_omint
  2713. from WSH_Delivery_Details
  2714. where SOURCE_LINE_ID = I.LINE_I
  2715. and source_code = 'OE'
  2716. and OE_INTERFACED_FLAG = 'Y';
  2717. if r_omint = 0 then
  2718. :r_flag := :r_flag || '5 ';
  2719. msg(5).flag := '1';
  2720. end if;
  2721. end if;
  2722. end if;
  2723.  
  2724. -- line open but Cancelled flag is Y
  2725. if i.openf = 'Y'
  2726. and i.canf = 'Y' then
  2727. :r_flag := :r_flag || '10 ';
  2728. msg(10).flag := '1';
  2729. end if;
  2730.  
  2731. ---
  2732. -- Verifications for Order_Lines on ENTERED status
  2733. ---
  2734. If i.line_st = 'ENTERED' then
  2735.  
  2736. if i.shpq > 0 then -- Quantity Shipped
  2737. :r_flag := :r_flag || '11 ';
  2738. msg(11).flag := '1';
  2739. end if;
  2740. if i.fulq > 0 then -- Quantity Fulfilled
  2741. :r_flag := :r_flag || '12 ';
  2742. msg(12).flag := '1';
  2743. end if;
  2744.  
  2745. -- verify current WF status
  2746. if :r_pro_na <> 'Enter - Line' then
  2747. :r_flag := :r_flag || '51 ';
  2748. msg(51).flag := '1';
  2749. elsif :r_act_na <> 'Wait for Booking' then
  2750. :r_flag := :r_flag || '52 ';
  2751. msg(52).flag := '1';
  2752. elsif :r_result is not null then
  2753. :r_flag := :r_flag || '53 ';
  2754. msg(53).flag := '1';
  2755. elsif :r_act_s <> 'Notified' then
  2756. :r_flag := :r_flag || '54 ';
  2757. msg(54).flag := '1';
  2758. end if;
  2759. end if; -- ENTERED
  2760.  
  2761. ---
  2762. -- Verifications for Order_Lines on BOOKED status
  2763. ---
  2764. If i.line_st = 'BOOKED' then
  2765. -- Check is Book activity has been completed
  2766. begin
  2767. select WFA.DISPLAY_NAME, WFA1.DISPLAY_NAME,
  2768. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE),
  2769. LKP.MEANING
  2770. into r_pro_nab, r_act_nab, r_resultb, r_act_sb
  2771. from WF_ITEM_ACTIVITY_STATUSES WFS,
  2772. WF_PROCESS_ACTIVITIES WFP,
  2773. WF_ACTIVITIES_VL WFA,
  2774. WF_ACTIVITIES_VL WFA1,
  2775. WF_LOOKUPS LKP
  2776. where WFS.ITEM_TYPE = 'OEOL'
  2777. and WFS.item_key = i.line_i
  2778. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  2779. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  2780. and WFP.PROCESS_NAME = WFA.NAME
  2781. and WFP.PROCESS_VERSION = WFA.VERSION
  2782. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  2783. and WFP.ACTIVITY_NAME = WFA1.NAME
  2784. and WFA1.VERSION = (select max(VERSION) from WF_ACTIVITIES WF2
  2785. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  2786. and WF2.NAME = WFP.ACTIVITY_NAME)
  2787. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  2788. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  2789. and WFA1.DISPLAY_NAME = 'Wait for Booking';
  2790. exception
  2791. when no_data_found then
  2792. :r_flag := :r_flag || '15 ';
  2793. msg(15).flag := '1';
  2794. end;
  2795.  
  2796. if r_act_nab = 'Wait for Booking' then
  2797. if r_resultb = 'Null'
  2798. and r_act_sb = 'Complete' then
  2799. null; -- status is OK
  2800. else
  2801. :r_flag := :r_flag || '15 ';
  2802. msg(15).flag := '1';
  2803. end if;
  2804. end if;
  2805.  
  2806. if i.shpq > 0 then -- Quantity Shipped
  2807. :r_flag := :r_flag || '16 ';
  2808. msg(16).flag := '1';
  2809. end if;
  2810. if i.fulq > 0 then -- Quantity Fulfilled
  2811. :r_flag := :r_flag || '17 ';
  2812. msg(17).flag := '1';
  2813. end if;
  2814.  
  2815. -- Check if there are other activities after Booking.
  2816. if :r_act_na = 'Wait for Booking' then
  2817. null; -- OK last activity is Booking
  2818. else
  2819. :r_flag := :r_flag || '55 ';
  2820. msg(55).flag := '1';
  2821. end if;
  2822.  
  2823. end if; -- BOOKED
  2824.  
  2825. ---
  2826. -- Verifications for Order_Lines on AWAITING SHIPPING status
  2827. ---
  2828. If i.line_st = 'AWAITING_SHIPPING' then
  2829. if i.shipf = 'N' then -- No shippable line
  2830. :r_flag := :r_flag || '20 ';
  2831. msg(20).flag := '1';
  2832. end if;
  2833. if i.shpq > 0 then -- Quantity Shipped
  2834. :r_flag := :r_flag || '21 ';
  2835. msg(21).flag := '1';
  2836. end if;
  2837. if i.fulq > 0 then -- Quantity Fulfilled
  2838. :r_flag := :r_flag || '22 ';
  2839. msg(22).flag := '1';
  2840. end if;
  2841. select count(*) -- count total wdd for this line
  2842. into :r_wdd
  2843. from WSH_Delivery_Details
  2844. where SOURCE_LINE_ID = I.LINE_I
  2845. and source_code = 'OE';
  2846. If :r_wdd = 0 and i.si = 'Y' then
  2847. :r_flag := :r_flag || '23 ';
  2848. msg(23).flag := '1';
  2849. else
  2850. select count(*) -- Invalid Release flag status
  2851. into :r_wdd
  2852. from WSH_Delivery_Details
  2853. where SOURCE_LINE_ID = I.LINE_I
  2854. and source_code = 'OE'
  2855. and RELEASED_STATUS not in ('Y','R','S','B','P','C','N','D','X');
  2856. If :r_wdd > 0 then
  2857. :r_flag := :r_flag || '24 ';
  2858. msg(24).flag := '1';
  2859. end if;
  2860. select count(*) -- count Released status 'R' but OM or INV interfaced
  2861. into :r_wdd
  2862. from WSH_Delivery_Details
  2863. where SOURCE_LINE_ID = I.LINE_I
  2864. and source_code = 'OE'
  2865. and RELEASED_STATUS <> 'C'
  2866. and (nvl(INV_INTERFACED_FLAG,'N') not in ( 'N','X')
  2867. or nvl(OE_INTERFACED_FLAG,'N') <> 'N');
  2868. If :r_wdd > 0 then
  2869. :r_flag := :r_flag || '25 ';
  2870. msg(25).flag := '1';
  2871. end if;
  2872. end if; -- no wdd
  2873.  
  2874. -- verify current WF status
  2875. if :r_pro_na <> 'Ship - Line, Manual' then
  2876. :r_flag := :r_flag || '51 ';
  2877. msg(51).flag := '1';
  2878. elsif :r_act_na <> 'Ship' then
  2879. :r_flag := :r_flag || '52 ';
  2880. msg(52).flag := '1';
  2881. elsif :r_result is not null then
  2882. :r_flag := :r_flag || '53 ';
  2883. msg(53).flag := '1';
  2884. elsif :r_act_s <> 'Notified' then
  2885. :r_flag := :r_flag || '54 ';
  2886. msg(54).flag := '1';
  2887. end if;
  2888.  
  2889. end if; -- AWAITING SHIPPING
  2890.  
  2891. ---
  2892. -- Verifications for Order_Lines on SHIPPED status
  2893. ---
  2894. If i.line_st = 'SHIPPED' then
  2895. null; -- nothing yet
  2896. -- :r_flag := :r_flag || '';
  2897. -- msg(30).flag := '1';
  2898. end if; -- SHIPPED
  2899.  
  2900. ---
  2901. -- Verifications for Order_Lines on FULFILLED status
  2902. ---
  2903. If i.line_st = 'FULFILLED' then
  2904. null; -- nothing yet
  2905. -- :r_flag := :r_flag || '';
  2906. -- msg(40).flag := '1';
  2907. end if; -- FULFILLED
  2908.  
  2909. ---
  2910. -- Verifications for Order_Lines on INVOICED status
  2911. ---
  2912. If i.line_st = 'INVOICED' then
  2913. null; -- nothing yet
  2914. -- :r_flag := :r_flag || '';
  2915. -- msg(40).flag := '1';
  2916. end if; -- INVOICED
  2917.  
  2918. ---
  2919. -- Verifications for Order_Lines on CLOSED status
  2920. ---
  2921. If i.line_st = 'CLOSED' then
  2922. -- If line is Shippable check if associated Del.Details still not Interfaced to OM or INV
  2923. if i.shipf = 'Y' then
  2924. -- count if any associated Delivery Detail has NOT been OM or INV interfaced
  2925. begin
  2926. select sum(decode(nvl(OE_INTERFACED_FLAG,'N'),'N',1,0)), sum(decode(nvl(INV_INTERFACED_FLAG,'N'),'N',1,0))
  2927. into r_omint, r_invint
  2928. from WSH_Delivery_Details
  2929. where SOURCE_LINE_ID = I.LINE_I
  2930. and SOURCE_CODE = 'OE'
  2931. and released_status <> 'D'
  2932. group by SOURCE_LINE_ID;
  2933. exception
  2934. when no_data_found then
  2935. r_omint := 0;
  2936. r_invint := 0;
  2937. end;
  2938. if r_omint > 0 then
  2939. :r_flag := :r_flag || '40 ';
  2940. msg(40).flag := '1';
  2941. end if;
  2942. if r_invint > 0 then
  2943. :r_flag := :r_flag || '41 ';
  2944. msg(41).flag := '1';
  2945. end if;
  2946. end if;
  2947. end if; -- CLOSED
  2948.  
  2949. ---
  2950. -- Verifications for Order_Lines on CANCELLED status
  2951. ---
  2952. If i.line_st = 'CANCELLED' then
  2953. -- If line is Shippable check if associated Del.Details open Pending Interfaced to OM or INV
  2954. if i.shipf = 'Y' then
  2955. -- count if any associated Delivery Detail has been interfaced to OM or INV
  2956. begin
  2957. select sum(decode(nvl(OE_INTERFACED_FLAG,'N'),'Y',1,0)), sum(decode(nvl(INV_INTERFACED_FLAG,'N'),'Y',1,0))
  2958. into r_omint, r_invint
  2959. from WSH_Delivery_Details
  2960. where SOURCE_LINE_ID = I.LINE_I
  2961. and source_code = 'OE'
  2962. and RELEASED_STATUS <> 'D'
  2963. group by SOURCE_LINE_ID;
  2964. exception
  2965. when no_data_found then
  2966. r_omint := 0;
  2967. r_invint := 0;
  2968. end;
  2969. if r_omint > 0 then
  2970. :r_flag := :r_flag || '45 ';
  2971. msg(45).flag := '1';
  2972. end if;
  2973. if r_invint > 0 then
  2974. :r_flag := :r_flag || '46 ';
  2975. msg(46).flag := '1';
  2976. end if;
  2977. end if;
  2978. end if; -- CANCELLED
  2979. end if; -- do_analysis
  2980.  
  2981. -- Print line to Output file
  2982. utl_file.put_line(handle,'&sld &b <a HREF="#OLERR">'||n(:r_flag)||'</a> &eb &d'||n(i.line_n)||'&d');
  2983. 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>');
  2984. utl_file.put_line(handle,'&d'||n(i.Item_i)||'&d'||n(i.Item_na)||'&d');
  2985. utl_file.put_line(handle,'<a HREF="#WF'||i.Line_i||'">'||n(:r_line_t)||'</a>'||'&d');
  2986. utl_file.put_line(handle,n(i.Line_st)||'&d'||n(i.openf)||'&d');
  2987. utl_file.put_line(handle,n(i.bookf)||'&d'||n(i.shipf)||'&d');
  2988. utl_file.put_line(handle,n(i.canf)||'&d'||n(i.vdem)||'&d');
  2989. utl_file.put_line(handle,n(i.si)||'&d'||n(i.fulf)||'&d');
  2990. utl_file.put_line(handle,n(i.ato_i)||'&d'||n(i.smcf)||'&d');
  2991. utl_file.put_line(handle,n(i.Ordq)||'&d'||n(i.Orduom)||'&d');
  2992. utl_file.put_line(handle,n(i.sell)||'&d');
  2993. utl_file.put_line(handle,n(i.lisl)||'&d'||n(i.cal_pr)||'&d');
  2994. utl_file.put_line(handle,n(:r_res_q)||'&d'||n(i.shn_q)||'&d');
  2995. utl_file.put_line(handle,n(i.shpq)||'&d'||n(i.fulq)||'&d');
  2996. utl_file.put_line(handle,n(i.canq)||'&d');
  2997. utl_file.put_line(handle,n(i.invq)||'&d'||n(i.schc)||'&d');
  2998. utl_file.put_line(handle,n(i.shipfrom)||'&d'||n(org_i)||'&d');
  2999. utl_file.put_line(handle,n(i.cre_date)||'&d');
  3000. utl_file.put_line(handle,n(i.reqd)||'&d'||n(i.schd)||'&d');
  3001. utl_file.put_line(handle,n(i.act_shp)||'&d');
  3002. utl_file.put_line(handle,n(lin_ty)||'&d'||n(i.lin_cat)||'&d');
  3003. utl_file.put_line(handle,n(i.itm_tc)||'&d'||n(i.ord_it)||'&d');
  3004. utl_file.put_line(handle,n(i.ord_it_name)||'&d'||n(i.Src_tc)||'&d');
  3005. utl_file.put_line(handle,n(i.prlst)||'&d'||n(i.demc)||'&d');
  3006. utl_file.put_line(handle,n(i.CFG)||'&d'||n(i.WH_ID)||'&d');
  3007. utl_file.put_line(handle,n(i.PRT_LN_ID)||'&d'||n(i.ATO_LN_ID)||'&d');
  3008. utl_file.put_line(handle,n(i.LNK_LN_ID)||'&d'||n(i.SPL_BY)||'&d');
  3009. utl_file.put_line(handle,n(i.SPL_LN_ID)||'&d');
  3010. utl_file.put_line(handle,n(i.CFG_HD_ID)||'&d'||n(i.INVC_INT_STAT)||'&d');
  3011. utl_file.put_line(handle,n(i.STA)||'&d');
  3012. utl_file.put_line(handle,n(i.STB)||'&d'||n(i.SH_SET_ID)||'&d');
  3013. utl_file.put_line(handle,n(i.SH_SET_TY)||'&d'||n(i.LN_SET_ID)||'&d');
  3014. utl_file.put_line(handle,n(i.LN_SET_TY)||'&d'||n(i.AR_SET_ID)||'&d');
  3015. utl_file.put_line(handle,n(i.AR_SET_TY)||'&d'||n(r_sets)||'&d');
  3016. utl_file.put_line(handle,n(i.Ordq2)||'&d'||n(i.Orduom2)||'&d');
  3017. utl_file.put_line(handle,n(i.shn_q2)||'&d'||n(i.shn_quom2)||'&d');
  3018. utl_file.put_line(handle,n(i.shpq2)||'&d'||n(i.fulq2)||'&d');
  3019. utl_file.put_line(handle,n(i.canq2)||'&d');
  3020. utl_file.put_line(handle,n(i.upd_date)||'&d');
  3021. utl_file.put_line(handle,n(i.trck_qty_ind)||'&d'||n(i.PRM_UOM)||'&d');
  3022. utl_file.put_line(handle,n(i.DUAL_UOM)||'&d'||n(i.SEC_DEF_IND)||'&d');
  3023. utl_file.put_line(handle,n(i.SEC_UOM)||'&d'||n(i.CHLD_LOT)||'&d');
  3024. utl_file.put_line(handle,n(i.PAR_CHLD)||'&d'||n(i.LOT_DIV)||'&d');
  3025. utl_file.put_line(handle,n(i.GRAD_CTRL)||'&d'||n(i.ONT_PR_QTY)||'&d');
  3026. utl_file.put_line(handle,n(i.DUAL_UOM_DEV_H)||'&d'||n(i.DUAL_UOM_DEV_L)||'&d');
  3027. utl_file.put_line(handle,n(i.LOT_CTL)||'&d'||n(i.LOCT_CTL)||'&d');
  3028. utl_file.put_line(handle,n(i.STATUS_CTL)||'&d'||n(i.sdli)||'&el');
  3029. if :r_flag is not null then
  3030. :r_error := 1;
  3031. end if;
  3032. end loop;
  3033.  
  3034. utl_file.put_line(handle,'&et');
  3035.  
  3036. if :r_error = 1 then
  3037. utl_file.put_line(handle,'&f &b <a NAME="OLERR">Warning List:</a> &eb &f');
  3038. for i in 1..70
  3039. loop
  3040. if msg(i).flag = '1' then
  3041. utl_file.put_line(handle,msg(i).descrip||'&f');
  3042. end if;
  3043. end loop;
  3044. end if;
  3045.  
  3046. end;
  3047.  
  3048. UTL_FILE.PUT_LINE(handle,'&et');
  3049.  
  3050. end if; -- v_head_only
  3051.  
  3052. UTL_FILE.FCLOSE(handle);
  3053. end;
  3054. /
  3055. --AQUI
  3056.  
  3057. DECLARE
  3058. handle UTL_FILE.FILE_TYPE;
  3059. dirname varchar2(1000);
  3060. text varchar2(1000);
  3061.  
  3062. function n(v varchar2) return varchar2 is
  3063. begin
  3064. if v is null then
  3065. return '&sp';
  3066. else
  3067. return v;
  3068. end if;
  3069. end n;
  3070.  
  3071. begin
  3072. If :v_head_only = 'N' then
  3073.  
  3074. -- Append to output file
  3075. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  3076. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  3077.  
  3078. UTL_FILE.PUT_LINE(handle,'&f &f OE_ORDER_LINES_HISTORY (HIL) &f');
  3079. 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');
  3080. 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');
  3081. UTL_FILE.PUT_LINE(handle,'PRICE &dh REASON_CODE &dh HIST_COMMENTS &eh');
  3082.  
  3083. Declare
  3084. cursor l_lin_his is
  3085. select
  3086. HIL.LINE_ID Line_id,
  3087. to_char(HIL.line_number) ||
  3088. decode(HIL.shipment_number, null, null, '.' || to_char(HIL.shipment_number))||
  3089. decode(HIL.option_number, null, null, '.' || to_char(HIL.option_number)) ||
  3090. decode(HIL.component_number, null, null,
  3091. decode(HIL.option_number, null, '.',null)||
  3092. '.'||to_char(HIL.component_number))||
  3093. decode(HIL.service_number,null,null,
  3094. decode(HIL.component_number, null, '.' , null) ||
  3095. decode(HIL.option_number, null, '.', null ) ||
  3096. '.'|| to_char(HIL.service_number)) line_no,
  3097. nvl(HIL.ORDERED_QUANTITY,0) Ord_q,
  3098. nvl(HIL.LATEST_CANCELLED_QUANTITY,0) lCan_q,
  3099. nvl(HIL.SHIPPING_QUANTITY,0) SHI_q,
  3100. nvl(HIL.SHIPPED_QUANTITY,0) SHP_q,
  3101. nvl(HIL.FULFILLED_QUANTITY,0) Ful_q,
  3102. nvl(HIL.CANCELLED_QUANTITY,0) Can_q,
  3103. nvl(HIL.INVOICED_QUANTITY,0) INV_q,
  3104. HIL.ORDER_QUANTITY_UOM Ord_q_uom,
  3105. substr(HIL.SCHEDULE_STATUS_CODE,1,5) Sch_code,
  3106. nvl(HIL.OPEN_FLAG,'N') OP_f,
  3107. nvl(HIL.BOOKED_FLAG,'N') BK_f,
  3108. nvl(HIL.SHIPPABLE_FLAG,'N') SH_f,
  3109. nvl(HIL.CANCELLED_FLAG,'N') CN_f,
  3110. nvl(HIL.VISIBLE_DEMAND_FLAG,'N') VD_f,
  3111. nvl(HIL.SHIPPING_INTERFACED_FLAG,'N') SI_f,
  3112. nvl(HIL.FULFILLED_FLAG,'N') FL_f,
  3113. HIL.WF_ACTIVITY_CODE Act_code,
  3114. HIL.WF_RESULT_CODE Res_code,
  3115. HIL.HIST_TYPE_CODE Typ_code,
  3116. to_char(HIL.HIST_CREATION_DATE, 'DD-MON-RR_HH24:MI:SS') Hist_cre_date,
  3117. HIL.FLOW_STATUS_CODE Sta_code,
  3118. HIL.UNIT_SELLING_PRICE Sell_p,
  3119. HIL.REASON_CODE Reason,
  3120. HIL.HIST_COMMENTS comments
  3121. from
  3122. OE_ORDER_LINES_HISTORY HIL
  3123. where
  3124. HIL.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3125. and NVL('&line_id_selected',0) in (0,HIL.LINE_ID,
  3126. HIL.TOP_MODEL_LINE_ID,
  3127. HIL.ATO_LINE_ID,
  3128. HIL.LINK_TO_LINE_ID,
  3129. HIL.SERVICE_REFERENCE_LINE_ID)
  3130. order by
  3131. NVL(HIL.ATO_LINE_ID, HIL.LINE_ID),
  3132. NVL(HIL.SORT_ORDER, '0000'),
  3133. NVL(HIL.LINK_TO_LINE_ID, HIL.LINE_ID),
  3134. NVL(HIL.SOURCE_DOCUMENT_LINE_ID, HIL.LINE_ID),
  3135. NVL(HIL.SERVICE_REFERENCE_LINE_ID, HIL.LINE_ID),
  3136. HIL.LINE_ID;
  3137.  
  3138. begin
  3139. for ll in l_lin_his
  3140. loop
  3141. utl_file.put_line(handle,'&sld'||n(ll.Line_id)||'&d'||n(ll.line_no)||'&d');
  3142. utl_file.put_line(handle,n(ll.Ord_q)||'&d'||n(ll.lcan_q)||'&d');
  3143. utl_file.put_line(handle,n(ll.SHI_q)||'&d'||n(ll.SHP_q)||'&d');
  3144. utl_file.put_line(handle,n(ll.Ful_q)||'&d'||n(ll.CAN_q)||'&d');
  3145. utl_file.put_line(handle,n(ll.INV_q)||'&d'||n(ll.ord_q_uom)||'&d');
  3146. utl_file.put_line(handle,n(ll.Sch_code)||'&d'||n(ll.OP_f)||'&d');
  3147. utl_file.put_line(handle,n(ll.BK_f)||'&d'||n(ll.SH_f)||'&d');
  3148. utl_file.put_line(handle,n(ll.CN_f)||'&d'||n(ll.VD_f)||'&d');
  3149. utl_file.put_line(handle,n(ll.SI_f)||'&d'||n(ll.FL_f)||'&d');
  3150. utl_file.put_line(handle,n(ll.Act_code)||'&d'||n(ll.Res_code)||'&d');
  3151. utl_file.put_line(handle,n(ll.Typ_code)||'&d'||n(ll.Hist_cre_date)||'&d');
  3152. utl_file.put_line(handle,n(ll.Sta_code)||'&d'||n(ll.Sell_p)||'&d');
  3153. utl_file.put_line(handle,n(ll.Reason)||'&d'||n(ll.comments)||'&el');
  3154. end loop;
  3155. end;
  3156.  
  3157. UTL_FILE.PUT_LINE(handle,'&et');
  3158.  
  3159. if UPPER(nvl('&prt_wf','Y')) = 'Y' then
  3160.  
  3161. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW LINE STATUS &f');
  3162.  
  3163. -- break on WFS.ITEM_KEY skip 2;
  3164.  
  3165. declare
  3166. cursor WF_LINE is
  3167. select WFS.ITEM_KEY ITEM_KEY,
  3168. WFA.DISPLAY_NAME PROCESS_NAME,
  3169. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  3170. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT_CODE,
  3171. LKP.MEANING MEANING,
  3172. WFS.NOTIFICATION_ID NOTIFICATION_ID,
  3173. WFP.PROCESS_NAME INT_Process_name,
  3174. WFP.ACTIVITY_NAME INT_Activity_name,
  3175. WFS.ACTIVITY_RESULT_CODE INT_Act_Res_code,
  3176. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') B_Date,
  3177. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') E_Date,
  3178. WFS.ERROR_NAME Err_name,
  3179. WFS.BEGIN_DATE BEGIN_DATE2,
  3180. WFS.EXECUTION_TIME EXECUTION_TIME2
  3181. from WF_ITEM_ACTIVITY_STATUSES WFS,
  3182. WF_PROCESS_ACTIVITIES WFP,
  3183. WF_ACTIVITIES_VL WFA,
  3184. WF_ACTIVITIES_VL WFA1,
  3185. WF_LOOKUPS LKP
  3186. where
  3187. WFS.ITEM_TYPE = 'OEOL'
  3188. and WFS.item_key in
  3189. (select to_char(line_id) from OE_ORDER_LINES LIN
  3190. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3191. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3192. LIN.TOP_MODEL_LINE_ID,
  3193. LIN.ATO_LINE_ID,
  3194. LIN.LINK_TO_LINE_ID,
  3195. LIN.SERVICE_REFERENCE_LINE_ID)
  3196. )
  3197. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  3198. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  3199. and WFP.PROCESS_NAME = WFA.NAME
  3200. and WFP.PROCESS_VERSION = WFA.VERSION
  3201. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  3202. and WFP.ACTIVITY_NAME = WFA1.NAME
  3203. and WFA1.VERSION =
  3204. (select max(VERSION)
  3205. from WF_ACTIVITIES WF2
  3206. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  3207. and WF2.NAME = WFP.ACTIVITY_NAME)
  3208. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  3209. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  3210. UNION ALL
  3211. select WFS.ITEM_KEY ITEM_KEY,
  3212. WFA.DISPLAY_NAME PROCESS_NAME,
  3213. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  3214. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT_CODE,
  3215. LKP.MEANING MEANING,
  3216. WFS.NOTIFICATION_ID NOTIFICATION_ID,
  3217. WFP.PROCESS_NAME INT_Process_name,
  3218. WFP.ACTIVITY_NAME INT_Activity_name,
  3219. WFS.ACTIVITY_RESULT_CODE INT_Act_Res_code,
  3220. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') B_Date,
  3221. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') E_Date,
  3222. WFS.ERROR_NAME Err_name,
  3223. WFS.BEGIN_DATE BEGIN_DATE2,
  3224. WFS.EXECUTION_TIME EXECUTION_TIME2
  3225. from WF_ITEM_ACTIVITY_STATUSES_H WFS,
  3226. WF_PROCESS_ACTIVITIES WFP,
  3227. WF_ACTIVITIES_VL WFA,
  3228. WF_ACTIVITIES_VL WFA1,
  3229. WF_LOOKUPS LKP
  3230. where
  3231. WFS.ITEM_TYPE = 'OEOL'
  3232. and WFS.item_key in
  3233. (select to_char(line_id) from OE_ORDER_LINES LIN
  3234. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3235. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3236. LIN.TOP_MODEL_LINE_ID,
  3237. LIN.ATO_LINE_ID,
  3238. LIN.LINK_TO_LINE_ID,
  3239. LIN.SERVICE_REFERENCE_LINE_ID)
  3240. )
  3241. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  3242. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  3243. and WFP.PROCESS_NAME = WFA.NAME
  3244. and WFP.PROCESS_VERSION = WFA.VERSION
  3245. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  3246. and WFP.ACTIVITY_NAME = WFA1.NAME
  3247. and WFA1.VERSION =
  3248. (select max(VERSION)
  3249. from WF_ACTIVITIES WF2
  3250. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  3251. and WF2.NAME = WFP.ACTIVITY_NAME)
  3252. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  3253. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  3254. order by 1, 13, 14;
  3255.  
  3256. type per_record_typ is RECORD
  3257. (flag varchar2(1),
  3258. descrip varchar2(200));
  3259. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  3260. msg msg_tab;
  3261. current_key number;
  3262. line_no varchar2(10);
  3263.  
  3264. begin
  3265. current_key := '';
  3266. :r_error := 0;
  3267.  
  3268. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  3269. for i in 1..60
  3270. loop
  3271. msg(i).flag := '0';
  3272. msg(i).descrip := '';
  3273. end loop;
  3274.  
  3275. end if; -- do_analysis
  3276.  
  3277. -- cycle for table information
  3278. for wf in wf_LINE
  3279. loop
  3280. :r_flag := '';
  3281.  
  3282. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  3283. null; -- nothing yet
  3284. end if; -- do_analysis
  3285.  
  3286. -- Print line to Output file
  3287. if wf.item_key <> nvl(current_key,0) then -- check if item key changed to place a division
  3288. if current_key is not null then -- first pass don't need to close table
  3289. utl_file.put_line(handle,'&et &f');
  3290. end if;
  3291. utl_file.put_line(handle,'&std &sh <a NAME="WF'||wf.ITEM_KEY||'">WARNING</a> &dh');
  3292. utl_file.put_line(handle,'LIN_NUM &dh');
  3293. utl_file.put_line(handle,'LIN_ID &dh');
  3294. utl_file.put_line(handle,'PROCESS_NAME &dh');
  3295. utl_file.put_line(handle,'ACTIVITY_NAME &dh');
  3296. utl_file.put_line(handle,'RESULT &dh');
  3297. utl_file.put_line(handle,'ACT_STATUS &dh');
  3298. utl_file.put_line(handle,'NOTIF_ID &dh');
  3299. utl_file.put_line(handle,'INT_PROCESS_NAME &dh');
  3300. utl_file.put_line(handle,'INT_ACTIVITY_NAME &dh');
  3301. utl_file.put_line(handle,'INT_RESULT_CODE &dh');
  3302. utl_file.put_line(handle,'BEGIN_DATE &dh');
  3303. utl_file.put_line(handle,'END_DATE &dh');
  3304. utl_file.put_line(handle,'ERROR_NAME &eh');
  3305. current_key := wf.item_key;
  3306.  
  3307. select to_char(LIN.line_number) ||
  3308. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3309. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3310. decode(LIN.component_number, null, null,
  3311. decode(LIN.option_number, null, '.',null)||
  3312. '.'||to_char(LIN.component_number))||
  3313. decode(LIN.service_number,null,null,
  3314. decode(LIN.component_number, null, '.' , null) ||
  3315. decode(LIN.option_number, null, '.', null ) ||
  3316. '.'|| to_char(LIN.service_number))
  3317. into line_no
  3318. from OE_ORDER_LINES LIN
  3319. where LIN.Line_id = current_key;
  3320.  
  3321. end if;
  3322. utl_file.put_line(handle,'&sld &b <a HREF="#WFLERR">'||n(:r_flag)||'</a> &eb &d'||n(line_no)||'&d');
  3323. utl_file.put_line(handle,n(wf.ITEM_KEY)||'&d');
  3324. utl_file.put_line(handle,n(wf.Process_name)||'&d'||n(wf.activity_name)||'&d');
  3325. utl_file.put_line(handle,n(wf.Result_code)||'&d'||n(wf.Meaning)||'&d');
  3326. utl_file.put_line(handle,n(wf.Notification_id)||'&d'||n(wf.INT_Process_name)||'&d');
  3327. utl_file.put_line(handle,n(wf.INT_activity_name)||'&d'||n(wf.INT_Act_Res_code)||'&d');
  3328. utl_file.put_line(handle,n(wf.B_date)||'&d');
  3329. utl_file.put_line(handle,n(wf.E_date)||'&d'||n(wf.Err_name)||'&el');
  3330.  
  3331. if :r_flag is not null then
  3332. :r_error := 1;
  3333. end if;
  3334. end loop;
  3335.  
  3336. utl_file.put_line(handle,'&et');
  3337.  
  3338. if :r_error = 1 then
  3339. utl_file.put_line(handle,'&f &b <a NAME="WFLERR">Warning List:</a> &eb &f');
  3340. for i in 1..60
  3341. loop
  3342. if msg(i).flag = '1' then
  3343. utl_file.put_line(handle,msg(i).descrip||'&f');
  3344. end if;
  3345. end loop;
  3346. end if;
  3347.  
  3348. end;
  3349.  
  3350. UTL_FILE.PUT_LINE(handle,'&et');
  3351.  
  3352. /*
  3353. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW LINE SKIP INFORMATION (WFSKIPL)&f');
  3354.  
  3355. 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');
  3356.  
  3357. declare
  3358. r_exist number;
  3359.  
  3360. begin
  3361.  
  3362. select count(*)
  3363. into r_exist
  3364. from all_tables
  3365. where table_name = 'ONT_WF_SKIP_LOG';
  3366. if r_exist = 0 then
  3367. utl_file.put_line(handle,'&et Table ONT_WF_SKIP_LOG is not present on this instance: &f');
  3368. end if;
  3369.  
  3370. end;
  3371.  
  3372. select '&sld', WFS.LINE_ID,
  3373. WFS.HEADER_ID,
  3374. WFA.DISPLAY_NAME,
  3375. to_char(WFS.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
  3376. WFS.USER_ID,
  3377. WFS.RESPONSIBILITY_ID,
  3378. WFS.APPLICATION_ID,'&el'
  3379. from ONT_WF_SKIP_LOG WFS,
  3380. WF_PROCESS_ACTIVITIES WFP,
  3381. WF_ACTIVITIES_VL WFA
  3382. where WFS.HEADER_ID = nvl('&header_id_selected',to_char(:v_header_id))
  3383. and WFS.ACTIVITY_ID = WFP.INSTANCE_ID
  3384. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  3385. and WFP.PROCESS_NAME = WFA.NAME
  3386. and WFP.PROCESS_VERSION = WFA.VERSION
  3387. and NVL('&line_id_selected',0) in (0,WFS.LINE_ID)
  3388. order by WFS.HEADER_ID,
  3389. WFS.LINE_ID,
  3390. WFS.CREATION_DATE;
  3391.  
  3392. UTL_FILE.PUT_LINE(handle,'&et'); */
  3393.  
  3394. UTL_FILE.PUT_LINE(handle,'&f &f &b WORKFLOW LINE STATUS ERRORS &f');
  3395.  
  3396. -- break on LIN_ID skip 2;
  3397.  
  3398. 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 ');
  3399. UTL_FILE.PUT_LINE(handle,'ERROR_NAME &dh ERROR_MESSAGE &dh ERROR_STACK &eh');
  3400.  
  3401. Declare
  3402. cursor l_wf_err is
  3403. select
  3404. WFS.ITEM_KEY LIN_ID,
  3405. WFA.DISPLAY_NAME PROCESS_NAME,
  3406. WFA1.DISPLAY_NAME ERROR_ACTIVITY_NAME,
  3407. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  3408. LKP.MEANING ACT_STATUS,
  3409. WFS.ERROR_NAME ERROR_NAME,
  3410. WFS.ERROR_MESSAGE ERROR_MESSAGE,
  3411. WFS.ERROR_STACK ERROR_STACK
  3412. from WF_ITEM_ACTIVITY_STATUSES WFS,
  3413. WF_ITEMS WFI,
  3414. WF_PROCESS_ACTIVITIES WFP,
  3415. WF_ACTIVITIES_VL WFA,
  3416. WF_ACTIVITIES_VL WFA1,
  3417. WF_LOOKUPS LKP
  3418. where
  3419. WFS.ITEM_TYPE = 'OEOL'
  3420. and WFS.item_key in
  3421. (select to_char(line_id) from OE_ORDER_LINES LIN
  3422. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3423. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3424. LIN.TOP_MODEL_LINE_ID,
  3425. LIN.ATO_LINE_ID,
  3426. LIN.LINK_TO_LINE_ID,
  3427. LIN.SERVICE_REFERENCE_LINE_ID)
  3428. )
  3429. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  3430. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  3431. and WFP.PROCESS_NAME = WFA.NAME
  3432. and WFP.PROCESS_VERSION = WFA.VERSION
  3433. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  3434. and WFP.ACTIVITY_NAME = WFA1.NAME
  3435. and WFA1.VERSION =
  3436. (select max(VERSION)
  3437. from WF_ACTIVITIES WF2
  3438. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  3439. and WF2.NAME = WFP.ACTIVITY_NAME)
  3440. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  3441. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  3442. and WFS.ERROR_NAME is not NULL
  3443. and WFI.PARENT_ITEM_TYPE='OEOL'
  3444. and WFI.PARENT_ITEM_KEY in
  3445. (select to_char(line_id) from OE_ORDER_LINES LIN
  3446. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3447. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3448. LIN.TOP_MODEL_LINE_ID,
  3449. LIN.ATO_LINE_ID,
  3450. LIN.LINK_TO_LINE_ID,
  3451. LIN.SERVICE_REFERENCE_LINE_ID)
  3452. )
  3453. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  3454.  
  3455. begin
  3456. for ll in l_wf_err
  3457. loop
  3458. utl_file.put_line(handle,'&sld'||n(ll.LIN_ID)||'&d'||n(ll.PROCESS_NAME)||'&d');
  3459. utl_file.put_line(handle,n(ll.ERROR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
  3460. utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.ERROR_NAME)||'&d');
  3461. utl_file.put_line(handle,n(ll.ERROR_MESSAGE)||'&d'||n(ll.ERROR_STACK)||'&el');
  3462. end loop;
  3463. end;
  3464.  
  3465. UTL_FILE.PUT_LINE(handle,'&et');
  3466.  
  3467. -- break on ERR_TYPE_KEY skip 2;
  3468.  
  3469. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW ACTIVITY STATUS FOR LINE ERROR PROCESS &f');
  3470.  
  3471. 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 ');
  3472. UTL_FILE.PUT_LINE(handle,'ASGND_USER &dh BEGIN_DATE &dh END_DATE &eh');
  3473.  
  3474. Declare
  3475. cursor l_wf_proc_err is
  3476. select
  3477. WFS.ITEM_TYPE || '-' || WFS.ITEM_KEY ERR_TYPE_KEY,
  3478. WFA.DISPLAY_NAME ERR_PROCESS_NAME,
  3479. WFA1.DISPLAY_NAME ERR_ACTIVITY_NAME,
  3480. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  3481. LKP.MEANING ACT_STATUS,
  3482. WFS.NOTIFICATION_ID NOTIF_ID,
  3483. WFS.ASSIGNED_USER ASGND_USER,
  3484. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
  3485. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE
  3486. from WF_ITEM_ACTIVITY_STATUSES WFS,
  3487. WF_PROCESS_ACTIVITIES WFP,
  3488. WF_ACTIVITIES_VL WFA,
  3489. WF_ACTIVITIES_VL WFA1,
  3490. WF_LOOKUPS LKP,
  3491. WF_ITEMS WFI
  3492. where
  3493. WFS.ITEM_TYPE = WFI.ITEM_TYPE
  3494. and WFS.item_key = WFI.ITEM_KEY
  3495. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  3496. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  3497. and WFP.PROCESS_NAME = WFA.NAME
  3498. and WFP.PROCESS_VERSION = WFA.VERSION
  3499. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  3500. and WFP.ACTIVITY_NAME = WFA1.NAME
  3501. and WFA1.VERSION =
  3502. (select max(VERSION)
  3503. from WF_ACTIVITIES WF2
  3504. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  3505. and WF2.NAME = WFP.ACTIVITY_NAME)
  3506. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  3507. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  3508. and WFI.PARENT_ITEM_TYPE = 'OEOL'
  3509. and WFI.PARENT_ITEM_KEY in
  3510. (select to_char(line_id) from OE_ORDER_LINES LIN
  3511. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3512. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3513. LIN.TOP_MODEL_LINE_ID,
  3514. LIN.ATO_LINE_ID,
  3515. LIN.LINK_TO_LINE_ID,
  3516. LIN.SERVICE_REFERENCE_LINE_ID)
  3517. )
  3518. and WFI.ITEM_TYPE in (select WFAE.ERROR_ITEM_TYPE
  3519. from WF_ITEM_ACTIVITY_STATUSES WFSE,
  3520. WF_PROCESS_ACTIVITIES WFPE,
  3521. WF_ACTIVITIES_VL WFAE,
  3522. WF_ACTIVITIES_VL WFA1E
  3523. where
  3524. WFSE.ITEM_TYPE = 'OEOL'
  3525. and WFSE.ITEM_KEY in
  3526. (select to_char(line_id) from OE_ORDER_LINES LIN
  3527. where LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3528. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3529. LIN.TOP_MODEL_LINE_ID,
  3530. LIN.ATO_LINE_ID,
  3531. LIN.LINK_TO_LINE_ID,
  3532. LIN.SERVICE_REFERENCE_LINE_ID)
  3533. )
  3534. and WFSE.PROCESS_ACTIVITY = WFPE.INSTANCE_ID
  3535. and WFPE.PROCESS_ITEM_TYPE = WFAE.ITEM_TYPE
  3536. and WFPE.PROCESS_NAME = WFAE.NAME
  3537. and WFPE.PROCESS_VERSION = WFAE.VERSION
  3538. and WFPE.ACTIVITY_ITEM_TYPE = WFA1E.ITEM_TYPE
  3539. and WFPE.ACTIVITY_NAME = WFA1E.NAME
  3540. and WFA1E.VERSION =
  3541. (select max(VERSION)
  3542. from WF_ACTIVITIES WF2E
  3543. where WF2E.ITEM_TYPE = WFPE.ACTIVITY_ITEM_TYPE
  3544. and WF2E.NAME = WFPE.ACTIVITY_NAME)
  3545. and WFSE.ACTIVITY_STATUS = 'ERROR')
  3546. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  3547.  
  3548. begin
  3549. for ll in l_wf_proc_err
  3550. loop
  3551. utl_file.put_line(handle,'&sld'||n(ll.ERR_TYPE_KEY)||'&d'||n(ll.ERR_PROCESS_NAME)||'&d');
  3552. utl_file.put_line(handle,n(ll.ERR_ACTIVITY_NAME)||'&d'||n(ll.RESULT)||'&d');
  3553. utl_file.put_line(handle,n(ll.ACT_STATUS)||'&d'||n(ll.NOTIF_ID)||'&d');
  3554. utl_file.put_line(handle,n(ll.ASGND_USER)||'&d'||n(ll.BEGIN_DATE)||'&d');
  3555. utl_file.put_line(handle,n(ll.END_DATE)||'&el');
  3556. end loop;
  3557. end;
  3558.  
  3559. UTL_FILE.PUT_LINE(handle,'&et');
  3560.  
  3561. end if; -- prt_wf
  3562.  
  3563. UTL_FILE.PUT_LINE(handle,'&f &f LINE SPECIFIC HOLDS (LINES ONLY)');
  3564. 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 ');
  3565. 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 ');
  3566. UTL_FILE.PUT_LINE(handle,'ENTITY_ID2 &dh HOLD_UNTIL &eh');
  3567.  
  3568. Declare
  3569. cursor l_holds is
  3570. SELECT
  3571. to_char(LIN.line_number) ||
  3572. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3573. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3574. decode(LIN.component_number, null, null,
  3575. decode(LIN.option_number, null, '.',null)||
  3576. '.'||to_char(LIN.component_number))||
  3577. decode(LIN.service_number,null,null,
  3578. decode(LIN.component_number, null, '.' , null) ||
  3579. decode(LIN.option_number, null, '.', null ) ||
  3580. '.'|| to_char(LIN.service_number)) LINE,
  3581. HDF.HOLD_ID HOLD_ID,
  3582. HDF.NAME HOLD_NAME,
  3583. HDF.TYPE_CODE HOLD_TYPE,
  3584. HDF.ITEM_TYPE WF_ITEM,
  3585. HDF.ACTIVITY_NAME WF_ACTIVITY,
  3586. HLD.ORDER_HOLD_ID ORD_HOLD_ID,
  3587. HLD.HOLD_SOURCE_ID HLD_SRC_ID,
  3588. HLD.HOLD_RELEASE_ID HLD_REL_ID,
  3589. HLD.HEADER_ID HEADER_ID,
  3590. HLD.LINE_ID LINE_ID,
  3591. HLD.RELEASED_FLAG H_REL,
  3592. HSR.RELEASED_FLAG S_REL,
  3593. HRL.RELEASE_REASON_CODE RELEASE_REASON,
  3594. decode(HSR.HOLD_ENTITY_CODE,
  3595. 'B','Bill To',
  3596. 'C','Customer',
  3597. 'I','Item',
  3598. 'O','Order',
  3599. 'S','Ship To',
  3600. 'W','Warehouse',
  3601. HSR.HOLD_ENTITY_CODE) ENTITY,
  3602. HSR.HOLD_ENTITY_ID ENTITY_ID,
  3603. decode(HSR.HOLD_ENTITY_CODE2,
  3604. 'B','Bill To',
  3605. 'C','Customer',
  3606. 'I','Item',
  3607. 'O','Order',
  3608. 'S','Ship To',
  3609. 'W','Warehouse',
  3610. HSR.HOLD_ENTITY_CODE2) ENTITY2,
  3611. HSR.HOLD_ENTITY_ID2 ENTITY_ID2,
  3612. to_char(HSR.HOLD_UNTIL_DATE,'DD-MON-RR_HH24:MI:SS') HOLD_UNTIL
  3613. from OE_ORDER_HOLDS_ALL HLD,
  3614. OE_HOLD_SOURCES_ALL HSR,
  3615. OE_HOLD_DEFINITIONS HDF,
  3616. OE_HOLD_RELEASES HRL,
  3617. OE_ORDER_LINES_ALL LIN
  3618. where HLD.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3619. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3620. and HLD.LINE_ID IS NOT NULL
  3621. and HLD.LINE_ID = LIN.LINE_ID
  3622. and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
  3623. LIN.TOP_MODEL_LINE_ID,
  3624. LIN.ATO_LINE_ID,
  3625. LIN.LINK_TO_LINE_ID,
  3626. LIN.REFERENCE_LINE_ID,
  3627. LIN.SERVICE_REFERENCE_LINE_ID)
  3628. and HLD.HOLD_SOURCE_ID = HSR.HOLD_SOURCE_ID
  3629. and HSR.HOLD_ID = HDF.HOLD_ID
  3630. and HLD.HOLD_RELEASE_ID = HRL.HOLD_RELEASE_ID(+);
  3631.  
  3632. begin
  3633. for ll in l_holds
  3634. loop
  3635. utl_file.put_line(handle,'&sld'||n(ll.LINE)||'&d'||n(ll.HOLD_ID)||'&d');
  3636. utl_file.put_line(handle,n(ll.HOLD_NAME)||'&d'||n(ll.HOLD_TYPE)||'&d');
  3637. utl_file.put_line(handle,n(ll.WF_ITEM)||'&d'||n(ll.WF_ACTIVITY)||'&d');
  3638. utl_file.put_line(handle,n(ll.ORD_HOLD_ID)||'&d'||n(ll.HLD_SRC_ID)||'&d');
  3639. utl_file.put_line(handle,n(ll.HLD_REL_ID)||'&d'||n(ll.HEADER_ID)||'&d');
  3640. utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.H_REL)||'&d');
  3641. utl_file.put_line(handle,n(ll.S_REL)||'&d'||n(ll.RELEASE_REASON)||'&d');
  3642. utl_file.put_line(handle,n(ll.ENTITY)||'&d'||n(ll.ENTITY_ID)||'&d');
  3643. utl_file.put_line(handle,n(ll.ENTITY2)||'&d'||n(ll.ENTITY_ID2)||'&d');
  3644. utl_file.put_line(handle,n(ll.HOLD_UNTIL)||'&el');
  3645. end loop;
  3646. end;
  3647.  
  3648. UTL_FILE.PUT_LINE(handle,'&et');
  3649.  
  3650. -- This is commented out because it runs slowly without an index
  3651. --<do not run> CREATE INDEX OE_PROCESSING_MSGS_777
  3652. --<do not run> ON ONT.OE_PROCESSING_MSGS
  3653. --<do not run> (header_id, line_id);
  3654.  
  3655. UTL_FILE.PUT_LINE(handle,'&f &f LINE PROCESSING MESSAGES &f');
  3656. 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');
  3657.  
  3658. declare
  3659. cursor l_proc is
  3660. select distinct
  3661. to_char(LIN.line_number) ||
  3662. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3663. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3664. decode(LIN.component_number, null, null,
  3665. decode(LIN.option_number, null, '.',null)||
  3666. '.'||to_char(LIN.component_number))||
  3667. decode(LIN.service_number,null,null,
  3668. decode(LIN.component_number, null, '.' , null) ||
  3669. decode(LIN.option_number, null, '.', null ) ||
  3670. '.'|| to_char(LIN.service_number)) LINE,
  3671. MSG.header_id HEADER_ID,
  3672. MSG.line_id LINE_ID,
  3673. decode(MSG.MESSAGE_SOURCE_CODE,
  3674. 'U','U=On-Line(UI)',
  3675. 'C','C=Conc Process',
  3676. 'W','W=Workflow',
  3677. MSG.MESSAGE_SOURCE_CODE) MSG_SOURCE,
  3678. MSG.PROCESS_ACTIVITY PROCESS_ACTIVITY,
  3679. MSG.request_id REQUEST_ID,
  3680. MST.message_text MESSAGE_TEXT
  3681. from oe_processing_msgs_vl MSG,
  3682. oe_processing_msgs_tl MST,
  3683. oe_order_lines_all LIN,
  3684. fnd_languages FLA
  3685. where MSG.header_id = nvl('&header_id_selected',:v_header_id)
  3686. and MSG.HEADER_ID = LIN.HEADER_ID
  3687. and msg.transaction_id = mst.transaction_id
  3688. and MST.LANGUAGE = FLA.LANGUAGE_CODE
  3689. and FLA.INSTALLED_FLAG = 'B'
  3690. and MSG.LINE_ID = LIN.LINE_ID
  3691. and MSG.LINE_ID is not NULL
  3692. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  3693. LIN.TOP_MODEL_LINE_ID,
  3694. LIN.ATO_LINE_ID,
  3695. LIN.LINK_TO_LINE_ID,
  3696. LIN.SERVICE_REFERENCE_LINE_ID);
  3697. r_activity varchar2(100);
  3698. r_descrip varchar2(100);
  3699.  
  3700. type per_record_typ is RECORD
  3701. (flag varchar2(1),
  3702. descrip varchar2(200));
  3703. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  3704. msg msg_tab;
  3705.  
  3706. begin
  3707. :r_error := 0;
  3708. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  3709. for i in 1..10
  3710. loop
  3711. msg(i).flag := '0';
  3712. msg(i).descrip := '';
  3713. end loop;
  3714.  
  3715. msg(1).descrip := ' 1. Cannot find Activity name associated to LINE PROCESSING MESSAGES.';
  3716. msg(2).descrip := ' 2. Cannot find Request Description.';
  3717. end if;
  3718.  
  3719. for lp in l_proc
  3720. loop
  3721. :r_flag := '';
  3722. :r_error := 0;
  3723. r_activity := '';
  3724. r_descrip := '';
  3725.  
  3726. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  3727. -- Get Activity name
  3728. begin
  3729. select WFA1.DISPLAY_NAME
  3730. into r_activity
  3731. from WF_PROCESS_ACTIVITIES WFP,
  3732. WF_ACTIVITIES_VL WFA1
  3733. where WFP.INSTANCE_ID = lp.PROCESS_ACTIVITY
  3734. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  3735. and WFP.ACTIVITY_NAME = WFA1.NAME
  3736. and WFA1.VERSION = (select max(VERSION)
  3737. from WF_ACTIVITIES WF2
  3738. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  3739. and WF2.NAME = WFP.ACTIVITY_NAME);
  3740. exception
  3741. when no_data_found then
  3742. :r_flag := :r_flag || '1 ';
  3743. msg(1).flag := '1';
  3744. end;
  3745.  
  3746. -- Get Request description
  3747. begin
  3748. select DESCRIPTION
  3749. into r_descrip
  3750. FROM FND_CONCURRENT_REQUESTS FCR
  3751. where FCR.REQUEST_ID = lp.REQUEST_ID;
  3752. exception
  3753. when no_data_found then
  3754. :r_flag := :r_flag || '2 ';
  3755. msg(2).flag := '1';
  3756. end;
  3757.  
  3758. end if; -- do_analysis
  3759.  
  3760. -- Print line to Output file
  3761.  
  3762. -- Print line to Output file
  3763. utl_file.put_line(handle,'&sld &b <a HREF="#LPMERR">'||n(:r_flag)||'</a> &eb &d');
  3764. utl_file.put_line(handle,n(lp.LINE)||'&d'||n(lp.HEADER_ID)||'&d');
  3765. utl_file.put_line(handle,n(lp.LINE_ID)||'&d'||n(lp.MSG_SOURCE)||'&d');
  3766. utl_file.put_line(handle,n(r_activity)||'&d'||n(lp.REQUEST_ID)||'&d');
  3767. utl_file.put_line(handle,n(r_descrip)||'&d'||n(lp.MESSAGE_TEXT)||'&el');
  3768.  
  3769. if :r_flag is not null then
  3770. :r_error := 1;
  3771. end if;
  3772. end loop;
  3773.  
  3774. utl_file.put_line(handle,'&et');
  3775.  
  3776. if :r_error = 1 then
  3777. utl_file.put_line(handle,'&f &b <a NAME="LPMERR">Warning List:</a> &eb &f');
  3778. for i in 1..10
  3779. loop
  3780. if msg(i).flag = '1' then
  3781. utl_file.put_line(handle,msg(i).descrip||'&f');
  3782. end if;
  3783. end loop;
  3784. end if;
  3785.  
  3786. end;
  3787.  
  3788. UTL_FILE.PUT_LINE(handle,'&et');
  3789.  
  3790. --<do not run> DROP INDEX OE_PROCESSING_MSGS_777
  3791.  
  3792. if UPPER(nvl('&prt_price','Y')) = 'Y' then
  3793.  
  3794. 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');
  3795. 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');
  3796. 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');
  3797. UTL_FILE.PUT_LINE(handle,'AP &dh LK &dh PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
  3798.  
  3799. Declare
  3800. cursor l_prc_adj is
  3801. select
  3802. ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
  3803. to_char(LIN.line_number) ||
  3804. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3805. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3806. decode(LIN.component_number, null, null,
  3807. decode(LIN.option_number, null, '.',null)||
  3808. '.'||to_char(LIN.component_number))||
  3809. decode(LIN.service_number,null,null,
  3810. decode(LIN.component_number, null, '.' , null) ||
  3811. decode(LIN.option_number, null, '.', null ) ||
  3812. '.'|| to_char(LIN.service_number)) LINE,
  3813. ADJ.LIST_HEADER_ID LST_HD_ID,
  3814. ADJ.LIST_LINE_ID LST_LN_ID,
  3815. ADJ.LIST_LINE_NO LIST_LN_NO,
  3816. ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
  3817. ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
  3818. ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
  3819. ADJ.ARITHMETIC_OPERATOR ARITH_OP,
  3820. ADJ.OPERAND_PER_PQTY OP_PER_QTY,
  3821. ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
  3822. ADJ.OPERAND OPERAND,
  3823. ADJ.ADJUSTED_AMOUNT ADJ_AMT,
  3824. ADJ.CREDIT_OR_CHARGE_FLAG CD,
  3825. ADJ.AUTOMATIC_FLAG AF,
  3826. ADJ.PRINT_ON_INVOICE_FLAG PI,
  3827. ADJ.ACCRUAL_FLAG AC,
  3828. ADJ.INVOICED_FLAG INF,
  3829. ADJ.ESTIMATED_FLAG EF,
  3830. ADJ.UPDATE_ALLOWED UA,
  3831. ADJ.UPDATED_FLAG UF,
  3832. ADJ.APPLIED_FLAG AP,
  3833. ADJ.LOCK_CONTROL LK,
  3834. ADJ.PERCENT PERC,
  3835. ADJ.COST_ID COST_ID,
  3836. ADJ.TAX_CODE TAX_CODE,
  3837. ADJ.PRICING_PHASE_ID PP
  3838. from OE_PRICE_ADJUSTMENTS ADJ,
  3839. OE_ORDER_LINES_ALL LIN
  3840. where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3841. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3842. and ADJ.LINE_ID IS NOT NULL
  3843. and ADJ.LINE_ID = LIN.LINE_ID
  3844. and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
  3845. LIN.TOP_MODEL_LINE_ID,
  3846. LIN.ATO_LINE_ID,
  3847. LIN.LINK_TO_LINE_ID,
  3848. LIN.REFERENCE_LINE_ID,
  3849. LIN.SERVICE_REFERENCE_LINE_ID)
  3850. and ADJ.APPLIED_FLAG = 'Y'
  3851. order by LINE,
  3852. LIST_LINE_TYPE_CODE;
  3853.  
  3854. begin
  3855. for ll in l_prc_adj
  3856. loop
  3857. utl_file.put_line(handle,'&sld'||n(ll.PRC_ADJ_ID)||'&d'||n(ll.LINE)||'&d');
  3858. utl_file.put_line(handle,n(ll.LST_HD_ID)||'&d'||n(ll.LST_LN_ID)||'&d');
  3859. utl_file.put_line(handle,n(ll.LIST_LN_NO)||'&d'||n(ll.MOD_LVL)||'&d');
  3860. utl_file.put_line(handle,n(ll.LIST_TYPE_CODE)||'&d'||n(ll.CHG_TY_CD)||'&d');
  3861. utl_file.put_line(handle,n(ll.ARITH_OP)||'&d'||n(ll.OP_PER_QTY)||'&d');
  3862. utl_file.put_line(handle,n(ll.ADJ_AMT_PQ)||'&d'||n(ll.OPERAND)||'&d');
  3863. utl_file.put_line(handle,n(ll.ADJ_AMT)||'&d'||n(ll.CD)||'&d');
  3864. utl_file.put_line(handle,n(ll.AF)||'&d'||n(ll.PI)||'&d');
  3865. utl_file.put_line(handle,n(ll.AC)||'&d'||n(ll.INF)||'&d');
  3866. utl_file.put_line(handle,n(ll.EF)||'&d'||n(ll.UA)||'&d');
  3867. utl_file.put_line(handle,n(ll.UF)||'&d'||n(ll.AP)||'&d');
  3868. utl_file.put_line(handle,n(ll.LK)||'&d'||n(ll.PERC)||'&d');
  3869. utl_file.put_line(handle,n(ll.COST_ID)||'&d'||n(ll.TAX_CODE)||'&d');
  3870. utl_file.put_line(handle,n(ll.PP)||'&el');
  3871. end loop;
  3872. end;
  3873.  
  3874. UTL_FILE.PUT_LINE(handle,'&et');
  3875.  
  3876. 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');
  3877.  
  3878. 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');
  3879. 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');
  3880. UTL_FILE.PUT_LINE(handle,'AP &dh LK &dh PERC &dh COST_ID &dh TAX_CODE &dh PP &eh');
  3881.  
  3882. Declare
  3883. cursor l_prc_adj_un is
  3884. select
  3885. ADJ.PRICE_ADJUSTMENT_ID PRC_ADJ_ID,
  3886. to_char(LIN.line_number) ||
  3887. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3888. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3889. decode(LIN.component_number, null, null,
  3890. decode(LIN.option_number, null, '.',null)||
  3891. '.'||to_char(LIN.component_number))||
  3892. decode(LIN.service_number,null,null,
  3893. decode(LIN.component_number, null, '.' , null) ||
  3894. decode(LIN.option_number, null, '.', null ) ||
  3895. '.'|| to_char(LIN.service_number)) LINE,
  3896. ADJ.LIST_HEADER_ID LST_HD_ID,
  3897. ADJ.LIST_LINE_ID LST_LN_ID,
  3898. ADJ.LIST_LINE_NO LIST_LN_NO,
  3899. ADJ.MODIFIER_LEVEL_CODE MOD_LVL,
  3900. ADJ.LIST_LINE_TYPE_CODE LIST_TYPE_CODE,
  3901. ADJ.CHARGE_TYPE_CODE CHG_TY_CD,
  3902. ADJ.ARITHMETIC_OPERATOR ARITH_OP,
  3903. ADJ.OPERAND_PER_PQTY OP_PER_QTY,
  3904. ADJ.ADJUSTED_AMOUNT_PER_PQTY ADJ_AMT_PQ,
  3905. ADJ.OPERAND OPERAND,
  3906. ADJ.ADJUSTED_AMOUNT ADJ_AMT,
  3907. ADJ.CREDIT_OR_CHARGE_FLAG CD,
  3908. ADJ.AUTOMATIC_FLAG AF,
  3909. ADJ.PRINT_ON_INVOICE_FLAG PI,
  3910. ADJ.ACCRUAL_FLAG AC,
  3911. ADJ.INVOICED_FLAG INF,
  3912. ADJ.ESTIMATED_FLAG EF,
  3913. ADJ.UPDATE_ALLOWED UA,
  3914. ADJ.UPDATED_FLAG UF,
  3915. ADJ.APPLIED_FLAG AP,
  3916. ADJ.LOCK_CONTROL LK,
  3917. ADJ.PERCENT PERC,
  3918. ADJ.COST_ID COST_ID,
  3919. ADJ.TAX_CODE TAX_CODE,
  3920. ADJ.PRICING_PHASE_ID PP
  3921. from OE_PRICE_ADJUSTMENTS ADJ,
  3922. OE_ORDER_LINES_ALL LIN
  3923. where ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3924. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3925. and ADJ.LINE_ID IS NOT NULL
  3926. and ADJ.LINE_ID = LIN.LINE_ID
  3927. and NVL('&line_id_selected',0)in (0,LIN.LINE_ID,
  3928. LIN.TOP_MODEL_LINE_ID,
  3929. LIN.ATO_LINE_ID,
  3930. LIN.LINK_TO_LINE_ID,
  3931. LIN.REFERENCE_LINE_ID,
  3932. LIN.SERVICE_REFERENCE_LINE_ID)
  3933. and nvl(ADJ.APPLIED_FLAG,'N') = 'N'
  3934. order by LINE,
  3935. LIST_LINE_TYPE_CODE;
  3936.  
  3937. begin
  3938. for ll in l_prc_adj_un
  3939. loop
  3940. utl_file.put_line(handle,'&sld'||n(ll.PRC_ADJ_ID)||'&d'||n(ll.LINE)||'&d');
  3941. utl_file.put_line(handle,n(ll.LST_HD_ID)||'&d'||n(ll.LST_LN_ID)||'&d');
  3942. utl_file.put_line(handle,n(ll.LIST_LN_NO)||'&d'||n(ll.MOD_LVL)||'&d');
  3943. utl_file.put_line(handle,n(ll.LIST_TYPE_CODE)||'&d'||n(ll.CHG_TY_CD)||'&d');
  3944. utl_file.put_line(handle,n(ll.ARITH_OP)||'&d'||n(ll.OP_PER_QTY)||'&d');
  3945. utl_file.put_line(handle,n(ll.ADJ_AMT_PQ)||'&d'||n(ll.OPERAND)||'&d');
  3946. utl_file.put_line(handle,n(ll.ADJ_AMT)||'&d'||n(ll.CD)||'&d');
  3947. utl_file.put_line(handle,n(ll.AF)||'&d'||n(ll.PI)||'&d');
  3948. utl_file.put_line(handle,n(ll.AC)||'&d'||n(ll.INF)||'&d');
  3949. utl_file.put_line(handle,n(ll.EF)||'&d'||n(ll.UA)||'&d');
  3950. utl_file.put_line(handle,n(ll.UF)||'&d'||n(ll.AP)||'&d');
  3951. utl_file.put_line(handle,n(ll.LK)||'&d'||n(ll.PERC)||'&d');
  3952. utl_file.put_line(handle,n(ll.COST_ID)||'&d'||n(ll.TAX_CODE)||'&d');
  3953. utl_file.put_line(handle,n(ll.PP)||'&el');
  3954. end loop;
  3955. end;
  3956.  
  3957. UTL_FILE.PUT_LINE(handle,'&et');
  3958.  
  3959. end if; -- prt_price
  3960.  
  3961. if UPPER(nvl('&prt_po','Y')) = 'Y' then
  3962.  
  3963. UTL_FILE.PUT_LINE(handle,'&f &f OE_DROP_SHIP_SOURCES (SRC) &f');
  3964. 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 ');
  3965. 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');
  3966.  
  3967. Declare
  3968. cursor l_drop_ship is
  3969. select
  3970. SRC.DROP_SHIP_SOURCE_ID DROP_SHIP_ID,
  3971. SRC.HEADER_ID HEADER_ID,
  3972. SRC.LINE_ID LINE_ID,
  3973. to_char(LIN.line_number) ||
  3974. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  3975. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  3976. decode(LIN.component_number, null, null,
  3977. decode(LIN.option_number, null, '.',null)||
  3978. '.'||to_char(LIN.component_number))||
  3979. decode(LIN.service_number,null,null,
  3980. decode(LIN.component_number, null, '.' , null) ||
  3981. decode(LIN.option_number, null, '.', null ) ||
  3982. '.'|| to_char(LIN.service_number)) LINE,
  3983. SRC.ORG_ID ORG_ID,
  3984. SRC.DESTINATION_ORGANIZATION_ID DEST_ID,
  3985. PAR.ORGANIZATION_CODE DEST_ORG,
  3986. SRC.REQUISITION_HEADER_ID REQ_HEADER_ID,
  3987. SRC.REQUISITION_LINE_ID REQ_LINE_ID,
  3988. SRC.PO_HEADER_ID PO_HEAD_ID,
  3989. SRC.PO_LINE_ID PO_LINE_ID,
  3990. SRC.LINE_LOCATION_ID LINE_LOC_ID,
  3991. SRC.PO_RELEASE_ID PO_RELEASE_ID
  3992. FROM OE_DROP_SHIP_SOURCES SRC,
  3993. OE_ORDER_LINES LIN,
  3994. MTL_PARAMETERS PAR
  3995. WHERE
  3996. SRC.LINE_ID = LIN.LINE_ID
  3997. and SRC.DESTINATION_ORGANIZATION_ID = PAR.ORGANIZATION_ID(+)
  3998. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  3999. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4000. LIN.TOP_MODEL_LINE_ID,
  4001. LIN.ATO_LINE_ID,
  4002. LIN.LINK_TO_LINE_ID,
  4003. LIN.SERVICE_REFERENCE_LINE_ID)
  4004. order by
  4005. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4006. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4007. NVL(LIN.SORT_ORDER, '0000'),
  4008. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4009. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4010. LIN.LINE_ID;
  4011.  
  4012. begin
  4013. for ll in l_drop_ship
  4014. loop
  4015. utl_file.put_line(handle,'&sld'||n(ll.DROP_SHIP_ID)||'&d'||n(ll.HEADER_ID)||'&d');
  4016. utl_file.put_line(handle,n(ll.LINE_ID)||'&d'||n(ll.LINE)||'&d');
  4017. utl_file.put_line(handle,n(ll.ORG_ID)||'&d'||n(ll.DEST_ID)||'&d');
  4018. utl_file.put_line(handle,n(ll.DEST_ORG)||'&d'||n(ll.REQ_HEADER_ID)||'&d');
  4019. utl_file.put_line(handle,n(ll.REQ_LINE_ID)||'&d'||n(ll.PO_HEAD_ID)||'&d');
  4020. utl_file.put_line(handle,n(ll.PO_LINE_ID)||'&d'||n(ll.LINE_LOC_ID)||'&d');
  4021. utl_file.put_line(handle,n(ll.PO_RELEASE_ID)||'&el');
  4022. end loop;
  4023. end;
  4024.  
  4025. UTL_FILE.PUT_LINE(handle,'&et');
  4026.  
  4027. end if; -- prt_po
  4028.  
  4029. end if; -- :v_head_only
  4030.  
  4031. UTL_FILE.FCLOSE(handle);
  4032. end;
  4033. /
  4034.  
  4035. DECLARE
  4036. handle UTL_FILE.FILE_TYPE;
  4037. dirname varchar2(1000);
  4038. text varchar2(1000);
  4039.  
  4040. function n(v varchar2) return varchar2 is
  4041. begin
  4042. if v is null then
  4043. return '&sp';
  4044. else
  4045. return v;
  4046. end if;
  4047. end n;
  4048.  
  4049. begin
  4050. If :v_head_only = 'N' then
  4051.  
  4052. -- Append to output file
  4053. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  4054. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  4055.  
  4056. if UPPER(nvl('&prt_po','Y')) = 'Y' then
  4057.  
  4058. UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITIONS_INTERFACE_ALL (RQI) &f');
  4059. 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 ');
  4060. UTL_FILE.PUT_LINE(handle,'SRC_CODE &dh SRC_TYPE_CODE &dh ITEM_ID &dh NEED_BY &dh QTY &dh PRICE &el');
  4061.  
  4062. Declare
  4063. cursor po_req_int is
  4064. Select
  4065. RQI.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
  4066. to_char(LIN.line_number) ||
  4067. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4068. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4069. decode(LIN.component_number, null, null,
  4070. decode(LIN.option_number, null, '.',null)||
  4071. '.'||to_char(LIN.component_number))||
  4072. decode(LIN.service_number,null,null,
  4073. decode(LIN.component_number, null, '.' , null) ||
  4074. decode(LIN.option_number, null, '.', null ) ||
  4075. '.'|| to_char(LIN.service_number)) LINE,
  4076. RQI.AUTHORIZATION_STATUS AUTH_STATUS,
  4077. RQI.DELIVER_TO_LOCATION_ID DELIV_LOC,
  4078. RQI.PREPARER_ID PREPARER,
  4079. RQI.DESTINATION_ORGANIZATION_ID DEST_ORG_ID,
  4080. RQI.DESTINATION_TYPE_CODE DEST_TYPE,
  4081. RQI.INTERFACE_SOURCE_CODE SRC_CODE,
  4082. RQI.SOURCE_TYPE_CODE SRC_TYPE_CODE,
  4083. RQI.ITEM_ID ITEM_ID,
  4084. to_char(RQI.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
  4085. RQI.QUANTITY QTY,
  4086. RQI.UNIT_PRICE PRICE
  4087. from PO_REQUISITIONS_INTERFACE_ALL RQI,
  4088. OE_DROP_SHIP_SOURCES SRC,
  4089. OE_ORDER_LINES LIN
  4090. where SRC.LINE_ID = LIN.LINE_ID
  4091. and SRC.DROP_SHIP_SOURCE_ID = RQI.INTERFACE_SOURCE_LINE_ID
  4092. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4093. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4094. LIN.TOP_MODEL_LINE_ID,
  4095. LIN.ATO_LINE_ID,
  4096. LIN.LINK_TO_LINE_ID,
  4097. LIN.SERVICE_REFERENCE_LINE_ID)
  4098. order by
  4099. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4100. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4101. NVL(LIN.SORT_ORDER, '0000'),
  4102. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4103. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4104. LIN.LINE_ID;
  4105.  
  4106. begin
  4107. for po in po_req_int
  4108. loop
  4109. utl_file.put_line(handle,'&sld'||n(po.DROP_SHIP_ID)||'&d'||n(po.LINE)||'&d');
  4110. utl_file.put_line(handle,n(po.AUTH_STATUS)||'&d'||n(po.DELIV_LOC)||'&d');
  4111. utl_file.put_line(handle,n(po.PREPARER)||'&d'||n(po.DEST_ORG_ID)||'&d');
  4112. utl_file.put_line(handle,n(po.DEST_TYPE)||'&d'||n(po.SRC_CODE)||'&d');
  4113. utl_file.put_line(handle,n(po.SRC_TYPE_CODE)||'&d'||n(po.ITEM_ID)||'&d');
  4114. utl_file.put_line(handle,n(po.NEED_BY)||'&d'||n(po.QTY)||'&d');
  4115. utl_file.put_line(handle,n(po.PRICE)||'&el');
  4116. end loop;
  4117. end;
  4118.  
  4119. UTL_FILE.PUT_LINE(handle,'&et');
  4120.  
  4121. UTL_FILE.PUT_LINE(handle,'&f &f PO_INTERFACE_ERRORS_ALL (POE) &f');
  4122. 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');
  4123.  
  4124. Declare
  4125. cursor po_int_err is
  4126. select
  4127. POE.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
  4128. to_char(LIN.line_number) ||
  4129. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4130. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4131. decode(LIN.component_number, null, null,
  4132. decode(LIN.option_number, null, '.',null)||
  4133. '.'||to_char(LIN.component_number))||
  4134. decode(LIN.service_number,null,null,
  4135. decode(LIN.component_number, null, '.' , null) ||
  4136. decode(LIN.option_number, null, '.', null ) ||
  4137. '.'|| to_char(LIN.service_number)) LINE,
  4138. POE.COLUMN_NAME COLUMN_NAME,
  4139. POE.ERROR_MESSAGE ERRORM,
  4140. POE.INTERFACE_TYPE INTF_TYPE,
  4141. POE.REQUEST_ID REQUEST_ID,
  4142. POE.TABLE_NAME TABLE_NAME
  4143. from
  4144. PO_INTERFACE_ERRORS POE,
  4145. OE_DROP_SHIP_SOURCES SRC,
  4146. OE_ORDER_LINES LIN,
  4147. PO_REQUISITIONS_INTERFACE_ALL RQI
  4148. where
  4149. SRC.LINE_ID = LIN.LINE_ID
  4150. and SRC.DROP_SHIP_SOURCE_ID = RQI.INTERFACE_SOURCE_LINE_ID
  4151. and RQI.TRANSACTION_ID = POE.INTERFACE_TRANSACTION_ID
  4152. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4153. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4154. LIN.TOP_MODEL_LINE_ID,
  4155. LIN.ATO_LINE_ID,
  4156. LIN.LINK_TO_LINE_ID,
  4157. LIN.SERVICE_REFERENCE_LINE_ID)
  4158. order by
  4159. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4160. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4161. NVL(LIN.SORT_ORDER, '0000'),
  4162. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4163. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4164. LIN.LINE_ID;
  4165.  
  4166. begin
  4167. for po in po_int_err
  4168. loop
  4169. utl_file.put_line(handle,'&sld'||n(po.INTF_TRANS_ID)||'&d'||n(po.LINE)||'&d');
  4170. utl_file.put_line(handle,n(po.COLUMN_NAME)||'&d'||n(po.ERRORM)||'&d');
  4171. utl_file.put_line(handle,n(po.INTF_TYPE)||'&d'||n(po.REQUEST_ID)||'&d');
  4172. utl_file.put_line(handle,n(po.TABLE_NAME)||'&el');
  4173. end loop;
  4174. end;
  4175.  
  4176. UTL_FILE.PUT_LINE(handle,'&et');
  4177.  
  4178. UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITION_HEADERS_ALL (RQH) &f');
  4179. 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 ');
  4180. UTL_FILE.PUT_LINE(handle,'XFR_OE_FLAG &dh REQ_TYPE &dh ITEM_TYPE &dh ITEM_KEY &eh');
  4181.  
  4182. Declare
  4183. cursor po_req_hdr is
  4184. select distinct
  4185. RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
  4186. RQH.SEGMENT1 REQ_NUMBER,
  4187. RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
  4188. RQH.AUTHORIZATION_STATUS AUTH_STATUS,
  4189. RQH.ENABLED_FLAG ENABLED,
  4190. RQH.INTERFACE_SOURCE_CODE SRC_CODE,
  4191. RQH.SUMMARY_FLAG SUMMARY,
  4192. RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
  4193. RQH.TYPE_LOOKUP_CODE REQ_TYPE,
  4194. RQH.WF_ITEM_TYPE ITEM_TYPE,
  4195. RQH.WF_ITEM_KEY ITEM_KEY
  4196. from
  4197. PO_REQUISITION_HEADERS_ALL RQH,
  4198. OE_DROP_SHIP_SOURCES SRC,
  4199. OE_ORDER_LINES LIN
  4200. where
  4201. SRC.LINE_ID = LIN.LINE_ID
  4202. and SRC.REQUISITION_HEADER_ID = RQH.REQUISITION_HEADER_ID
  4203. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4204. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4205. LIN.TOP_MODEL_LINE_ID,
  4206. LIN.ATO_LINE_ID,
  4207. LIN.LINK_TO_LINE_ID,
  4208. LIN.SERVICE_REFERENCE_LINE_ID)
  4209. UNION ALL
  4210. select distinct /* INTERNAL REQ */
  4211. RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
  4212. RQH.SEGMENT1 REQ_NUMBER,
  4213. RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
  4214. RQH.AUTHORIZATION_STATUS AUTH_STATUS,
  4215. RQH.ENABLED_FLAG ENABLED,
  4216. RQH.INTERFACE_SOURCE_CODE SRC_CODE,
  4217. RQH.SUMMARY_FLAG SUMMARY,
  4218. RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
  4219. RQH.TYPE_LOOKUP_CODE REQ_TYPE,
  4220. RQH.WF_ITEM_TYPE ITEM_TYPE,
  4221. RQH.WF_ITEM_KEY ITEM_KEY
  4222. from
  4223. PO_REQUISITION_HEADERS_ALL RQH,
  4224. OE_ORDER_LINES LIN
  4225. where
  4226. LIN.SOURCE_DOCUMENT_ID = RQH.REQUISITION_HEADER_ID
  4227. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10 --INTERNAL REQUISITION
  4228. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4229. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4230. LIN.TOP_MODEL_LINE_ID,
  4231. LIN.ATO_LINE_ID,
  4232. LIN.LINK_TO_LINE_ID,
  4233. LIN.SERVICE_REFERENCE_LINE_ID)
  4234. UNION ALL
  4235. select distinct /* ATO BUY ITEM */
  4236. RQH.REQUISITION_HEADER_ID REQ_HEADER_ID ,
  4237. RQH.SEGMENT1 REQ_NUMBER,
  4238. RQH.INTERFACE_SOURCE_LINE_ID DROP_SHIP_ID,
  4239. RQH.AUTHORIZATION_STATUS AUTH_STATUS,
  4240. RQH.ENABLED_FLAG ENABLED,
  4241. RQH.INTERFACE_SOURCE_CODE SRC_CODE,
  4242. RQH.SUMMARY_FLAG SUMMARY,
  4243. RQH.TRANSFERRED_TO_OE_FLAG XFR_OE_FLAG,
  4244. RQH.TYPE_LOOKUP_CODE REQ_TYPE,
  4245. RQH.WF_ITEM_TYPE ITEM_TYPE,
  4246. RQH.WF_ITEM_KEY ITEM_KEY
  4247. from
  4248. PO_REQUISITION_HEADERS_ALL RQH,
  4249. MTL_RESERVATIONS RES
  4250. where
  4251. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  4252. and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
  4253. and RES.SUPPLY_SOURCE_TYPE_ID = 17 -- Req
  4254. and RES.SUPPLY_SOURCE_HEADER_ID = RQH.REQUISITION_HEADER_ID;
  4255.  
  4256. begin
  4257. for po in po_req_hdr
  4258. loop
  4259. utl_file.put_line(handle,'&sld'||n(po.REQ_HEADER_ID)||'&d'||n(po.REQ_NUMBER)||'&d');
  4260. utl_file.put_line(handle,n(po.DROP_SHIP_ID)||'&d'||n(po.AUTH_STATUS)||'&d');
  4261. utl_file.put_line(handle,n(po.ENABLED)||'&d'||n(po.SRC_CODE)||'&d');
  4262. utl_file.put_line(handle,n(po.SUMMARY)||'&d'||n(po.XFR_OE_FLAG)||'&d');
  4263. utl_file.put_line(handle,n(po.REQ_TYPE)||'&d'||n(po.ITEM_TYPE)||'&d');
  4264. utl_file.put_line(handle,n(po.ITEM_KEY)||'&el');
  4265. end loop;
  4266. end;
  4267.  
  4268. UTL_FILE.PUT_LINE(handle,'&et');
  4269.  
  4270. UTL_FILE.PUT_LINE(handle,'&f &f PO_REQUISITION_LINES_ALL (RQL) &f');
  4271.  
  4272. 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 ');
  4273. 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 ');
  4274. UTL_FILE.PUT_LINE(handle,'NEED_BY &dh RFQ &dh BUYER_ID &eh');
  4275.  
  4276. Declare
  4277. cursor po_req_lin is
  4278. select /* DROP SHIPMENT */
  4279. RQL.REQUISITION_HEADER_ID REQ_HEAD_ID,
  4280. RQL.REQUISITION_LINE_ID REQ_LINE_ID,
  4281. 'DROP SHIP' DOC_TYPE,
  4282. RQL.LINE_NUM REQ_LINE,
  4283. to_char(LIN.line_number) ||
  4284. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4285. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4286. decode(LIN.component_number, null, null,
  4287. decode(LIN.option_number, null, '.',null)||
  4288. '.'||to_char(LIN.component_number))||
  4289. decode(LIN.service_number,null,null,
  4290. decode(LIN.component_number, null, '.' , null) ||
  4291. decode(LIN.option_number, null, '.', null ) ||
  4292. '.'|| to_char(LIN.service_number)) LINE,
  4293. RQL.ITEM_ID ITEM_ID,
  4294. RQL.ITEM_DESCRIPTION ITEM_DESC,
  4295. RQL.UNIT_MEAS_LOOKUP_CODE UOM,
  4296. RQL.UNIT_PRICE PRICE,
  4297. RQL.QUANTITY QTY,
  4298. RQL.QUANTITY_CANCELLED QTY_CNC,
  4299. RQL.QUANTITY_DELIVERED QTY_DLV,
  4300. RQL.CANCEL_FLAG CANC,
  4301. RQL.SOURCE_TYPE_CODE SRC_TYPE,
  4302. RQL.SOURCE_ORGANIZATION_ID SRC_ORG,
  4303. RQL.DESTINATION_CONTEXT DEST_TYPE,
  4304. RQL.DESTINATION_ORGANIZATION_ID DEST_ORG,
  4305. RQL.ENCUMBERED_FLAG ENC_FL,
  4306. RQL.LINE_TYPE_ID LINE_TYPE_ID,
  4307. to_char(RQL.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
  4308. RQL.ON_RFQ_FLAG RFQ ,
  4309. RQL.SUGGESTED_BUYER_ID BUYER_ID
  4310. from
  4311. PO_REQUISITION_LINES_ALL RQL,
  4312. OE_DROP_SHIP_SOURCES SRC,
  4313. OE_ORDER_LINES LIN
  4314. where
  4315. SRC.LINE_ID = LIN.LINE_ID
  4316. and RQL.REQUISITION_LINE_ID = SRC.REQUISITION_LINE_ID
  4317. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4318. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4319. LIN.TOP_MODEL_LINE_ID,
  4320. LIN.ATO_LINE_ID,
  4321. LIN.LINK_TO_LINE_ID,
  4322. LIN.SERVICE_REFERENCE_LINE_ID)
  4323. UNION ALL
  4324. select /* INTERNAL SALES ORDER */
  4325. RQL.REQUISITION_HEADER_ID REQ_HEAD_ID,
  4326. RQL.REQUISITION_LINE_ID REQ_LINE_ID,
  4327. 'INTERNAL SO' DOC_TYPE,
  4328. RQL.LINE_NUM REQ_LINE,
  4329. to_char(LIN.line_number) ||
  4330. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4331. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4332. decode(LIN.component_number, null, null,
  4333. decode(LIN.option_number, null, '.',null)||
  4334. '.'||to_char(LIN.component_number))||
  4335. decode(LIN.service_number,null,null,
  4336. decode(LIN.component_number, null, '.' , null) ||
  4337. decode(LIN.option_number, null, '.', null ) ||
  4338. '.'|| to_char(LIN.service_number)) LINE,
  4339. RQL.ITEM_ID ITEM_ID,
  4340. RQL.ITEM_DESCRIPTION ITEM_DESC,
  4341. RQL.UNIT_MEAS_LOOKUP_CODE UOM,
  4342. RQL.UNIT_PRICE PRICE,
  4343. RQL.QUANTITY QTY,
  4344. RQL.QUANTITY_CANCELLED QTY_CNC,
  4345. RQL.QUANTITY_DELIVERED QTY_DLV,
  4346. RQL.CANCEL_FLAG CANC,
  4347. RQL.SOURCE_TYPE_CODE SRC_TYPE,
  4348. RQL.SOURCE_ORGANIZATION_ID SRC_ORG,
  4349. RQL.DESTINATION_CONTEXT DEST_TYPE,
  4350. RQL.DESTINATION_ORGANIZATION_ID DEST_ORG,
  4351. RQL.ENCUMBERED_FLAG ENC_FL ,
  4352. RQL.LINE_TYPE_ID LINE_TYPE_ID,
  4353. to_char(RQL.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
  4354. RQL.ON_RFQ_FLAG RFQ ,
  4355. RQL.SUGGESTED_BUYER_ID BUYER_ID
  4356. from
  4357. PO_REQUISITION_LINES_ALL RQL,
  4358. OE_ORDER_LINES LIN
  4359. where
  4360. LIN.SOURCE_DOCUMENT_LINE_ID = RQL.REQUISITION_LINE_ID
  4361. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10 --INTERNAL REQUISITION
  4362. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4363. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4364. LIN.TOP_MODEL_LINE_ID,
  4365. LIN.ATO_LINE_ID,
  4366. LIN.LINK_TO_LINE_ID,
  4367. LIN.SERVICE_REFERENCE_LINE_ID);
  4368.  
  4369. begin
  4370. for po in po_req_lin
  4371. loop
  4372. utl_file.put_line(handle,'&sld'||n(po.REQ_HEAD_ID)||'&d'||n(po.REQ_LINE_ID)||'&d');
  4373. utl_file.put_line(handle,n(po.DOC_TYPE)||'&d'||n(po.REQ_LINE)||'&d');
  4374. utl_file.put_line(handle,n(po.LINE)||'&d'||n(po.ITEM_ID)||'&d');
  4375. utl_file.put_line(handle,n(po.ITEM_DESC)||'&d'||n(po.UOM)||'&d');
  4376. utl_file.put_line(handle,n(po.PRICE)||'&d'||n(po.QTY)||'&d');
  4377. utl_file.put_line(handle,n(po.QTY_CNC)||'&d'||n(po.QTY_DLV)||'&d');
  4378. utl_file.put_line(handle,n(po.CANC)||'&d'||n(po.SRC_TYPE)||'&d');
  4379. utl_file.put_line(handle,n(po.SRC_ORG)||'&d'||n(po.DEST_TYPE)||'&d');
  4380. utl_file.put_line(handle,n(po.DEST_ORG)||'&d'||n(po.ENC_FL)||'&d');
  4381. utl_file.put_line(handle,n(po.LINE_TYPE_ID)||'&d'||n(po.NEED_BY)||'&d');
  4382. utl_file.put_line(handle,n(po.RFQ)||'&d'||n(po.BUYER_ID)||'&el');
  4383. end loop;
  4384. end;
  4385.  
  4386. UTL_FILE.PUT_LINE(handle,'&et');
  4387.  
  4388. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL STATUS &f');
  4389.  
  4390. -- break on REQ_NUM_IK skip 2;
  4391.  
  4392. 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 ');
  4393. UTL_FILE.PUT_LINE(handle,'_END_DATE_ &dh ERROR &eh');
  4394.  
  4395. Declare
  4396. cursor po_req_apprv is
  4397. select WFS.item_key REQ_NUM_IK,
  4398. WFA.DISPLAY_NAME PROCESS_NAME,
  4399. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  4400. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  4401. LKP.MEANING ACT_STATUS,
  4402. WFS.NOTIFICATION_ID NOTIF_ID,
  4403. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
  4404. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE,
  4405. WFS.ERROR_NAME ERROR_apprv
  4406. from WF_ITEM_ACTIVITY_STATUSES WFS,
  4407. WF_PROCESS_ACTIVITIES WFP,
  4408. WF_ACTIVITIES_VL WFA,
  4409. WF_ACTIVITIES_VL WFA1,
  4410. WF_LOOKUPS LKP
  4411. where
  4412. WFS.ITEM_TYPE = 'REQAPPRV'
  4413. and WFS.item_key in (select wf_item_key /*DROP SHIPMENTS*/
  4414. from
  4415. PO_REQUISITION_HEADERS REQ,
  4416. OE_DROP_SHIP_SOURCES SRC,
  4417. OE_ORDER_LINES LIN
  4418. where
  4419. SRC.LINE_ID = LIN.LINE_ID
  4420. and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
  4421. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4422. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4423. LIN.TOP_MODEL_LINE_ID,
  4424. LIN.ATO_LINE_ID,
  4425. LIN.LINK_TO_LINE_ID,
  4426. LIN.SERVICE_REFERENCE_LINE_ID)
  4427. UNION ALL
  4428. select wf_item_key /* INTERNAL SALES ORDERSS */
  4429. from
  4430. PO_REQUISITION_HEADERS REQ,
  4431. OE_ORDER_LINES LIN
  4432. where
  4433. LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
  4434. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  4435. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4436. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4437. LIN.TOP_MODEL_LINE_ID,
  4438. LIN.ATO_LINE_ID,
  4439. LIN.LINK_TO_LINE_ID,
  4440. LIN.SERVICE_REFERENCE_LINE_ID))
  4441. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  4442. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  4443. and WFP.PROCESS_NAME = WFA.NAME
  4444. and WFP.PROCESS_VERSION = WFA.VERSION
  4445. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  4446. and WFP.ACTIVITY_NAME = WFA1.NAME
  4447. and WFA1.VERSION =
  4448. (select max(VERSION)
  4449. from WF_ACTIVITIES WF2
  4450. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  4451. and WF2.NAME = WFP.ACTIVITY_NAME)
  4452. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  4453. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  4454. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  4455.  
  4456. begin
  4457. for po in po_req_apprv
  4458. loop
  4459. utl_file.put_line(handle,'&sld'||n(po.REQ_NUM_IK)||'&d'||n(po.PROCESS_NAME)||'&d');
  4460. utl_file.put_line(handle,n(po.ACTIVITY_NAME)||'&d'||n(po.RESULT)||'&d');
  4461. utl_file.put_line(handle,n(po.ACT_STATUS)||'&d'||n(po.NOTIF_ID)||'&d');
  4462. utl_file.put_line(handle,n(po.BEGIN_DATE)||'&d'||n(po.END_DATE)||'&d');
  4463. utl_file.put_line(handle,n(po.ERROR_APPRV)||'&el');
  4464. end loop;
  4465. end;
  4466.  
  4467. UTL_FILE.PUT_LINE(handle,'&et');
  4468.  
  4469. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL NOTIFICATIONS &f');
  4470. 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');
  4471.  
  4472. Declare
  4473. cursor po_req_apprv_not is
  4474. select WFN.NOTIFICATION_ID NOTIF_ID,
  4475. WFN.TO_USER TO_USER,
  4476. WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
  4477. WFN.RECIPIENT_ROLE RECIP_ROLE,
  4478. WFN.MAIL_STATUS MAIL_STAT,
  4479. WFN.MESSAGE_NAME MESSAGE_NAME,
  4480. WFN.STATUS STATUS,
  4481. WFN.SUBJECT SUBJECT
  4482. from WF_ITEM_ACTIVITY_STATUSES WFS,
  4483. WF_NOTIFICATIONS WFN
  4484. where
  4485. WFS.ITEM_TYPE = 'REQAPPRV'
  4486. and WFS.item_key in (select wf_item_key /* DROP SHIPMENTS */
  4487. from
  4488. PO_REQUISITION_HEADERS REQ,
  4489. OE_DROP_SHIP_SOURCES SRC,
  4490. OE_ORDER_LINES LIN
  4491. where
  4492. SRC.LINE_ID = LIN.LINE_ID
  4493. and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
  4494. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4495. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4496. LIN.TOP_MODEL_LINE_ID,
  4497. LIN.ATO_LINE_ID,
  4498. LIN.LINK_TO_LINE_ID,
  4499. LIN.SERVICE_REFERENCE_LINE_ID)
  4500. UNION ALL
  4501. select wf_item_key /* INTERNAL SALES ORDERSS */
  4502. from
  4503. PO_REQUISITION_HEADERS REQ,
  4504. OE_ORDER_LINES LIN
  4505. where
  4506. LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
  4507. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  4508. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4509. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4510. LIN.TOP_MODEL_LINE_ID,
  4511. LIN.ATO_LINE_ID,
  4512. LIN.LINK_TO_LINE_ID,
  4513. LIN.SERVICE_REFERENCE_LINE_ID))
  4514. and WFS.NOTIFICATION_ID is not null
  4515. and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
  4516. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  4517.  
  4518. begin
  4519. for po in po_req_apprv_Not
  4520. loop
  4521. utl_file.put_line(handle,'&sld'||n(po.NOTIF_ID)||'&d'||n(po.To_USER)||'&d');
  4522. utl_file.put_line(handle,n(po.ORIG_RECIP)||'&d'||n(po.RECIP_ROLE)||'&d');
  4523. utl_file.put_line(handle,n(po.MAIL_STAT)||'&d'||n(po.MESSAGE_NAME)||'&d');
  4524. utl_file.put_line(handle,n(po.STATUS)||'&d'||n(po.SUBJECT)||'&el');
  4525. end loop;
  4526. end;
  4527.  
  4528. UTL_FILE.PUT_LINE(handle,'&et ');
  4529.  
  4530. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW REQUISITION APPROVAL ERRORS &f');
  4531. 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');
  4532.  
  4533. Declare
  4534. cursor po_req_apprv_err is
  4535. select WFA.DISPLAY_NAME PROCESS_NAME,
  4536. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  4537. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  4538. LKP.MEANING ACT_STATUS,
  4539. WFS.ERROR_NAME ERROR_NAME,
  4540. WFS.ERROR_MESSAGE ERROR_MESSAGE,
  4541. WFS.ERROR_STACK ERROR_STACK
  4542. from WF_ITEM_ACTIVITY_STATUSES WFS,
  4543. WF_PROCESS_ACTIVITIES WFP,
  4544. WF_ACTIVITIES_VL WFA,
  4545. WF_ACTIVITIES_VL WFA1,
  4546. WF_LOOKUPS LKP
  4547. where
  4548. WFS.ITEM_TYPE = 'REQAPPRV'
  4549. and WFS.item_key in (select wf_item_key /* DROP SHIPMENTS */
  4550. from
  4551. PO_REQUISITION_HEADERS REQ,
  4552. OE_DROP_SHIP_SOURCES SRC,
  4553. OE_ORDER_LINES LIN
  4554. where
  4555. SRC.LINE_ID = LIN.LINE_ID
  4556. and SRC.REQUISITION_HEADER_ID = REQ.REQUISITION_HEADER_ID
  4557. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4558. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4559. LIN.TOP_MODEL_LINE_ID,
  4560. LIN.ATO_LINE_ID,
  4561. LIN.LINK_TO_LINE_ID,
  4562. LIN.SERVICE_REFERENCE_LINE_ID)
  4563. UNION ALL
  4564. select wf_item_key /* INTERNAL SALES ORDERSS */
  4565. from
  4566. PO_REQUISITION_HEADERS REQ,
  4567. OE_ORDER_LINES LIN
  4568. where
  4569. LIN.SOURCE_DOCUMENT_ID = REQ.REQUISITION_HEADER_ID
  4570. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  4571. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4572. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4573. LIN.TOP_MODEL_LINE_ID,
  4574. LIN.ATO_LINE_ID,
  4575. LIN.LINK_TO_LINE_ID,
  4576. LIN.SERVICE_REFERENCE_LINE_ID))
  4577. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  4578. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  4579. and WFP.PROCESS_NAME = WFA.NAME
  4580. and WFP.PROCESS_VERSION = WFA.VERSION
  4581. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  4582. and WFP.ACTIVITY_NAME = WFA1.NAME
  4583. and WFA1.VERSION =
  4584. (select max(VERSION)
  4585. from WF_ACTIVITIES WF2
  4586. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  4587. and WF2.NAME = WFP.ACTIVITY_NAME)
  4588. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  4589. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  4590. and WFS.ERROR_NAME is not NULL
  4591. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  4592.  
  4593. begin
  4594. for po in po_req_apprv_err
  4595. loop
  4596. utl_file.put_line(handle,'&sld'||n(po.PROCESS_NAME)||'&d'||n(po.ACTIVITY_NAME)||'&d');
  4597. utl_file.put_line(handle,n(po.RESULT)||'&d'||n(po.ACT_STATUS)||'&d');
  4598. utl_file.put_line(handle,n(po.ERROR_NAME)||'&d'||n(po.ERROR_MESSAGE)||'&d');
  4599. utl_file.put_line(handle,n(po.ERROR_STACK)||'&el');
  4600. end loop;
  4601. end;
  4602.  
  4603. UTL_FILE.PUT_LINE(handle,'&et');
  4604.  
  4605. UTL_FILE.PUT_LINE(handle,'&f &f PO_HEADERS_INTERFACE (PHI) &f');
  4606. 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');
  4607. 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');
  4608. UTL_FILE.PUT_LINE(handle,'REF_NUM &dh VEND_NUM &dh WF_GROUP_ID &eh');
  4609.  
  4610. Declare
  4611. cursor po_hdr_int is
  4612. select
  4613. PHI.INTERFACE_HEADER_ID INTF_HEAD_ID,
  4614. PHI.BATCH_ID BATCH_ID,
  4615. PHI.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
  4616. PHI.PROCESS_CODE PROCESS_CODE,
  4617. PHI.ACTION ACTION,
  4618. PHI.PO_HEADER_ID PO_HEADER_ID,
  4619. PHI.RELEASE_NUM REL_NUM,
  4620. PHI.PO_RELEASE_ID PO_RELEASE_ID,
  4621. PHI.VENDOR_NAME VENDOR_NAME,
  4622. PHI.APPROVAL_STATUS APPRV_STAT,
  4623. PHI.FIRM_FLAG FIRM,
  4624. PHI.FROZEN_FLAG FROZEN,
  4625. PHI.CLOSED_CODE CLOSE_CODE,
  4626. to_char(PHI.CLOSED_DATE,'DD-MON-RR_HH24:MI:SS') CLOSE_DATE,
  4627. PHI.APPROVAL_REQUIRED_FLAG APPRV_REQD,
  4628. PHI.REFERENCE_NUM REF_NUM,
  4629. PHI.VENDOR_NUM VEND_NUM,
  4630. PHI.WF_GROUP_ID WF_GROUP_ID
  4631. from
  4632. PO_HEADERS_INTERFACE PHI,
  4633. PO_LINES_INTERFACE PLI,
  4634. OE_DROP_SHIP_SOURCES SRC,
  4635. OE_ORDER_LINES LIN
  4636. where
  4637. SRC.LINE_ID = LIN.LINE_ID
  4638. and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
  4639. and PHI.INTERFACE_HEADER_ID = PLI.INTERFACE_HEADER_ID
  4640. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4641. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4642. LIN.TOP_MODEL_LINE_ID,
  4643. LIN.ATO_LINE_ID,
  4644. LIN.LINK_TO_LINE_ID,
  4645. LIN.SERVICE_REFERENCE_LINE_ID)order by
  4646. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4647. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4648. NVL(LIN.SORT_ORDER, '0000'),
  4649. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4650. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4651. LIN.LINE_ID;
  4652.  
  4653. begin
  4654. for po in po_hdr_int
  4655. loop
  4656. utl_file.put_line(handle,'&sld'||n(po.INTF_HEAD_ID)||'&d'||n(po.BATCH_ID)||'&d');
  4657. utl_file.put_line(handle,n(po.INTF_SRC_CODE)||'&d'||n(po.PROCESS_CODE)||'&d');
  4658. utl_file.put_line(handle,n(po.ACTION)||'&d'||n(po.PO_HEADER_ID)||'&d');
  4659. utl_file.put_line(handle,n(po.REL_NUM)||'&d'||n(po.PO_RELEASE_ID)||'&d');
  4660. utl_file.put_line(handle,n(po.VENDOR_NAME)||'&d'||n(po.APPRV_STAT)||'&d');
  4661. utl_file.put_line(handle,n(po.FIRM)||'&d'||n(po.FROZEN)||'&d');
  4662. utl_file.put_line(handle,n(po.CLOSE_CODE)||'&d'||n(po.CLOSE_DATE)||'&d');
  4663. utl_file.put_line(handle,n(po.APPRV_REQD)||'&d'||n(po.REF_NUM)||'&d');
  4664. utl_file.put_line(handle,n(po.VEND_NUM)||'&d'||n(po.WF_GROUP_ID)||'&el');
  4665. end loop;
  4666. end;
  4667.  
  4668. UTL_FILE.PUT_LINE(handle,'&et');
  4669.  
  4670. UTL_FILE.PUT_LINE(handle,'&f &f PO_LINES_INTERFACE (PLI) &f');
  4671. 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 ');
  4672. 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 ');
  4673. 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');
  4674.  
  4675. Declare
  4676. cursor po_lin_int is
  4677. select
  4678. PLI.INTERFACE_LINE_ID INTF_LINE_ID,
  4679. PLI.INTERFACE_HEADER_ID INTF_HEAD_ID,
  4680. PLI.ACTION ACTION,
  4681. PLI.LINE_NUM PO_LINE,
  4682. to_char(LIN.line_number) ||
  4683. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4684. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4685. decode(LIN.component_number, null, null,
  4686. decode(LIN.option_number, null, '.',null)||
  4687. '.'||to_char(LIN.component_number))||
  4688. decode(LIN.service_number,null,null,
  4689. decode(LIN.component_number, null, '.' , null) ||
  4690. decode(LIN.option_number, null, '.', null ) ||
  4691. '.'|| to_char(LIN.service_number)) LINE,
  4692. PLI.PO_LINE_ID PO_LINE_ID,
  4693. PLI.SHIPMENT_NUM SHIP_NUM,
  4694. PLI.SHIPMENT_TYPE SHIP_TYPE,
  4695. PLI.REQUISITION_LINE_ID REQ_LINE_ID,
  4696. PLI.PO_HEADER_ID PO_HEADER_ID,
  4697. PLI.LINE_TYPE LINE_TYPE,
  4698. PLI.ITEM ITEM,
  4699. PLI.UNIT_OF_MEASURE UOM,
  4700. PLI.QUANTITY QUANTITY,
  4701. PLI.UNIT_PRICE PRICE,
  4702. PLI.FIRM_FLAG FIRM,
  4703. PLI.SHIP_TO_ORGANIZATION_CODE SHIP_ORG_CODE,
  4704. PLI.SHIP_TO_ORGANIZATION_ID SHIP_ORG_ID,
  4705. PLI.SHIP_TO_LOCATION SHIP_TO_LOC,
  4706. PLI.SHIP_TO_LOCATION_ID SHIP_TO_LOC_ID,
  4707. to_char(PLI.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY,
  4708. to_char(PLI.PROMISED_DATE,'DD-MON-RR_HH24:MI:SS') PROMISE,
  4709. PLI.ORGANIZATION_ID WAREH_ID
  4710. from PO_LINES_INTERFACE PLI,
  4711. OE_DROP_SHIP_SOURCES SRC,
  4712. OE_ORDER_LINES LIN
  4713. where
  4714. SRC.LINE_ID = LIN.LINE_ID
  4715. and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
  4716. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4717. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4718. LIN.TOP_MODEL_LINE_ID,
  4719. LIN.ATO_LINE_ID,
  4720. LIN.LINK_TO_LINE_ID,
  4721. LIN.SERVICE_REFERENCE_LINE_ID)
  4722. order by
  4723. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4724. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4725. NVL(LIN.SORT_ORDER, '0000'),
  4726. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4727. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4728. LIN.LINE_ID;
  4729.  
  4730. begin
  4731. for po in po_lin_int
  4732. loop
  4733. utl_file.put_line(handle,'&sld'||n(po.INTF_LINE_ID)||'&d'||n(po.INTF_HEAD_ID)||'&d');
  4734. utl_file.put_line(handle,n(po.ACTION)||'&d'||n(po.PO_LINE)||'&d');
  4735. utl_file.put_line(handle,n(po.LINE)||'&d'||n(po.PO_LINE_ID)||'&d');
  4736. utl_file.put_line(handle,n(po.SHIP_NUM)||'&d'||n(po.SHIP_TYPE)||'&d');
  4737. utl_file.put_line(handle,n(po.REQ_LINE_ID)||'&d'||n(po.PO_HEADER_ID)||'&d');
  4738. utl_file.put_line(handle,n(po.LINE_TYPE)||'&d'||n(po.ITEM)||'&d');
  4739. utl_file.put_line(handle,n(po.UOM)||'&d'||n(po.QUANTITY)||'&d');
  4740. utl_file.put_line(handle,n(po.PRICE)||'&d'||n(po.FIRM)||'&d');
  4741. utl_file.put_line(handle,n(po.SHIP_ORG_CODE)||'&d'||n(po.SHIP_ORG_ID)||'&d');
  4742. utl_file.put_line(handle,n(po.SHIP_TO_LOC)||'&d'||n(po.SHIP_TO_LOC_ID)||'&d');
  4743. utl_file.put_line(handle,n(po.NEED_BY)||'&d'||n(po.PROMISE)||'&d');
  4744. utl_file.put_line(handle,n(po.WAREH_ID)||'&el');
  4745. end loop;
  4746. end;
  4747. UTL_FILE.PUT_LINE(handle,'&et');
  4748.  
  4749. UTL_FILE.PUT_LINE(handle,'&f &f PO_INTERFACE_ERRORS_ALL (POE) &f');
  4750. 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');
  4751.  
  4752. Declare
  4753. cursor po_int_err is
  4754. select
  4755. POE.INTERFACE_TRANSACTION_ID INF_TRANS_ID,
  4756. POE.COLUMN_NAME COLUMN_NAME,
  4757. POE.ERROR_MESSAGE ERROR_M,
  4758. POE.INTERFACE_TYPE INF_TYPE,
  4759. POE.REQUEST_ID REQUEST_ID,
  4760. POE.TABLE_NAME TABLE_N
  4761. from
  4762. PO_INTERFACE_ERRORS POE,
  4763. PO_HEADERS_INTERFACE PHI,
  4764. PO_LINES_INTERFACE PLI,
  4765. OE_DROP_SHIP_SOURCES SRC,
  4766. OE_ORDER_LINES LIN
  4767. where
  4768. SRC.LINE_ID = LIN.LINE_ID
  4769. and SRC.REQUISITION_LINE_ID = PLI.REQUISITION_LINE_ID
  4770. and PHI.INTERFACE_HEADER_ID = PLI.INTERFACE_HEADER_ID
  4771. and (POE.INTERFACE_TRANSACTION_ID = PLI.INTERFACE_LINE_ID
  4772. or POE.INTERFACE_TRANSACTION_ID = PHI.INTERFACE_HEADER_ID)
  4773. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4774. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4775. LIN.TOP_MODEL_LINE_ID,
  4776. LIN.ATO_LINE_ID,
  4777. LIN.LINK_TO_LINE_ID,
  4778. LIN.SERVICE_REFERENCE_LINE_ID)order by
  4779. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4780. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4781. NVL(LIN.SORT_ORDER, '0000'),
  4782. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4783. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4784. LIN.LINE_ID;
  4785.  
  4786. begin
  4787. for po in po_int_err
  4788. loop
  4789. utl_file.put_line(handle,'&sld'||n(po.INF_TRANS_ID)||'&d'||n(po.COLUMN_NAME)||'&d');
  4790. utl_file.put_line(handle,n(po.ERROR_M)||'&d'||n(po.INF_TYPE)||'&d');
  4791. utl_file.put_line(handle,n(po.REQUEST_ID)||'&d'||n(po.TABLE_N)||'&el');
  4792. end loop;
  4793. end;
  4794.  
  4795. UTL_FILE.PUT_LINE(handle,'&et');
  4796.  
  4797. UTL_FILE.PUT_LINE(handle,'&f &f PO_HEADERS_ALL (POH) &f');
  4798.  
  4799. 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 ');
  4800. 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');
  4801.  
  4802. Declare
  4803. cursor po_hdr is
  4804. select
  4805. POH.PO_HEADER_ID PO_HEADER_ID,
  4806. POH.SEGMENT1 PO_NUM,
  4807. POH.ACCEPTANCE_REQUIRED_FLAG ACCEPT_REQD,
  4808. POH.BILL_TO_LOCATION_ID BILL_TO,
  4809. POH.SHIP_TO_LOCATION_ID SHIP_TO,
  4810. POH.CLOSED_CODE CLS_STAT,
  4811. POH.CONFIRMING_ORDER_FLAG CONF_ORD,
  4812. POH.CURRENCY_CODE CURR,
  4813. POH.ENABLED_FLAG ENABLED,
  4814. POH.FROZEN_FLAG FROZEN,
  4815. POH.SUMMARY_FLAG SUMM,
  4816. POH.TYPE_LOOKUP_CODE TYPE,
  4817. POH.VENDOR_CONTACT_ID VEND_CONT,
  4818. POH.VENDOR_ID VEND_ID,
  4819. POH.VENDOR_SITE_ID VEND_SITE,
  4820. POH.WF_ITEM_TYPE ITEM_TYPE,
  4821. POH.WF_ITEM_KEY ITEM_KEY
  4822. from
  4823. PO_HEADERS POH,
  4824. OE_DROP_SHIP_SOURCES SRC,
  4825. OE_ORDER_LINES LIN
  4826. where
  4827. SRC.LINE_ID = LIN.LINE_ID
  4828. and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
  4829. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4830. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4831. LIN.TOP_MODEL_LINE_ID,
  4832. LIN.ATO_LINE_ID,
  4833. LIN.LINK_TO_LINE_ID,
  4834. LIN.SERVICE_REFERENCE_LINE_ID)
  4835. UNION ALL
  4836. select distinct /* ATO BUY ITEM */
  4837. POH.PO_HEADER_ID PO_HEADER_ID,
  4838. POH.SEGMENT1 PO_NUM,
  4839. POH.ACCEPTANCE_REQUIRED_FLAG ACCEPT_REQD,
  4840. POH.BILL_TO_LOCATION_ID BILL_TO,
  4841. POH.SHIP_TO_LOCATION_ID SHIP_TO,
  4842. POH.CLOSED_CODE CLS_STAT,
  4843. POH.CONFIRMING_ORDER_FLAG CONF_ORD,
  4844. POH.CURRENCY_CODE CURR,
  4845. POH.ENABLED_FLAG ENABLED,
  4846. POH.FROZEN_FLAG FROZEN,
  4847. POH.SUMMARY_FLAG SUMM,
  4848. POH.TYPE_LOOKUP_CODE TYPE,
  4849. POH.VENDOR_CONTACT_ID VEND_CONT,
  4850. POH.VENDOR_ID VEND_ID,
  4851. POH.VENDOR_SITE_ID VEND_SITE,
  4852. POH.WF_ITEM_TYPE ITEM_TYPE,
  4853. POH.WF_ITEM_KEY ITEM_KEY
  4854. from
  4855. PO_HEADERS POH,
  4856. MTL_RESERVATIONS RES
  4857. where
  4858. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  4859. and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
  4860. and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
  4861. and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID;
  4862.  
  4863. begin
  4864. for po in po_hdr
  4865. loop
  4866. utl_file.put_line(handle,'&sld'||n(po.PO_HEADER_ID)||'&d'||n(po.PO_NUM)||'&d');
  4867. utl_file.put_line(handle,n(po.ACCEPT_REQD)||'&d'||n(po.BILL_TO)||'&d');
  4868. utl_file.put_line(handle,n(po.SHIP_TO)||'&d'||n(po.CLS_STAT)||'&d');
  4869. utl_file.put_line(handle,n(po.CONF_ORD)||'&d'||n(po.CURR)||'&d');
  4870. utl_file.put_line(handle,n(po.ENABLED)||'&d'||n(po.FROZEN)||'&d');
  4871. utl_file.put_line(handle,n(po.SUMM)||'&d'||n(po.TYPE)||'&d');
  4872. utl_file.put_line(handle,n(po.VEND_CONT)||'&d'||n(po.VEND_ID)||'&d');
  4873. utl_file.put_line(handle,n(po.VEND_SITE)||'&d'||n(po.ITEM_TYPE)||'&d');
  4874. utl_file.put_line(handle,n(po.ITEM_KEY)||'&el');
  4875. end loop;
  4876. end;
  4877.  
  4878. UTL_FILE.PUT_LINE(handle,'&et');
  4879.  
  4880. UTL_FILE.PUT_LINE(handle,'&f &f PO_LINES (POL) &f');
  4881.  
  4882. 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 ');
  4883. UTL_FILE.PUT_LINE(handle,'ITEM_ID &dh LINE_TYPE_ID &dh QTY &dh PRICE &eh');
  4884.  
  4885. Declare
  4886. cursor po_lines is
  4887. select
  4888. POL.PO_HEADER_ID PO_HEADER_ID,
  4889. POL.PO_LINE_ID PO_LINE_ID,
  4890. POL.LINE_NUM PO_LINE,
  4891. to_char(LIN.line_number) ||
  4892. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  4893. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  4894. decode(LIN.component_number, null, null,
  4895. decode(LIN.option_number, null, '.',null)||
  4896. '.'||to_char(LIN.component_number))||
  4897. decode(LIN.service_number,null,null,
  4898. decode(LIN.component_number, null, '.' , null) ||
  4899. decode(LIN.option_number, null, '.', null ) ||
  4900. '.'|| to_char(LIN.service_number)) LINE,
  4901. POL.CATEGORY_ID CATEGORY_ID,
  4902. POL.CLOSED_CODE CLS_STAT,
  4903. POL.FIRM_STATUS_LOOKUP_CODE FIRM,
  4904. POL.ITEM_DESCRIPTION ITEM_DESC,
  4905. POL.ITEM_ID ITEM_ID,
  4906. POL.LINE_TYPE_ID LINE_TYPE_ID,
  4907. POL.QUANTITY QTY,
  4908. POL.UNIT_PRICE PRICE
  4909. from
  4910. PO_LINES POL,
  4911. OE_DROP_SHIP_SOURCES SRC,
  4912. OE_ORDER_LINES LIN
  4913. where
  4914. SRC.LINE_ID = LIN.LINE_ID
  4915. and SRC.PO_LINE_ID = POL.PO_LINE_ID
  4916. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4917. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4918. LIN.TOP_MODEL_LINE_ID,
  4919. LIN.ATO_LINE_ID,
  4920. LIN.LINK_TO_LINE_ID,
  4921. LIN.SERVICE_REFERENCE_LINE_ID)
  4922. order by
  4923. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  4924. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  4925. NVL(LIN.SORT_ORDER, '0000'),
  4926. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  4927. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  4928. LIN.LINE_ID;
  4929.  
  4930. begin
  4931. for po in po_lines
  4932. loop
  4933. utl_file.put_line(handle,'&sld'||n(po.PO_HEADER_ID)||'&d'||n(po.PO_LINE_ID)||'&d');
  4934. utl_file.put_line(handle,n(po.PO_LINE)||'&d'||n(po.LINE)||'&d');
  4935. utl_file.put_line(handle,n(po.CATEGORY_ID)||'&d'||n(po.CLS_STAT)||'&d');
  4936. utl_file.put_line(handle,n(po.FIRM)||'&d'||n(po.ITEM_DESC)||'&d');
  4937. utl_file.put_line(handle,n(po.ITEM_ID)||'&d'||n(po.LINE_TYPE_ID)||'&d');
  4938. utl_file.put_line(handle,n(po.QTY)||'&d'||n(po.PRICE)||'&el');
  4939. end loop;
  4940. end;
  4941.  
  4942. UTL_FILE.PUT_LINE(handle,'&et');
  4943.  
  4944. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE ORDER APPROVAL STATUS &f');
  4945.  
  4946. 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 ');
  4947. UTL_FILE.PUT_LINE(handle,'BEGIN_DATE &dh END_DATE &dh ERROR &eh');
  4948.  
  4949. Declare
  4950. cursor po_wf_po_apr is
  4951. select WFS.item_key PO_NUM_IK,
  4952. WFA.DISPLAY_NAME PROCESS_NAME,
  4953. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  4954. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  4955. LKP.MEANING ACT_STATUS,
  4956. WFS.NOTIFICATION_ID NOTIF_ID,
  4957. to_char(WFS.BEGIN_DATE,'DD-MON-RR_HH24:MI:SS') BEGIN_DATE,
  4958. to_char(WFS.END_DATE,'DD-MON-RR_HH24:MI:SS') END_DATE,
  4959. WFS.ERROR_NAME ERROR_N
  4960. from WF_ITEM_ACTIVITY_STATUSES WFS,
  4961. WF_PROCESS_ACTIVITIES WFP,
  4962. WF_ACTIVITIES_VL WFA,
  4963. WF_ACTIVITIES_VL WFA1,
  4964. WF_LOOKUPS LKP
  4965. where
  4966. WFS.ITEM_TYPE = 'POAPPRV'
  4967. and WFS.item_key in (select wf_item_key
  4968. from
  4969. PO_HEADERS POH,
  4970. OE_DROP_SHIP_SOURCES SRC,
  4971. OE_ORDER_LINES LIN
  4972. where
  4973. SRC.LINE_ID = LIN.LINE_ID
  4974. and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
  4975. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  4976. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  4977. LIN.TOP_MODEL_LINE_ID,
  4978. LIN.ATO_LINE_ID,
  4979. LIN.LINK_TO_LINE_ID,
  4980. LIN.SERVICE_REFERENCE_LINE_ID))
  4981. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  4982. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  4983. and WFP.PROCESS_NAME = WFA.NAME
  4984. and WFP.PROCESS_VERSION = WFA.VERSION
  4985. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  4986. and WFP.ACTIVITY_NAME = WFA1.NAME
  4987. and WFA1.VERSION =
  4988. (select max(VERSION)
  4989. from WF_ACTIVITIES WF2
  4990. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  4991. and WF2.NAME = WFP.ACTIVITY_NAME)
  4992. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  4993. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  4994. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  4995.  
  4996. begin
  4997. for po in po_wf_po_apr
  4998. loop
  4999. utl_file.put_line(handle,'&sld'||n(po.PO_NUM_IK)||'&d'||n(po.PROCESS_NAME)||'&d');
  5000. utl_file.put_line(handle,n(po.ACTIVITY_NAME)||'&d'||n(po.RESULT)||'&d');
  5001. utl_file.put_line(handle,n(po.ACT_STATUS)||'&d'||n(po.NOTIF_ID)||'&d');
  5002. utl_file.put_line(handle,n(po.BEGIN_DATE)||'&d'||n(po.END_DATE)||'&d');
  5003. utl_file.put_line(handle,n(po.ERROR_N)||'&el');
  5004. end loop;
  5005. end;
  5006.  
  5007. UTL_FILE.PUT_LINE(handle,'&et');
  5008.  
  5009. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE APPROVAL NOTIFICATIONS &f');
  5010. 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');
  5011.  
  5012. Declare
  5013. cursor po_wf_not is
  5014. select WFN.NOTIFICATION_ID NOTIF_ID,
  5015. WFN.TO_USER TO_USER,
  5016. WFN.ORIGINAL_RECIPIENT ORIG_RECIP,
  5017. WFN.RECIPIENT_ROLE RECIP_ROLE,
  5018. WFN.MAIL_STATUS MAIL_STAT,
  5019. WFN.MESSAGE_NAME MESSAGE_NAME,
  5020. WFN.STATUS STATUS,
  5021. WFN.SUBJECT SUBJECT
  5022. from WF_ITEM_ACTIVITY_STATUSES WFS,
  5023. WF_NOTIFICATIONS WFN
  5024. where
  5025. WFS.ITEM_TYPE = 'POAPPRV'
  5026. and WFS.item_key in (select wf_item_key
  5027. from
  5028. PO_HEADERS POH,
  5029. OE_DROP_SHIP_SOURCES SRC,
  5030. OE_ORDER_LINES LIN
  5031. where
  5032. SRC.LINE_ID = LIN.LINE_ID
  5033. and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
  5034. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5035. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5036. LIN.TOP_MODEL_LINE_ID,
  5037. LIN.ATO_LINE_ID,
  5038. LIN.LINK_TO_LINE_ID,
  5039. LIN.SERVICE_REFERENCE_LINE_ID))
  5040. and WFS.NOTIFICATION_ID is not null
  5041. and WFN.NOTIFICATION_ID = WFS.NOTIFICATION_ID
  5042. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  5043.  
  5044. begin
  5045. for po in po_wf_not
  5046. loop
  5047. utl_file.put_line(handle,'&sld'||n(po.NOTIF_ID)||'&d'||n(po.TO_USER)||'&d');
  5048. utl_file.put_line(handle,n(po.ORIG_RECIP)||'&d'||n(po.RECIP_ROLE)||'&d');
  5049. utl_file.put_line(handle,n(po.MAIL_STAT)||'&d'||n(po.MESSAGE_NAME)||'&d');
  5050. utl_file.put_line(handle,n(po.STATUS)||'&d'||n(po.SUBJECT)||'&el');
  5051. end loop;
  5052. end;
  5053.  
  5054. UTL_FILE.PUT_LINE(handle,'&et');
  5055.  
  5056. UTL_FILE.PUT_LINE(handle,'&f &f WORKFLOW PURCHASE APPROVAL ERRORS &f');
  5057. 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');
  5058.  
  5059. Declare
  5060. cursor po_hdr_int is
  5061. select WFA.DISPLAY_NAME PROCESS_NAME,
  5062. WFA1.DISPLAY_NAME ACTIVITY_NAME,
  5063. WF_CORE.ACTIVITY_RESULT(WFA1.RESULT_TYPE,WFS.ACTIVITY_RESULT_CODE) RESULT,
  5064. LKP.MEANING ACT_STATUS,
  5065. WFS.ERROR_NAME ERROR_NAME,
  5066. WFS.ERROR_MESSAGE ERROR_MESSAGE,
  5067. WFS.ERROR_STACK ERROR_STACK
  5068. from WF_ITEM_ACTIVITY_STATUSES WFS,
  5069. WF_PROCESS_ACTIVITIES WFP,
  5070. WF_ACTIVITIES_VL WFA,
  5071. WF_ACTIVITIES_VL WFA1,
  5072. WF_LOOKUPS LKP
  5073. where
  5074. WFS.ITEM_TYPE = 'POAPPRV'
  5075. and WFS.item_key in (select wf_item_key
  5076. from
  5077. PO_HEADERS POH,
  5078. OE_DROP_SHIP_SOURCES SRC,
  5079. OE_ORDER_LINES LIN
  5080. where
  5081. SRC.LINE_ID = LIN.LINE_ID
  5082. and SRC.PO_HEADER_ID = POH.PO_HEADER_ID
  5083. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5084. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5085. LIN.TOP_MODEL_LINE_ID,
  5086. LIN.ATO_LINE_ID,
  5087. LIN.LINK_TO_LINE_ID,
  5088. LIN.SERVICE_REFERENCE_LINE_ID))
  5089. and WFS.PROCESS_ACTIVITY = WFP.INSTANCE_ID
  5090. and WFP.PROCESS_ITEM_TYPE = WFA.ITEM_TYPE
  5091. and WFP.PROCESS_NAME = WFA.NAME
  5092. and WFP.PROCESS_VERSION = WFA.VERSION
  5093. and WFP.ACTIVITY_ITEM_TYPE = WFA1.ITEM_TYPE
  5094. and WFP.ACTIVITY_NAME = WFA1.NAME
  5095. and WFA1.VERSION =
  5096. (select max(VERSION)
  5097. from WF_ACTIVITIES WF2
  5098. where WF2.ITEM_TYPE = WFP.ACTIVITY_ITEM_TYPE
  5099. and WF2.NAME = WFP.ACTIVITY_NAME)
  5100. and LKP.LOOKUP_TYPE = 'WFENG_STATUS'
  5101. and LKP.LOOKUP_CODE = WFS.ACTIVITY_STATUS
  5102. and WFS.ERROR_NAME is not NULL
  5103. order by WFS.ITEM_KEY, WFS.BEGIN_DATE, EXECUTION_TIME;
  5104.  
  5105. begin
  5106. for po in po_hdr_int
  5107. loop
  5108. utl_file.put_line(handle,'&sld'||n(po.PROCESS_NAME)||'&d'||n(po.ACTIVITY_NAME)||'&d');
  5109. utl_file.put_line(handle,n(po.RESULT)||'&d'||n(po.ACT_STATUS)||'&d');
  5110. utl_file.put_line(handle,n(po.ERROR_NAME)||'&d'||n(po.ERROR_MESSAGE)||'&d');
  5111. utl_file.put_line(handle,n(po.ERROR_STACK)||'&el');
  5112. end loop;
  5113. end;
  5114.  
  5115. UTL_FILE.PUT_LINE(handle,'&et');
  5116.  
  5117. end if; -- prt_po
  5118.  
  5119. if UPPER(nvl('&prt_rec','Y')) = 'Y' then
  5120.  
  5121. UTL_FILE.PUT_LINE(handle,'&f &f RCV_SHIPMENT_LINES (SHL) &f');
  5122. 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 ');
  5123. UTL_FILE.PUT_LINE(handle,'ITEM_ID &dh TO_ORG &dh SRC_DOC &dh REQUEST_ID &eh');
  5124.  
  5125. Declare
  5126. cursor rcv_shp_lin is
  5127. select /* DROP SHIPMENTS */
  5128. SHL.SHIPMENT_LINE_ID SHP_LN_ID,
  5129. SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
  5130. SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
  5131. SHL.QUANTITY_RECEIVED RCV_Q,
  5132. SHL.QUANTITY_SHIPPED SHP_Q,
  5133. SHL.DESTINATION_TYPE_CODE DEST_TYPE,
  5134. SHL.OE_ORDER_HEADER_ID OE_HD_ID,
  5135. SHL.OE_ORDER_LINE_ID OE_LN_ID,
  5136. SHL.ITEM_ID ITEM_ID,
  5137. SHL.SHIP_TO_LOCATION_ID TO_ORG,
  5138. SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
  5139. SHL.REQUEST_ID REQUEST_ID
  5140. from
  5141. RCV_SHIPMENT_LINES SHL,
  5142. OE_DROP_SHIP_SOURCES SRC,
  5143. OE_ORDER_LINES LIN
  5144. where
  5145. SRC.LINE_ID = LIN.LINE_ID
  5146. and SRC.PO_LINE_ID = SHL.PO_LINE_ID
  5147. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5148. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5149. LIN.TOP_MODEL_LINE_ID,
  5150. LIN.ATO_LINE_ID,
  5151. LIN.LINK_TO_LINE_ID,
  5152. LIN.SERVICE_REFERENCE_LINE_ID)
  5153. UNION ALL
  5154. select /* RETURNS */
  5155. SHL.SHIPMENT_LINE_ID SHP_LN_ID,
  5156. SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
  5157. SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
  5158. SHL.QUANTITY_RECEIVED RCV_Q,
  5159. SHL.QUANTITY_SHIPPED SHP_Q,
  5160. SHL.DESTINATION_TYPE_CODE DEST_TYPE,
  5161. SHL.OE_ORDER_HEADER_ID OE_HD_ID,
  5162. SHL.OE_ORDER_LINE_ID OE_LN_ID,
  5163. SHL.ITEM_ID ITEM_ID,
  5164. SHL.SHIP_TO_LOCATION_ID TO_ORG,
  5165. SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
  5166. SHL.REQUEST_ID REQUEST_ID
  5167. from
  5168. RCV_SHIPMENT_LINES SHL,
  5169. OE_ORDER_LINES LIN
  5170. where
  5171. SHL.OE_ORDER_LINE_ID = LIN.LINE_ID
  5172. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5173. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5174. LIN.TOP_MODEL_LINE_ID,
  5175. LIN.ATO_LINE_ID,
  5176. LIN.LINK_TO_LINE_ID,
  5177. LIN.SERVICE_REFERENCE_LINE_ID)
  5178. UNION ALL
  5179. select /* INTERNAL SALES ORDER */
  5180. SHL.SHIPMENT_LINE_ID SHP_LN_ID,
  5181. SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
  5182. SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
  5183. SHL.QUANTITY_RECEIVED RCV_Q,
  5184. SHL.QUANTITY_SHIPPED SHP_Q,
  5185. SHL.DESTINATION_TYPE_CODE DEST_TYPE,
  5186. SHL.OE_ORDER_HEADER_ID OE_HD_ID,
  5187. SHL.OE_ORDER_LINE_ID OE_LN_ID,
  5188. SHL.ITEM_ID ITEM_ID,
  5189. SHL.SHIP_TO_LOCATION_ID TO_ORG,
  5190. SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
  5191. SHL.REQUEST_ID REQUEST_ID
  5192. from
  5193. RCV_SHIPMENT_LINES SHL,
  5194. OE_ORDER_LINES LIN
  5195. where
  5196. LIN.SOURCE_DOCUMENT_LINE_ID = SHL.REQUISITION_LINE_ID
  5197. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  5198. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5199. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5200. LIN.TOP_MODEL_LINE_ID,
  5201. LIN.ATO_LINE_ID,
  5202. LIN.LINK_TO_LINE_ID,
  5203. LIN.SERVICE_REFERENCE_LINE_ID)
  5204. UNION ALL
  5205. select /* ATO BUY ITEM */
  5206. SHL.SHIPMENT_LINE_ID SHP_LN_ID,
  5207. SHL.SHIPMENT_HEADER_ID SHP_HD_ID,
  5208. SHL.SHIPMENT_LINE_STATUS_CODE SHP_LINE_STATUS,
  5209. SHL.QUANTITY_RECEIVED RCV_Q,
  5210. SHL.QUANTITY_SHIPPED SHP_Q,
  5211. SHL.DESTINATION_TYPE_CODE DEST_TYPE,
  5212. SHL.OE_ORDER_HEADER_ID OE_HD_ID,
  5213. SHL.OE_ORDER_LINE_ID OE_LN_ID,
  5214. SHL.ITEM_ID ITEM_ID,
  5215. SHL.SHIP_TO_LOCATION_ID TO_ORG,
  5216. SHL.SOURCE_DOCUMENT_CODE SRC_DOC,
  5217. SHL.REQUEST_ID REQUEST_ID
  5218. from
  5219. RCV_SHIPMENT_LINES SHL,
  5220. MTL_RESERVATIONS RES,
  5221. PO_HEADERS_ALL POH
  5222. where
  5223. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  5224. and RES.DEMAND_SOURCE_LINE_ID = NVL('&line_id_selected',RES.DEMAND_SOURCE_LINE_ID)
  5225. and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
  5226. and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
  5227. and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
  5228. and POH.PO_HEADER_ID = SHL.PO_HEADER_ID;
  5229.  
  5230. begin
  5231. for rcv in rcv_shp_lin
  5232. loop
  5233. utl_file.put_line(handle,'&sld'||n(rcv.SHP_LN_ID)||'&d'||n(rcv.SHP_HD_ID)||'&d');
  5234. utl_file.put_line(handle,n(rcv.SHP_LINE_STATUS)||'&d'||n(rcv.RCV_Q)||'&d');
  5235. utl_file.put_line(handle,n(rcv.SHP_Q)||'&d'||n(rcv.DEST_TYPE)||'&d');
  5236. utl_file.put_line(handle,n(rcv.OE_HD_ID)||'&d'||n(rcv.OE_LN_ID)||'&d');
  5237. utl_file.put_line(handle,n(rcv.ITEM_ID)||'&d'||n(rcv.TO_ORG)||'&d');
  5238. utl_file.put_line(handle,n(rcv.SRC_DOC)||'&d'||n(rcv.REQUEST_ID)||'&el');
  5239. end loop;
  5240. end;
  5241.  
  5242. UTL_FILE.PUT_LINE(handle,'&et ');
  5243.  
  5244. UTL_FILE.PUT_LINE(handle,'&f &f RCV_TRANSACTIONS (RCV) &f');
  5245.  
  5246. 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 ');
  5247. 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 ');
  5248. 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 ');
  5249. UTL_FILE.PUT_LINE(handle,'SRC_DOC_CODE &dh VEND_ID &dh VEND_SITE_ID &eh');
  5250.  
  5251. Declare
  5252. cursor rcv_trx is
  5253. select /* DROP SHIPMENTS */
  5254. RCV.TRANSACTION_ID TRANS_ID,
  5255. RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
  5256. to_char(LIN.line_number) ||
  5257. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5258. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5259. decode(LIN.component_number, null, null,
  5260. decode(LIN.option_number, null, '.',null)||
  5261. '.'||to_char(LIN.component_number))||
  5262. decode(LIN.service_number,null,null,
  5263. decode(LIN.component_number, null, '.' , null) ||
  5264. decode(LIN.option_number, null, '.', null ) ||
  5265. '.'|| to_char(LIN.service_number)) LINE,
  5266. RCV.TRANSACTION_TYPE TRANS_TYPE,
  5267. to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
  5268. RCV.DESTINATION_TYPE_CODE DEST_TYPE,
  5269. RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
  5270. RCV.INTERFACE_SOURCE_CODE INTF_SRC,
  5271. RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
  5272. RCV.LOCATION_ID LOC_ID,
  5273. RCV.MVT_STAT_STATUS MVT_STAT,
  5274. RCV.ORGANIZATION_ID ORG_ID,
  5275. RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5276. RCV.OE_ORDER_LINE_ID OE_LINE_ID,
  5277. RCV.PO_HEADER_ID PO_HEAD_ID,
  5278. RCV.PO_LINE_ID PO_LINE_ID,
  5279. RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
  5280. RCV.PO_UNIT_PRICE UNIT_PRICE,
  5281. RCV.PRIMARY_UNIT_OF_MEASURE UOM,
  5282. RCV.QUANTITY QTY,
  5283. RCV.REQUEST_ID REQUEST_ID,
  5284. RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
  5285. RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
  5286. RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
  5287. RCV.VENDOR_ID VEND_ID,
  5288. RCV.VENDOR_SITE_ID VEND_SITE_ID
  5289. from
  5290. RCV_TRANSACTIONS RCV,
  5291. OE_DROP_SHIP_SOURCES SRC,
  5292. OE_ORDER_LINES LIN
  5293. where
  5294. SRC.LINE_ID = LIN.LINE_ID
  5295. and SRC.PO_LINE_ID = RCV.PO_LINE_ID
  5296. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5297. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5298. LIN.TOP_MODEL_LINE_ID,
  5299. LIN.ATO_LINE_ID,
  5300. LIN.LINK_TO_LINE_ID,
  5301. LIN.SERVICE_REFERENCE_LINE_ID)
  5302. UNION ALL
  5303. select /* RETURNS */
  5304. RCV.TRANSACTION_ID TRANS_ID,
  5305. RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
  5306. to_char(LIN.line_number) ||
  5307. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5308. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5309. decode(LIN.component_number, null, null,
  5310. decode(LIN.option_number, null, '.',null)||
  5311. '.'||to_char(LIN.component_number))||
  5312. decode(LIN.service_number,null,null,
  5313. decode(LIN.component_number, null, '.' , null) ||
  5314. decode(LIN.option_number, null, '.', null ) ||
  5315. '.'|| to_char(LIN.service_number)) LINE,
  5316. RCV.TRANSACTION_TYPE TRANS_TYPE,
  5317. to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
  5318. RCV.DESTINATION_TYPE_CODE DEST_TYPE,
  5319. RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
  5320. RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
  5321. RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
  5322. RCV.LOCATION_ID LOC_ID,
  5323. RCV.MVT_STAT_STATUS MVT_STAT,
  5324. RCV.ORGANIZATION_ID ORG_ID,
  5325. RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5326. RCV.OE_ORDER_LINE_ID OE_LINE_ID,
  5327. RCV.PO_HEADER_ID PO_HEAD_ID,
  5328. RCV.PO_LINE_ID PO_LINE_ID,
  5329. RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
  5330. RCV.PO_UNIT_PRICE UNIT_PRICE,
  5331. RCV.PRIMARY_UNIT_OF_MEASURE UOM,
  5332. RCV.QUANTITY QTY,
  5333. RCV.REQUEST_ID REQUEST_ID,
  5334. RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
  5335. RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
  5336. RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
  5337. RCV.VENDOR_ID VEND_ID,
  5338. RCV.VENDOR_SITE_ID VEND_SITE_ID
  5339. from
  5340. RCV_TRANSACTIONS RCV,
  5341. OE_ORDER_LINES LIN
  5342. where
  5343. RCV.OE_ORDER_LINE_ID = LIN.LINE_ID
  5344. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5345. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5346. LIN.TOP_MODEL_LINE_ID,
  5347. LIN.ATO_LINE_ID,
  5348. LIN.LINK_TO_LINE_ID,
  5349. LIN.SERVICE_REFERENCE_LINE_ID)
  5350. UNION ALL
  5351. select /* INTERNAL SALES ORDERS */
  5352. RCV.TRANSACTION_ID TRANS_ID,
  5353. RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
  5354. to_char(LIN.line_number) ||
  5355. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5356. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5357. decode(LIN.component_number, null, null,
  5358. decode(LIN.option_number, null, '.',null)||
  5359. '.'||to_char(LIN.component_number))||
  5360. decode(LIN.service_number,null,null,
  5361. decode(LIN.component_number, null, '.' , null) ||
  5362. decode(LIN.option_number, null, '.', null ) ||
  5363. '.'|| to_char(LIN.service_number)) LINE,
  5364. RCV.TRANSACTION_TYPE TRANS_TYPE,
  5365. to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
  5366. RCV.DESTINATION_TYPE_CODE DEST_TYPE,
  5367. RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
  5368. RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
  5369. RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
  5370. RCV.LOCATION_ID LOC_ID,
  5371. RCV.MVT_STAT_STATUS MVT_STAT,
  5372. RCV.ORGANIZATION_ID ORG_ID,
  5373. RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5374. RCV.OE_ORDER_LINE_ID OE_LINE_ID,
  5375. RCV.PO_HEADER_ID PO_HEAD_ID,
  5376. RCV.PO_LINE_ID PO_LINE_ID,
  5377. RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
  5378. RCV.PO_UNIT_PRICE UNIT_PRICE,
  5379. RCV.PRIMARY_UNIT_OF_MEASURE UOM,
  5380. RCV.QUANTITY QTY,
  5381. RCV.REQUEST_ID REQUEST_ID,
  5382. RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
  5383. RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
  5384. RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
  5385. RCV.VENDOR_ID VEND_ID,
  5386. RCV.VENDOR_SITE_ID VEND_SITE_ID
  5387. from
  5388. RCV_TRANSACTIONS RCV,
  5389. OE_ORDER_LINES LIN
  5390. where
  5391. LIN.SOURCE_DOCUMENT_LINE_ID = RCV.REQUISITION_LINE_ID
  5392. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  5393. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5394. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5395. LIN.TOP_MODEL_LINE_ID,
  5396. LIN.ATO_LINE_ID,
  5397. LIN.LINK_TO_LINE_ID,
  5398. LIN.SERVICE_REFERENCE_LINE_ID)
  5399. UNION ALL
  5400. select /* ATO BUY ITEM */
  5401. RCV.TRANSACTION_ID TRANS_ID,
  5402. RCV.PARENT_TRANSACTION_ID PRNT_TRANS_ID,
  5403. to_char(RES.DEMAND_SOURCE_LINE_ID) LINE,
  5404. RCV.TRANSACTION_TYPE TRANS_TYPE,
  5405. to_char(RCV.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRANS_DATE,
  5406. RCV.DESTINATION_TYPE_CODE DEST_TYPE,
  5407. RCV.INSPECTION_STATUS_CODE INSPECT_STAT,
  5408. RCV.INTERFACE_SOURCE_CODE INTF_SRC_CODE,
  5409. RCV.INTERFACE_TRANSACTION_ID INTF_TRANS_ID,
  5410. RCV.LOCATION_ID LOC_ID,
  5411. RCV.MVT_STAT_STATUS MVT_STAT,
  5412. RCV.ORGANIZATION_ID ORG_ID,
  5413. RCV.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5414. RCV.OE_ORDER_LINE_ID OE_LINE_ID,
  5415. RCV.PO_HEADER_ID PO_HEAD_ID,
  5416. RCV.PO_LINE_ID PO_LINE_ID,
  5417. RCV.PO_LINE_LOCATION_ID LINE_LOC_ID,
  5418. RCV.PO_UNIT_PRICE UNIT_PRICE,
  5419. RCV.PRIMARY_UNIT_OF_MEASURE UOM,
  5420. RCV.QUANTITY QTY,
  5421. RCV.REQUEST_ID REQUEST_ID,
  5422. RCV.SHIPMENT_HEADER_ID SHIP_HEAD_ID,
  5423. RCV.SHIPMENT_LINE_ID SHIP_LINE_ID,
  5424. RCV.SOURCE_DOCUMENT_CODE SRC_DOC_CODE,
  5425. RCV.VENDOR_ID VEND_ID,
  5426. RCV.VENDOR_SITE_ID VEND_SITE_ID
  5427. from
  5428. RCV_TRANSACTIONS RCV,
  5429. MTL_RESERVATIONS RES,
  5430. PO_HEADERS_ALL POH
  5431. where
  5432. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  5433. and RES.DEMAND_SOURCE_LINE_ID = NVL('&line_id_selected',RES.DEMAND_SOURCE_LINE_ID)
  5434. and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
  5435. and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
  5436. and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
  5437. and POH.PO_HEADER_ID = RCV.PO_HEADER_ID;
  5438.  
  5439. begin
  5440. for rcv in rcv_trx
  5441. loop
  5442. utl_file.put_line(handle,'&sld'||n(rcv.TRANS_ID)||'&d'||n(rcv.PRNT_TRANS_ID)||'&d');
  5443. utl_file.put_line(handle,n(rcv.LINE)||'&d'||n(rcv.TRANS_TYPE)||'&d');
  5444. utl_file.put_line(handle,n(rcv.TRANS_DATE)||'&d'||n(rcv.DEST_TYPE)||'&d');
  5445. utl_file.put_line(handle,n(rcv.INSPECT_STAT)||'&d'||n(rcv.INTF_SRC)||'&d');
  5446. utl_file.put_line(handle,n(rcv.INTF_TRANS_ID)||'&d'||n(rcv.LOC_ID)||'&d');
  5447. utl_file.put_line(handle,n(rcv.MVT_STAT)||'&d'||n(rcv.ORG_ID)||'&d');
  5448. utl_file.put_line(handle,n(rcv.OE_HEAD_ID)||'&d'||n(rcv.OE_LINE_ID)||'&d');
  5449. utl_file.put_line(handle,n(rcv.PO_HEAD_ID)||'&d'||n(rcv.PO_LINE_ID)||'&d');
  5450. utl_file.put_line(handle,n(rcv.LINE_LOC_ID)||'&d'||n(rcv.UNIT_PRICE)||'&d');
  5451. utl_file.put_line(handle,n(rcv.UOM)||'&d'||n(rcv.QTY)||'&d');
  5452. utl_file.put_line(handle,n(rcv.REQUEST_ID)||'&d'||n(rcv.SHIP_HEAD_ID)||'&d');
  5453. utl_file.put_line(handle,n(rcv.SHIP_LINE_ID)||'&d'||n(rcv.SRC_DOC_CODE)||'&d');
  5454. utl_file.put_line(handle,n(rcv.VEND_ID)||'&d'||n(rcv.VEND_SITE_ID)||'&el');
  5455. end loop;
  5456. end;
  5457.  
  5458. UTL_FILE.PUT_LINE(handle,'&et');
  5459.  
  5460. UTL_FILE.PUT_LINE(handle,'&f &f RCV_TRANSACTIONS_INTERFACE (RTI) &f');
  5461. 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');
  5462. 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');
  5463. UTL_FILE.PUT_LINE(handle,'PRNT_TRN_ID &dh SHP_HEAD_ID &dh SHP_LINE_ID &dh SRC_DOC &dh REQUEST_ID &eh');
  5464.  
  5465. Declare
  5466. cursor rcv_trx_int is
  5467. select /* DROP SHIPMENTS */
  5468. RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
  5469. RTI.PROCESSING_MODE_CODE PROC_MODE,
  5470. RTI.PROCESSING_STATUS_CODE PROC_STAT,
  5471. RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
  5472. to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
  5473. RTI.TRANSACTION_TYPE TRNS_TYPE,
  5474. RTI.DESTINATION_TYPE_CODE DEST_TYPE,
  5475. RTI.INSPECTION_STATUS_CODE INSP_STAT,
  5476. RTI.INTERFACE_SOURCE_CODE INSP_SRC,
  5477. RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5478. RTI.OE_ORDER_LINE_ID OE_LINE_ID,
  5479. RTI.ITEM_ID ITEM_ID,
  5480. RTI.QUANTITY QTY,
  5481. RTI.PRIMARY_QUANTITY PRY_Q,
  5482. RTI.PO_UNIT_PRICE PO_UNIT_PRC,
  5483. RTI.SUBINVENTORY SUB,
  5484. RTI.TO_ORGANIZATION_ID TO_ORG_ID,
  5485. RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
  5486. RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
  5487. RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
  5488. RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
  5489. RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
  5490. RTI.PROCESSING_REQUEST_ID REQUEST_ID
  5491. from
  5492. RCV_TRANSACTIONS_INTERFACE RTI,
  5493. OE_DROP_SHIP_SOURCES SRC,
  5494. OE_ORDER_LINES LIN
  5495. where
  5496. SRC.LINE_ID = LIN.LINE_ID
  5497. and SRC.PO_LINE_ID = RTI.PO_LINE_ID
  5498. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5499. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5500. LIN.TOP_MODEL_LINE_ID,
  5501. LIN.ATO_LINE_ID,
  5502. LIN.LINK_TO_LINE_ID,
  5503. LIN.SERVICE_REFERENCE_LINE_ID)
  5504. UNION ALL
  5505. select /* RETURNS */
  5506. RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
  5507. RTI.PROCESSING_MODE_CODE PROC_MODE,
  5508. RTI.PROCESSING_STATUS_CODE PROC_STAT,
  5509. RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
  5510. to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
  5511. RTI.TRANSACTION_TYPE TRNS_TYPE,
  5512. RTI.DESTINATION_TYPE_CODE DEST_TYPE,
  5513. RTI.INSPECTION_STATUS_CODE INSP_STAT,
  5514. RTI.INTERFACE_SOURCE_CODE INSP_SRC,
  5515. RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5516. RTI.OE_ORDER_LINE_ID OE_LINE_ID,
  5517. RTI.ITEM_ID ITEM_ID,
  5518. RTI.QUANTITY QTY,
  5519. RTI.PRIMARY_QUANTITY PRY_Q,
  5520. RTI.PO_UNIT_PRICE PO_UNIT_PRC,
  5521. RTI.SUBINVENTORY SUB,
  5522. RTI.TO_ORGANIZATION_ID TO_ORG_ID,
  5523. RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
  5524. RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
  5525. RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
  5526. RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
  5527. RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
  5528. RTI.PROCESSING_REQUEST_ID REQUEST_ID
  5529. from
  5530. RCV_TRANSACTIONS_INTERFACE RTI,
  5531. OE_ORDER_LINES LIN
  5532. where
  5533. RTI.OE_ORDER_LINE_ID = LIN.LINE_ID
  5534. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5535. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5536. LIN.TOP_MODEL_LINE_ID,
  5537. LIN.ATO_LINE_ID,
  5538. LIN.LINK_TO_LINE_ID,
  5539. LIN.SERVICE_REFERENCE_LINE_ID)
  5540. UNION ALL
  5541. select /* INTERNAL SALES ORDER */
  5542. RTI.INTERFACE_TRANSACTION_ID INTF_TRNS_ID,
  5543. RTI.PROCESSING_MODE_CODE PROC_MODE,
  5544. RTI.PROCESSING_STATUS_CODE PROC_STAT,
  5545. RTI.TRANSACTION_STATUS_CODE TRNS_STAT,
  5546. to_char(RTI.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRNS_DATE,
  5547. RTI.TRANSACTION_TYPE TRNS_TYPE,
  5548. RTI.DESTINATION_TYPE_CODE DEST_TYPE,
  5549. RTI.INSPECTION_STATUS_CODE INSP_STAT,
  5550. RTI.INTERFACE_SOURCE_CODE INSP_SRC,
  5551. RTI.OE_ORDER_HEADER_ID OE_HEAD_ID,
  5552. RTI.OE_ORDER_LINE_ID OE_LINE_ID,
  5553. RTI.ITEM_ID ITEM_ID,
  5554. RTI.QUANTITY QTY,
  5555. RTI.PRIMARY_QUANTITY PRY_Q,
  5556. RTI.PO_UNIT_PRICE PO_UNIT_PRC,
  5557. RTI.SUBINVENTORY SUB,
  5558. RTI.TO_ORGANIZATION_ID TO_ORG_ID,
  5559. RTI.RECEIPT_SOURCE_CODE RCPT_SRC,
  5560. RTI.PARENT_TRANSACTION_ID PRNT_TRN_ID,
  5561. RTI.SHIPMENT_HEADER_ID SHP_HEAD_ID,
  5562. RTI.SHIPMENT_LINE_ID SHP_LINE_ID,
  5563. RTI.SOURCE_DOCUMENT_CODE SRC_DOC,
  5564. RTI.PROCESSING_REQUEST_ID REQUEST_ID
  5565. from
  5566. RCV_TRANSACTIONS_INTERFACE RTI,
  5567. OE_ORDER_LINES LIN
  5568. where
  5569. LIN.SOURCE_DOCUMENT_LINE_ID = RTI.REQUISITION_LINE_ID
  5570. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  5571. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5572. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5573. LIN.TOP_MODEL_LINE_ID,
  5574. LIN.ATO_LINE_ID,
  5575. LIN.LINK_TO_LINE_ID,
  5576. LIN.SERVICE_REFERENCE_LINE_ID);
  5577.  
  5578. begin
  5579. for rcv in rcv_trx_int
  5580. loop
  5581. utl_file.put_line(handle,'&sld'||n(rcv.INTF_TRNS_ID)||'&d'||n(rcv.PROC_MODE)||'&d'||n(rcv.PROC_STAT)||'&d');
  5582. utl_file.put_line(handle,n(rcv.TRNS_STAT)||'&d'||n(rcv.TRNS_DATE)||'&d'||n(rcv.TRNS_TYPE)||'&d');
  5583. utl_file.put_line(handle,n(rcv.DEST_TYPE)||'&d'||n(rcv.INSP_STAT)||'&d'||n(rcv.INSP_SRC)||'&d');
  5584. utl_file.put_line(handle,n(rcv.OE_HEAD_ID)||'&d'||n(rcv.OE_LINE_ID)||'&d'||n(rcv.ITEM_ID)||'&d');
  5585. utl_file.put_line(handle,n(rcv.QTY)||'&d'||n(rcv.PRY_Q)||'&d'||n(rcv.PO_UNIT_PRC)||'&d');
  5586. utl_file.put_line(handle,n(rcv.SUB)||'&d'||n(rcv.TO_ORG_ID)||'&d'||n(rcv.RCPT_SRC)||'&d');
  5587. utl_file.put_line(handle,n(rcv.PRNT_TRN_ID)||'&d'||n(rcv.SHP_HEAD_ID)||'&d'||n(rcv.SHP_LINE_ID)||'&d');
  5588. utl_file.put_line(handle,n(rcv.SRC_DOC)||'&d'||n(rcv.REQUEST_ID)||'&el');
  5589. end loop;
  5590. end;
  5591.  
  5592. UTL_FILE.PUT_LINE(handle,'&et');
  5593.  
  5594. end if; -- prt_rec
  5595.  
  5596. if UPPER(nvl('&prt_po','Y')) = 'Y' then
  5597.  
  5598. UTL_FILE.PUT_LINE(handle,'&f &f MTL_SUPPLY (SUP) &f');
  5599. 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 ');
  5600. 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 ');
  5601. UTL_FILE.PUT_LINE(handle,'DEST_TYPE &dh FROM_ORG &dh FROM_SUB &dh TO_ORG &dh TO_SUB &dh INTRNS_OWN_ORG &eh');
  5602.  
  5603. Declare
  5604. cursor mtl_supply is
  5605. select /* DROP SHIPMENTS */
  5606. SUP.SUPPLY_TYPE_CODE SUP_TYPE,
  5607. SUP.REQ_HEADER_ID REQ_HEAD_ID,
  5608. SUP.REQ_LINE_ID REQ_LINE_ID,
  5609. SUP.PO_HEADER_ID PO_HEAD_ID,
  5610. SUP.PO_RELEASE_ID PO_REL_ID,
  5611. SUP.PO_LINE_ID PO_LINE_ID,
  5612. SUP.PO_LINE_LOCATION_ID PO_LINE_LOC_ID,
  5613. SUP.PO_DISTRIBUTION_ID PO_DIST_ID,
  5614. SUP.SHIPMENT_HEADER_ID SHP_HEAD_ID,
  5615. SUP.SHIPMENT_LINE_ID SHP_LINE_ID,
  5616. SUP.RCV_TRANSACTION_ID RCV_TRANS_ID,
  5617. SUP.ITEM_ID ITEM_ID,
  5618. SUP.QUANTITY QTY,
  5619. to_char(SUP.RECEIPT_DATE,'DD-MON-RR_HH24:MI:SS') RECPT_DT,
  5620. to_char(SUP.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY_DT,
  5621. SUP.DESTINATION_TYPE_CODE DEST_TYPE,
  5622. SUP.FROM_ORGANIZATION_ID FROM_ORG,
  5623. SUP.FROM_SUBINVENTORY FROM_SUB,
  5624. SUP.TO_ORGANIZATION_ID TO_ORG,
  5625. SUP.TO_SUBINVENTORY TO_SUB,
  5626. SUP.INTRANSIT_OWNING_ORG_ID INTRNS_OWN_ORG
  5627. from
  5628. MTL_SUPPLY SUP,
  5629. OE_DROP_SHIP_SOURCES SRC,
  5630. OE_ORDER_LINES LIN
  5631. where
  5632. SRC.LINE_ID = LIN.LINE_ID
  5633. and SRC.PO_LINE_ID = SUP.PO_LINE_ID
  5634. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5635. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5636. LIN.TOP_MODEL_LINE_ID,
  5637. LIN.ATO_LINE_ID,
  5638. LIN.LINK_TO_LINE_ID,
  5639. LIN.SERVICE_REFERENCE_LINE_ID)
  5640. UNION ALL
  5641. select /* INTERNAL SALES ORDER */
  5642. SUP.SUPPLY_TYPE_CODE SUP_TYPE,
  5643. --SUP.SUPPLY_SOURCE_ID SUP_SRC,
  5644. SUP.REQ_HEADER_ID REQ_HEAD_ID,
  5645. SUP.REQ_LINE_ID REQ_LINE_ID,
  5646. SUP.PO_HEADER_ID PO_HEAD_ID,
  5647. SUP.PO_RELEASE_ID PO_REL_ID,
  5648. SUP.PO_LINE_ID PO_LINE_ID,
  5649. SUP.PO_LINE_LOCATION_ID PO_LINE_LOC_ID,
  5650. SUP.PO_DISTRIBUTION_ID PO_DIST_ID,
  5651. SUP.SHIPMENT_HEADER_ID SHP_HEAD_ID,
  5652. SUP.SHIPMENT_LINE_ID SHP_LINE_ID,
  5653. SUP.RCV_TRANSACTION_ID RCV_TRANS_ID,
  5654. SUP.ITEM_ID ITEM_ID,
  5655. SUP.QUANTITY QTY,
  5656. to_char(SUP.RECEIPT_DATE,'DD-MON-RR_HH24:MI:SS') RECPT_DT,
  5657. to_char(SUP.NEED_BY_DATE,'DD-MON-RR_HH24:MI:SS') NEED_BY_DT,
  5658. SUP.DESTINATION_TYPE_CODE DEST_TYPE,
  5659. SUP.FROM_ORGANIZATION_ID FROM_ORG,
  5660. SUP.FROM_SUBINVENTORY FROM_SUB,
  5661. SUP.TO_ORGANIZATION_ID TO_ORG,
  5662. SUP.TO_SUBINVENTORY TO_SUB,
  5663. SUP.INTRANSIT_OWNING_ORG_ID INTRNS_OWN_ORG
  5664. from
  5665. MTL_SUPPLY SUP,
  5666. OE_ORDER_LINES LIN
  5667. where
  5668. LIN.SOURCE_DOCUMENT_LINE_ID = SUP.REQ_LINE_ID
  5669. and LIN.SOURCE_DOCUMENT_TYPE_ID = 10
  5670. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5671. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5672. LIN.TOP_MODEL_LINE_ID,
  5673. LIN.ATO_LINE_ID,
  5674. LIN.LINK_TO_LINE_ID,
  5675. LIN.SERVICE_REFERENCE_LINE_ID);
  5676.  
  5677. begin
  5678. for mtl in mtl_supply
  5679. loop
  5680. utl_file.put_line(handle,'&sld'||n(mtl.SUP_TYPE)||'&d'||n(mtl.REQ_HEAD_ID)||'&d'||n(mtl.REQ_LINE_ID)||'&d');
  5681. utl_file.put_line(handle,n(mtl.PO_HEAD_ID)||'&d'||n(mtl.PO_REL_ID)||'&d'||n(mtl.PO_LINE_ID)||'&d');
  5682. utl_file.put_line(handle,n(mtl.PO_LINE_LOC_ID)||'&d'||n(mtl.PO_DIST_ID)||'&d'||n(mtl.SHP_HEAD_ID)||'&d');
  5683. utl_file.put_line(handle,n(mtl.SHP_LINE_ID)||'&d'||n(mtl.RCV_TRANS_ID)||'&d'||n(mtl.ITEM_ID)||'&d');
  5684. utl_file.put_line(handle,n(mtl.QTY)||'&d'||n(mtl.RECPT_DT)||'&d'||n(mtl.NEED_BY_DT)||'&d');
  5685. utl_file.put_line(handle,n(mtl.DEST_TYPE)||'&d'||n(mtl.FROM_ORG)||'&d'||n(mtl.FROM_SUB)||'&d');
  5686. utl_file.put_line(handle,n(mtl.TO_ORG)||'&d'||n(mtl.TO_SUB)||'&d'||n(mtl.INTRNS_OWN_ORG)||'&el');
  5687. end loop;
  5688. end;
  5689.  
  5690. UTL_FILE.PUT_LINE(handle,'&et');
  5691.  
  5692. end if; -- prt_po
  5693.  
  5694. if UPPER(nvl('&prt_inv','Y')) = 'Y' then
  5695.  
  5696. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_RESERVATIONS">MTL_RESERVATIONS (RES) </a> <a HREF="#MR">Column Definitions</a> &f');
  5697. 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 ');
  5698. 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 ');
  5699. 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 ');
  5700. UTL_FILE.PUT_LINE(handle,'SECONDARY RES_QTY &dh CALC_SEC RES_QTY &dh SECONDARY UOM &dh SECONDARY DET_QTY &eh');
  5701.  
  5702. Declare
  5703. cursor mtl_res is
  5704. select
  5705. RES.RESERVATION_ID RESERV_ID,
  5706. decode(RES.SHIP_READY_FLAG,
  5707. 1,'1=Released',
  5708. 2,'2=Submitted',
  5709. to_char(RES.SHIP_READY_FLAG)) SHIP_READY,
  5710. RES.DEMAND_SOURCE_HEADER_ID DS_HEAD_ID,
  5711. RES.DEMAND_SOURCE_LINE_ID DS_LINE_ID,
  5712. RES.DEMAND_SOURCE_DELIVERY DS_DELIV,
  5713. to_char(LIN.line_number) ||
  5714. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5715. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5716. decode(LIN.component_number, null, null,
  5717. decode(LIN.option_number, null, '.',null)||
  5718. '.'||to_char(LIN.component_number))||
  5719. decode(LIN.service_number,null,null,
  5720. decode(LIN.component_number, null, '.' , null) ||
  5721. decode(LIN.option_number, null, '.', null ) ||
  5722. '.'|| to_char(LIN.service_number)) LINE,
  5723. RES.INVENTORY_ITEM_ID ITEM_ID,
  5724. ITM.SEGMENT1 ITEM,
  5725. RES.PRIMARY_RESERVATION_QUANTITY RES_Q,
  5726. RES.DETAILED_QUANTITY DET_Q,
  5727. RES.PRIMARY_UOM_CODE UOM,
  5728. To_char(RES.REQUIREMENT_DATE,'DD-MON-RR_HH24:MI:SS') REQUIRD_D,
  5729. RES.DEMAND_SOURCE_TYPE_ID DS_TYPE,
  5730. RES.ORGANIZATION_ID WH_ID,
  5731. RES.SUBINVENTORY_CODE SUBINV,
  5732. RES.LOT_NUMBER LOT,
  5733. RES.REVISION REV,
  5734. RES.LOCATOR_ID LOC_ID,
  5735. RES.SERIAL_NUMBER SERIAL_NUM,
  5736. decode(RES.SUPPLY_SOURCE_TYPE_ID,
  5737. 5,'5=WIP DJ',
  5738. RES.SUPPLY_SOURCE_TYPE_ID) SS_TYPE_ID,
  5739. WIP.WIP_ENTITY_ID WIP_ID,
  5740. WIP.WIP_ENTITY_NAME JOB_NAME,
  5741. JOB.STATUS_TYPE_DISP JOB_STAT,
  5742. RES.SUPPLY_SOURCE_HEADER_ID SS_HEADER_ID,
  5743. RES.SUPPLY_SOURCE_LINE_DETAIL SS_SOURCE_LINE_DET,
  5744. RES.SUPPLY_SOURCE_LINE_ID SS_SOURCE_LINE,
  5745. res.secondary_reservation_quantity sec_res_q,
  5746. inv_convert.inv_um_convert(
  5747. res.inventory_item_id,
  5748. res.lot_number,
  5749. res.organization_id,
  5750. 5,
  5751. res.primary_reservation_quantity,
  5752. res.primary_uom_code,
  5753. res.secondary_uom_code,
  5754. null,
  5755. null) calc_sec_res_q,
  5756. res.secondary_uom_code uom2,
  5757. res.secondary_detailed_quantity sec_dtl_q
  5758. from
  5759. MTL_RESERVATIONS RES,
  5760. OE_ORDER_LINES LIN,
  5761. MTL_SYSTEM_ITEMS ITM,
  5762. WIP_ENTITIES WIP,
  5763. WIP_DISCRETE_JOBS_V JOB
  5764. where
  5765. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  5766. and RES.DEMAND_SOURCE_TYPE_ID in (2,8,9,21,22)
  5767. and RES.DEMAND_SOURCE_LINE_ID = LIN.LINE_ID(+)
  5768. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5769. LIN.TOP_MODEL_LINE_ID,
  5770. LIN.ATO_LINE_ID,
  5771. LIN.LINK_TO_LINE_ID,
  5772. LIN.REFERENCE_LINE_ID,
  5773. LIN.SERVICE_REFERENCE_LINE_ID)
  5774. and RES.ORGANIZATION_ID = ITM.ORGANIZATION_ID(+)
  5775. and RES.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  5776. and RES.SUPPLY_SOURCE_HEADER_ID = WIP.WIP_ENTITY_ID(+)
  5777. and WIP.WIP_ENTITY_ID = JOB.WIP_ENTITY_ID(+)
  5778. order by
  5779. NVL(LIN.TOP_MODEL_LINE_ID, LIN.LINE_ID),
  5780. NVL(LIN.ATO_LINE_ID, LIN.LINE_ID),
  5781. NVL(LIN.SORT_ORDER, '0000'),
  5782. NVL(LIN.LINK_TO_LINE_ID, LIN.LINE_ID),
  5783. NVL(LIN.SOURCE_DOCUMENT_LINE_ID, LIN.LINE_ID),
  5784. LIN.LINE_ID,
  5785. RES.RESERVATION_ID;
  5786.  
  5787. begin
  5788. for mtl in mtl_res
  5789. loop
  5790. utl_file.put_line(handle,'&sld'||n(mtl.RESERV_ID)||'&d'||n(mtl.SHIP_READY)||'&d'||n(mtl.DS_HEAD_ID)||'&d');
  5791. utl_file.put_line(handle,n(mtl.DS_LINE_ID)||'&d'||n(mtl.DS_DELIV)||'&d'||n(mtl.LINE)||'&d');
  5792. utl_file.put_line(handle,n(mtl.ITEM_ID)||'&d'||n(mtl.ITEM)||'&d'||n(mtl.RES_Q)||'&d');
  5793. utl_file.put_line(handle,n(mtl.DET_Q)||'&d'||n(mtl.UOM)||'&d'||n(mtl.REQUIRD_D)||'&d');
  5794. utl_file.put_line(handle,n(mtl.DS_TYPE)||'&d'||n(mtl.WH_ID)||'&d'||n(mtl.SUBINV)||'&d');
  5795. utl_file.put_line(handle,n(mtl.LOT)||'&d'||n(mtl.REV)||'&d'||n(mtl.LOC_ID)||'&d');
  5796. utl_file.put_line(handle,n(mtl.SERIAL_NUM)||'&d'||n(mtl.SS_TYPE_ID)||'&d'||n(mtl.WIP_ID)||'&d');
  5797. utl_file.put_line(handle,n(mtl.JOB_NAME)||'&d'||n(mtl.JOB_STAT)||'&d'||n(mtl.SS_HEADER_ID)||'&d');
  5798. utl_file.put_line(handle,n(mtl.SS_SOURCE_LINE_DET)||'&d'||n(mtl.SS_SOURCE_LINE)||'&d');
  5799. utl_file.put_line(handle,n(mtl.sec_res_q)||'&d'||n(mtl.calc_sec_res_q)||'&d');
  5800. utl_file.put_line(handle,n(mtl.uom2)||'&d'||n(mtl.sec_dtl_q)||'&el');
  5801. end loop;
  5802. end;
  5803.  
  5804. UTL_FILE.PUT_LINE(handle,'&et');
  5805.  
  5806. end if; -- prt_inv
  5807.  
  5808. if UPPER(nvl('&prt_wip','Y')) = 'Y' then
  5809.  
  5810. UTL_FILE.PUT_LINE(handle,'&f &f WIP_JOB_SCHEDULE_INTERFACE (WJS) &f');
  5811. 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 ');
  5812. UTL_FILE.PUT_LINE(handle,'STAT &dh ORG &dh LOAD &dh ITEM_ID &dh WIP_SUP_TY &dh START_QTY &eh');
  5813.  
  5814. Declare
  5815. cursor wip_sch_int is
  5816. select
  5817. WJS.INTERFACE_ID INTERF_ID,
  5818. WJS.SOURCE_LINE_ID SRC_LINE_ID,
  5819. to_char(LIN.line_number) ||
  5820. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5821. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5822. decode(LIN.component_number, null, null,
  5823. decode(LIN.option_number, null, '.',null)||
  5824. '.'||to_char(LIN.component_number))||
  5825. decode(LIN.service_number,null,null,
  5826. decode(LIN.component_number, null, '.' , null) ||
  5827. decode(LIN.option_number, null, '.', null ) ||
  5828. '.'|| to_char(LIN.service_number)) LINE,
  5829. WJS.REQUEST_ID REQUEST_ID,
  5830. WJS.GROUP_ID GROUP_ID,
  5831. WJS.SOURCE_CODE SRC_CODE,
  5832. WJS.PROCESS_PHASE PHS,
  5833. WJS.STATUS_TYPE STAT_TY,
  5834. WJS.PROCESS_STATUS STAT,
  5835. WJS.ORGANIZATION_CODE ORG,
  5836. WJS.LOAD_TYPE LOAD,
  5837. WJS.PRIMARY_ITEM_ID ITEM_ID,
  5838. WJS.WIP_SUPPLY_TYPE WIP_SUP_TY,
  5839. WJS.START_QUANTITY START_QTY
  5840. from WIP_JOB_SCHEDULE_INTERFACE WJS,
  5841. OE_ORDER_LINES_ALL LIN
  5842. where WJS.SOURCE_LINE_ID = LIN.LINE_ID
  5843. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5844. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5845. LIN.TOP_MODEL_LINE_ID,
  5846. LIN.ATO_LINE_ID,
  5847. LIN.LINK_TO_LINE_ID,
  5848. LIN.REFERENCE_LINE_ID,
  5849. LIN.SERVICE_REFERENCE_LINE_ID);
  5850.  
  5851. begin
  5852. for wip in wip_sch_int
  5853. loop
  5854. utl_file.put_line(handle,'&sld'||n(wip.INTERF_ID)||'&d'||n(wip.SRC_LINE_ID)||'&d'||n(wip.LINE)||'&d');
  5855. utl_file.put_line(handle,n(wip.REQUEST_ID)||'&d'||n(wip.GROUP_ID)||'&d'||n(wip.SRC_CODE)||'&d');
  5856. utl_file.put_line(handle,n(wip.PHS)||'&d'||n(wip.STAT_TY)||'&d'||n(wip.STAT)||'&d');
  5857. utl_file.put_line(handle,n(wip.ORG)||'&d'||n(wip.LOAD)||'&d'||n(wip.ITEM_ID)||'&d');
  5858. utl_file.put_line(handle,n(wip.WIP_SUP_TY)||'&d'||n(wip.START_QTY)||'&el');
  5859. end loop;
  5860. end;
  5861.  
  5862. UTL_FILE.PUT_LINE(handle,'&et');
  5863.  
  5864. UTL_FILE.PUT_LINE(handle,'&f &f WIP_INTERFACE_ERRORS (WIE) &f');
  5865. UTL_FILE.PUT_LINE(handle,'&std &sh INTERF_ID &dh LINE &dh ERROR_TYPE &dh ERROR &eh');
  5866.  
  5867. Declare
  5868. cursor wip_int_err is
  5869. select
  5870. WIE.INTERFACE_ID INTERF_ID,
  5871. to_char(LIN.line_number) ||
  5872. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5873. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5874. decode(LIN.component_number, null, null,
  5875. decode(LIN.option_number, null, '.',null)||
  5876. '.'||to_char(LIN.component_number))||
  5877. decode(LIN.service_number,null,null,
  5878. decode(LIN.component_number, null, '.' , null) ||
  5879. decode(LIN.option_number, null, '.', null ) ||
  5880. '.'|| to_char(LIN.service_number)) LINE,
  5881. WIE.ERROR_TYPE ERROR_TYPE,
  5882. WIE.ERROR ERROR_WIE
  5883. from WIP_INTERFACE_ERRORS WIE,
  5884. WIP_JOB_SCHEDULE_INTERFACE WJS,
  5885. OE_ORDER_LINES_ALL LIN
  5886. where WIE.INTERFACE_ID = WJS.INTERFACE_ID
  5887. and WJS.SOURCE_LINE_ID = LIN.LINE_ID
  5888. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5889. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5890. LIN.TOP_MODEL_LINE_ID,
  5891. LIN.ATO_LINE_ID,
  5892. LIN.LINK_TO_LINE_ID,
  5893. LIN.REFERENCE_LINE_ID,
  5894. LIN.SERVICE_REFERENCE_LINE_ID);
  5895.  
  5896. begin
  5897. for wip in wip_int_err
  5898. loop
  5899. utl_file.put_line(handle,'&sld'||n(wip.INTERF_ID)||'&d'||n(wip.LINE)||'&d');
  5900. utl_file.put_line(handle,n(wip.ERROR_TYPE)||'&d'||n(wip.ERROR_WIE)||'&el');
  5901. end loop;
  5902. end;
  5903. UTL_FILE.PUT_LINE(handle,'&et');
  5904.  
  5905. UTL_FILE.PUT_LINE(handle,'&f &f WIP_DISCRETE_JOBS (WIP) &f');
  5906. 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 ');
  5907. 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 ');
  5908. UTL_FILE.PUT_LINE(handle,'CLSD_DT &dh STRT_Q &dh COMP_Q &dh SCRP_Q &dh NET_Q &dh LINE_ID &eh');
  5909.  
  5910. Declare
  5911. cursor wip_d_jobs is
  5912. select
  5913. WIP.WIP_ENTITY_ID WIP_ENT_ID,
  5914. WIV.WIP_ENTITY_NAME JOB_NAME,
  5915. WIP.ORGANIZATION_ID WH_ID,
  5916. WIP.REQUEST_ID REQUEST_ID,
  5917. WIP.SOURCE_LINE_ID LINE_ID,
  5918. to_char(LIN.line_number) ||
  5919. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5920. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5921. decode(LIN.component_number, null, null,
  5922. decode(LIN.option_number, null, '.',null)||
  5923. '.'||to_char(LIN.component_number))||
  5924. decode(LIN.service_number,null,null,
  5925. decode(LIN.component_number, null, '.' , null) ||
  5926. decode(LIN.option_number, null, '.', null ) ||
  5927. '.'|| to_char(LIN.service_number)) LINE,
  5928. WIV.STATUS_TYPE_DISP STATUS,
  5929. WIP.PRIMARY_ITEM_ID PRY_ITEM_ID,
  5930. ITM.SEGMENT1 ITEM,
  5931. WIP.FIRM_PLANNED_FLAG FIRM,
  5932. WIP.JOB_TYPE JOB_TY,
  5933. WIV.WIP_SUPPLY_TYPE_DISP WIP_SUP_TYPE,
  5934. WIP.SCHEDULED_START_DATE SCH_STRT,
  5935. WIP.SCHEDULED_COMPLETION_DATE SCH_CMPL,
  5936. WIP.DATE_RELEASED RLS_DATE,
  5937. WIP.DUE_DATE DUE_DATE,
  5938. WIP.DATE_COMPLETED COMPL_DT,
  5939. WIP.DATE_CLOSED CLSD_DT,
  5940. WIP.START_QUANTITY STRT_Q,
  5941. WIP.QUANTITY_COMPLETED COMP_Q,
  5942. WIP.QUANTITY_SCRAPPED SCRP_Q,
  5943. WIP.NET_QUANTITY NET_Q,
  5944. WIP.LINE_ID WIP_LINE_ID
  5945. from WIP_DISCRETE_JOBS WIP,
  5946. WIP_DISCRETE_JOBS_V WIV,
  5947. MTL_SYSTEM_ITEMS_B ITM,
  5948. OE_ORDER_LINES_ALL LIN
  5949. where WIP.WIP_ENTITY_ID = WIV.WIP_ENTITY_ID
  5950. and WIP.PRIMARY_ITEM_ID = ITM.INVENTORY_ITEM_ID
  5951. and WIP.ORGANIZATION_ID = ITM.ORGANIZATION_ID
  5952. and WIP.SOURCE_LINE_ID = LIN.LINE_ID
  5953. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  5954. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  5955. LIN.TOP_MODEL_LINE_ID,
  5956. LIN.ATO_LINE_ID,
  5957. LIN.LINK_TO_LINE_ID,
  5958. LIN.REFERENCE_LINE_ID,
  5959. LIN.SERVICE_REFERENCE_LINE_ID);
  5960.  
  5961. begin
  5962. for wip in wip_d_jobs
  5963. loop
  5964. utl_file.put_line(handle,'&sld'||n(wip.WIP_ENT_ID)||'&d'||n(wip.JOB_NAME)||'&d');
  5965. utl_file.put_line(handle,n(wip.WH_ID)||'&d'||n(wip.REQUEST_ID)||'&d');
  5966. utl_file.put_line(handle,n(wip.LINE_ID)||'&d'||n(wip.LINE)||'&d');
  5967. utl_file.put_line(handle,n(wip.STATUS)||'&d'||n(wip.PRY_ITEM_ID)||'&d');
  5968. utl_file.put_line(handle,n(wip.ITEM)||'&d'||n(wip.FIRM)||'&d');
  5969. utl_file.put_line(handle,n(wip.JOB_TY)||'&d'||n(wip.WIP_SUP_TYPE)||'&d');
  5970. utl_file.put_line(handle,n(wip.SCH_STRT)||'&d'||n(wip.SCH_CMPL)||'&d');
  5971. utl_file.put_line(handle,n(wip.RLS_DATE)||'&d'||n(wip.DUE_DATE)||'&d');
  5972. utl_file.put_line(handle,n(wip.COMPL_DT)||'&d'||n(wip.CLSD_DT)||'&d');
  5973. utl_file.put_line(handle,n(wip.STRT_Q)||'&d'||n(wip.COMP_Q)||'&d');
  5974. utl_file.put_line(handle,n(wip.SCRP_Q)||'&d'||n(wip.NET_Q)||'&d');
  5975. utl_file.put_line(handle,n(wip.WIP_LINE_ID)||'&el');
  5976. end loop;
  5977. end;
  5978.  
  5979. UTL_FILE.PUT_LINE(handle,'&et');
  5980.  
  5981. UTL_FILE.PUT_LINE(handle,'&f &f DISCRETE JOB TRANSACTIONS (DJT) &f');
  5982. 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');
  5983.  
  5984. Declare
  5985. cursor wip_job_trx is
  5986. select
  5987. WIE.wip_entity_name JOB_NAME,
  5988. to_char(LIN.line_number) ||
  5989. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  5990. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  5991. decode(LIN.component_number, null, null,
  5992. decode(LIN.option_number, null, '.',null)||
  5993. '.'||to_char(LIN.component_number))||
  5994. decode(LIN.service_number,null,null,
  5995. decode(LIN.component_number, null, '.' , null) ||
  5996. decode(LIN.option_number, null, '.', null ) ||
  5997. '.'|| to_char(LIN.service_number)) LINE,
  5998. TRN.inventory_item_id ITEM_ID,
  5999. ITM.segment1 ITEM,
  6000. TRN.TRANSACTION_QUANTITY QTY,
  6001. TRN.TRANSACTION_ID MTL_TRNS_ID,
  6002. decode(TRN.TRANSACTION_TYPE_ID,
  6003. 35, 'WIP Component Issue',
  6004. 44, 'WIP Assy Completion',
  6005. TRN.TRANSACTION_TYPE_ID) TRANS_TYPE,
  6006. TRN.OPERATION_SEQ_NUM OP_SEQ,
  6007. UNT.serial_number SERIAL
  6008. from wip_discrete_jobs WIP,
  6009. OE_ORDER_LINES_ALL LIN,
  6010. wip_entities WIE,
  6011. mtl_material_transactions TRN,
  6012. mtl_system_items_b ITM,
  6013. mtl_unit_transactions UNT
  6014. where WIE.wip_entity_id = WIP.wip_entity_id
  6015. and LIN.LINE_ID = WIP.source_line_id
  6016. and TRN.transaction_source_id = WIP.wip_entity_id
  6017. and TRN.transaction_source_type_id = 5
  6018. and TRN.inventory_item_id = ITM.inventory_item_id
  6019. and TRN.organization_id = ITM.organization_id
  6020. and TRN.transaction_id = UNT.transaction_id(+)
  6021. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  6022. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6023. LIN.TOP_MODEL_LINE_ID,
  6024. LIN.ATO_LINE_ID,
  6025. LIN.LINK_TO_LINE_ID,
  6026. LIN.REFERENCE_LINE_ID,
  6027. LIN.SERVICE_REFERENCE_LINE_ID);
  6028.  
  6029. begin
  6030. for wip in wip_job_trx
  6031. loop
  6032. utl_file.put_line(handle,'&sld'||n(wip.JOB_NAME)||'&d'||n(wip.LINE)||'&d');
  6033. utl_file.put_line(handle,n(wip.ITEM_ID)||'&d'||n(wip.ITEM)||'&d');
  6034. utl_file.put_line(handle,n(wip.QTY)||'&d'||n(wip.MTL_TRNS_ID)||'&d');
  6035. utl_file.put_line(handle,n(wip.TRANS_TYPE)||'&d'||n(wip.OP_SEQ)||'&d');
  6036. utl_file.put_line(handle,n(wip.SERIAL)||'&el');
  6037. end loop;
  6038. end;
  6039.  
  6040. UTL_FILE.PUT_LINE(handle,'&et');
  6041.  
  6042. end if; -- prt_wip
  6043.  
  6044. end if; -- :v_head_only
  6045.  
  6046. UTL_FILE.FCLOSE(handle);
  6047. end;
  6048. /
  6049.  
  6050. DECLARE
  6051. handle UTL_FILE.FILE_TYPE;
  6052. dirname varchar2(1000);
  6053. text varchar2(1000);
  6054.  
  6055. function n(v varchar2) return varchar2 is
  6056. begin
  6057. if v is null then
  6058. return '&sp';
  6059. else
  6060. return v;
  6061. end if;
  6062. end n;
  6063.  
  6064. begin
  6065. -- Append to output file
  6066. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  6067. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  6068.  
  6069. If :v_head_only = 'N' then
  6070.  
  6071. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_TRIPS"> WSH_TRIPS (TRP) </a> &f');
  6072. 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');
  6073.  
  6074. Declare
  6075. cursor w_trips is
  6076. select distinct
  6077. TRP.TRIP_ID TRIP_ID,
  6078. TRP.NAME NAME,
  6079. TRP.PLANNED_FLAG PLND,
  6080. TRP.STATUS_CODE STATUS_CODE,
  6081. TRP.VEHICLE_NUMBER VEH_NUM,
  6082. TRP.CARRIER_ID CARR_ID,
  6083. TRP.SHIP_METHOD_CODE SHIP_METH,
  6084. TRP.ROUTE_ID ROUTE_ID,
  6085. TRP.VEHICLE_ORGANIZATION_ID VEH_ORG_ID
  6086. FROM
  6087. WSH_TRIPS TRP
  6088. where
  6089. TRIP_ID in
  6090. (select distinct(STP.TRIP_ID)
  6091. FROM
  6092. OE_ORDER_LINES LIN,
  6093. WSH_DELIVERY_DETAILS DET,
  6094. WSH_NEW_DELIVERIES DEL,
  6095. WSH_DELIVERY_LEGS LEG,
  6096. WSH_TRIP_STOPS STP,
  6097. WSH_DELIVERY_ASSIGNMENTS ASG
  6098. WHERE
  6099. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  6100. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6101. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6102. STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  6103. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  6104. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6105. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6106. LIN.TOP_MODEL_LINE_ID,
  6107. LIN.ATO_LINE_ID,
  6108. LIN.LINK_TO_LINE_ID,
  6109. LIN.REFERENCE_LINE_ID,
  6110. LIN.SERVICE_REFERENCE_LINE_ID)
  6111. )
  6112. order by TRP.TRIP_ID;
  6113.  
  6114. type per_record_typ is RECORD
  6115. (flag varchar2(1),
  6116. descrip varchar2(200));
  6117. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  6118. msg msg_tab;
  6119.  
  6120. begin
  6121. :r_error := 0;
  6122.  
  6123. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6124. for i in 1..30
  6125. loop
  6126. msg(i).flag := '0';
  6127. msg(i).descrip := '';
  6128. end loop;
  6129. msg(1).descrip := ' 1. XX.';
  6130. end if;
  6131.  
  6132. for tt in w_trips
  6133. loop
  6134. :r_flag := '';
  6135.  
  6136. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6137. null;
  6138. end if;
  6139.  
  6140. -- Print line to Output file
  6141. utl_file.put_line(handle,'&sld &b <a HREF="#WTERR">'||n(:r_flag)||'</a> &eb &d');
  6142. utl_file.put_line(handle,'<a NAME="T'||tt.TRIP_ID||'">'||n(tt.TRIP_ID)||'</a>'||'&d'||n(tt.NAME)||'&d');
  6143. utl_file.put_line(handle,n(tt.PLND)||'&d'||n(tt.STATUS_CODE)||'&d'||n(tt.VEH_NUM)||'&d'||n(tt.CARR_ID)||'&d');
  6144. utl_file.put_line(handle,n(tt.SHIP_METH)||'&d'||n(tt.ROUTE_ID)||'&d'||n(tt.VEH_ORG_ID)||'&el');
  6145.  
  6146. if :r_flag is not null then
  6147. :r_error := 1;
  6148. end if;
  6149. end loop;
  6150. utl_file.put_line(handle,'&et');
  6151.  
  6152. if :r_error = 1 then
  6153. utl_file.put_line(handle,'&f &b <a NAME="WTERR">Warning List:</a> &eb &f');
  6154. for i in 1..30
  6155. loop
  6156. if msg(i).flag = '1' then
  6157. utl_file.put_line(handle,msg(i).descrip||'&f');
  6158. end if;
  6159. end loop;
  6160. end if;
  6161.  
  6162. end;
  6163.  
  6164. UTL_FILE.PUT_LINE(handle,'&et');
  6165.  
  6166. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_TRIP_STOPS">WSH_TRIP_STOPS (STP) </a> &f ');
  6167. 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 ');
  6168. UTL_FILE.PUT_LINE(handle,'PEND_INTERF &dh PLN_DEP_DATE &dh ACT_DEP_DATE &eh');
  6169.  
  6170. Declare cursor w_trip_stops is
  6171. select distinct
  6172. STP.STOP_ID STOP_ID,
  6173. STP1.STOP_DESCRIPTION STOP_DESCRIPTION,
  6174. STP.TRIP_ID TRIP_ID,
  6175. TRP.NAME TRIP_NAME,
  6176. STP.STOP_LOCATION_ID STOP_LOC_ID,
  6177. STP.STATUS_CODE STATUS,
  6178. STP.LOCK_STOP_ID LOCK_ST_ID,
  6179. STP.PENDING_INTERFACE_FLAG PEND_INTERF,
  6180. to_char(STP.PLANNED_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') PLN_DEP_DATE,
  6181. to_char(STP.ACTUAL_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') ACT_DEP_DATE
  6182. FROM
  6183. WSH_TRIP_STOPS STP,
  6184. WSH_SRS_TRIP_STOPS_V STP1,
  6185. WSH_TRIPS TRP
  6186. where
  6187. STP.TRIP_ID = TRP.TRIP_ID(+) AND
  6188. STP1.STOP_ID = STP.STOP_ID AND
  6189. STP.STOP_ID in
  6190. (
  6191. (select distinct(LEG.PICK_UP_STOP_ID)
  6192. from
  6193. OE_ORDER_LINES LIN,
  6194. WSH_DELIVERY_DETAILS DET,
  6195. WSH_NEW_DELIVERIES DEL,
  6196. WSH_DELIVERY_LEGS LEG,
  6197. WSH_DELIVERY_ASSIGNMENTS ASG
  6198. where
  6199. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  6200. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6201. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6202. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  6203. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6204. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6205. LIN.TOP_MODEL_LINE_ID,
  6206. LIN.ATO_LINE_ID,
  6207. LIN.LINK_TO_LINE_ID,
  6208. LIN.REFERENCE_LINE_ID,
  6209. LIN.SERVICE_REFERENCE_LINE_ID)
  6210. )
  6211. UNION
  6212. (select distinct(LEG.DROP_OFF_STOP_ID)
  6213. from
  6214. OE_ORDER_LINES LIN,
  6215. WSH_DELIVERY_DETAILS DET,
  6216. WSH_NEW_DELIVERIES DEL,
  6217. WSH_DELIVERY_LEGS LEG,
  6218. WSH_DELIVERY_ASSIGNMENTS ASG
  6219. where
  6220. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  6221. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6222. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6223. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  6224. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6225. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6226. LIN.TOP_MODEL_LINE_ID,
  6227. LIN.ATO_LINE_ID,
  6228. LIN.LINK_TO_LINE_ID,
  6229. LIN.REFERENCE_LINE_ID,
  6230. LIN.SERVICE_REFERENCE_LINE_ID)
  6231. )
  6232. );
  6233.  
  6234. type per_record_typ is RECORD
  6235. (flag varchar2(1),
  6236. descrip varchar2(200));
  6237. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  6238. msg msg_tab;
  6239.  
  6240. begin
  6241. :r_error := 0;
  6242. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6243. for i in 1..30
  6244. loop
  6245. msg(i).flag := '0';
  6246. msg(i).descrip := '';
  6247. end loop;
  6248. msg(1).descrip := ' 1. XX.';
  6249. end if;
  6250.  
  6251. for ts in w_trip_stops
  6252. loop
  6253. :r_flag := '';
  6254.  
  6255. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6256. null;
  6257. end if;
  6258.  
  6259. -- Print line to Output file
  6260. utl_file.put_line(handle,'&sld &b <a HREF="#WTSERR">'||n(:r_flag)||'</a> &eb &d');
  6261. utl_file.put_line(handle,'<a NAME="TS'||ts.STOP_ID||'">'||n(ts.STOP_ID)||'</a>'||'&d'||n(ts.STOP_DESCRIPTION)||'&d');
  6262. utl_file.put_line(handle,'<a HREF="#T'||ts.TRIP_ID||'">'||n(ts.TRIP_ID)||'</a>'||'&d');
  6263. 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');
  6264. utl_file.put_line(handle,n(ts.STATUS)||'&d'||n(ts.LOCK_ST_ID)||'&d');
  6265. utl_file.put_line(handle,n(ts.PEND_INTERF)||'&d'||n(ts.PLN_DEP_DATE)||'&d'||n(ts.ACT_DEP_DATE)||'&el');
  6266.  
  6267. if :r_flag is not null then
  6268. :r_error := 1;
  6269. end if;
  6270. end loop;
  6271. utl_file.put_line(handle,'&et');
  6272.  
  6273. if :r_error = 1 then
  6274. utl_file.put_line(handle,'&f &b <a NAME="WTSERR">Warning List:</a> &eb &f');
  6275. for i in 1..30
  6276. loop
  6277. if msg(i).flag = '1' then
  6278. utl_file.put_line(handle,msg(i).descrip||'&f');
  6279. end if;
  6280. end loop;
  6281. end if;
  6282.  
  6283. end;
  6284.  
  6285. UTL_FILE.PUT_LINE(handle,'&et ');
  6286.  
  6287. UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_LEGS (LEG) &f');
  6288. UTL_FILE.PUT_LINE(handle,'&std &sh LEG_ID &dh SEQ_NUM &dh DELIVERY_ID &dh PICKUP_STOP_ID &dh DROPOFF_STOP_ID &eh');
  6289.  
  6290. Declare
  6291. cursor w_del_leg is
  6292. select distinct
  6293. LEG.DELIVERY_LEG_ID LEG_ID,
  6294. LEG.SEQUENCE_NUMBER SEQ_NUM,
  6295. LEG.DELIVERY_ID DELIVERY_ID,
  6296. LEG.PICK_UP_STOP_ID PICKUP_STOP_ID,
  6297. LEG.DROP_OFF_STOP_ID DROPOFF_STOP_ID
  6298. --LEG.LOAD_TENDER_STATUS LOAD_TENDER_STAT
  6299. --ENABLE_TIMESTAMP ,to_char(LEG.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  6300. --ENABLE_TIMESTAMP ,to_char(LEG.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  6301. --ENABLE_TIMESTAMP ,LEG.REQUEST_ID REQUEST_ID
  6302. FROM
  6303. OE_ORDER_LINES LIN,
  6304. WSH_DELIVERY_DETAILS DET,
  6305. WSH_NEW_DELIVERIES DEL,
  6306. WSH_DELIVERY_LEGS LEG,
  6307. WSH_TRIP_STOPS STP,
  6308. WSH_DELIVERY_ASSIGNMENTS ASG,
  6309. WSH_TRIPS TRP
  6310. where
  6311. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  6312. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6313. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6314. STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
  6315. STP.TRIP_ID = TRP.TRIP_ID AND
  6316. LEG.DELIVERY_ID(+) = DEL.DELIVERY_ID AND
  6317. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6318. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6319. LIN.TOP_MODEL_LINE_ID,
  6320. LIN.ATO_LINE_ID,
  6321. LIN.LINK_TO_LINE_ID,
  6322. LIN.REFERENCE_LINE_ID,
  6323. LIN.SERVICE_REFERENCE_LINE_ID)
  6324. order by
  6325. LEG.DELIVERY_LEG_ID;
  6326.  
  6327. begin
  6328. for wdl in w_del_leg
  6329. loop
  6330. utl_file.put_line(handle,'&sld'||n(wdl.LEG_ID)||'&d'||n(wdl.SEQ_NUM)||'&d');
  6331. utl_file.put_line(handle,n(wdl.DELIVERY_ID)||'&d'||n(wdl.PICKUP_STOP_ID)||'&d');
  6332. utl_file.put_line(handle,n(wdl.DROPOFF_STOP_ID)||'&el');
  6333. end loop;
  6334. end;
  6335.  
  6336. UTL_FILE.PUT_LINE(handle,'&et');
  6337.  
  6338. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_NEW_DELIVERIES"> WSH_NEW_DELIVERIES (DEL) </a> &f');
  6339. 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');
  6340. UTL_FILE.PUT_LINE(handle,'DROPOFF_DT &dh DROPOFF_LOC &dh SHIP_METHOD_CODE &dh CONFIRM_DATE &eh');
  6341.  
  6342. Declare cursor w_deliveries is
  6343. select distinct
  6344. DEL.DELIVERY_ID DELIVERY_ID,
  6345. DEL.NAME DEL_NAME,
  6346. DEL.STATUS_CODE STATUS_CODE,
  6347. DEL.WAYBILL WAYBILL,
  6348. DEL.PLANNED_FLAG PLND,
  6349. to_char(DEL.INITIAL_PICKUP_DATE,'DD-MON-RR_HH24:MI:SS') PICKUP_DT,
  6350. DEL.INITIAL_PICKUP_LOCATION_ID PICKUP_LOC,
  6351. to_char(DEL.ULTIMATE_DROPOFF_DATE,'DD-MON-RR_HH24:MI:SS') DROPOFF_DT,
  6352. DEL.ULTIMATE_DROPOFF_LOCATION_ID DROPOFF_LOC,
  6353. DEL.SHIP_METHOD_CODE SHP_METH,
  6354. to_char(DEL.CONFIRM_DATE,'DD-MON-RR_HH24:MI:SS') CONF_DATE
  6355. --DEL.BOOKING_NUMBER BOOKING_NUM,
  6356. --DEL.ACCEPTANCE_FLAG ACCEPTED
  6357. --ENABLE_TIMESTAMP ,to_char(DEL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  6358. --ENABLE_TIMESTAMP ,to_char(DEL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  6359. --ENABLE_TIMESTAMP ,DEL.REQUEST_ID REQUEST_ID
  6360. FROM
  6361. OE_ORDER_LINES LIN,
  6362. WSH_DELIVERY_DETAILS DET,
  6363. WSH_NEW_DELIVERIES DEL,
  6364. WSH_DELIVERY_ASSIGNMENTS ASG
  6365. where
  6366. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  6367. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6368. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6369. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6370. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6371. LIN.TOP_MODEL_LINE_ID,
  6372. LIN.ATO_LINE_ID,
  6373. LIN.LINK_TO_LINE_ID,
  6374. LIN.REFERENCE_LINE_ID,
  6375. LIN.SERVICE_REFERENCE_LINE_ID)
  6376. order by Del.DELIVERY_ID;
  6377. type per_record_typ is RECORD
  6378. (flag varchar2(1),
  6379. descrip varchar2(200));
  6380. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  6381. msg msg_tab;
  6382.  
  6383. function n(v varchar2) return varchar2 is
  6384. begin
  6385. if v is null then
  6386. return '&sp';
  6387. else
  6388. return v;
  6389. end if;
  6390. end n;
  6391.  
  6392. begin
  6393. :r_error := 0;
  6394. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6395. for i in 1..30
  6396. loop
  6397. msg(i).flag := '0';
  6398. msg(i).descrip := '';
  6399. end loop;
  6400. msg(1).descrip := ' 1. XX.';
  6401. end if;
  6402.  
  6403. for nd in w_deliveries
  6404. loop
  6405. :r_flag := '';
  6406.  
  6407. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6408. null;
  6409. end if; -- do_analysis
  6410.  
  6411. -- Print line to Output file
  6412. utl_file.put_line(handle,'&sld &b <a HREF="#WNDERR">'||n(:r_flag)||'</a> &eb &d');
  6413. utl_file.put_line(handle,'<a NAME="D'||nd.DELIVERY_ID||'">'||n(nd.DELIVERY_ID)||'</a>'||'&d'||n(nd.DEL_NAME)||'&d');
  6414. utl_file.put_line(handle,n(nd.STATUS_CODE)||'&d'||n(nd.WAYBILL)||'&d'||n(nd.PLND)||'&d'||n(nd.PICKUP_DT)||'&d');
  6415. utl_file.put_line(handle,'<a HREF="#PU'||nd.PICKUP_LOC||'">'||n(nd.PICKUP_LOC)||'</a>'||'&d');
  6416. utl_file.put_line(handle,n(nd.DROPOFF_DT)||'&d'||n(nd.DROPOFF_LOC)||'&d');
  6417. utl_file.put_line(handle,n(nd.SHP_METH)||'&d'||n(nd.CONF_DATE)||'&el');
  6418.  
  6419. if :r_flag is not null then
  6420. :r_error := 1;
  6421. end if;
  6422. end loop;
  6423. utl_file.put_line(handle,'&et');
  6424.  
  6425. if :r_error = 1 then
  6426. utl_file.put_line(handle,'&f &b <a NAME="WNDERR">Warning List:</a> &eb &f');
  6427. for i in 1..30
  6428. loop
  6429. if msg(i).flag = '1' then
  6430. utl_file.put_line(handle,msg(i).descrip||'&f');
  6431. end if;
  6432. end loop;
  6433. end if;
  6434.  
  6435. end;
  6436.  
  6437. UTL_FILE.PUT_LINE(handle,'&et ');
  6438.  
  6439. UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_ASSIGNMENTS (ASG) &f ');
  6440. 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 ');
  6441.  
  6442. Declare
  6443. cursor w_del_asig is
  6444. select distinct
  6445. ASG.DELIVERY_ASSIGNMENT_ID DEL_ASGN_ID,
  6446. ASG.DELIVERY_ID DELIVERY_ID,
  6447. ASG.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
  6448. ASG.PARENT_DELIVERY_ID PAR_DEL_ID,
  6449. ASG.PARENT_DELIVERY_DETAIL_ID PAR_DETAIL_ID
  6450. -- ASG.ACTIVE_FLAG ACTIVE
  6451. --ENABLE_TIMESTAMP ,to_char(ASG.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  6452. --ENABLE_TIMESTAMP ,to_char(ASG.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  6453. --ENABLE_TIMESTAMP ,ASG.REQUEST_ID REQUEST_ID
  6454. FROM
  6455. OE_ORDER_LINES LIN,
  6456. WSH_DELIVERY_DETAILS DET,
  6457. WSH_DELIVERY_ASSIGNMENTS ASG
  6458. where
  6459. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6460. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6461. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6462. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6463. LIN.TOP_MODEL_LINE_ID,
  6464. LIN.ATO_LINE_ID,
  6465. LIN.LINK_TO_LINE_ID,
  6466. LIN.REFERENCE_LINE_ID,
  6467. LIN.SERVICE_REFERENCE_LINE_ID);
  6468.  
  6469. begin
  6470. for wda in w_del_asig
  6471. loop
  6472. utl_file.put_line(handle,'&sld'||n(wda.DEL_ASGN_ID)||'&d'||n(wda.DELIVERY_ID)||'&d');
  6473. utl_file.put_line(handle,n(wda.DEL_DETAIL_ID)||'&d'||n(wda.PAR_DEL_ID)||'&d');
  6474. utl_file.put_line(handle,n(wda.PAR_DETAIL_ID)||'&el');
  6475. end loop;
  6476. end;
  6477.  
  6478. UTL_FILE.PUT_LINE(handle,'&et');
  6479.  
  6480. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="ORGANIZATIONS"> ORGANIZATIONS (ORG) </a> &f');
  6481. UTL_FILE.PUT_LINE(handle,'&std &sh ORG_ID &dh ORGANIZATION CODE &dh WMS_ENABLED &dh OPM_ENABLED &dh NEGATIVE BAL_ALLOW ');
  6482. 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 ');
  6483. UTL_FILE.PUT_LINE(handle,'&dh COST CUT_DATE &dh EAM ENABLED &dh ENCUMBR REVERSAL &eh ');
  6484.  
  6485. Declare cursor l_orgs is
  6486. SELECT distinct
  6487. mp.organization_id org_id,
  6488. mp.organization_code org,
  6489. decode(mp.primary_cost_method,
  6490. 1, 'Standard',
  6491. 2, 'Average',
  6492. 5, 'FIFO',
  6493. 6, 'LIFO') PCM,
  6494. decode(mp.wms_enabled_flag,
  6495. 'Y', 'Yes',
  6496. 'N', 'No') WMS,
  6497. decode(mp.NEGATIVE_INV_RECEIPT_CODE,
  6498. 1, 'Yes',
  6499. 2, 'No') neg_bal,
  6500. mp.cost_organization_id c_org,
  6501. mp.master_organization_id m_org,
  6502. mp.default_cost_group_id dcg,
  6503. decode(mp.project_reference_enabled,
  6504. 1, 'Yes',
  6505. 2, 'No') PRE,
  6506. to_char(mp.cost_cutoff_date,'dd-mon-rrrr') ccd,
  6507. decode(mp.eam_enabled_flag,
  6508. 'Y','Yes',
  6509. 'N','No') EAM,
  6510. decode (mp.encumbrance_reversal_flag,
  6511. 1, 'Yes',
  6512. 2, 'No') ENC
  6513. FROM MTL_PARAMETERS MP,
  6514. WSH_DELIVERY_DETAILS DET
  6515. where DET.SOURCE_CODE = 'OE'
  6516. and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
  6517. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
  6518.  
  6519. function n(v varchar2) return varchar2 is
  6520. begin
  6521. if v is null then
  6522. return '&sp';
  6523. else
  6524. return v;
  6525. end if;
  6526. end n;
  6527.  
  6528. begin
  6529.  
  6530. for orgi in l_orgs
  6531. loop
  6532.  
  6533. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6534. null;
  6535. end if; -- do_analysis
  6536.  
  6537. -- Print line to Output file
  6538. utl_file.put_line(handle,'&sld '||n(orgi.org_id)||' &d ');
  6539. utl_file.put_line(handle,n(orgi.org)||' &d '||n(orgi.WMS)||' &d ');
  6540. if INV_GMI_RSV_BRANCH.PROCESS_BRANCH(orgi.org_id) then
  6541. utl_file.put_line(handle,'Yes ');
  6542. :is_opm := 'Y';
  6543. else
  6544. utl_file.put_line(handle,'No ');
  6545. :is_opm := 'N';
  6546. end if;
  6547. utl_file.put_line(handle,' &d '||n(orgi.neg_bal)||' &d '||n(orgi.PCM)||' &d ');
  6548. utl_file.put_line(handle,n(orgi.c_org)||' &d '||n(orgi.m_org)||' &d ');
  6549. utl_file.put_line(handle,n(orgi.dcg)||' &d '||n(orgi.PRE)||' &d ');
  6550. utl_file.put_line(handle,n(orgi.ccd)||' &d '||n(orgi.EAM)||' &d ');
  6551. utl_file.put_line(handle,n(orgi.ENC)||' &el ');
  6552.  
  6553. end loop;
  6554.  
  6555. end;
  6556.  
  6557. UTL_FILE.PUT_LINE(handle,'&et ');
  6558.  
  6559. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="ACCOUNTING PERIODS"> ACCOUNTING PERIODS (ACC) </a> &f');
  6560. UTL_FILE.PUT_LINE(handle,'&std &sh ORG_ID &dh ORGANIZATION CODE &dh PLANNED_DEPART_DT (Shipped Line) &dh ');
  6561. UTL_FILE.PUT_LINE(handle,'SCHEDULE_SHIP_DT (Not Shipped Line) &dh ACCOUNT PERIOD_ID &dh PERIOD NAME ');
  6562. UTL_FILE.PUT_LINE(handle,'&dh OPEN FLAG &dh PERIOD START_DT &dh PERIOD CLOSE_DT &dh SCHEDULE CLOSE_DT &eh ');
  6563.  
  6564. Declare cursor l_orgs is
  6565. SELECT distinct
  6566. mp.organization_id org_id,
  6567. mp.organization_code org,
  6568. to_char(STP.PLANNED_DEPARTURE_DATE,'DD-MON-RR_HH24:MI:SS') plan_dep_date,
  6569. '' schdate,
  6570. oac.acct_period_id acc_per_id,
  6571. oac.period_name per_name,
  6572. oac.open_flag open_fl,
  6573. to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
  6574. to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
  6575. to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
  6576. FROM MTL_PARAMETERS MP,
  6577. ORG_ACCT_PERIODS OAC,
  6578. WSH_DELIVERY_DETAILS DET,
  6579. WSH_DELIVERY_LEGS LEG,
  6580. WSH_TRIP_STOPS STP,
  6581. WSH_DELIVERY_ASSIGNMENTS ASG,
  6582. WSH_TRIPS TRP
  6583. where ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID
  6584. and STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID
  6585. and STP.TRIP_ID = TRP.TRIP_ID(+)
  6586. and LEG.DELIVERY_ID(+) = ASG.DELIVERY_ID
  6587. and DET.SOURCE_CODE = 'OE'
  6588. and MP.ORGANIZATION_ID = OAC.ORGANIZATION_ID
  6589. and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
  6590. and STP.PLANNED_DEPARTURE_DATE BETWEEN OAC.PERIOD_START_DATE and NVL(OAC.PERIOD_CLOSE_DATE,OAC.SCHEDULE_CLOSE_DATE)
  6591. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
  6592. union
  6593. SELECT distinct
  6594. mp.organization_id org_id,
  6595. mp.organization_code org,
  6596. '' plan_dep_date,
  6597. to_char(LIN.SCHEDULE_SHIP_DATE,'DD-MON-RR_HH24:MI:SS') schdate,
  6598. oac.acct_period_id acc_per_id,
  6599. oac.period_name per_name,
  6600. oac.open_flag open_fl,
  6601. to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
  6602. to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
  6603. to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
  6604. FROM MTL_PARAMETERS MP,
  6605. ORG_ACCT_PERIODS OAC,
  6606. WSH_DELIVERY_DETAILS DET,
  6607. OE_ORDER_LINES LIN
  6608. where DET.SOURCE_LINE_ID = LIN.LINE_ID
  6609. and DET.SOURCE_CODE = 'OE'
  6610. and MP.ORGANIZATION_ID = OAC.ORGANIZATION_ID
  6611. and MP.ORGANIZATION_ID = DET.ORGANIZATION_ID
  6612. and LIN.SCHEDULE_SHIP_DATE BETWEEN OAC.PERIOD_START_DATE and NVL(OAC.PERIOD_CLOSE_DATE,OAC.SCHEDULE_CLOSE_DATE)
  6613. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
  6614.  
  6615. function n(v varchar2) return varchar2 is
  6616. begin
  6617. if v is null then
  6618. return '&sp';
  6619. else
  6620. return v;
  6621. end if;
  6622. end n;
  6623.  
  6624. begin
  6625.  
  6626. for orgi in l_orgs
  6627. loop
  6628.  
  6629. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6630. null;
  6631. end if; -- do_analysis
  6632.  
  6633. -- Print line to Output file
  6634. utl_file.put_line(handle,'&sld '||n(orgi.org_id)||' &d ');
  6635. utl_file.put_line(handle,n(orgi.org)||' &d '||n(orgi.plan_dep_date)||' &d ');
  6636. utl_file.put_line(handle,n(orgi.schdate)||' &d '||n(orgi.acc_per_id)||' &d ');
  6637. utl_file.put_line(handle,n(orgi.per_name)||' &d '||n(orgi.open_fl)||' &d ');
  6638. utl_file.put_line(handle,n(orgi.per_sd)||' &d '||n(orgi.per_cd)||' &d ');
  6639. utl_file.put_line(handle,n(orgi.sch_cd)||' &el ');
  6640.  
  6641. end loop;
  6642.  
  6643. end;
  6644.  
  6645. UTL_FILE.PUT_LINE(handle,'&et ');
  6646.  
  6647. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_DELIVERY_DETAILS"> WSH_DELIVERY_DETAILS (DET)</a> <a HREF="#WDD">Column Definitions</a> &f');
  6648.  
  6649. UTL_FILE.PUT_LINE(handle,'&std '); -- just to start the table, header will be printed later
  6650.  
  6651. Declare cursor w_del_details is
  6652. select distinct
  6653. DET.DELIVERY_DETAIL_ID DEL_DET_ID,
  6654. DET.RELEASED_STATUS REL_STATUS_C,
  6655. decode(DET.RELEASED_STATUS,
  6656. 'Y','Y=Staged',
  6657. 'R','R=Ready to Release',
  6658. 'S','S=Rel to Warhouse',
  6659. 'B','B=Backorder',
  6660. 'P','P=Pending Inv',
  6661. 'C','C=Shipped',
  6662. 'N','N=Not Ready',
  6663. 'D','D=Cancelled',
  6664. 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
  6665. DET.MOVE_ORDER_LINE_ID MO_LINE_ID,
  6666. ASG.DELIVERY_ID DELIV_ID,
  6667. TRP.TRIP_ID TRIP_ID,
  6668. to_char(LIN.line_number) ||
  6669. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  6670. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  6671. decode(LIN.component_number, null, null,
  6672. decode(LIN.option_number, null, '.',null)||
  6673. '.'||to_char(LIN.component_number))||
  6674. decode(LIN.service_number,null,null,
  6675. decode(LIN.component_number, null, '.' , null) ||
  6676. decode(LIN.option_number, null, '.', null ) ||
  6677. '.'|| to_char(LIN.service_number)) LINE,
  6678. DET.SOURCE_LINE_ID LINE_ID,
  6679. DET.INVENTORY_ITEM_ID ITEM_ID,
  6680. ITM.SEGMENT1 ITEM,
  6681. nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
  6682. DET.SRC_REQUESTED_QUANTITY_UOM SRQ_U,
  6683. nvl(DET.SRC_REQUESTED_QUANTITY2,0) SRQ_Q2,
  6684. DET.SRC_REQUESTED_QUANTITY_UOM2 SRQ_U2,
  6685. nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
  6686. DET.REQUESTED_QUANTITY_UOM REQ_U,
  6687. nvl(DET.REQUESTED_QUANTITY2,0) REQ_Q2,
  6688. DET.REQUESTED_QUANTITY_UOM2 REQ_U2,
  6689. nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
  6690. nvl(DET.SHIPPED_QUANTITY2,0) SHP_Q2,
  6691. nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
  6692. nvl(DET.DELIVERED_QUANTITY2,0) DLV_Q2,
  6693. nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
  6694. nvl(DET.CANCELLED_QUANTITY2,0) CAN_Q2,
  6695. nvl(DET.INV_INTERFACED_FLAG,'N') INI,
  6696. nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
  6697. DET.SHIP_TOLERANCE_ABOVE STA,
  6698. DET.SHIP_TOLERANCE_BELOW STB,
  6699. DET.SHIP_FROM_LOCATION_ID SH_FROM_ID,
  6700. DET.SHIP_TO_LOCATION_ID SH_TO_ID,
  6701. -- DET.MVT_STAT_STATUS MVT_STATUS,
  6702. DET.ORGANIZATION_ID WH_ID,
  6703. DET.SUBINVENTORY CUR_SUB,
  6704. DET.ATTRIBUTE15 ORG_SUB,
  6705. DET.REVISION REV,
  6706. DET.LOT_NUMBER LOT,
  6707. DET.SERIAL_NUMBER SERIAL,
  6708. DET.LOCATOR_ID LOC_ID,
  6709. DET.SHIP_METHOD_CODE SHIP_METH,
  6710. -- DET.MOVEMENT_ID MVMT_ID,
  6711. DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
  6712. DET.PICKABLE_FLAG PICKABLE_FLAG,
  6713. nvl(DET.PICKED_QUANTITY,0) PICKED_QUANTITY,
  6714. nvl(DET.PICKED_QUANTITY2,0) PICKED_QUANTITY2,
  6715. DET.SHIP_SET_ID SHIP_SET_ID,
  6716. DET.SHIP_MODEL_COMPLETE_FLAG SHIP_MODEL_COMPLETE_FLAG,
  6717. DET.TRANSACTION_TEMP_ID TRX_TEMP_ID,
  6718. DET.TOP_MODEL_LINE_ID TOP_MO_LIN,
  6719. DET.SOURCE_LINE_SET_ID SRC_LIN_SET,
  6720. to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') cre_date,
  6721. DET.sublot_number slotno,
  6722. DET.CYCLE_COUNT_QUANTITY2 cycle_qty,
  6723. DET.QUALITY_CONTROL_QUANTITY QC_qty,
  6724. DET.QUALITY_CONTROL_QUANTITY2 QC_qty2,
  6725. DET.SCHEDULED_QUANTITY2 sch_qty2,
  6726. to_char(DET.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') upd_date,
  6727. DET.source_line_set_id SRC_LIN_SET_ID
  6728. FROM
  6729. OE_ORDER_LINES LIN,
  6730. WSH_DELIVERY_DETAILS DET,
  6731. WSH_NEW_DELIVERIES DEL,
  6732. WSH_DELIVERY_LEGS LEG,
  6733. WSH_TRIP_STOPS STP,
  6734. MTL_SYSTEM_ITEMS ITM,
  6735. WSH_DELIVERY_ASSIGNMENTS ASG,
  6736. WSH_TRIPS TRP
  6737. where
  6738. DEL.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
  6739. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  6740. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  6741. STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
  6742. STP.TRIP_ID = TRP.TRIP_ID(+) AND
  6743. LEG.DELIVERY_ID(+) = DEL.DELIVERY_ID AND
  6744. LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+) AND
  6745. LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
  6746. DET.SOURCE_CODE = 'OE' AND
  6747. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  6748. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  6749. LIN.TOP_MODEL_LINE_ID,
  6750. LIN.ATO_LINE_ID,
  6751. LIN.LINK_TO_LINE_ID,
  6752. LIN.REFERENCE_LINE_ID,
  6753. LIN.SERVICE_REFERENCE_LINE_ID)
  6754. Order by
  6755. DET.SOURCE_LINE_ID, DET.DELIVERY_DETAIL_ID;
  6756.  
  6757. r_uom_lin varchar2(10);
  6758. r_qshp_lin number;
  6759. r_sta_lin varchar2(100);
  6760. r_mtl_trn varchar2(100);
  6761. c_lines number;
  6762. type per_record_typ is RECORD
  6763. (flag varchar2(1),
  6764. descrip varchar2(200));
  6765. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  6766. msg msg_tab;
  6767.  
  6768. function n(v varchar2) return varchar2 is
  6769. begin
  6770. if v is null then
  6771. return '&sp';
  6772. else
  6773. return v;
  6774. end if;
  6775. end n;
  6776.  
  6777. Procedure prt_DET_head is
  6778. begin
  6779. UTL_FILE.PUT_LINE(handle,'&sh WARNING &dh DELIVERY DETAIL_ID &dh RELEASE STATUS &dhr INI &dh OMI &dh MOVE_ORDER LINE_ID &dh ');
  6780. 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 ');
  6781. UTL_FILE.PUT_LINE(handle,'SOURCE REQ_UOM &dh REQUEST QTY &dh REQUEST UOM &dh PICKED QTY &dh SHIPPED QTY &dh ');
  6782. UTL_FILE.PUT_LINE(handle,'DELIVER QTY &dh CANCEL QTY &dh PICK FLAG &dh STA &dh STB &dh SHIP FROM_ID &dh ');
  6783. UTL_FILE.PUT_LINE(handle,'SHIP TO_ID &dh WH_ID &dh CURRENT SUBINV &dh ORG SUBINV &dh REV &dh LOT &dh SERIAL &dh ');
  6784. UTL_FILE.PUT_LINE(handle,'TRANSAC TEMP_ID &dh LOCATOR ID &dh SHIP METHOD &dh CREATE DATE &dh SPLIT_FROM DEL_DET_ID &dh ');
  6785. 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 ');
  6786. UTL_FILE.PUT_LINE(handle,'DISCRETE SRC_REQ_UOM &dh DISCRETE REQ_QTY &dh DISCRETE REQ_UOM &dh DISCRETE PICK_QTY &dh ');
  6787. UTL_FILE.PUT_LINE(handle,'DISCRETE SHP_QTY &dh DISCRETE DEL_QTY &dh DISCRETE CANC_QTY &dh ');
  6788. UTL_FILE.PUT_LINE(handle,'CYCLE COUNT_QTY &dh QUALITY CTRL_QTY &dh ');
  6789. UTL_FILE.PUT_LINE(handle,'QUALITY CTRL_QTY2 &dh DISCRETE SCHD_QTY &dh SUBLOT NUMBER &dh LAST UPDATE_DATE &dh');
  6790. UTL_FILE.PUT_LINE(handle,'SRC_LIN SET_ID &eh');
  6791. end;
  6792.  
  6793. begin
  6794. :r_error := 0;
  6795. c_lines := 35;
  6796.  
  6797. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6798. for i in 1..35
  6799. loop
  6800. msg(i).flag := '0';
  6801. msg(i).descrip := '';
  6802. end loop;
  6803. msg(1).descrip := ' 1. Source Requested Quantity is less than Shipped Quantity.';
  6804.  
  6805. msg(10).descrip := ' 10. Pickable_Flag on Delivery Detail does Not Match with Mtl_Transactions_Enabled_Flag on Mtl_System_Items.';
  6806.  
  6807. msg(20).descrip := ' 20. Delivery Detail have no Order Lines Associated.';
  6808. msg(21).descrip := ' 21. Order Line associated to this Delivery Detail have INVALID status.';
  6809. msg(24).descrip := ' 24. Delivery Detail have invalid RELEASED status.';
  6810. msg(25).descrip := ' 25. Delivery Detail has NOT been Shipped but has been INTERFACED to OM or INV.';
  6811. msg(26).descrip := ' 26. Delivery Detail has NOT been Shipped but associated Order Line shows Shipped Quantity.';
  6812. msg(27).descrip := ' 27. Delivery Detail has NOT been Shipped but associated Order Line is Not on AWAITING SHIPPING status.';
  6813. msg(28).descrip := ' 28. Delivery Detail has been Shipped, NOT OM Interfaced but associated Order Line Shipped Qty has been updated.';
  6814. msg(29).descrip := ' 29. Delivery Detail has been Shipped, NOT OM Interfaced but associated Order Line is Not on AWAITING SHIPPING status.';
  6815. msg(30).descrip := ' 30. Delivery Detail has been Shipped and OM Interfaced but associated Order Line Shipped Qty has NOT been updated.';
  6816. msg(31).descrip := ' 31. Delivery Detail has been Shipped and OM Interfaced but associated Order Line still on AWAITING SHIPPING status.';
  6817. 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).';
  6818. msg(33).descrip := ' 33. Delivery Detail is Cancelled but has been INTERFACED to OM or INV.';
  6819. end if;
  6820.  
  6821. for dd in w_del_details
  6822. loop
  6823. :r_flag := '';
  6824.  
  6825. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  6826. -- Check Pickable_flag against mtl_system_items.mtl_transactions_enabled_flag
  6827. Select nvl(mtl_transactions_enabled_flag,'N')
  6828. into r_mtl_trn
  6829. from Mtl_System_items
  6830. where Inventory_item_Id = dd.ITEM_ID
  6831. and Organization_Id = dd.WH_ID;
  6832. if dd.PICKABLE_FLAG <> r_mtl_trn then
  6833. :r_flag := :r_flag || '10 ';
  6834. msg(10).flag := '1';
  6835. end if;
  6836.  
  6837. begin
  6838. select ORDER_QUANTITY_UOM, nvl(SHIPPED_QUANTITY,0), substr(FLOW_STATUS_CODE,1,22)
  6839. into r_uom_lin, r_qshp_lin, r_sta_lin
  6840. from oe_order_lines_all
  6841. where line_id = dd.LINE_ID;
  6842. exception
  6843. when no_data_found then
  6844. :r_flag := :r_flag || '20 ';
  6845. msg(20).flag := '1';
  6846. end;
  6847. ---
  6848. -- Basic Verification
  6849. --
  6850. If (dd.SRQ_Q*(100+nvl(dd.STA,0))/100 < dd.SHP_Q) AND (dd.SRQ_U = dd.REQ_U) then
  6851. :r_flag := :r_flag || '1 ';
  6852. msg(1).flag := '1';
  6853. end if;
  6854.  
  6855. if dd.REL_STATUS_C not in ('Y','R','S','B','P','C','N','D','X') then -- invalid Released status
  6856. :r_flag := :r_flag || '24 ';
  6857. msg(24).flag := '1';
  6858. end if;
  6859.  
  6860. if dd.REL_STATUS_C not in ('C','D') -- not shipped or cancelled
  6861. and (dd.INI not in ( 'N','X')
  6862. or dd.OMI <> 'N') then -- but interfaced INV or OM
  6863. :r_flag := :r_flag || '25 ';
  6864. msg(25).flag := '1';
  6865. end if;
  6866.  
  6867. if dd.REL_STATUS_C not in ('C','D') -- not shipped nor cancelled
  6868. and dd.OMI = 'N'
  6869. and r_qshp_lin > 0 then -- not OM interfaced but Shipped qty on order line has been updated
  6870. :r_flag := :r_flag || '26 ';
  6871. msg(26).flag := '1';
  6872. end if;
  6873.  
  6874. if dd.REL_STATUS_C not in ('C','D') -- not shipped nor cancelled
  6875. and dd.OMI = 'N'
  6876. and r_sta_lin <> 'AWAITING_SHIPPING' then -- not OM interfaced but order line is not Awaiting Shipping
  6877. :r_flag := :r_flag || '27 ';
  6878. msg(27).flag := '1';
  6879. end if;
  6880.  
  6881. -- Verifications for Shipped Delivery Details
  6882. if dd.REL_STATUS_C = 'C' then
  6883. if dd.OMI = 'N'
  6884. and r_qshp_lin > 0 then -- Shipped, not OM interfaced but order lines Qty has been updated
  6885. :r_flag := :r_flag || '28 ';
  6886. msg(28).flag := '1';
  6887. end if;
  6888.  
  6889. if dd.OMI = 'N'
  6890. and r_sta_lin <> 'AWAITING_SHIPPING' then -- Shipped, not OM interfaced but order line not on Awaiting Shipping
  6891. :r_flag := :r_flag || '29 ';
  6892. msg(29).flag := '1';
  6893. end if;
  6894.  
  6895. if dd.OMI = 'Y'
  6896. and r_qshp_lin = 0 then -- Shipped and OM interfaced, order_line shipped Qty not updated
  6897. :r_flag := :r_flag || '30 ';
  6898. msg(30).flag := '1';
  6899. end if;
  6900.  
  6901. if dd.OMI = 'Y'
  6902. and r_sta_lin = 'AWAITING_SHIPPING' then -- Shipped and OM interfaced, order_line status not updated
  6903. :r_flag := :r_flag || '31 ';
  6904. msg(31).flag := '1';
  6905. end if;
  6906.  
  6907. if dd.OMI = 'Y'
  6908. and r_uom_lin = dd.REQ_U -- same UOM, no conversion
  6909. and r_qshp_lin <> dd.SHP_Q then -- Shipped and OM interfaced, Shipped Qty on order_line does not match Delivery Detail Shp Qty
  6910. :r_flag := :r_flag || '32 ';
  6911. msg(32).flag := '1';
  6912. end if;
  6913. end if; -- Shipped Del.Detail
  6914.  
  6915. -- Verifications for Cancelled Delivery Details
  6916. if dd.REL_STATUS_C = 'D' then
  6917. if (dd.INI = 'Y'
  6918. or dd.OMI = 'Y') then -- Delivery Detail has been cancelled but INV or OM flags are set to Y
  6919. :r_flag := :r_flag || '33 ';
  6920. msg(33).flag := '1';
  6921. end if;
  6922. end if; -- Cancelled Del.Detail
  6923.  
  6924. end if; -- do_analysis
  6925. ---
  6926. if c_lines >= 35 then
  6927. c_lines := 1;
  6928. prt_DET_head;
  6929. else
  6930. c_lines := c_lines + 1;
  6931. end if;
  6932.  
  6933. -- Print line to Output file
  6934. utl_file.put_line(handle,'&sld &b <a HREF="#WDDERR">'||n(:r_flag)||'</a> &eb &d');
  6935. utl_file.put_line(handle,'<a NAME="WDD'||dd.DEL_DET_ID||'">'||n(dd.DEL_DET_ID)||'</a> &d');
  6936. utl_file.put_line(handle,n(dd.REL_STATUS)||'&d');
  6937. utl_file.put_line(handle,n(dd.INI)||'&d'||n(dd.OMI)||'&d');
  6938. utl_file.put_line(handle,'<a HREF="#MO'||dd.MO_LINE_ID||'">'||n(dd.MO_LINE_ID)||'</a>'||'&d');
  6939. utl_file.put_line(handle,'<a HREF="#D'||dd.DELIV_ID||'">'||n(dd.DELIV_ID)||'</a>'||'&d');
  6940. utl_file.put_line(handle,'<a HREF="#T'||dd.TRIP_ID||'">'||n(dd.TRIP_ID)||'</a>'||'&d'||n(dd.LINE)||'&d');
  6941. utl_file.put_line(handle,'<a HREF="#OOE'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d');
  6942. utl_file.put_line(handle,n(dd.ITEM_ID)||'&d'||n(dd.ITEM)||'&d');
  6943. utl_file.put_line(handle,n(dd.SRQ_Q)||'&d'||n(dd.SRQ_U)||'&d');
  6944. utl_file.put_line(handle,n(dd.REQ_Q)||'&d'||n(dd.REQ_U)||'&d');
  6945. utl_file.put_line(handle,n(dd.PICKED_QUANTITY)||'&d'||n(dd.SHP_Q)||'&d');
  6946. utl_file.put_line(handle,n(dd.DLV_Q)||'&d'||n(dd.CAN_Q)||'&d');
  6947. utl_file.put_line(handle,n(dd.PICKABLE_FLAG)||'&d');
  6948. utl_file.put_line(handle,n(dd.STA)||'&d');
  6949. utl_file.put_line(handle,n(dd.STB)||'&d'||n(dd.SH_FROM_ID)||'&d');
  6950. utl_file.put_line(handle,n(dd.SH_TO_ID)||'&d');
  6951. utl_file.put_line(handle,n(dd.WH_ID)||'&d'||n(dd.CUR_SUB)||'&d');
  6952. utl_file.put_line(handle,n(dd.ORG_SUB)||'&d'||n(dd.REV)||'&d');
  6953. utl_file.put_line(handle,n(dd.LOT)||'&d'||n(dd.SERIAL)||'&d');
  6954. utl_file.put_line(handle,n(dd.TRX_TEMP_ID)||'&d');
  6955. utl_file.put_line(handle,n(dd.LOC_ID)||'&d'||n(dd.SHIP_METH)||'&d');
  6956. utl_file.put_line(handle,n(dd.CRE_DATE)||'&d');
  6957. utl_file.put_line(handle,n(dd.SPL_DEL_DET_ID)||'&d');
  6958. utl_file.put_line(handle,n(dd.SHIP_SET_ID)||'&d'||n(dd.SHIP_MODEL_COMPLETE_FLAG)||'&d');
  6959. utl_file.put_line(handle,n(dd.TOP_MO_LIN)||'&d'||n(dd.SRC_LIN_SET)||'&d');
  6960. utl_file.put_line(handle,n(dd.SRQ_Q2)||'&d'||n(dd.SRQ_U2)||'&d');
  6961. utl_file.put_line(handle,n(dd.REQ_Q2)||'&d'||n(dd.REQ_U2)||'&d');
  6962. utl_file.put_line(handle,n(dd.PICKED_QUANTITY2)||'&d'||n(dd.SHP_Q2)||'&d');
  6963. utl_file.put_line(handle,n(dd.DLV_Q2)||'&d'||n(dd.CAN_Q2)||'&d');
  6964. utl_file.put_line(handle,n(dd.cycle_qty)||'&d');
  6965. utl_file.put_line(handle,n(dd.QC_qty)||'&d'||n(dd.QC_qty2)||'&d');
  6966. utl_file.put_line(handle,n(dd.sch_qty2)||'&d');
  6967. utl_file.put_line(handle,n(dd.slotno)||'&d'||n(dd.upd_date)||'&d');
  6968. utl_file.put_line(handle,n(dd.SRC_LIN_SET_ID)||'&el');
  6969. if :r_flag is not null then
  6970. :r_error := 1;
  6971. end if;
  6972. end loop;
  6973. utl_file.put_line(handle,'&et');
  6974.  
  6975. if :r_error = 1 then
  6976. utl_file.put_line(handle,'&f &b <a NAME="WDDERR">Warnings List:</a> &eb &f');
  6977. for i in 1..35
  6978. loop
  6979. if msg(i).flag = '1' then
  6980. utl_file.put_line(handle,msg(i).descrip||'&f');
  6981. end if;
  6982. end loop;
  6983. end if;
  6984.  
  6985. end;
  6986.  
  6987. UTL_FILE.PUT_LINE(handle,'&et ');
  6988.  
  6989. UTL_FILE.PUT_LINE(handle,'&f &f WSH_DELIVERY_DETAILS (CONTAINERS) &f');
  6990. 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 ');
  6991. 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 ');
  6992. 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');
  6993. UTL_FILE.PUT_LINE(handle,'SPL_DEL_DET_ID &dh LPN_ID &eh');
  6994.  
  6995. Declare
  6996. cursor w_del_det_c is
  6997. select distinct
  6998. DET.DELIVERY_DETAIL_ID DEL_DET_ID,
  6999. decode(DET.RELEASED_STATUS,
  7000. 'Y','Y=Staged',
  7001. 'R','R=Ready to Relese',
  7002. 'S','S=Rel to Warhouse',
  7003. 'B','B=Backorder',
  7004. 'P','P=Pending Inv',
  7005. 'C','C=Shipped',
  7006. 'N','N=Not Ready',
  7007. 'D','D=Cancelled',
  7008. 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
  7009. ASG.DELIVERY_ID DELIV_ID,
  7010. TRP.TRIP_ID TRIP_ID,
  7011. DET.INVENTORY_ITEM_ID ITEM_ID,
  7012. ITM.SEGMENT1 ITEM,
  7013. DET.CONTAINER_FLAG CF,
  7014. DET.CONTAINER_NAME CONT_NAME,
  7015. DET.CONTAINER_TYPE_CODE CONT_TYPE,
  7016. DET.FILL_PERCENT FL_PER,
  7017. DET.GROSS_WEIGHT GRS_WT,
  7018. DET.NET_WEIGHT NET_WT,
  7019. DET.WEIGHT_UOM_CODE WT_UOM,
  7020. DET.VOLUME VOL,
  7021. DET.VOLUME_UOM_CODE VOL_UOM,
  7022. nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
  7023. nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
  7024. nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
  7025. nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
  7026. nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
  7027. nvl(DET.INV_INTERFACED_FLAG,'N') INI,
  7028. nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
  7029. DET.SHIP_FROM_LOCATION_ID SH_FROM_ID,
  7030. DET.SHIP_TO_LOCATION_ID SH_TO_ID,
  7031. DET.ORGANIZATION_ID WH_ID,
  7032. DET.SHIP_METHOD_CODE SHIP_METH,
  7033. to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CRE_DT,
  7034. DET.FOB_CODE FOB_CODE,
  7035. DET.FREIGHT_TERMS_CODE FRT_TERMS,
  7036. --DET.MOVEMENT_ID MVMT_ID,
  7037. DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
  7038. DET.LPN_ID LPN_ID
  7039. --ENABLE_TIMESTAMP ,DET.ORG_ID DEL_ORG_ID
  7040. --ENABLE_TIMESTAMP ,to_char(DET.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  7041. --ENABLE_TIMESTAMP ,to_char(DET.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  7042. --ENABLE_TIMESTAMP ,DET.REQUEST_ID REQUEST_ID
  7043. FROM
  7044. --OE_ORDER_LINES LIN,
  7045. WSH_DELIVERY_DETAILS DET,
  7046. --WSH_NEW_DELIVERIES DEL,
  7047. WSH_DELIVERY_LEGS LEG,
  7048. WSH_TRIP_STOPS STP,
  7049. MTL_SYSTEM_ITEMS ITM,
  7050. WSH_DELIVERY_ASSIGNMENTS ASG,
  7051. WSH_TRIPS TRP
  7052. where
  7053. --DEL.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
  7054. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7055. DET.ORGANIZATION_ID = ITM.ORGANIZATION_ID(+) AND
  7056. DET.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
  7057. --DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7058. STP.STOP_ID(+) = LEG.PICK_UP_STOP_ID AND
  7059. STP.TRIP_ID = TRP.TRIP_ID(+) AND
  7060. LEG.DELIVERY_ID(+) = ASG.DELIVERY_ID AND
  7061. --LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+) AND
  7062. --LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+) AND
  7063. DET.SOURCE_CODE = 'WSH' AND
  7064. ASG.DELIVERY_ID IN (select ASG1.DELIVERY_ID
  7065. from WSH_DELIVERY_ASSIGNMENTS ASG1,
  7066. WSH_DELIVERY_DETAILS DET1,
  7067. OE_ORDER_LINES_ALL LIN1
  7068. where DET1.SOURCE_LINE_ID = LIN1.LINE_ID AND
  7069. DET1.DELIVERY_DETAIL_ID = ASG1.DELIVERY_DETAIL_ID AND
  7070. DET1.SOURCE_CODE = 'OE' AND
  7071. LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7072. NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
  7073. LIN1.TOP_MODEL_LINE_ID,
  7074. LIN1.ATO_LINE_ID,
  7075. LIN1.LINK_TO_LINE_ID,
  7076. LIN1.REFERENCE_LINE_ID,
  7077. LIN1.SERVICE_REFERENCE_LINE_ID));
  7078.  
  7079. begin
  7080. for wddc in w_del_det_c
  7081. loop
  7082. utl_file.put_line(handle,'&sld'||n(wddc.DEL_DET_ID)||'&d'||n(wddc.REL_STATUS)||'&d');
  7083. utl_file.put_line(handle,n(wddc.DELIV_ID)||'&d'||n(wddc.TRIP_ID)||'&d');
  7084. utl_file.put_line(handle,n(wddc.ITEM_ID)||'&d'||n(wddc.ITEM)||'&d');
  7085. utl_file.put_line(handle,n(wddc.CF)||'&d'||n(wddc.CONT_NAME)||'&d');
  7086. utl_file.put_line(handle,n(wddc.CONT_TYPE)||'&d'||n(wddc.FL_PER)||'&d');
  7087. utl_file.put_line(handle,n(wddc.GRS_WT)||'&d'||n(wddc.NET_WT)||'&d');
  7088. utl_file.put_line(handle,n(wddc.WT_UOM)||'&d'||n(wddc.VOL)||'&d');
  7089. utl_file.put_line(handle,n(wddc.VOL_UOM)||'&d'||n(wddc.SRQ_Q)||'&d');
  7090. utl_file.put_line(handle,n(wddc.REQ_Q)||'&d'||n(wddc.SHP_Q)||'&d');
  7091. utl_file.put_line(handle,n(wddc.DLV_Q)||'&d'||n(wddc.CAN_Q)||'&d');
  7092. utl_file.put_line(handle,n(wddc.INI)||'&d'||n(wddc.OMI)||'&d');
  7093. utl_file.put_line(handle,n(wddc.SH_FROM_ID)||'&d'||n(wddc.SH_TO_ID)||'&d');
  7094. utl_file.put_line(handle,n(wddc.WH_ID)||'&d'||n(wddc.SHIP_METH)||'&d');
  7095. utl_file.put_line(handle,n(wddc.CRE_DT)||'&d'||n(wddc.FOB_CODE)||'&d');
  7096. utl_file.put_line(handle,n(wddc.FRT_TERMS)||'&d'||n(wddc.SPL_DEL_DET_ID)||'&d');
  7097. utl_file.put_line(handle,n(wddc.LPN_ID)||'&el');
  7098. end loop;
  7099. end;
  7100.  
  7101. UTL_FILE.PUT_LINE(handle,'&et');
  7102.  
  7103. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WSH_SERIAL_NUMBERS"> WSH_SERIAL_NUMBERS (WSN)</a> <a HREF="#WSN">Column Definitions</a> &f');
  7104.  
  7105. Declare
  7106. r_exist number;
  7107.  
  7108. begin
  7109.  
  7110. select count(*)
  7111. into r_exist
  7112. from all_tables
  7113. where table_name = 'WSH_SERIAL_NUMBERS';
  7114. if r_exist = 0 then
  7115. utl_file.put_line(handle,'&et Table WSH_SERIAL_NUMBER is not present on this instance (introduced on 11.5.9): &f');
  7116. else
  7117. 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');
  7118. 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');
  7119. 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');
  7120. end if;
  7121.  
  7122. end;
  7123.  
  7124. Declare cursor w_serial_n is
  7125. select distinct
  7126. DET.DELIVERY_DETAIL_ID DEL_DET_ID,
  7127. DET.RELEASED_STATUS REL_STATUS_C,
  7128. decode(DET.RELEASED_STATUS,
  7129. 'Y','Y=Staged',
  7130. 'R','R=Ready to Release',
  7131. 'S','S=Rel to Warhouse',
  7132. 'B','B=Backorder',
  7133. 'P','P=Pending Inv',
  7134. 'C','C=Shipped',
  7135. 'N','N=Not Ready',
  7136. 'D','D=Cancelled',
  7137. 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
  7138. to_char(LIN.line_number) ||
  7139. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  7140. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  7141. decode(LIN.component_number, null, null,
  7142. decode(LIN.option_number, null, '.',null)||
  7143. '.'||to_char(LIN.component_number))||
  7144. decode(LIN.service_number,null,null,
  7145. decode(LIN.component_number, null, '.' , null) ||
  7146. decode(LIN.option_number, null, '.', null ) ||
  7147. '.'|| to_char(LIN.service_number)) LINE,
  7148. DET.SOURCE_LINE_ID LINE_ID,
  7149. DET.INVENTORY_ITEM_ID ITEM_ID,
  7150. nvl(DET.SRC_REQUESTED_QUANTITY,0) SRQ_Q,
  7151. SRC_REQUESTED_QUANTITY_UOM SRQ_U,
  7152. nvl(DET.REQUESTED_QUANTITY,0) REQ_Q,
  7153. SRC_REQUESTED_QUANTITY_UOM REQ_U,
  7154. nvl(DET.SHIPPED_QUANTITY,0) SHP_Q,
  7155. nvl(DET.DELIVERED_QUANTITY,0) DLV_Q,
  7156. nvl(DET.CANCELLED_QUANTITY,0) CAN_Q,
  7157. nvl(DET.INV_INTERFACED_FLAG,'N') INI,
  7158. nvl(DET.OE_INTERFACED_FLAG,'N') OMI,
  7159. DET.SHIP_TOLERANCE_ABOVE STA,
  7160. DET.SHIP_TOLERANCE_BELOW STB,
  7161. DET.ORGANIZATION_ID WH_ID,
  7162. DET.SUBINVENTORY CUR_SUB,
  7163. DET.ATTRIBUTE15 ORG_SUB,
  7164. DET.REVISION REV,
  7165. DET.LOT_NUMBER LOT,
  7166. DET.SERIAL_NUMBER SERIAL,
  7167. DET.LOCATOR_ID LOC_ID,
  7168. DET.SPLIT_FROM_DELIVERY_DETAIL_ID SPL_DEL_DET_ID,
  7169. DET.PICKED_QUANTITY PICKED_QUANTITY,
  7170. substr(wsn.fm_serial_number,1,15) FROM_SERIAL,
  7171. substr(wsn.to_serial_number,1,15) TO_SERIAL,
  7172. wsn.quantity WSN_QTY,
  7173. to_char(wsn.creation_date,'DD-MON-RR_HH24:MI:SS') WSN_CRE_DATE
  7174. FROM
  7175. OE_ORDER_LINES LIN,
  7176. WSH_DELIVERY_DETAILS DET,
  7177. WSH_SERIAL_NUMBERS WSN
  7178. where DET.DELIVERY_DETAIL_ID = WSN.DELIVERY_DETAIL_ID
  7179. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  7180. and DET.SOURCE_CODE = 'OE'
  7181. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  7182. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7183. LIN.TOP_MODEL_LINE_ID,
  7184. LIN.ATO_LINE_ID,
  7185. LIN.LINK_TO_LINE_ID,
  7186. LIN.REFERENCE_LINE_ID,
  7187. LIN.SERVICE_REFERENCE_LINE_ID)
  7188. and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10);
  7189.  
  7190. r_uom_lin varchar2(10);
  7191. r_qshp_lin number;
  7192. r_sta_lin varchar2(100);
  7193. r_mtl_trn varchar2(100);
  7194. type per_record_typ is RECORD
  7195. (flag varchar2(1),
  7196. descrip varchar2(200));
  7197. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  7198. msg msg_tab;
  7199.  
  7200. function n(v varchar2) return varchar2 is
  7201. begin
  7202. if v is null then
  7203. return '&sp';
  7204. else
  7205. return v;
  7206. end if;
  7207. end n;
  7208.  
  7209. begin
  7210. :r_error := 0;
  7211. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7212. for i in 1..1
  7213. loop
  7214. msg(i).flag := '0';
  7215. msg(i).descrip := '';
  7216. end loop;
  7217. msg(1).descrip := ' 1. No verifications yet.';
  7218. end if;
  7219.  
  7220. for dd in w_serial_n
  7221. loop
  7222. :r_flag := '';
  7223.  
  7224. -- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7225. -- Include verifications here
  7226. -- Select nvl(mtl_transactions_enabled_flag,'N')
  7227. -- into r_mtl_trn
  7228. -- from Mtl_System_items
  7229. -- where Inventory_item_Id = dd.ITEM_ID
  7230. -- and Organization_Id = dd.WH_ID;
  7231. -- if dd.PICKABLE_FLAG <> r_mtl_trn then
  7232. -- :r_flag := :r_flag || '1 ';
  7233. -- msg(1).flag := '1';
  7234. -- end if;
  7235.  
  7236. -- end if; -- do_analysis
  7237. ---
  7238.  
  7239. -- Print line to Output file
  7240. utl_file.put_line(handle,'&sld &b <a HREF="#WSNERR">'||n(:r_flag)||'</a> &eb &d ');
  7241. utl_file.put_line(handle,n(dd.DEL_DET_ID)||' &d ');
  7242. utl_file.put_line(handle,n(dd.REL_STATUS)||' &d '||n(dd.LINE)||' &d ');
  7243. utl_file.put_line(handle,'<a HREF="#'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d ');
  7244. utl_file.put_line(handle,n(dd.ITEM_ID)||' &d');
  7245. utl_file.put_line(handle,n(dd.SRQ_Q)||'&d'||n(dd.SRQ_U)||' &d ');
  7246. utl_file.put_line(handle,n(dd.REQ_Q)||'&d'||n(dd.REQ_U)||' &d ');
  7247. utl_file.put_line(handle,n(dd.PICKED_QUANTITY)||' &d');
  7248. utl_file.put_line(handle,n(dd.SHP_Q)||'&d'||n(dd.DLV_Q)||' &d');
  7249. utl_file.put_line(handle,n(dd.CAN_Q)||'&d'||n(dd.INI)||' &d');
  7250. utl_file.put_line(handle,n(dd.OMI)||'&d'||n(dd.STA)||' &d');
  7251. utl_file.put_line(handle,n(dd.STB)||'&d');
  7252. utl_file.put_line(handle,n(dd.WH_ID)||'&d'||n(dd.CUR_SUB)||' &d');
  7253. utl_file.put_line(handle,n(dd.ORG_SUB)||'&d'||n(dd.REV)||' &d');
  7254. utl_file.put_line(handle,n(dd.LOT)||'&d'||n(dd.SERIAL)||' &d');
  7255. utl_file.put_line(handle,n(dd.LOC_ID)||'&d'||n(dd.SPL_DEL_DET_ID)||' &d');
  7256. utl_file.put_line(handle,n(dd.FROM_SERIAL)||'&d'||n(dd.TO_SERIAL)||' &d');
  7257. utl_file.put_line(handle,n(dd.WSN_QTY)||'&d'||n(dd.WSN_CRE_DATE)||' &el');
  7258.  
  7259. if :r_flag is not null then
  7260. :r_error := 1;
  7261. end if;
  7262. end loop;
  7263. utl_file.put_line(handle,'&et');
  7264.  
  7265. if :r_error = 1 then
  7266. utl_file.put_line(handle,'&f &b <a NAME="WSNERR">Error List:</a> &eb &f');
  7267. for i in 1..1
  7268. loop
  7269. if msg(i).flag = '1' then
  7270. utl_file.put_line(handle,msg(i).descrip||'&f');
  7271. end if;
  7272. end loop;
  7273. end if;
  7274.  
  7275. end;
  7276.  
  7277. UTL_FILE.PUT_LINE(handle,'&et ');
  7278.  
  7279. UTL_FILE.PUT_LINE(handle,'&f &f WSH_FREIGHT_COSTS (CST) &f');
  7280. 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');
  7281.  
  7282. Declare
  7283. cursor w_fre_cst is
  7284. select distinct
  7285. wfc.FREIGHT_COST_ID FRT_CST_ID,
  7286. wfc.FREIGHT_COST_TYPE FRT_NAME,
  7287. lkp.Meaning FRT_TYPE,
  7288. 'DELIV_DETAIL' FRT_LEVEL,
  7289. wfc.QUANTITY QTY,
  7290. wfc.UNIT_AMOUNT UNIT_AMT,
  7291. wfc.TOTAL_AMOUNT TOT_AMT,
  7292. wfc.DELIVERY_DETAIL_ID ENTITY_ID
  7293. from wsh_freight_costs_v wfc,
  7294. wsh_freight_cost_types wft,
  7295. fnd_lookup_values lkp,
  7296. OE_ORDER_LINES LIN,
  7297. WSH_DELIVERY_DETAILS DET
  7298. WHERE
  7299. wfc.freight_cost_type_id = wft.freight_cost_type_id AND
  7300. wft.freight_cost_type_code = lkp.lookup_code AND
  7301. lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
  7302. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7303. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7304. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7305. LIN.TOP_MODEL_LINE_ID,
  7306. LIN.ATO_LINE_ID,
  7307. LIN.LINK_TO_LINE_ID,
  7308. LIN.REFERENCE_LINE_ID,
  7309. LIN.SERVICE_REFERENCE_LINE_ID) AND
  7310. WFC.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID
  7311. UNION ALL
  7312. select distinct
  7313. wfc.FREIGHT_COST_ID FRT_CST_ID,
  7314. wfc.FREIGHT_COST_TYPE FRT_NAME,
  7315. lkp.Meaning FRT_TYPE,
  7316. 'DELIVERY' FRT_LEVEL,
  7317. wfc.QUANTITY QTY,
  7318. wfc.UNIT_AMOUNT UNIT_AMT,
  7319. wfc.TOTAL_AMOUNT TOT_AMT,
  7320. wfc.DELIVERY_ID ENTITY_ID
  7321. from wsh_freight_costs_v wfc,
  7322. wsh_freight_cost_types wft,
  7323. fnd_lookup_values lkp,
  7324. OE_ORDER_LINES LIN,
  7325. WSH_DELIVERY_DETAILS DET,
  7326. --WSH_NEW_DELIVERIES DEL,
  7327. --WSH_DELIVERY_LEGS LEG,
  7328. --WSH_TRIP_STOPS STP,
  7329. WSH_DELIVERY_ASSIGNMENTS ASG
  7330. WHERE
  7331. wfc.freight_cost_type_id = wft.freight_cost_type_id AND
  7332. wft.freight_cost_type_code = lkp.lookup_code AND
  7333. lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
  7334. --DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7335. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7336. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7337. -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7338. -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7339. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7340. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7341. LIN.TOP_MODEL_LINE_ID,
  7342. LIN.ATO_LINE_ID,
  7343. LIN.LINK_TO_LINE_ID,
  7344. LIN.REFERENCE_LINE_ID,
  7345. LIN.SERVICE_REFERENCE_LINE_ID) AND
  7346. WFC.DELIVERY_ID = ASG.DELIVERY_ID AND
  7347. WFC.DELIVERY_DETAIL_ID IS NULL
  7348. UNION ALL
  7349. select distinct
  7350. wfc.FREIGHT_COST_ID FRT_CST_ID,
  7351. wfc.FREIGHT_COST_TYPE FRT_NAME,
  7352. lkp.Meaning FRT_TYPE,
  7353. 'LEG' FRT_LEVEL,
  7354. wfc.QUANTITY QTY,
  7355. wfc.UNIT_AMOUNT UNIT_AMT,
  7356. wfc.TOTAL_AMOUNT TOT_AMT,
  7357. wfc.DELIVERY_LEG_ID ENTITY_ID
  7358. from wsh_freight_costs_v wfc,
  7359. wsh_freight_cost_types wft,
  7360. fnd_lookup_values lkp,
  7361. OE_ORDER_LINES LIN,
  7362. WSH_DELIVERY_DETAILS DET,
  7363. WSH_NEW_DELIVERIES DEL,
  7364. WSH_DELIVERY_LEGS LEG,
  7365. --WSH_TRIP_STOPS STP,
  7366. WSH_DELIVERY_ASSIGNMENTS ASG
  7367. WHERE
  7368. wfc.freight_cost_type_id = wft.freight_cost_type_id AND
  7369. wft.freight_cost_type_code = lkp.lookup_code AND
  7370. lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
  7371. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7372. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7373. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7374. -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7375. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7376. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7377. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7378. LIN.TOP_MODEL_LINE_ID,
  7379. LIN.ATO_LINE_ID,
  7380. LIN.LINK_TO_LINE_ID,
  7381. LIN.REFERENCE_LINE_ID,
  7382. LIN.SERVICE_REFERENCE_LINE_ID) AND
  7383. WFC.DELIVERY_LEG_ID = LEG.DELIVERY_LEG_ID AND
  7384. WFC.DELIVERY_DETAIL_ID IS NULL AND
  7385. WFC.DELIVERY_ID IS NULL
  7386. UNION ALL
  7387. select distinct
  7388. wfc.FREIGHT_COST_ID FRT_CST_ID,
  7389. wfc.FREIGHT_COST_TYPE FRT_NAME,
  7390. lkp.Meaning FRT_TYPE,
  7391. 'STOP' FRT_LEVEL,
  7392. wfc.QUANTITY QTY,
  7393. wfc.UNIT_AMOUNT UNIT_AMT,
  7394. wfc.TOTAL_AMOUNT TOT_AMT,
  7395. wfc.STOP_ID ENTITY_ID
  7396. from wsh_freight_costs_v wfc,
  7397. wsh_freight_cost_types wft,
  7398. fnd_lookup_values lkp,
  7399. OE_ORDER_LINES LIN,
  7400. WSH_DELIVERY_DETAILS DET,
  7401. WSH_NEW_DELIVERIES DEL,
  7402. WSH_DELIVERY_LEGS LEG,
  7403. WSH_TRIP_STOPS STP,
  7404. WSH_DELIVERY_ASSIGNMENTS ASG
  7405. WHERE
  7406. wfc.freight_cost_type_id = wft.freight_cost_type_id AND
  7407. wft.freight_cost_type_code = lkp.lookup_code AND
  7408. lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
  7409. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7410. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7411. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7412. STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7413. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7414. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7415. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7416. LIN.TOP_MODEL_LINE_ID,
  7417. LIN.ATO_LINE_ID,
  7418. LIN.LINK_TO_LINE_ID,
  7419. LIN.REFERENCE_LINE_ID,
  7420. LIN.SERVICE_REFERENCE_LINE_ID) AND
  7421. WFC.STOP_ID = STP.STOP_ID AND
  7422. WFC.DELIVERY_DETAIL_ID IS NULL AND
  7423. WFC.DELIVERY_ID IS NULL AND
  7424. WFC.DELIVERY_LEG_ID IS NULL
  7425. UNION ALL
  7426. select distinct
  7427. wfc.FREIGHT_COST_ID FRT_CST_ID,
  7428. wfc.FREIGHT_COST_TYPE FRT_NAME,
  7429. lkp.Meaning FRT_TYPE,
  7430. 'TRIP' FRT_LEVEL,
  7431. wfc.QUANTITY QTY,
  7432. wfc.UNIT_AMOUNT UNIT_AMT,
  7433. wfc.TOTAL_AMOUNT TOT_AMT,
  7434. wfc.TRIP_ID ENTITY_ID
  7435. from wsh_freight_costs_v wfc,
  7436. wsh_freight_cost_types wft,
  7437. fnd_lookup_values lkp,
  7438. OE_ORDER_LINES LIN,
  7439. WSH_DELIVERY_DETAILS DET,
  7440. WSH_NEW_DELIVERIES DEL,
  7441. WSH_DELIVERY_LEGS LEG,
  7442. WSH_TRIP_STOPS STP,
  7443. WSH_DELIVERY_ASSIGNMENTS ASG
  7444. WHERE
  7445. wfc.freight_cost_type_id = wft.freight_cost_type_id AND
  7446. wft.freight_cost_type_code = lkp.lookup_code AND
  7447. lkp.lookup_type = 'FREIGHT_COST_TYPE' AND
  7448. DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7449. ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7450. DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7451. STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7452. LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7453. LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7454. NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7455. LIN.TOP_MODEL_LINE_ID,
  7456. LIN.ATO_LINE_ID,
  7457. LIN.LINK_TO_LINE_ID,
  7458. LIN.REFERENCE_LINE_ID,
  7459. LIN.SERVICE_REFERENCE_LINE_ID) AND
  7460. WFC.TRIP_ID = STP.TRIP_ID AND
  7461. WFC.DELIVERY_DETAIL_ID IS NULL AND
  7462. WFC.DELIVERY_ID IS NULL AND
  7463. WFC.STOP_ID IS NULL AND
  7464. WFC.DELIVERY_LEG_ID IS NULL;
  7465.  
  7466. begin
  7467. for wfc in w_fre_cst
  7468. loop
  7469. utl_file.put_line(handle,'&sld'||n(wfc.FRT_CST_ID)||'&d'||n(wfc.FRT_NAME)||'&d');
  7470. utl_file.put_line(handle,n(wfc.FRT_TYPE)||'&d'||n(wfc.FRT_LEVEL)||'&d');
  7471. utl_file.put_line(handle,n(wfc.QTY)||'&d'||n(wfc.UNIT_AMT)||'&d');
  7472. utl_file.put_line(handle,n(wfc.TOT_AMT)||'&d'||n(wfc.ENTITY_ID)||'&el');
  7473. end loop;
  7474. end;
  7475.  
  7476. UTL_FILE.PUT_LINE(handle,'&et');
  7477.  
  7478. -- Output for table WSH_EXCEPTIONS being commented by Dev. request to improve performance
  7479. --
  7480. --UTL_FILE.PUT_LINE(handle,'&f &f WSH_EXCEPTIONS (EXC) &f
  7481. --UTL_FILE.PUT_LINE(handle,'NOTE: THESE ARE BASED STRICTLY ON REQUEST_ID, SO MESSAGES MAY NOT APPLY TO THIS SHIPPING TRANSACTION &f
  7482. --
  7483. --column EXCEPT_NAME format a20;
  7484. --column EXC_STATUS format a18;
  7485. --column ERROR_MSG format a30;
  7486. --
  7487. --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
  7488. --UTL_FILE.PUT_LINE(handle,'ERROR_MSG &dh REQUEST_ID &dh MESSAGE &eh
  7489. --
  7490. --select distinct '&sld',
  7491. -- EXCEPTION_ID EXCEPT_ID,
  7492. -- EXCEPTION_NAME EXCEPT_NAME,
  7493. -- SEVERITY SEV,
  7494. -- STATUS EXC_STATUS,
  7495. -- TRIP_ID TRIP_ID,
  7496. -- TRIP_STOP_ID STOP_ID,
  7497. -- DELIVERY_ID DELIV_ID,
  7498. -- DELIVERY_DETAIL_ID DEL_DET_ID,
  7499. -- ERROR_MESSAGE ERROR_MSG,
  7500. -- REQUEST_ID REQUEST_ID,
  7501. -- MESSAGE MESSAGE,'&el'
  7502. --FROM WSH_EXCEPTIONS EXC
  7503. --where STATUS <> 'NO_ACTION_REQUIRED'
  7504. -- and EXC.REQUEST_ID IN (
  7505. -- select DET.request_id
  7506. -- from OE_ORDER_LINES LIN,
  7507. -- WSH_DELIVERY_DETAILS DET
  7508. -- WHERE
  7509. -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7510. -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7511. -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7512. -- LIN.TOP_MODEL_LINE_ID,
  7513. -- LIN.ATO_LINE_ID,
  7514. -- LIN.LINK_TO_LINE_ID,
  7515. -- LIN.REFERENCE_LINE_ID,
  7516. -- LIN.SERVICE_REFERENCE_LINE_ID)
  7517. -- UNION ALL
  7518. -- select ASG.REQUEST_ID
  7519. -- from OE_ORDER_LINES LIN,
  7520. -- WSH_DELIVERY_DETAILS DET,
  7521. -- WSH_DELIVERY_ASSIGNMENTS ASG
  7522. -- WHERE
  7523. -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7524. -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7525. -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7526. -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7527. -- LIN.TOP_MODEL_LINE_ID,
  7528. -- LIN.ATO_LINE_ID,
  7529. -- LIN.LINK_TO_LINE_ID,
  7530. -- LIN.REFERENCE_LINE_ID,
  7531. -- LIN.SERVICE_REFERENCE_LINE_ID)
  7532. -- UNION ALL
  7533. -- select LEG.REQUEST_ID
  7534. -- from OE_ORDER_LINES LIN,
  7535. -- WSH_DELIVERY_DETAILS DET,
  7536. -- WSH_NEW_DELIVERIES DEL,
  7537. -- WSH_DELIVERY_LEGS LEG,
  7538. -- WSH_DELIVERY_ASSIGNMENTS ASG
  7539. -- WHERE
  7540. -- DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7541. -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7542. -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7543. -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7544. -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7545. -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7546. -- LIN.TOP_MODEL_LINE_ID,
  7547. -- LIN.ATO_LINE_ID,
  7548. -- LIN.LINK_TO_LINE_ID,
  7549. -- LIN.REFERENCE_LINE_ID,
  7550. -- LIN.SERVICE_REFERENCE_LINE_ID)
  7551. -- UNION ALL
  7552. -- select STP.REQUEST_ID
  7553. -- from OE_ORDER_LINES LIN,
  7554. -- WSH_DELIVERY_DETAILS DET,
  7555. -- WSH_NEW_DELIVERIES DEL, WSH_DELIVERY_LEGS LEG,
  7556. -- WSH_TRIP_STOPS STP,
  7557. -- WSH_DELIVERY_ASSIGNMENTS ASG
  7558. -- WHERE DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7559. -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7560. -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7561. -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7562. -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7563. -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7564. -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7565. -- LIN.TOP_MODEL_LINE_ID,
  7566. -- LIN.ATO_LINE_ID,
  7567. -- LIN.LINK_TO_LINE_ID,
  7568. -- LIN.REFERENCE_LINE_ID,
  7569. -- LIN.SERVICE_REFERENCE_LINE_ID)
  7570. -- UNION ALL
  7571. -- select TRP.REQUEST_ID
  7572. -- from OE_ORDER_LINES LIN,
  7573. -- WSH_DELIVERY_DETAILS DET,
  7574. -- WSH_NEW_DELIVERIES DEL,
  7575. -- WSH_DELIVERY_LEGS LEG,
  7576. -- WSH_TRIP_STOPS STP,
  7577. -- WSH_TRIPS TRP,
  7578. -- WSH_DELIVERY_ASSIGNMENTS ASG
  7579. -- WHERE DEL.DELIVERY_ID = ASG.DELIVERY_ID AND
  7580. -- ASG.DELIVERY_DETAIL_ID = DET.DELIVERY_DETAIL_ID AND
  7581. -- DET.SOURCE_LINE_ID = LIN.LINE_ID AND
  7582. -- STP.STOP_ID = LEG.PICK_UP_STOP_ID AND
  7583. -- TRP.TRIP_ID = STP.TRIP_ID AND
  7584. -- LEG.DELIVERY_ID = DEL.DELIVERY_ID AND
  7585. -- LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id) AND
  7586. -- NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  7587. -- LIN.TOP_MODEL_LINE_ID,
  7588. -- LIN.ATO_LINE_ID,
  7589. -- LIN.LINK_TO_LINE_ID,
  7590. -- LIN.REFERENCE_LINE_ID,
  7591. -- LIN.SERVICE_REFERENCE_LINE_ID)
  7592. --);
  7593. --
  7594.  
  7595. end if; -- :v_head_only
  7596.  
  7597. UTL_FILE.FCLOSE(handle);
  7598. end;
  7599. /
  7600.  
  7601. DECLARE
  7602. handle UTL_FILE.FILE_TYPE;
  7603. dirname varchar2(1000);
  7604. text varchar2(1000);
  7605.  
  7606. function n(v varchar2) return varchar2 is
  7607. begin
  7608. if v is null then
  7609. return '&sp';
  7610. else
  7611. return v;
  7612. end if;
  7613. end n;
  7614.  
  7615. begin
  7616. -- Append to output file
  7617. handle := UTL_FILE.FOPEN('&out_dir','&out_dir/&out_file','A',32000);
  7618. UTL_FILE.PUT_LINE(handle,'&et'); -- in case last one failed
  7619.  
  7620. If :v_head_only = 'N' then
  7621.  
  7622. if UPPER(nvl('&prt_wms','N')) = 'Y' then
  7623.  
  7624. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RULES"> WMS_RULES </a> &f');
  7625. UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh CREATE DATE &dh ORG_ID &dh TYPE CODE &dh NAME &dh ');
  7626. UTL_FILE.PUT_LINE(handle,'DESCRIPTION &dh QTY_FUNCT PARAM &dh ENABLED FLAG &dh USER FLAG &dh TYPE HRD_ID &dh ');
  7627. UTL_FILE.PUT_LINE(handle,'RULE WEIGHT &dh ATTR CATEG &dh MIN_PICK TASK &dh ALLOCAT MODE &dh WMS_ENABLED FLAG &eh ');
  7628.  
  7629. Declare cursor wms_r is
  7630. Select
  7631. WMSR.RULE_ID ruleid,
  7632. WMSR.CREATION_DATE credt,
  7633. WMSR.ORGANIZATION_ID orgid,
  7634. WMSR.TYPE_CODE typc,
  7635. WMSR.NAME nam,
  7636. WMSR.DESCRIPTION des,
  7637. WMSR.QTY_FUNCTION_PARAMETER_ID qty_funct,
  7638. WMSR.ENABLED_FLAG enabf,
  7639. WMSR.USER_DEFINED_FLAG userf,
  7640. WMSR.TYPE_HDR_ID typh,
  7641. WMSR.RULE_WEIGHT rulew,
  7642. WMSR.ATTRIBUTE_CATEGORY attrcat,
  7643. WMSR.MIN_PICK_TASKS_FLAG minpick,
  7644. WMSR.ALLOCATION_MODE_ID allom,
  7645. WMSR.WMS_ENABLED_FLAG wmsf
  7646. FROM WMS_RULES WMSR,
  7647. WSH_DELIVERY_DETAILS DET,
  7648. OE_ORDER_LINES LIN
  7649. where DET.SOURCE_LINE_ID = LIN.LINE_ID
  7650. and DET.SOURCE_CODE = 'OE'
  7651. and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
  7652. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
  7653.  
  7654. begin
  7655.  
  7656. for wms in wms_r
  7657. loop
  7658.  
  7659. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7660. null;
  7661. end if; -- do_analysis
  7662.  
  7663. -- Print line to Output file
  7664. utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
  7665. utl_file.put_line(handle,n(wms.credt)||' &d ');
  7666. utl_file.put_line(handle,n(wms.orgid)||' &d '||n(wms.typc)||' &d ');
  7667. utl_file.put_line(handle,n(wms.nam)||' &d '||n(wms.des)||' &d ');
  7668. utl_file.put_line(handle,n(wms.qty_funct)||' &d '||n(wms.enabf)||' &d ');
  7669. utl_file.put_line(handle,n(wms.userf)||' &d '||n(wms.typh)||' &d ');
  7670. utl_file.put_line(handle,n(wms.rulew)||' &d '||n(wms.attrcat)||' &d ');
  7671. utl_file.put_line(handle,n(wms.minpick)||' &d '||n(wms.allom)||' &d ');
  7672. utl_file.put_line(handle,n(wms.wmsf)||' &el ');
  7673.  
  7674. end loop;
  7675.  
  7676. end;
  7677.  
  7678. UTL_FILE.PUT_LINE(handle,'&et ');
  7679.  
  7680. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RULE_CONSISTENCIES"> WMS_RULE_CONSISTENCIES </a> &f');
  7681. UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh CONSISTENCY ID &dh PARAMETER ID &dh CREATE DATE &dh ATTR CATEG &eh ');
  7682.  
  7683. Declare cursor wms_rc is
  7684. Select WRC.RULE_ID ruleid,
  7685. WRC.CONSISTENCY_ID consid,
  7686. WRC.PARAMETER_ID paramid,
  7687. WRC.CREATION_DATE credt,
  7688. WRC.ATTRIBUTE_CATEGORY attrcat
  7689. FROM WMS_RULE_CONSISTENCIES WRC,
  7690. WMS_RULES WMSR,
  7691. WSH_DELIVERY_DETAILS DET,
  7692. OE_ORDER_LINES LIN
  7693. WHERE WRC.RULE_ID = WMSR.RULE_ID
  7694. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  7695. and DET.SOURCE_CODE = 'OE'
  7696. and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
  7697. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
  7698. ORDER BY 1;
  7699.  
  7700. begin
  7701.  
  7702. for wms in wms_rc
  7703. loop
  7704.  
  7705. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7706. null;
  7707. end if; -- do_analysis
  7708.  
  7709. -- Print line to Output file
  7710. utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
  7711. utl_file.put_line(handle,n(wms.consid)||' &d '||n(wms.paramid)||' &d ');
  7712. utl_file.put_line(handle,n(wms.credt)||' &d '||n(wms.attrcat)||' &el ');
  7713.  
  7714. end loop;
  7715.  
  7716. end;
  7717.  
  7718. UTL_FILE.PUT_LINE(handle,'&et ');
  7719.  
  7720. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_RESTRICTIONS"> WMS_RESTRICTIONS </a> &f');
  7721. UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh SEQUENCE NUMBER &dh CREATE DATE &dh PARAMETER ID &dh ');
  7722. UTL_FILE.PUT_LINE(handle,'OPERAND CODE &dh OPERAND TYPE &dh OPER_NUMBER CONSTANT &dh OPER_CHAR CONSTANT &dh ');
  7723. UTL_FILE.PUT_LINE(handle,'OPER_DATE CONSTANT &dh OPER PARAM_ID &dh OPER EXPRESSION &dh OPER_FLEX VALUE_SET &dh ');
  7724. UTL_FILE.PUT_LINE(handle,'LOGICAL OPER_CODE &dh BRACKET OPEN &dh BRACKET CLOSE &dh ATTR CATEG &eh ');
  7725.  
  7726. Declare cursor wms_res is
  7727. Select WRES.RULE_ID ruleid,
  7728. WRES.SEQUENCE_NUMBER seqno,
  7729. WRES.CREATION_DATE credt,
  7730. WRES.PARAMETER_ID paramid,
  7731. WRES.OPERATOR_CODE opcode,
  7732. WRES.OPERAND_TYPE_CODE optype,
  7733. WRES.OPERAND_CONSTANT_NUMBER opnum,
  7734. WRES.OPERAND_CONSTANT_CHARACTER opchar,
  7735. WRES.OPERAND_CONSTANT_DATE opdate,
  7736. WRES.OPERAND_PARAMETER_ID oppar,
  7737. WRES.OPERAND_EXPRESSION opexp,
  7738. WRES.OPERAND_FLEX_VALUE_SET_ID opfvs,
  7739. WRES.LOGICAL_OPERATOR_CODE logop,
  7740. WRES.BRACKET_OPEN braop,
  7741. WRES.BRACKET_CLOSE bracl,
  7742. WRES.ATTRIBUTE_CATEGORY attrcat
  7743. FROM WMS_RESTRICTIONS WRES,
  7744. WMS_RULES WMSR,
  7745. WSH_DELIVERY_DETAILS DET,
  7746. OE_ORDER_LINES LIN
  7747. WHERE WRES.RULE_ID = WMSR.RULE_ID
  7748. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  7749. and DET.SOURCE_CODE = 'OE'
  7750. and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
  7751. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
  7752. ORDER BY 1;
  7753.  
  7754. begin
  7755.  
  7756. for wms in wms_res
  7757. loop
  7758.  
  7759. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7760. null;
  7761. end if; -- do_analysis
  7762.  
  7763. -- Print line to Output file
  7764. utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
  7765. utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.credt)||' &d ');
  7766. utl_file.put_line(handle,n(wms.paramid)||' &d '||n(wms.opcode)||' &d ');
  7767. utl_file.put_line(handle,n(wms.optype)||' &d '||n(wms.opnum)||' &d ');
  7768. utl_file.put_line(handle,n(wms.opchar)||' &d '||n(wms.opdate)||' &d ');
  7769. utl_file.put_line(handle,n(wms.oppar)||' &d '||n(wms.opexp)||' &d ');
  7770. utl_file.put_line(handle,n(wms.opfvs)||' &d '||n(wms.logop)||' &d ');
  7771. utl_file.put_line(handle,n(wms.braop)||' &d '||n(wms.bracl)||' &d ');
  7772. utl_file.put_line(handle,n(wms.attrcat)||' &el ');
  7773.  
  7774. end loop;
  7775.  
  7776. end;
  7777.  
  7778. UTL_FILE.PUT_LINE(handle,'&et ');
  7779.  
  7780. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_SORT_CRITERIA"> WMS_SORT_CRITERIA </a> &f');
  7781. UTL_FILE.PUT_LINE(handle,'&std &sh RULE ID &dh SEQUENCE NUMBER &dh CREATE DATE &dh PARAMETER ID &dh ');
  7782. UTL_FILE.PUT_LINE(handle,'OPERAND CODE &dh ATTR CATEG &eh ');
  7783.  
  7784. Declare cursor wms_sc is
  7785. Select WSOC.RULE_ID ruleid,
  7786. WSOC.SEQUENCE_NUMBER seqno,
  7787. WSOC.CREATION_DATE credt,
  7788. WSOC.PARAMETER_ID paramid,
  7789. WSOC.ORDER_CODE opcode,
  7790. WSOC.ATTRIBUTE_CATEGORY attrcat
  7791. FROM WMS_SORT_CRITERIA WSOC,
  7792. WMS_RULES WMSR,
  7793. WSH_DELIVERY_DETAILS DET,
  7794. OE_ORDER_LINES LIN
  7795. WHERE WSOC.RULE_ID = WMSR.RULE_ID
  7796. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  7797. and DET.SOURCE_CODE = 'OE'
  7798. and WMSR.ORGANIZATION_ID = DET.ORGANIZATION_ID
  7799. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id)
  7800. ORDER BY 1;
  7801.  
  7802. begin
  7803.  
  7804. for wms in wms_sc
  7805. loop
  7806.  
  7807. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7808. null;
  7809. end if; -- do_analysis
  7810.  
  7811. -- Print line to Output file
  7812. utl_file.put_line(handle,'&sld '||n(wms.ruleid)||' &d ');
  7813. utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.credt)||' &d ');
  7814. utl_file.put_line(handle,n(wms.paramid)||' &d '||n(wms.opcode)||' &d ');
  7815. utl_file.put_line(handle,n(wms.attrcat)||' &el ');
  7816.  
  7817. end loop;
  7818.  
  7819. end;
  7820.  
  7821. UTL_FILE.PUT_LINE(handle,'&et ');
  7822.  
  7823. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="WMS_SELECTION_CRITERIA_TXN_V"> WMS_SELECTION_CRITERIA_TXN_V </a> &f');
  7824. UTL_FILE.PUT_LINE(handle,'&std &sh SEQUENCE NUMBER &dh RULE TYPE_CODE &dh RULE TYPE &dh RETURN TYPE &dh ');
  7825. UTL_FILE.PUT_LINE(handle,'RETURN TYPE_ID &dh RETURN TYPE_NAME &dh ENABLED FLAG &dh DATE TYPE_COD &dh ');
  7826. UTL_FILE.PUT_LINE(handle,'DATE TYPE_FROM &dh DATE TYPE_TO &dh DATE_TYPE LOOKUP_TYPE &dh EFFECTIVE FROM &dh ');
  7827. UTL_FILE.PUT_LINE(handle,'EFFECTIVE TO &dh FROM ORGANIZATION_ID &dh FROM ORGANIZATION_CODE &dh FROM SUBINVENT_NAME &dh ');
  7828. UTL_FILE.PUT_LINE(handle,'TO ORGANIZATION_ID &dh TO ORGANIZATION_CODE &dh TO SUBINVENT_NAME &dh CUSTOMER ID &dh ');
  7829. UTL_FILE.PUT_LINE(handle,'CUSTOMER NAME &dh FREIGHT CODE &dh FREIGHT CODE_NAME &dh INVENTORY ITEM_ID &dh ITEM &dh ');
  7830. UTL_FILE.PUT_LINE(handle,'ITEM TYPE &dh ITEM TYPE_NAME &dh ASSIGNMENT GROUP_ID &dh ABC CLASS_ID &dh ');
  7831. UTL_FILE.PUT_LINE(handle,'ABC_GROUP CLASS_NAME &dh CATEGORY SET_ID &dh CATEGORY ID &dh CATEGORY SET_NAME &dh ');
  7832. UTL_FILE.PUT_LINE(handle,'ORDER TYPE_ID &dh ORDER TYPE_NAME &dh VENDOR ID &dh VENDOR NAME &dh PROJECT ID &dh ');
  7833. UTL_FILE.PUT_LINE(handle,'PROJECT NAME &dh TASK ID &dh TASK NAME &dh USER ID &dh USER NAME &dh TRANSACTION ACTION_ID &dh ');
  7834. UTL_FILE.PUT_LINE(handle,'TRANSACTION ACTION_NAME &dh REASON ID &dh REASON NAME &dh TRANSACTION SOURCE_TYPE_ID &dh ');
  7835. UTL_FILE.PUT_LINE(handle,'TRANSACTION_SOURCE TYPE_NAME &dh TRANSACTION TYPE_ID &dh TRANSACTION TYPE_NAME &dh ');
  7836. UTL_FILE.PUT_LINE(handle,'UOM_CODE &dh UNIT_OF MEASURE &dh UOM CLASS &dh UOM_CLASS NAME &dh CREATION DATE &dh ');
  7837. UTL_FILE.PUT_LINE(handle,'WMS_ENABLED FLAG &dh LOCATION ID &dh LOCATION NAME &eh ');
  7838.  
  7839. Declare cursor wms_sct is
  7840. Select WSCT.STG_ASSIGNMENT_ID stgasg,
  7841. WSCT.SEQUENCE_NUMBER seqno,
  7842. WSCT.RULE_TYPE_CODE rultyco,
  7843. WSCT.RULE_TYPE rulty,
  7844. WSCT.RETURN_TYPE retty,
  7845. WSCT.RETURN_TYPE_ID rettyid,
  7846. WSCT.RETURN_TYPE_NAME rettyna,
  7847. WSCT.ENABLED_FLAG enaf,
  7848. WSCT.DATE_TYPE_CODE dttyco,
  7849. WSCT.DATE_TYPE_FROM dttyfr,
  7850. WSCT.DATE_TYPE_TO dttyto,
  7851. WSCT.DATE_TYPE_LOOKUP_TYPE dttylty,
  7852. WSCT.EFFECTIVE_FROM efffr,
  7853. WSCT.EFFECTIVE_TO effto,
  7854. WSCT.FROM_ORGANIZATION_ID frorgid,
  7855. WSCT.FROM_ORGANIZATION_CODE frorgco,
  7856. WSCT.FROM_SUBINVENTORY_NAME frsubna,
  7857. WSCT.TO_ORGANIZATION_ID toorgid,
  7858. WSCT.TO_ORGANIZATION_CODE toorgco,
  7859. WSCT.TO_SUBINVENTORY_NAME tosubna,
  7860. WSCT.CUSTOMER_ID cusid,
  7861. WSCT.CUSTOMER_NAME cusna,
  7862. WSCT.FREIGHT_CODE fcod,
  7863. WSCT.FREIGHT_CODE_NAME fcna,
  7864. WSCT.INVENTORY_ITEM_ID inviid,
  7865. WSCT.ITEM it,
  7866. WSCT.ITEM_TYPE ityp,
  7867. WSCT.ITEM_TYPE_NAME itypna,
  7868. WSCT.ASSIGNMENT_GROUP_ID assgid,
  7869. WSCT.ABC_CLASS_ID abcid,
  7870. WSCT.ABC_GROUP_CLASS_NAME abcna,
  7871. WSCT.CATEGORY_SET_ID csid,
  7872. WSCT.CATEGORY_ID catid,
  7873. WSCT.CATEGORY_SET_NAME csna,
  7874. WSCT.ORDER_TYPE_ID otid,
  7875. WSCT.ORDER_TYPE_NAME otna,
  7876. WSCT.VENDOR_ID vid,
  7877. WSCT.VENDOR_NAME vna,
  7878. WSCT.PROJECT_ID pid,
  7879. WSCT.PROJECT_NAME pna,
  7880. WSCT.TASK_ID tid,
  7881. WSCT.TASK_NAME tna,
  7882. WSCT.USER_ID usid,
  7883. WSCT.USER_NAME usna,
  7884. WSCT.TRANSACTION_ACTION_ID taid,
  7885. WSCT.TRANSACTION_ACTION_NAME tana,
  7886. WSCT.REASON_ID resid,
  7887. WSCT.REASON_NAME resna,
  7888. WSCT.TRANSACTION_SOURCE_TYPE_ID tstid,
  7889. WSCT.TRANSACTION_SOURCE_TYPE_NAME tstna,
  7890. WSCT.TRANSACTION_TYPE_ID ttid,
  7891. WSCT.TRANSACTION_TYPE_NAME ttna,
  7892. WSCT.UOM_CODE uomco,
  7893. WSCT.UNIT_OF_MEASURE uomna,
  7894. WSCT.UOM_CLASS uomcl,
  7895. WSCT.UOM_CLASS_NAME uomclna,
  7896. WSCT.CREATION_DATE credt,
  7897. WSCT.WMS_ENABLED_FLAG wmsef,
  7898. WSCT.LOCATION_ID locid,
  7899. WSCT.LOCATION_NAME locna
  7900. FROM WMS_SELECTION_CRITERIA_TXN_V WSCT,
  7901. WSH_DELIVERY_DETAILS DET,
  7902. OE_ORDER_LINES LIN
  7903. where DET.SOURCE_LINE_ID = LIN.LINE_ID
  7904. and DET.SOURCE_CODE = 'OE'
  7905. and WSCT.FROM_ORGANIZATION_ID = DET.ORGANIZATION_ID
  7906. and DET.SOURCE_HEADER_ID = nvl('&header_id_selected',:v_header_id);
  7907.  
  7908. begin
  7909.  
  7910. for wms in wms_sct
  7911. loop
  7912.  
  7913. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  7914. null;
  7915. end if; -- do_analysis
  7916.  
  7917. -- Print line to Output file
  7918. utl_file.put_line(handle,'&sld '||n(wms.stgasg)||' &d ');
  7919. utl_file.put_line(handle,n(wms.seqno)||' &d '||n(wms.rultyco)||' &d ');
  7920. utl_file.put_line(handle,n(wms.rulty)||' &d '||n(wms.retty)||' &d ');
  7921. utl_file.put_line(handle,n(wms.rettyid)||' &d '||n(wms.rettyna)||' &d ');
  7922. utl_file.put_line(handle,n(wms.enaf)||' &d '||n(wms.dttyco)||' &d ');
  7923. utl_file.put_line(handle,n(wms.dttyfr)||' &d '||n(wms.dttyto)||' &d ');
  7924. utl_file.put_line(handle,n(wms.dttylty)||' &d '||n(wms.efffr)||' &d ');
  7925. utl_file.put_line(handle,n(wms.effto)||' &d '||n(wms.frorgid)||' &d ');
  7926. utl_file.put_line(handle,n(wms.frorgco)||' &d '||n(wms.frsubna)||' &d ');
  7927. utl_file.put_line(handle,n(wms.toorgid)||' &d '||n(wms.toorgco)||' &d ');
  7928. utl_file.put_line(handle,n(wms.tosubna)||' &d '||n(wms.cusid)||' &d ');
  7929. utl_file.put_line(handle,n(wms.cusna)||' &d '||n(wms.fcod)||' &d ');
  7930. utl_file.put_line(handle,n(wms.fcna)||' &d '||n(wms.inviid)||' &d ');
  7931. utl_file.put_line(handle,n(wms.it)||' &d '||n(wms.ityp)||' &d ');
  7932. utl_file.put_line(handle,n(wms.itypna)||' &d '||n(wms.assgid)||' &d ');
  7933. utl_file.put_line(handle,n(wms.abcid)||' &d '||n(wms.abcna)||' &d ');
  7934. utl_file.put_line(handle,n(wms.csid)||' &d '||n(wms.catid)||' &d ');
  7935. utl_file.put_line(handle,n(wms.csna)||' &d '||n(wms.vid)||' &d ');
  7936. utl_file.put_line(handle,n(wms.otna)||' &d '||n(wms.pid)||' &d ');
  7937. utl_file.put_line(handle,n(wms.vna)||' &d '||n(wms.tid)||' &d ');
  7938. utl_file.put_line(handle,n(wms.pna)||' &d '||n(wms.usid)||' &d ');
  7939. utl_file.put_line(handle,n(wms.usna)||' &d '||n(wms.taid)||' &d ');
  7940. utl_file.put_line(handle,n(wms.tana)||' &d '||n(wms.resid)||' &d ');
  7941. utl_file.put_line(handle,n(wms.resna)||' &d '||n(wms.tstid)||' &d ');
  7942. utl_file.put_line(handle,n(wms.tstna)||' &d '||n(wms.ttid)||' &d ');
  7943. utl_file.put_line(handle,n(wms.ttna)||' &d '||n(wms.uomco)||' &d ');
  7944. utl_file.put_line(handle,n(wms.uomna)||' &d '||n(wms.uomcl)||' &d ');
  7945. utl_file.put_line(handle,n(wms.uomclna)||' &d '||n(wms.credt)||' &d ');
  7946. utl_file.put_line(handle,n(wms.wmsef)||' &d '||n(wms.locid)||' &d ');
  7947. utl_file.put_line(handle,n(wms.locna)||' &el ');
  7948.  
  7949. end loop;
  7950.  
  7951. end;
  7952.  
  7953. UTL_FILE.PUT_LINE(handle,'&et ');
  7954.  
  7955. end if; --prt_wms
  7956.  
  7957. if UPPER(nvl('&prt_inv','Y')) = 'Y' then
  7958.  
  7959. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_TRANSACTIONS_INTERFACE"> MTL_TRANSACTIONS_INTERFACE (MTI) </a> <a HREF="#MTI">Column Definitions</a> &f');
  7960. 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 ');
  7961. 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 ');
  7962. UTL_FILE.PUT_LINE(handle,'ERROR CODE &dh ERROR EXPLANATION &dh SECONDARY UOM_CODE &dh SECONDARY TRANS_QTY &DH ');
  7963. UTL_FILE.PUT_LINE(handle,'ACCOUNT PERIOD_ID &dh PERRIOD NAME &dh PERIOD OPEN &dh PERIOD START_DT &dh PERIOD CLOSE_DT ');
  7964. UTL_FILE.PUT_LINE(handle,'&dh SCHEDULE CLOSE_DT &eh');
  7965.  
  7966. Declare
  7967. cursor mtl_trx_int is
  7968. SELECT
  7969. TMP.TRANSACTION_INTERFACE_ID TXN_ID,
  7970. to_char(LIN.line_number) ||
  7971. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  7972. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  7973. decode(LIN.component_number, null, null,
  7974. decode(LIN.option_number, null, '.',null)||
  7975. '.'||to_char(LIN.component_number))||
  7976. decode(LIN.service_number,null,null,
  7977. decode(LIN.component_number, null, '.' , null) ||
  7978. decode(LIN.option_number, null, '.', null ) ||
  7979. '.'|| to_char(LIN.service_number)) LINE,
  7980. LIN.LINE_ID LINE_ID,
  7981. DET.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
  7982. ITM.SEGMENT1 ITEM,
  7983. TMP.PICKING_LINE_ID PICK_LN_ID,
  7984. decode(TMP.TRANSACTION_TYPE_ID,
  7985. 52,'52-Stage Trans',
  7986. 33,'33-SO Issue',
  7987. 15,'15-RMA Receipt',
  7988. 18,'18-PO Receipt',
  7989. TMP.TRANSACTION_TYPE_ID||'-Unknown') TXN_TYPE,
  7990. TMP.TRANSACTION_DATE TXN_DATE,
  7991. TMP.PRIMARY_QUANTITY PRM_Q,
  7992. TMP.SUBINVENTORY_CODE FROM_SUB,
  7993. TMP.LOCATOR_ID FROM_LOC_ID,
  7994. TMP.PROCESS_FLAG PROCESS,
  7995. TMP.LOCK_FLAG LCK,
  7996. TMP.TRANSACTION_MODE TRANS_MODE,
  7997. TMP.CONTENT_LPN_ID LPN_ID,
  7998. TMP.ERROR_CODE ERROR_CODE,
  7999. TMP.ERROR_EXPLANATION ERROR_EXPL,
  8000. TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8001. TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8002. TMP.ACCT_PERIOD_ID ACCT_PER,
  8003. OAC.period_name per_name,
  8004. OAC.open_flag open_fl,
  8005. to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
  8006. to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
  8007. to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
  8008. FROM
  8009. MTL_TRANSACTIONS_INTERFACE TMP,
  8010. WSH_DELIVERY_DETAILS DET,
  8011. OE_ORDER_LINES LIN,
  8012. MTL_SYSTEM_ITEMS ITM,
  8013. ORG_ACCT_PERIODS OAC
  8014. WHERE
  8015. TMP.SOURCE_LINE_ID = LIN.LINE_ID
  8016. and LIN.LINE_CATEGORY_CODE = 'ORDER'
  8017. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  8018. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  8019. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  8020. and TMP.PICKING_LINE_ID = DET.DELIVERY_DETAIL_ID(+)
  8021. and TMP.ACCT_PERIOD_ID = OAC.acct_period_id
  8022. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8023. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8024. LIN.TOP_MODEL_LINE_ID,
  8025. LIN.ATO_LINE_ID,
  8026. LIN.LINK_TO_LINE_ID,
  8027. LIN.REFERENCE_LINE_ID,
  8028. LIN.SERVICE_REFERENCE_LINE_ID)
  8029. UNION ALL
  8030. SELECT
  8031. TMP.TRANSACTION_INTERFACE_ID TXN_ID,
  8032. to_char(LIN.line_number) ||
  8033. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8034. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8035. decode(LIN.component_number, null, null,
  8036. decode(LIN.option_number, null, '.',null)||
  8037. '.'||to_char(LIN.component_number))||
  8038. decode(LIN.service_number,null,null,
  8039. decode(LIN.component_number, null, '.' , null) ||
  8040. decode(LIN.option_number, null, '.', null ) ||
  8041. '.'|| to_char(LIN.service_number)) LINE,
  8042. LIN.LINE_ID LINE_ID,
  8043. DET.DELIVERY_DETAIL_ID DEL_DETAIL_ID,
  8044. ITM.SEGMENT1 ITEM,
  8045. TMP.PICKING_LINE_ID PICK_LN_ID,
  8046. decode(TMP.TRANSACTION_TYPE_ID,
  8047. 52,'Stage Trans',
  8048. 33,'SO Issue',
  8049. 15,'RMA Receipt',
  8050. 18,'PO Receipt',
  8051. TMP.TRANSACTION_TYPE_ID) TXN_TYPE,
  8052. TMP.TRANSACTION_DATE TXN_DATE,
  8053. TMP.PRIMARY_QUANTITY PRM_Q,
  8054. TMP.SUBINVENTORY_CODE FROM_SUB,
  8055. TMP.LOCATOR_ID FROM_LOC_ID,
  8056. TMP.PROCESS_FLAG PROCESS,
  8057. TMP.LOCK_FLAG LCK,
  8058. TMP.TRANSACTION_MODE TRANS_MODE,
  8059. TMP.CONTENT_LPN_ID LPN_ID,
  8060. TMP.ERROR_CODE ERROR_CODE,
  8061. TMP.ERROR_EXPLANATION ERROR_EXPL,
  8062. TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8063. TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8064. TMP.ACCT_PERIOD_ID ACCT_PER,
  8065. OAC.period_name per_name,
  8066. OAC.open_flag open_fl,
  8067. to_char(oac.period_start_date,'DD-MON-RR_HH24:MI:SS') per_sd,
  8068. to_char(oac.period_close_date,'DD-MON-RR_HH24:MI:SS') per_cd,
  8069. to_char(oac.schedule_close_date,'DD-MON-RR_HH24:MI:SS') sch_cd
  8070. FROM
  8071. MTL_TRANSACTIONS_INTERFACE TMP,
  8072. WSH_DELIVERY_DETAILS DET,
  8073. OE_ORDER_LINES LIN,
  8074. MTL_SYSTEM_ITEMS ITM,
  8075. ORG_ACCT_PERIODS OAC
  8076. WHERE
  8077. TMP.TRX_SOURCE_LINE_ID = LIN.LINE_ID
  8078. and LIN.LINE_CATEGORY_CODE = 'RETURN'
  8079. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  8080. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  8081. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  8082. and TMP.PICKING_LINE_ID = DET.DELIVERY_DETAIL_ID(+)
  8083. and TMP.ACCT_PERIOD_ID = OAC.acct_period_id
  8084. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8085. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8086. LIN.TOP_MODEL_LINE_ID,
  8087. LIN.ATO_LINE_ID,
  8088. LIN.LINK_TO_LINE_ID,
  8089. LIN.REFERENCE_LINE_ID,
  8090. LIN.SERVICE_REFERENCE_LINE_ID);
  8091.  
  8092. begin
  8093. for mti in mtl_trx_int
  8094. loop
  8095. utl_file.put_line(handle,'&sld'||n(mti.TXN_ID)||' &d ');
  8096. utl_file.put_line(handle,n(mti.LINE)||' &d '||n(mti.LINE_ID)||' &d ');
  8097. utl_file.put_line(handle,n(mti.DEL_DETAIL_ID)||' &d'||n(mti.ITEM)||' &d ');
  8098. utl_file.put_line(handle,n(mti.PICK_LN_ID)||' &d'||n(mti.TXN_TYPE)||' &d ');
  8099. utl_file.put_line(handle,n(mti.TXN_DATE)||' &d ');
  8100. utl_file.put_line(handle,n(mti.PRM_Q)||' &d '||n(mti.FROM_SUB)||' &d ');
  8101. utl_file.put_line(handle,n(mti.FROM_LOC_ID)||' &d '||n(mti.PROCESS)||' &d ');
  8102. utl_file.put_line(handle,n(mti.LCK)||' &d '||n(mti.TRANS_MODE)||' &d ');
  8103. utl_file.put_line(handle,n(mti.LPN_ID)||' &d '||n(mti.ERROR_CODE)||' &d ');
  8104. utl_file.put_line(handle,n(mti.ERROR_EXPL)||' &d ');
  8105. utl_file.put_line(handle,n(mti.SEC_UOM_CODE)||' &d '||n(mti.SEC_TRN_QTY)||' &d ');
  8106. utl_file.put_line(handle,n(mti.ACCT_PER)||' &d '||n(mti.PER_NAME)||' &d ');
  8107. utl_file.put_line(handle,n(mti.open_fl)||' &d '||n(mti.per_sd)||' &d ');
  8108. utl_file.put_line(handle,n(mti.per_cd)||' &d '||n(mti.sch_cd)||' &el');
  8109. end loop;
  8110. end;
  8111.  
  8112. UTL_FILE.PUT_LINE(handle,'&et');
  8113.  
  8114. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_MATERIAL_TRANSACTIONS_TEMP"> MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES </a> ');
  8115. UTL_FILE.PUT_LINE(handle,'<a HREF="#TMP">Column Definitions</a> &f');
  8116. 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 ');
  8117. UTL_FILE.PUT_LINE(handle,'&dh PRM_Q &dh FROM_SUB &dh FROM_LOC_ID &dh ');
  8118. 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 ');
  8119. UTL_FILE.PUT_LINE(handle,'SECONDARY UOM_CODE &dh SECONDARY TRANS_QTY &dh LOT_NUM &dh LOT PRM_QTY &dh LOT SEC_QTY &dh ');
  8120. UTL_FILE.PUT_LINE(handle,'LOT_CAL SEC_QTY &eh');
  8121.  
  8122. Declare
  8123. cursor mtl_trx_tmp is
  8124. SELECT distinct
  8125. TMP.TRANSACTION_TEMP_ID MTL_TRNS_ID,
  8126. TMP.TRANSACTION_DATE MTL_TRNS_DATE,
  8127. TMP.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
  8128. --'UNPICKED' LINE_STATUS,
  8129. TMP.PICK_SLIP_NUMBER PICK_SLIP,
  8130. to_char(LIN.line_number) ||
  8131. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8132. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8133. decode(LIN.component_number, null, null,
  8134. decode(LIN.option_number, null, '.',null)||
  8135. '.'||to_char(LIN.component_number))||
  8136. decode(LIN.service_number,null,null,
  8137. decode(LIN.component_number, null, '.' , null) ||
  8138. decode(LIN.option_number, null, '.', null ) ||
  8139. '.'|| to_char(LIN.service_number)) LINE,
  8140. LIN.LINE_ID LINE_ID,
  8141. --DET.DELIVERY_DETAIL_ID DET_DELIVERY_ID,
  8142. ITM.SEGMENT1 ITEM,
  8143. TMP.PRIMARY_QUANTITY PRM_Q,
  8144. TMP.SUBINVENTORY_CODE FROM_SUB,
  8145. TMP.LOCATOR_ID FROM_LOC_ID,
  8146. TMP.TRANSFER_SUBINVENTORY TO_SUB,
  8147. TMP.TRANSFER_TO_LOCATION TO_LOC_ID,
  8148. TMP.PROCESS_FLAG PROCESS,
  8149. TMP.LOCK_FLAG LCK,
  8150. TMP.TRANSACTION_MODE TRANS_MODE,
  8151. TMP.ERROR_CODE ERROR_CODE,
  8152. TMP.ERROR_EXPLANATION ERROR_EXPL,
  8153. TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8154. TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8155. lot.lot_number lot_num,
  8156. lot.primary_quantity lot_prm_q,
  8157. lot.secondary_quantity lot_sec_q,
  8158. inv_convert.inv_um_convert(
  8159. tmp.inventory_item_id,
  8160. lot.lot_number,
  8161. tmp.organization_id,
  8162. 5,
  8163. lot.primary_quantity,
  8164. itm.primary_uom_code,
  8165. tmp.secondary_uom_code,
  8166. null, null) lot_cal_sec_q
  8167. FROM
  8168. MTL_MATERIAL_TRANSACTIONS_TEMP TMP,
  8169. -- WSH_DELIVERY_DETAILS DET,
  8170. OE_ORDER_LINES LIN,
  8171. MTL_SYSTEM_ITEMS ITM,
  8172. mtl_transaction_lots_temp lot
  8173. WHERE
  8174. TMP.DEMAND_SOURCE_LINE = LIN.LINE_ID
  8175. and LIN.LINE_CATEGORY_CODE = 'ORDER'
  8176. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  8177. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  8178. and lot.transaction_temp_id (+)= tmp.transaction_temp_id
  8179. -- and TMP.DEMAND_SOURCE_LINE = DET.SOURCE_LINE_ID(+) - Creates duplicates for lines with multiple Del_details.
  8180. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8181. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8182. LIN.TOP_MODEL_LINE_ID,
  8183. LIN.ATO_LINE_ID,
  8184. LIN.LINK_TO_LINE_ID,
  8185. LIN.REFERENCE_LINE_ID,
  8186. LIN.SERVICE_REFERENCE_LINE_ID)
  8187. UNION ALL
  8188. SELECT distinct
  8189. TMP.TRANSACTION_TEMP_ID MTL_TRNS_ID,
  8190. TMP.TRANSACTION_DATE MTL_TRNS_DATE,
  8191. TMP.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
  8192. --'UNPICKED' LINE_STATUS,
  8193. TMP.PICK_SLIP_NUMBER PICK_SLIP,
  8194. to_char(LIN.line_number) ||
  8195. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8196. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8197. decode(LIN.component_number, null, null,
  8198. decode(LIN.option_number, null, '.',null)||
  8199. '.'||to_char(LIN.component_number))||
  8200. decode(LIN.service_number,null,null,
  8201. decode(LIN.component_number, null, '.' , null) ||
  8202. decode(LIN.option_number, null, '.', null ) ||
  8203. '.'|| to_char(LIN.service_number)) LINE,
  8204. LIN.LINE_ID LINE_ID,
  8205. -- DET.DELIVERY_DETAIL_ID DET_DELIVERY_ID,
  8206. ITM.SEGMENT1 ITEM,
  8207. TMP.PRIMARY_QUANTITY PRM_Q,
  8208. TMP.SUBINVENTORY_CODE FROM_SUB,
  8209. TMP.LOCATOR_ID FROM_LOC_ID,
  8210. TMP.TRANSFER_SUBINVENTORY TO_SUB,
  8211. TMP.TRANSFER_TO_LOCATION TO_LOC_ID,
  8212. TMP.PROCESS_FLAG PROCESS,
  8213. TMP.LOCK_FLAG LCK,
  8214. TMP.TRANSACTION_MODE TRANS_MODE,
  8215. TMP.ERROR_CODE ERROR_CODE,
  8216. TMP.ERROR_EXPLANATION ERROR_EXPL,
  8217. TMP.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8218. TMP.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8219. ' ' lot_num,
  8220. 0 lot_prm_q,
  8221. 0 lot_sec_q,
  8222. 0 lot_cal_sec_q
  8223. FROM
  8224. MTL_MATERIAL_TRANSACTIONS_TEMP TMP,
  8225. -- WSH_DELIVERY_DETAILS DET,
  8226. OE_ORDER_LINES LIN,
  8227. MTL_SYSTEM_ITEMS ITM
  8228. WHERE
  8229. TMP.TRX_SOURCE_LINE_ID = LIN.LINE_ID
  8230. and LIN.LINE_CATEGORY_CODE = 'RETURN'
  8231. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  8232. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  8233. -- and TMP.DEMAND_SOURCE_LINE = DET.SOURCE_LINE_ID(+)
  8234. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8235. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8236. LIN.TOP_MODEL_LINE_ID,
  8237. LIN.ATO_LINE_ID,
  8238. LIN.LINK_TO_LINE_ID,
  8239. LIN.REFERENCE_LINE_ID,
  8240. LIN.SERVICE_REFERENCE_LINE_ID);
  8241.  
  8242. begin
  8243. for mtt in mtl_trx_tmp
  8244. loop
  8245. utl_file.put_line(handle,'&sld'||n(mtt.MTL_TRNS_ID)||'&d'||n(mtt.MTL_TRNS_DATE)||'&d');
  8246. utl_file.put_line(handle,n(mtt.MOVE_LINE_ID)||'&d');
  8247. utl_file.put_line(handle,n(mtt.PICK_SLIP)||'&d'||n(mtt.LINE)||'&d');
  8248. utl_file.put_line(handle,n(mtt.LINE_ID)||'&d'||n(mtt.ITEM)||'&d');
  8249. utl_file.put_line(handle,n(mtt.PRM_Q)||'&d'||n(mtt.FROM_SUB)||'&d');
  8250. utl_file.put_line(handle,n(mtt.FROM_LOC_ID)||'&d'||n(mtt.TO_SUB)||'&d');
  8251. utl_file.put_line(handle,n(mtt.TO_LOC_ID)||'&d'||n(mtt.PROCESS)||'&d');
  8252. utl_file.put_line(handle,n(mtt.LCK)||'&d'||n(mtt.TRANS_MODE)||'&d');
  8253. utl_file.put_line(handle,n(mtt.ERROR_CODE)||'&d'||n(mtt.ERROR_EXPL)||'&d ');
  8254. utl_file.put_line(handle,n(mtt.SEC_UOM_CODE)||'&d'||n(mtt.SEC_TRN_QTY)||'&d');
  8255. utl_file.put_line(handle,n(mtt.LOT_NUM)||'&d'||n(mtt.LOT_PRM_Q)||'&d');
  8256. utl_file.put_line(handle,n(mtt.LOT_SEC_Q)||'&d'||n(mtt.LOT_CAL_SEC_Q)||'&el');
  8257. end loop;
  8258. end;
  8259. UTL_FILE.PUT_LINE(handle,'&et ');
  8260.  
  8261. -- This is commented out because it runs slowly without an index
  8262. --<do not run> CREATE INDEX MTL_MATL_TRANS_777
  8263. --<do not run> ON INV.MTL_MATERIAL_TRANSACTIONS
  8264. --<do not run> (trx_source_line_id);
  8265.  
  8266. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_MATERIAL_TRANSACTIONS"> MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES </a>');
  8267. UTL_FILE.PUT_LINE(handle,'<a HREF="#TRN">Column Definitions</a> &f');
  8268. UTL_FILE.PUT_LINE(handle,'&std &sh WARNING &dh MTL_TRNS_ID &dh TRANSACTION DATE &dh MOVE_LINE_ID &dh TRANS_TYPE &dh ');
  8269. UTL_FILE.PUT_LINE(handle,'PICK_SLIP &dh LINE &dh LINE_ID &dh PRM_Q &dh');
  8270. 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 ');
  8271. 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');
  8272.  
  8273. declare
  8274. cursor Mtl_trans is
  8275. SELECT
  8276. TRN.TRANSACTION_ID MTL_TRNS_ID,
  8277. TRN.TRANSACTION_DATE MTL_TRNS_DATE,
  8278. TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
  8279. --to_char(TRN.TRANSACTION_TYPE_ID) || '=' ||
  8280. -- (select TYP.TRANSACTION_TYPE_NAME
  8281. -- from MTL_TRANSACTION_TYPES TYP
  8282. -- where TRN.TRANSACTION_TYPE_ID = TYP.TRANSACTION_TYPE_ID) TRANS_TYPE,
  8283. -- See header of this script for mapping other TRANSACTION_TYPE_ID's to their meaning
  8284. decode(TRN.TRANSACTION_TYPE_ID,
  8285. 52,'Stage Trans',
  8286. 53,'Stage Trans INT',
  8287. 33,'SO Issue',
  8288. 34,'SO Issue INT',
  8289. 15,'RMA Receipt',
  8290. 18,'PO Receipt',
  8291. 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
  8292. TRN.PICK_SLIP_NUMBER PICK_SLIP,
  8293. TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
  8294. TRN.TRX_SOURCE_LINE_ID LINE_ID,
  8295. TRN.PRIMARY_QUANTITY PRM_Q,
  8296. TRN.SUBINVENTORY_CODE FROM_SUB,
  8297. TRN.LOCATOR_ID FROM_LOC_ID,
  8298. TRN.TRANSFER_SUBINVENTORY TO_SUB,
  8299. TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
  8300. TRN.ORGANIZATION_ID ORG_ID,
  8301. TRN.PICKING_LINE_ID PICKING_LINE_ID,
  8302. TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8303. TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8304. lot.primary_quantity lot_prm_q,
  8305. lot.secondary_transaction_quantity lot_sec_q,
  8306. inv_convert.inv_um_convert(
  8307. lot.inventory_item_id,
  8308. lot.lot_number,
  8309. lot.organization_id,
  8310. 5,
  8311. lot.primary_quantity,
  8312. itm.primary_uom_code,
  8313. trn.secondary_uom_code,
  8314. null, null) lot_cal_sec_q
  8315. FROM
  8316. MTL_MATERIAL_TRANSACTIONS TRN,
  8317. MTL_SYSTEM_ITEMS ITM,
  8318. mtl_transaction_lot_numbers lot
  8319. WHERE
  8320. -- klr
  8321. (TRN.TRX_SOURCE_LINE_ID,TRN.ORGANIZATION_ID,TRN.INVENTORY_ITEM_ID) IN (SELECT DISTINCT LINE_ID,SHIP_FROM_ORG_ID,INVENTORY_ITEM_ID
  8322. FROM OE_ORDER_LINES LIN1
  8323. WHERE LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8324. and NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
  8325. LIN1.TOP_MODEL_LINE_ID,
  8326. LIN1.ATO_LINE_ID,
  8327. LIN1.LINK_TO_LINE_ID,
  8328. LIN1.REFERENCE_LINE_ID,
  8329. LIN1.SERVICE_REFERENCE_LINE_ID))
  8330. and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
  8331. and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
  8332. and lot.transaction_id (+) = trn.transaction_id
  8333. UNION ALL
  8334. SELECT /* DROP SHIP */
  8335. TRN.TRANSACTION_ID MTL_TRNS_ID,
  8336. TRN.TRANSACTION_DATE MTL_TRNS_DATE,
  8337. TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
  8338. decode(TRN.TRANSACTION_TYPE_ID,
  8339. 52,'Stage Trans',
  8340. 33,'SO Issue',
  8341. 15,'RMA Receipt',
  8342. 18,'PO Receipt',
  8343. 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
  8344. TRN.PICK_SLIP_NUMBER PICK_SLIP,
  8345. -- to_char(TRN.SOURCE_LINE_ID) LINE,
  8346. TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
  8347. TRN.TRX_SOURCE_LINE_ID LINE_ID,
  8348. TRN.PRIMARY_QUANTITY PRM_Q,
  8349. TRN.SUBINVENTORY_CODE FROM_SUB,
  8350. TRN.LOCATOR_ID FROM_LOC_ID,
  8351. TRN.TRANSFER_SUBINVENTORY TO_SUB,
  8352. TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
  8353. TRN.ORGANIZATION_ID ORG_ID,
  8354. TRN.PICKING_LINE_ID PICKING_LINE_ID,
  8355. TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8356. TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8357. 0 lot_prm_q, -- Only for OPM
  8358. 0 lot_sec_q, -- Only for OPM
  8359. 0 lot_cal_sec_q -- Only for OPM
  8360. FROM
  8361. MTL_MATERIAL_TRANSACTIONS TRN,
  8362. MTL_SYSTEM_ITEMS ITM,
  8363. OE_DROP_SHIP_SOURCES DRP,
  8364. PO_HEADERS_ALL POH
  8365. WHERE
  8366. TRN.TRANSACTION_TYPE_ID = 18 -- PO Receipt
  8367. and TRN.TRANSACTION_SOURCE_TYPE_ID = 1
  8368. and TRN.TRANSACTION_SOURCE_ID = POH.PO_HEADER_ID
  8369. and POH.PO_HEADER_ID = DRP.PO_HEADER_ID
  8370. and DRP.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8371. and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
  8372. and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
  8373. UNION ALL
  8374. SELECT /* PO receipt trx for ATO BUY ITEM */
  8375. TRN.TRANSACTION_ID MTL_TRNS_ID,
  8376. TRN.TRANSACTION_DATE MTL_TRNS_DATE,
  8377. TRN.MOVE_ORDER_LINE_ID MOVE_LINE_ID,
  8378. decode(TRN.TRANSACTION_TYPE_ID,
  8379. 52,'Stage Trans',
  8380. 33,'SO Issue',
  8381. 15,'RMA Receipt',
  8382. 18,'PO Receipt',
  8383. 'Invalid '||to_char(TRN.TRANSACTION_TYPE_ID)) TRANS_TYPE,
  8384. TRN.PICK_SLIP_NUMBER PICK_SLIP,
  8385. -- to_char(RES.DEMAND_SOURCE_LINE_ID) LINE,
  8386. TRN.TRX_SOURCE_LINE_ID TRX_SOURCE_LINE_ID,
  8387. TRN.TRX_SOURCE_LINE_ID LINE_ID,
  8388. TRN.PRIMARY_QUANTITY PRM_Q,
  8389. TRN.SUBINVENTORY_CODE FROM_SUB,
  8390. TRN.LOCATOR_ID FROM_LOC_ID,
  8391. TRN.TRANSFER_SUBINVENTORY TO_SUB,
  8392. TRN.TRANSFER_LOCATOR_ID TO_LOC_ID,
  8393. TRN.ORGANIZATION_ID ORG_ID,
  8394. TRN.PICKING_LINE_ID PICKING_LINE_ID,
  8395. TRN.SECONDARY_UOM_CODE SEC_UOM_CODE,
  8396. TRN.SECONDARY_TRANSACTION_QUANTITY SEC_TRN_QTY,
  8397. 0 lot_prm_q, -- Only for OPM
  8398. 0 lot_sec_q, -- Only for OPM
  8399. 0 lot_cal_sec_q -- Only for OPM
  8400. FROM
  8401. MTL_MATERIAL_TRANSACTIONS TRN,
  8402. MTL_SYSTEM_ITEMS ITM,
  8403. MTL_RESERVATIONS RES,
  8404. PO_HEADERS_ALL POH
  8405. WHERE
  8406. :sales_ord_id = RES.DEMAND_SOURCE_HEADER_ID
  8407. and RES.DEMAND_SOURCE_TYPE_ID = 2 -- SO
  8408. and RES.SUPPLY_SOURCE_TYPE_ID in (1,13) -- PO or INV
  8409. and RES.SUPPLY_SOURCE_HEADER_ID = POH.PO_HEADER_ID --
  8410. and POH.PO_HEADER_ID = TRN.TRANSACTION_SOURCE_ID
  8411. and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
  8412. and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID
  8413. and TRN.TRANSACTION_TYPE_ID = 18 -- PO Receipt
  8414. and TRN.TRANSACTION_SOURCE_TYPE_ID = 1;
  8415.  
  8416. r_lin_no varchar2(100);
  8417. type per_record_typ is RECORD
  8418. (flag varchar2(1),
  8419. descrip varchar2(200));
  8420. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  8421. msg msg_tab;
  8422.  
  8423. function n(v varchar2) return varchar2 is
  8424. begin
  8425. if v is null then
  8426. return '&sp';
  8427. else
  8428. return v;
  8429. end if;
  8430. end n;
  8431.  
  8432. begin
  8433. :r_error := 0;
  8434. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  8435. for i in 1..30
  8436. loop
  8437. msg(i).flag := '0';
  8438. msg(i).descrip := '';
  8439. end loop;
  8440. msg(1).descrip := 'x';
  8441.  
  8442. end if;
  8443.  
  8444. for mt in Mtl_trans
  8445. loop
  8446. :r_flag := '';
  8447.  
  8448. -- Order_Line number
  8449. SELECT to_char(LIN.line_number) ||
  8450. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8451. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8452. decode(LIN.component_number, null, null,
  8453. decode(LIN.option_number, null, '.',null)||
  8454. '.'||to_char(LIN.component_number))||
  8455. decode(LIN.service_number,null,null,
  8456. decode(LIN.component_number, null, '.' , null) ||
  8457. decode(LIN.option_number, null, '.', null ) ||
  8458. '.'|| to_char(LIN.service_number))
  8459. into r_lin_no
  8460. FROM OE_ORDER_LINES LIN
  8461. WHERE mt.TRX_SOURCE_LINE_ID = LIN.LINE_ID;
  8462.  
  8463. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  8464. null;
  8465. ---
  8466. -- Basic Verification
  8467. --
  8468. -- If i.Ordq < i.shpq then
  8469. -- :r_flag := :r_flag || '1 ';
  8470. -- end if;
  8471. -- If i.Ordq < i.fulq then
  8472. -- :r_flag := :r_flag || '2 ';
  8473. -- end if;
  8474. ---
  8475. end if;
  8476.  
  8477. -- Print line to Output file
  8478. utl_file.put_line(handle,'&sld &b <a HREF="#TRNERR">'||n(:r_flag)||'</a> &eb &d');
  8479. utl_file.put_line(handle,n(mt.MTL_TRNS_ID)||'&d'||n(mt.MTL_TRNS_DATE)||'&d');
  8480. utl_file.put_line(handle,'<a NAME="MO'||mt.MOVE_LINE_ID||'">'||n(mt.MOVE_LINE_ID)||'</a>'||'&d');
  8481. utl_file.put_line(handle,n(mt.TRANS_TYPE)||'&d'||n(mt.PICK_SLIP)||'&d');
  8482. utl_file.put_line(handle,n(r_lin_no)||'&d'||n(mt.LINE_ID)||'&d');
  8483. utl_file.put_line(handle,n(mt.PRM_Q)||'&d'||n(mt.FROM_SUB)||'&d');
  8484. utl_file.put_line(handle,n(mt.FROM_LOC_ID)||'&d'||n(mt.TO_SUB)||'&d');
  8485. utl_file.put_line(handle,n(mt.TO_LOC_ID)||'&d'||n(mt.ORG_ID)||'&d');
  8486. utl_file.put_line(handle,n(mt.PICKING_LINE_ID)||'&d ');
  8487. utl_file.put_line(handle,n(mt.SEC_UOM_CODE)||'&d'||n(mt.SEC_TRN_QTY)||'&d');
  8488. utl_file.put_line(handle,n(mt.LOT_PRM_Q)||'&d'||n(mt.LOT_SEC_Q)||'&d');
  8489. utl_file.put_line(handle,n(mt.LOT_CAL_SEC_Q)||'&el');
  8490.  
  8491. if :r_flag is not null then
  8492. :r_error := 1;
  8493. end if;
  8494. end loop;
  8495. utl_file.put_line(handle,'&et');
  8496.  
  8497. if :r_error = 1 then
  8498. utl_file.put_line(handle,'&f &b <a NAME="TRNERR">Warning List:</a> &eb &f');
  8499. for i in 1..30
  8500. loop
  8501. if msg(i).flag = '1' then
  8502. utl_file.put_line(handle,msg(i).descrip||'&f');
  8503. end if;
  8504. end loop;
  8505. end if;
  8506.  
  8507. end;
  8508.  
  8509. UTL_FILE.PUT_LINE(handle,'&et ');
  8510.  
  8511. --<do not run> DROP INDEX INDEX MTL_MATL_TRANS_777;
  8512.  
  8513. UTL_FILE.PUT_LINE(handle,'&f &f <a NAME="MTL_SERIAL_NUMBERS"> MTL_SERIAL_NUMBERS (MSN)</a> &f');
  8514. 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 ');
  8515. UTL_FILE.PUT_LINE(handle,'QUANTITY &dh SERIAL_NUMBER &dh CURR_STATUS &dh CURR_SUBINV &dh REVISION &dh LOT_NUMBER &dh ');
  8516. UTL_FILE.PUT_LINE(handle,'CURR_LOCATION &dh CURR_ORG_ID &dh GROUP_MARK &dh LINE_MARK &dh LOT_MARK &dh ORIGIN_DATE &eh');
  8517.  
  8518. Declare
  8519. cursor m_serial_n is
  8520. select distinct
  8521. DET.DELIVERY_DETAIL_ID DEL_DET_ID,
  8522. decode(DET.RELEASED_STATUS,
  8523. 'Y','Y=Staged',
  8524. 'R','R=Ready to Release',
  8525. 'S','S=Rel to Warhouse',
  8526. 'B','B=Backorder',
  8527. 'P','P=Pending Inv',
  8528. 'C','C=Shipped',
  8529. 'N','N=Not Ready',
  8530. 'D','D=Cancelled',
  8531. 'X','X=Not Applicable','Unknown: '||DET.RELEASED_STATUS) REL_STATUS,
  8532. to_char(LIN.line_number) ||
  8533. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8534. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8535. decode(LIN.component_number, null, null,
  8536. decode(LIN.option_number, null, '.',null)||
  8537. '.'||to_char(LIN.component_number))||
  8538. decode(LIN.service_number,null,null,
  8539. decode(LIN.component_number, null, '.' , null) ||
  8540. decode(LIN.option_number, null, '.', null ) ||
  8541. '.'|| to_char(LIN.service_number)) LINE,
  8542. DET.SOURCE_LINE_ID LINE_ID,
  8543. DET.INVENTORY_ITEM_ID ITEM_ID,
  8544. substr(wsn.fm_serial_number,1,15) FROM_SERIAL,
  8545. substr(wsn.to_serial_number,1,15) TO_SERIAL,
  8546. wsn.quantity WSN_QTY,
  8547. to_char(wsn.creation_date,'DD-MON-RR_HH24:MI:SS') WSN_CRE_DATE,
  8548. MSN.SERIAL_NUMBER MSN_SN,
  8549. MSN.CURRENT_STATUS MSN_CUR_STA,
  8550. MSN.REVISION MSN_REV,
  8551. MSN.LOT_NUMBER MSN_LOT,
  8552. MSN.CURRENT_SUBINVENTORY_CODE MSN_CUR_SUB,
  8553. MSN.CURRENT_LOCATOR_ID MSN_CUR_LOC,
  8554. MSN.CURRENT_ORGANIZATION_ID MSN_CUR_ORG,
  8555. MSN.GROUP_MARK_ID MSN_GRP_MRK,
  8556. MSN.LINE_MARK_ID MSN_LIN_MRK,
  8557. MSN.LOT_LINE_MARK_ID MSN_LOT_MRK,
  8558. MSN.ORIGINATION_DATE MSN_ORI_DATE
  8559. FROM
  8560. OE_ORDER_LINES LIN,
  8561. WSH_DELIVERY_DETAILS DET,
  8562. WSH_SERIAL_NUMBERS WSN,
  8563. MTL_SERIAL_NUMBERS MSN
  8564. where
  8565. DET.DELIVERY_DETAIL_ID = WSN.DELIVERY_DETAIL_ID
  8566. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  8567. and DET.SOURCE_CODE = 'OE'
  8568. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8569. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8570. LIN.TOP_MODEL_LINE_ID,
  8571. LIN.ATO_LINE_ID,
  8572. LIN.LINK_TO_LINE_ID,
  8573. LIN.REFERENCE_LINE_ID,
  8574. LIN.SERVICE_REFERENCE_LINE_ID)
  8575. and DET.INVENTORY_ITEM_ID = MSN.INVENTORY_ITEM_ID
  8576. and MSN.SERIAL_NUMBER between WSN.FM_SERIAL_NUMBER and WSN.TO_SERIAL_NUMBER
  8577. and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10)
  8578. order by
  8579. LINE,MSN.SERIAL_NUMBER;
  8580. r_uom_lin varchar2(10);
  8581. r_qshp_lin number;
  8582. r_sta_lin varchar2(100);
  8583. r_mtl_trn varchar2(100);
  8584. type per_record_typ is RECORD
  8585. (flag varchar2(1),
  8586. descrip varchar2(200));
  8587. type msg_tab is TABLE of per_record_typ INDEX by binary_integer;
  8588. msg msg_tab;
  8589.  
  8590. function n(v varchar2) return varchar2 is
  8591. begin
  8592. if v is null then
  8593. return '&sp';
  8594. else
  8595. return v;
  8596. end if;
  8597. end n;
  8598.  
  8599. begin
  8600. :r_error := 0;
  8601. if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  8602. for i in 1..1
  8603. loop
  8604. msg(i).flag := '0';
  8605. msg(i).descrip := '';
  8606. end loop;
  8607. msg(1).descrip := ' 1. No verifications yet.';
  8608. end if;
  8609.  
  8610. for dd in m_serial_n
  8611. loop
  8612. :r_flag := '';
  8613.  
  8614. -- if UPPER(nvl('&do_analysis','Y')) = 'Y' then
  8615. -- Include verifications here
  8616. -- Select nvl(mtl_transactions_enabled_flag,'N')
  8617. -- into r_mtl_trn
  8618. -- from Mtl_System_items
  8619. -- where Inventory_item_Id = dd.ITEM_ID
  8620. -- and Organization_Id = dd.WH_ID;
  8621. -- if dd.PICKABLE_FLAG <> r_mtl_trn then
  8622. -- :r_flag := :r_flag || '1 ';
  8623. -- msg(1).flag := '1';
  8624. -- end if;
  8625.  
  8626. -- end if; -- do_analysis
  8627. ---
  8628.  
  8629. -- Print line to Output file
  8630. utl_file.put_line(handle,'&sld &b <a HREF="#MSNERR">'||n(:r_flag)||'</a> &eb &d ');
  8631. utl_file.put_line(handle,n(dd.DEL_DET_ID)||' &d ');
  8632. utl_file.put_line(handle,n(dd.REL_STATUS)||' &d '||n(dd.LINE)||' &d ');
  8633. utl_file.put_line(handle,'<a HREF="#'||dd.LINE_ID||'">'||n(dd.LINE_ID)||'</a> &d ');
  8634. utl_file.put_line(handle,n(dd.ITEM_ID)||' &d ');
  8635. utl_file.put_line(handle,n(dd.FROM_SERIAL)||' &d '||n(dd.TO_SERIAL)||' &d ');
  8636. utl_file.put_line(handle,n(dd.WSN_QTY)||' &d '||n(dd.MSN_SN)||' &d ');
  8637. utl_file.put_line(handle,n(dd.MSN_CUR_STA)||' &d '||n(dd.MSN_CUR_SUB)||' &d ');
  8638. utl_file.put_line(handle,n(dd.MSN_REV)||' &d '||n(dd.MSN_LOT)||' &d ');
  8639. utl_file.put_line(handle,n(dd.MSN_CUR_LOC)||' &d '||n(dd.MSN_CUR_ORG)||' &d ');
  8640. utl_file.put_line(handle,n(dd.MSN_GRP_MRK)||' &d '||n(dd.MSN_LIN_MRK)||' &d ');
  8641. utl_file.put_line(handle,n(dd.MSN_LOT_MRK)||' &d '||n(dd.MSN_ORI_DATE)||' &el');
  8642.  
  8643. if :r_flag is not null then
  8644. :r_error := 1;
  8645. end if;
  8646. end loop;
  8647. utl_file.put_line(handle,'&et');
  8648.  
  8649. if :r_error = 1 then
  8650. utl_file.put_line(handle,'&f &b <a NAME="MSNERR">Error List:</a> &eb &f');
  8651. for i in 1..1
  8652. loop
  8653. if msg(i).flag = '1' then
  8654. utl_file.put_line(handle,msg(i).descrip||'&f');
  8655. end if;
  8656. end loop;
  8657. end if;
  8658.  
  8659. end;
  8660.  
  8661. UTL_FILE.PUT_LINE(handle,'&et ');
  8662.  
  8663. UTL_FILE.PUT_LINE(handle,'&f &f MTL_UNIT_TRANSACTIONS (UNT) <a HREF="#UNT">Column Definitions</a> &f');
  8664. UTL_FILE.PUT_LINE(handle,'&std &sh TRANS_ID &dh TRANSACTION DATE &dh STATUS_ID &dh SUBINV &dh LOC_ID &dh SERIAL_NUM ');
  8665. UTL_FILE.PUT_LINE(handle,'&dh ITEM_ID &dh WH_ID &dh TRX_DATE &dh ');
  8666. UTL_FILE.PUT_LINE(handle,'TRX_SRC_ID &dh TRX_SRC_TYPE_ID &dh RECEIPT_ISSUE_TYPE &dh CUST_ID &dh SHIP_ID &eh');
  8667.  
  8668. Declare
  8669. cursor mtl_unt_trx is
  8670. select
  8671. UNT.TRANSACTION_ID TRANS_ID,
  8672. UNT.TRANSACTION_DATE MTL_TRNS_DATE,
  8673. UNT.STATUS_ID STATUS_ID,
  8674. UNT.SUBINVENTORY_CODE SUBINV,
  8675. UNT.LOCATOR_ID LOC_ID,
  8676. UNT.SERIAL_NUMBER SERIAL_NUM,
  8677. UNT.INVENTORY_ITEM_ID ITEM_ID,
  8678. UNT.ORGANIZATION_ID WH_ID,
  8679. to_char(UNT.TRANSACTION_DATE,'DD-MON-RR_HH24:MI:SS') TRX_DATE,
  8680. UNT.TRANSACTION_SOURCE_ID TRX_SRC_ID,
  8681. UNT.TRANSACTION_SOURCE_TYPE_ID TRX_SRC_TYPE_ID,
  8682. --UNT.TRANSACTION_SOURCE_NAME TRX_SOURCE_NAME
  8683. UNT.RECEIPT_ISSUE_TYPE RECEIPT_ISSUE_TYPE,
  8684. UNT.CUSTOMER_ID CUST_ID,
  8685. UNT.SHIP_ID SHIP_ID
  8686. --,UNT.SERIAL_ATTRIBUTE_CATEGORY SERIAL_ATTR_CAT
  8687. --,UNT.ORIGINATION_DATE ORIGIN_DATE
  8688. from MTL_UNIT_TRANSACTIONS UNT
  8689. where UNT.TRANSACTION_ID in (select TRN.TRANSACTION_ID
  8690. FROM
  8691. MTL_MATERIAL_TRANSACTIONS TRN,
  8692. --WSH_DELIVERY_DETAILS DET,
  8693. --OE_ORDER_LINES LIN,
  8694. MTL_SYSTEM_ITEMS ITM
  8695. WHERE
  8696. -- klr
  8697. (TRN.TRX_SOURCE_LINE_ID,TRN.ORGANIZATION_ID,TRN.INVENTORY_ITEM_ID) IN (SELECT DISTINCT LINE_ID,SHIP_FROM_ORG_ID,INVENTORY_ITEM_ID
  8698. FROM OE_ORDER_LINES LIN1
  8699. WHERE LIN1.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8700. and NVL('&line_id_selected',0) in (0,LIN1.LINE_ID,
  8701. LIN1.TOP_MODEL_LINE_ID,
  8702. LIN1.ATO_LINE_ID,
  8703. LIN1.LINK_TO_LINE_ID,
  8704. LIN1.REFERENCE_LINE_ID,
  8705. LIN1.SERVICE_REFERENCE_LINE_ID))
  8706. and TRN.ORGANIZATION_ID = ITM.ORGANIZATION_ID
  8707. and TRN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID)
  8708. and (UPPER(nvl('&det_cnt','Y')) = 'Y' or rownum <= 10);
  8709.  
  8710. begin
  8711. for mut in mtl_unt_trx
  8712. loop
  8713. utl_file.put_line(handle,'&sld'||n(mut.TRANS_ID)||' &d '||n(mut.MTL_TRNS_DATE)||' &d ');
  8714. utl_file.put_line(handle,n(mut.STATUS_ID)||' &d ');
  8715. utl_file.put_line(handle,n(mut.SUBINV)||' &d '||n(mut.LOC_ID)||' &d ');
  8716. utl_file.put_line(handle,n(mut.SERIAL_NUM)||' &d '||n(mut.ITEM_ID)||' &d ');
  8717. utl_file.put_line(handle,n(mut.WH_ID)||' &d '||n(mut.TRX_DATE)||' &d ');
  8718. utl_file.put_line(handle,n(mut.TRX_SRC_ID)||' &d '||n(mut.TRX_SRC_TYPE_ID)||' &d ');
  8719. utl_file.put_line(handle,n(mut.RECEIPT_ISSUE_TYPE)||' &d '||n(mut.CUST_ID)||' &d ');
  8720. utl_file.put_line(handle,n(mut.SHIP_ID)||' &el');
  8721. end loop;
  8722. end;
  8723.  
  8724. UTL_FILE.PUT_LINE(handle,'&et');
  8725.  
  8726. 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');
  8727. 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 ');
  8728. 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 ');
  8729. 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 ');
  8730. UTL_FILE.PUT_LINE(handle,'SECONDARY QTY &dh SECONDARY DETAIL_Q &dh SECONDARY DELIVER_Q &eh');
  8731.  
  8732. Declare
  8733. cursor mtl_trx_reql is
  8734. select distinct
  8735. TRL.LINE_ID MO_LINE_ID,
  8736. TRH.REQUEST_NUMBER MO_NUMBER,
  8737. TRL.HEADER_ID MV_HDR_ID,
  8738. TRL.LINE_NUMBER MV_LINE_NUM,
  8739. decode(TRL.LINE_STATUS,
  8740. 1, '1=Incomplete',
  8741. 2, '2=Pend Aprvl',
  8742. 3, '3=Approved',
  8743. 4, '4=Not Apprvd',
  8744. 5, '5=Closed',
  8745. 6, '6=Canceled',
  8746. 7, '7=Pre Apprvd',
  8747. 8, '8=Part Aprvd',
  8748. 9, '9=Cncld Source') MV_LINE_STAT,
  8749. to_char(LIN.line_number) ||
  8750. decode(LIN.shipment_number, null, null, '.' || to_char(LIN.shipment_number))||
  8751. decode(LIN.option_number, null, null, '.' || to_char(LIN.option_number)) ||
  8752. decode(LIN.component_number, null, null,
  8753. decode(LIN.option_number, null, '.',null)||
  8754. '.'||to_char(LIN.component_number))||
  8755. decode(LIN.service_number,null,null,
  8756. decode(LIN.component_number, null, '.' , null) ||
  8757. decode(LIN.option_number, null, '.', null ) ||
  8758. '.'|| to_char(LIN.service_number)) LINE,
  8759. TRL.TXN_SOURCE_LINE_ID TXN_SLINE_ID,
  8760. --DET.DELIVERY_DETAIL_ID DEL_DET_ID,
  8761. ITM.SEGMENT1 ITEM,
  8762. TRL.QUANTITY QTY,
  8763. TRL.PRIMARY_QUANTITY PRM_Q,
  8764. TRL.QUANTITY_DELIVERED DLV_Q,
  8765. TRL.QUANTITY_DETAILED DTL_Q,
  8766. TRL.MOVE_ORDER_TYPE_NAME MOVE_TYPE_NAME,
  8767. decode(TRL.TRANSACTION_SOURCE_TYPE_ID,2,'Sales Order',TRL.TRANSACTION_SOURCE_TYPE_ID)
  8768. TRNS_SRC_TYPE,
  8769. TRL.TRANSACTION_TYPE_NAME TRNS_TYPE_NAME,
  8770. TRL.ORGANIZATION_ID WH_ID,
  8771. TRL.FROM_SUBINVENTORY_CODE FROM_SUB,
  8772. TRL.FROM_LOCATOR_ID FROM_LOC_ID,
  8773. TRL.TO_SUBINVENTORY_CODE TO_SUB,
  8774. TRL.TO_LOCATOR_ID TO_LOC_ID,
  8775. TRL.LOT_NUMBER LOT_NUM,
  8776. TRL.TRANSACTION_HEADER_ID TRNS_HEAD_ID,
  8777. trl.secondary_quantity sec_q,
  8778. trl.secondary_quantity_detailed sec_dtl_q,
  8779. trl.secondary_quantity_delivered sec_dlv_q
  8780. from MTL_TXN_REQUEST_LINES_V TRL,
  8781. MTL_TXN_REQUEST_HEADERS TRH,
  8782. WSH_DELIVERY_DETAILS DET,
  8783. OE_ORDER_LINES LIN,
  8784. MTL_SYSTEM_ITEMS ITM
  8785. where TRL.LINE_ID = DET.MOVE_ORDER_LINE_ID
  8786. --TRL.TXN_SOURCE_LINE_ID = LIN.LINE_ID
  8787. and LIN.SHIP_FROM_ORG_ID = ITM.ORGANIZATION_ID(+)
  8788. and LIN.INVENTORY_ITEM_ID = ITM.INVENTORY_ITEM_ID(+)
  8789. and DET.SOURCE_LINE_ID = LIN.LINE_ID
  8790. and TRL.HEADER_ID = TRH.HEADER_ID
  8791. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8792. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8793. LIN.TOP_MODEL_LINE_ID,
  8794. LIN.ATO_LINE_ID,
  8795. LIN.LINK_TO_LINE_ID,
  8796. LIN.REFERENCE_LINE_ID,
  8797. LIN.SERVICE_REFERENCE_LINE_ID);
  8798.  
  8799. begin
  8800. for mtr in mtl_trx_reql
  8801. loop
  8802. utl_file.put_line(handle,'&sld'||n(mtr.MO_LINE_ID)||'&d'||n(mtr.MO_NUMBER)||'&d');
  8803. utl_file.put_line(handle,n(mtr.MV_HDR_ID)||'&d'||n(mtr.MV_LINE_NUM)||'&d');
  8804. utl_file.put_line(handle,n(mtr.MV_LINE_STAT)||'&d'||n(mtr.LINE)||'&d');
  8805. utl_file.put_line(handle,n(mtr.TXN_SLINE_ID)||'&d'||n(mtr.ITEM)||'&d');
  8806. utl_file.put_line(handle,n(mtr.QTY)||'&d'||n(mtr.PRM_Q)||'&d');
  8807. utl_file.put_line(handle,n(mtr.DLV_Q)||'&d'||n(mtr.DTL_Q)||'&d');
  8808. utl_file.put_line(handle,n(mtr.MOVE_TYPE_NAME)||'&d'||n(mtr.TRNS_SRC_TYPE)||'&d');
  8809. utl_file.put_line(handle,n(mtr.TRNS_TYPE_NAME)||'&d'||n(mtr.WH_ID)||'&d');
  8810. utl_file.put_line(handle,n(mtr.FROM_SUB)||'&d'||n(mtr.FROM_LOC_ID)||'&d');
  8811. utl_file.put_line(handle,n(mtr.TO_SUB)||'&d'||n(mtr.TO_LOC_ID)||'&d');
  8812. utl_file.put_line(handle,n(mtr.LOT_NUM)||'&d'||n(mtr.TRNS_HEAD_ID)||'&d');
  8813. utl_file.put_line(handle,n(mtr.SEC_Q)||'&d'||n(mtr.SEC_DTL_Q)||'&d');
  8814. utl_file.put_line(handle,n(mtr.SEC_DLV_Q)||'&el');
  8815. end loop;
  8816. end;
  8817.  
  8818. UTL_FILE.PUT_LINE(handle,'&et');
  8819.  
  8820. end if; --prt_inv
  8821.  
  8822. if UPPER(nvl('&prt_ar','Y')) = 'Y' then
  8823.  
  8824. 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');
  8825. 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');
  8826. 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 ');
  8827. 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');
  8828.  
  8829. Declare
  8830. cursor ra_int_lin is
  8831. select distinct
  8832. RAI.INTERFACE_LINE_ID INTF_LINE_ID,
  8833. RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
  8834. RAI.INVENTORY_ITEM_ID ITEM_ID,
  8835. RAI.QUANTITY QTY,
  8836. RAI.QUANTITY_ORDERED ORD_Q,
  8837. RAI.UOM_CODE UOM,
  8838. RAI.AMOUNT PRICE,
  8839. trim(RAI.SALES_ORDER_LINE) SO_LIN,
  8840. RAI.ACCOUNTING_RULE_ID AR_ID,
  8841. RAI.INVOICING_RULE_ID IR_ID,
  8842. RAI.LINE_TYPE LINE_TYPE,
  8843. RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
  8844. RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
  8845. RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
  8846. RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
  8847. RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
  8848. RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
  8849. RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
  8850. RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
  8851. RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
  8852. RAI.CONVERSION_RATE C_RATE,
  8853. to_Char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
  8854. RAI.CURRENCY_CODE CURR,
  8855. RAI.TAX_RATE TR,
  8856. RAI.SALES_TAX_ID S_TAX_ID,
  8857. RAI.VAT_TAX_ID VAT_ID,
  8858. RAI.TAX_EXEMPT_FLAG EF,
  8859. RAI.TERRITORY_ID TERR_ID
  8860. --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  8861. --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  8862. --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
  8863. FROM
  8864. RA_INTERFACE_LINES RAI,
  8865. OE_ORDER_LINES LIN,
  8866. OE_ORDER_HEADERS ORD,
  8867. OE_TRANSACTION_TYPES_V TYP
  8868. WHERE
  8869. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  8870. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  8871. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  8872. and ORD.HEADER_ID = LIN.HEADER_ID
  8873. and RAI.LINE_TYPE = 'LINE'
  8874. and (NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8875. LIN.TOP_MODEL_LINE_ID,
  8876. LIN.ATO_LINE_ID,
  8877. LIN.LINK_TO_LINE_ID,
  8878. LIN.REFERENCE_LINE_ID,
  8879. LIN.SERVICE_REFERENCE_LINE_ID)
  8880. and NVL(RAI.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
  8881. LIN.TOP_MODEL_LINE_ID,
  8882. LIN.ATO_LINE_ID,
  8883. LIN.LINK_TO_LINE_ID,
  8884. LIN.REFERENCE_LINE_ID,
  8885. LIN.SERVICE_REFERENCE_LINE_ID))
  8886. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8887. UNION
  8888. select distinct
  8889. RAI.INTERFACE_LINE_ID INTF_LINE_ID,
  8890. RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
  8891. RAI.INVENTORY_ITEM_ID ITEM_ID,
  8892. RAI.QUANTITY QTY,
  8893. RAI.QUANTITY_ORDERED ORD_Q,
  8894. RAI.UOM_CODE UOM,
  8895. RAI.AMOUNT PRICE,
  8896. trim(RAI.SALES_ORDER_LINE) SO_LIN,
  8897. RAI.ACCOUNTING_RULE_ID AR_ID,
  8898. RAI.INVOICING_RULE_ID IR_ID,
  8899. RAI.LINE_TYPE LINE_TYPE,
  8900. RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
  8901. RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
  8902. RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
  8903. RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
  8904. RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
  8905. RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
  8906. RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
  8907. RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
  8908. RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
  8909. RAI.CONVERSION_RATE C_RATE,
  8910. to_char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
  8911. RAI.CURRENCY_CODE CURR,
  8912. RAI.TAX_RATE TR,
  8913. RAI.SALES_TAX_ID S_TAX_ID,
  8914. RAI.VAT_TAX_ID VAT_ID,
  8915. RAI.TAX_EXEMPT_FLAG EF,
  8916. RAI.TERRITORY_ID TERR_ID
  8917. --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  8918. --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  8919. --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
  8920. FROM
  8921. RA_INTERFACE_LINES RAI,
  8922. OE_ORDER_LINES LIN,
  8923. OE_ORDER_HEADERS ORD,
  8924. OE_PRICE_ADJUSTMENTS ADJ,
  8925. OE_TRANSACTION_TYPES_V TYP
  8926. WHERE
  8927. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  8928. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  8929. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  8930. and ORD.HEADER_ID = LIN.HEADER_ID
  8931. and RAI.LINE_TYPE = 'FREIGHT'
  8932. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  8933. LIN.TOP_MODEL_LINE_ID,
  8934. LIN.ATO_LINE_ID,
  8935. LIN.LINK_TO_LINE_ID,
  8936. LIN.REFERENCE_LINE_ID,
  8937. LIN.SERVICE_REFERENCE_LINE_ID)
  8938. and to_number(RAI.INTERFACE_LINE_ATTRIBUTE6) = ADJ.PRICE_ADJUSTMENT_ID
  8939. and ADJ.LINE_ID = LIN.LINE_ID
  8940. and ADJ.LINE_ID IS NOT NULL
  8941. and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8942. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8943. UNION
  8944. select distinct
  8945. RAI.INTERFACE_LINE_ID INTF_LINE_ID,
  8946. RAI.BATCH_SOURCE_NAME BATCH_SOURCE,
  8947. RAI.INVENTORY_ITEM_ID ITEM_ID,
  8948. RAI.QUANTITY QTY,
  8949. RAI.QUANTITY_ORDERED ORD_Q,
  8950. RAI.UOM_CODE UOM,
  8951. RAI.AMOUNT PRICE,
  8952. trim(RAI.SALES_ORDER_LINE) SO_LIN,
  8953. RAI.ACCOUNTING_RULE_ID AR_ID,
  8954. RAI.INVOICING_RULE_ID IR_ID,
  8955. RAI.LINE_TYPE LINE_TYPE,
  8956. RAI.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
  8957. RAI.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
  8958. RAI.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
  8959. RAI.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
  8960. RAI.INTERFACE_LINE_ATTRIBUTE6 Line_ID_6,
  8961. RAI.INTERFACE_LINE_ATTRIBUTE7 Pick_Line_Id_7,
  8962. RAI.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
  8963. RAI.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
  8964. RAI.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
  8965. RAI.CONVERSION_RATE C_RATE,
  8966. to_char(RAI.CONVERSION_DATE,'DD-MON-RR_HH24:MI:SS') C_DATE,
  8967. RAI.CURRENCY_CODE CURR,
  8968. RAI.TAX_RATE TR,
  8969. RAI.SALES_TAX_ID S_TAX_ID,
  8970. RAI.VAT_TAX_ID VAT_ID,
  8971. RAI.TAX_EXEMPT_FLAG EF,
  8972. RAI.TERRITORY_ID TERR_ID
  8973. --ENABLE_TIMESTAMP ,to_char(RAI.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  8974. --ENABLE_TIMESTAMP ,to_char(RAI.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  8975. --ENABLE_TIMESTAMP ,RAI.REQUEST_ID REQUEST_ID
  8976. FROM
  8977. RA_INTERFACE_LINES RAI,
  8978. OE_ORDER_HEADERS ORD,
  8979. OE_PRICE_ADJUSTMENTS ADJ,
  8980. OE_TRANSACTION_TYPES_V TYP
  8981. WHERE
  8982. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  8983. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  8984. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  8985. and RAI.LINE_TYPE = 'FREIGHT'
  8986. and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  8987. and ADJ.LINE_ID IS NULL
  8988. and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
  8989.  
  8990. begin
  8991. for ril in ra_int_lin
  8992. loop
  8993. utl_file.put_line(handle,'&sld'||n(ril.INTF_LINE_ID)||'&d'||n(ril.BATCH_SOURCE)||'&d');
  8994. utl_file.put_line(handle,n(ril.ITEM_ID)||'&d'||n(ril.QTY)||'&d');
  8995. utl_file.put_line(handle,n(ril.ORD_Q)||'&d'||n(ril.UOM)||'&d');
  8996. utl_file.put_line(handle,n(ril.PRICE)||'&d'||n(ril.SO_LIN)||'&d');
  8997. utl_file.put_line(handle,n(ril.AR_ID)||'&d'||n(ril.IR_ID)||'&d');
  8998. utl_file.put_line(handle,n(ril.LINE_TYPE)||'&d'||n(ril.ORDER_NUM_1)||'&d');
  8999. utl_file.put_line(handle,n(ril.ORDER_TYPE_2)||'&d'||n(ril.DELIVERY_3)||'&d');
  9000. utl_file.put_line(handle,n(ril.WAYBILL_4)||'&d'||n(ril.LINE_ID_6)||'&d');
  9001. utl_file.put_line(handle,n(ril.PICK_LINE_ID_7)||'&d'||n(ril.BILL_LADING_8)||'&d');
  9002. utl_file.put_line(handle,n(ril.WH_ID_10)||'&d'||n(ril.PA_ID_11)||'&d');
  9003. utl_file.put_line(handle,n(ril.C_RATE)||'&d'||n(ril.C_DATE)||'&d');
  9004. utl_file.put_line(handle,n(ril.CURR)||'&d'||n(ril.TR)||'&d');
  9005. utl_file.put_line(handle,n(ril.S_TAX_ID)||'&d'||n(ril.VAT_ID)||'&d');
  9006. utl_file.put_line(handle,n(ril.EF)||'&d'||n(ril.TERR_ID)||'&el');
  9007. end loop;
  9008. end;
  9009.  
  9010. UTL_FILE.PUT_LINE(handle,'&et');
  9011.  
  9012. UTL_FILE.PUT_LINE(handle,'&f &f RA_INTERFACE_ERRORS (RAE) - RECEIVABLES INTERFACE ERRORS &f');
  9013. UTL_FILE.PUT_LINE(handle,'&std &sh INTERFACE_LINE_ID &dh INTERFACE_SALESCREDIT_ID &dh MESSAGE_TEXT &eh');
  9014.  
  9015. Declare
  9016. cursor ra_int_err is
  9017. select distinct
  9018. RAE.INTERFACE_LINE_ID,
  9019. RAE.INTERFACE_SALESCREDIT_ID,
  9020. RAE.MESSAGE_TEXT
  9021. FROM
  9022. RA_INTERFACE_LINES RAI,
  9023. RA_INTERFACE_ERRORS RAE,
  9024. OE_ORDER_LINES LIN,
  9025. OE_ORDER_HEADERS ORD,
  9026. OE_TRANSACTION_TYPES_V TYP
  9027. WHERE
  9028. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9029. and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
  9030. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9031. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9032. and ORD.HEADER_ID = LIN.HEADER_ID
  9033. and (NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  9034. LIN.TOP_MODEL_LINE_ID,
  9035. LIN.ATO_LINE_ID,
  9036. LIN.LINK_TO_LINE_ID,
  9037. LIN.REFERENCE_LINE_ID,
  9038. LIN.SERVICE_REFERENCE_LINE_ID)
  9039. and NVL(RAI.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
  9040. LIN.TOP_MODEL_LINE_ID,
  9041. LIN.ATO_LINE_ID,
  9042. LIN.LINK_TO_LINE_ID,
  9043. LIN.REFERENCE_LINE_ID,
  9044. LIN.SERVICE_REFERENCE_LINE_ID))
  9045. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  9046. UNION
  9047. select distinct
  9048. RAE.INTERFACE_LINE_ID,
  9049. RAE.INTERFACE_SALESCREDIT_ID,
  9050. RAE.MESSAGE_TEXT
  9051. FROM
  9052. RA_INTERFACE_LINES RAI,
  9053. RA_INTERFACE_ERRORS RAE,
  9054. OE_ORDER_LINES LIN,
  9055. OE_ORDER_HEADERS ORD,
  9056. OE_PRICE_ADJUSTMENTS ADJ,
  9057. OE_TRANSACTION_TYPES_V TYP
  9058. WHERE
  9059. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9060. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9061. and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
  9062. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9063. and ORD.HEADER_ID = LIN.HEADER_ID
  9064. and RAI.LINE_TYPE = 'FREIGHT'
  9065. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  9066. LIN.TOP_MODEL_LINE_ID,
  9067. LIN.ATO_LINE_ID,
  9068. LIN.LINK_TO_LINE_ID,
  9069. LIN.REFERENCE_LINE_ID,
  9070. LIN.SERVICE_REFERENCE_LINE_ID)
  9071. and to_number(RAI.INTERFACE_LINE_ATTRIBUTE6) = ADJ.PRICE_ADJUSTMENT_ID
  9072. and ADJ.LINE_ID = LIN.LINE_ID
  9073. and ADJ.LINE_ID IS NOT NULL
  9074. and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  9075. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  9076. UNION
  9077. select distinct
  9078. RAE.INTERFACE_LINE_ID,
  9079. RAE.INTERFACE_SALESCREDIT_ID,
  9080. RAE.MESSAGE_TEXT
  9081. FROM
  9082. RA_INTERFACE_LINES RAI,
  9083. RA_INTERFACE_ERRORS RAE,
  9084. OE_ORDER_HEADERS ORD,
  9085. OE_PRICE_ADJUSTMENTS ADJ,
  9086. OE_TRANSACTION_TYPES_V TYP
  9087. WHERE
  9088. RAI.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9089. and RAI.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9090. and RAI.INTERFACE_LINE_ID = RAE.INTERFACE_LINE_ID
  9091. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9092. and RAI.LINE_TYPE = 'FREIGHT'
  9093. and ADJ.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  9094. and ADJ.LINE_ID IS NULL
  9095. and ORD.HEADER_ID = nvl('&header_id_selected',:v_header_id);
  9096.  
  9097. begin
  9098. for rie in ra_int_err
  9099. loop
  9100. utl_file.put_line(handle,'&sld'||n(rie.INTERFACE_LINE_ID)||'&d'||n(rie.INTERFACE_SALESCREDIT_ID)||'&d');
  9101. utl_file.put_line(handle,n(rie.MESSAGE_TEXT)||'&el');
  9102. end loop;
  9103. end;
  9104.  
  9105. UTL_FILE.PUT_LINE(handle,'&et');
  9106.  
  9107. 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');
  9108. 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 ');
  9109. 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 ');
  9110. UTL_FILE.PUT_LINE(handle,'SHIP_VIA &dh WAYBILL &dh STATUS &eh');
  9111.  
  9112. Declare
  9113. cursor ra_cus_trx is
  9114. select distinct
  9115. RAH.CUSTOMER_TRX_ID CUST_TRX_ID,
  9116. RAH.TRX_NUMBER TRX_NUMBER,
  9117. RAH.CUST_TRX_TYPE_ID TRX_TYPE_ID,
  9118. to_char(RAH.TRX_DATE,'DD-MON-RR_HH24:MI:SS') TRX_DATE,
  9119. RAH.BATCH_ID BATCH_ID,
  9120. RAH.BATCH_SOURCE_ID SOURCE_ID,
  9121. RAH.BILL_TO_CUSTOMER_ID BILL_CUST,
  9122. RAH.BILL_TO_SITE_USE_ID BILL_SITE,
  9123. RAH.SHIP_TO_CUSTOMER_ID SHIP_CUST,
  9124. RAH.SHIP_TO_SITE_USE_ID SHIP_SITE,
  9125. RAH.TERM_ID TERM_ID,
  9126. RAH.PRIMARY_SALESREP_ID SALESREP_ID,
  9127. RAH.PURCHASE_ORDER PO_NUMBER,
  9128. RAH.INVOICE_CURRENCY_CODE CURR,
  9129. RAH.AGREEMENT_ID AGREEMENT,
  9130. RAH.COMPLETE_FLAG COMP_FL,
  9131. RAH.INVOICING_RULE_ID IR_ID,
  9132. RAH.SHIP_VIA SHIP_VIA,
  9133. RAH.WAYBILL_NUMBER WAYBILL,
  9134. RAH.STATUS_TRX STATUS
  9135. --ENABLE_TIMESTAMP ,to_char(RAH.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  9136. --ENABLE_TIMESTAMP ,to_char(RAH.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  9137. --ENABLE_TIMESTAMP ,RAH.REQUEST_ID REQUEST_ID
  9138. FROM
  9139. RA_CUSTOMER_TRX RAH,
  9140. RA_CUSTOMER_TRX_LINES RAL,
  9141. OE_ORDER_LINES LIN,
  9142. OE_ORDER_HEADERS ORD,
  9143. OE_TRANSACTION_TYPES_V TYP
  9144. WHERE
  9145. RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
  9146. and RAL.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9147. and RAL.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9148. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9149. and ORD.HEADER_ID = LIN.HEADER_ID
  9150. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  9151. LIN.TOP_MODEL_LINE_ID,
  9152. LIN.ATO_LINE_ID,
  9153. LIN.LINK_TO_LINE_ID,
  9154. LIN.REFERENCE_LINE_ID,
  9155. LIN.SERVICE_REFERENCE_LINE_ID)
  9156. and NVL(RAL.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
  9157. LIN.TOP_MODEL_LINE_ID,
  9158. LIN.ATO_LINE_ID,
  9159. LIN.LINK_TO_LINE_ID,
  9160. LIN.REFERENCE_LINE_ID,
  9161. LIN.SERVICE_REFERENCE_LINE_ID)
  9162. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id)
  9163. ORDER BY
  9164. RAH.TRX_NUMBER;
  9165.  
  9166. begin
  9167. for rct in ra_cus_trx
  9168. loop
  9169. utl_file.put_line(handle,'&sld'||n(rct.CUST_TRX_ID)||'&d'||n(rct.TRX_NUMBER)||'&d');
  9170. utl_file.put_line(handle,n(rct.TRX_TYPE_ID)||'&d'||n(rct.TRX_DATE)||'&d');
  9171. utl_file.put_line(handle,n(rct.BATCH_ID)||'&d'||n(rct.SOURCE_ID)||'&d');
  9172. utl_file.put_line(handle,n(rct.BILL_CUST)||'&d'||n(rct.BILL_SITE)||'&d');
  9173. utl_file.put_line(handle,n(rct.SHIP_CUST)||'&d'||n(rct.SHIP_SITE)||'&d');
  9174. utl_file.put_line(handle,n(rct.TERM_ID)||'&d'||n(rct.SALESREP_ID)||'&d');
  9175. utl_file.put_line(handle,n(rct.PO_NUMBER)||'&d'||n(rct.CURR)||'&d');
  9176. utl_file.put_line(handle,n(rct.AGREEMENT)||'&d'||n(rct.COMP_FL)||'&d');
  9177. utl_file.put_line(handle,n(rct.IR_ID)||'&d'||n(rct.SHIP_VIA)||'&d');
  9178. utl_file.put_line(handle,n(rct.WAYBILL)||'&d'||n(rct.STATUS)||'&el');
  9179. end loop;
  9180. end;
  9181.  
  9182. UTL_FILE.PUT_LINE(handle,'&et');
  9183.  
  9184. 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');
  9185. 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 ');
  9186. 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 ');
  9187. 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');
  9188.  
  9189. Declare
  9190. cursor ra_cus_trxl is
  9191. select distinct
  9192. RAL.CUSTOMER_TRX_LINE_ID TRX_LINE_ID,
  9193. RAL.LINK_TO_CUST_TRX_LINE_ID LINK_TO_ID,
  9194. RAL.CUSTOMER_TRX_ID CUST_TRX_ID,
  9195. RAH.TRX_NUMBER TRX_NUMBER,
  9196. RAL.SALES_ORDER_SOURCE SOURCE,
  9197. RAL.LINE_NUMBER LINE_NUM,
  9198. RAL.INVENTORY_ITEM_ID ITEM_ID,
  9199. RAL.QUANTITY_ORDERED ORD_Q,
  9200. RAL.QUANTITY_INVOICED INV_Q,
  9201. RAL.QUANTITY_CREDITED CRD_Q,
  9202. RAL.UOM_CODE UOM,
  9203. RAL.UNIT_SELLING_PRICE PRICE,
  9204. RAL.EXTENDED_AMOUNT EXTD_AMT,
  9205. RAL.REVENUE_AMOUNT REV_AMT,
  9206. TRIM(RAL.SALES_ORDER_LINE) SO_LIN,
  9207. RAL.LINE_TYPE LINE_TYPE,
  9208. RAL.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
  9209. RAL.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
  9210. RAL.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
  9211. RAL.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
  9212. RAL.INTERFACE_LINE_ATTRIBUTE6 Line_ID_5,
  9213. RAL.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
  9214. RAL.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
  9215. RAL.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
  9216. RAL.TAXABLE_FLAG TF,
  9217. RAL.TAX_RATE TR,
  9218. RAL.VAT_TAX_ID VAT_ID,
  9219. RAL.SALES_TAX_ID S_TAX_ID
  9220. --ENABLE_TIMESTAMP ,to_char(RAL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  9221. --ENABLE_TIMESTAMP ,to_char(RAL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  9222. --ENABLE_TIMESTAMP ,RAL.REQUEST_ID REQUEST_ID
  9223. FROM
  9224. RA_CUSTOMER_TRX RAH,
  9225. RA_CUSTOMER_TRX_LINES RAL
  9226. WHERE
  9227. RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
  9228. and RAL.CUSTOMER_TRX_LINE_ID in
  9229. (select RAL1.CUSTOMER_TRX_LINE_ID
  9230. FROM
  9231. RA_CUSTOMER_TRX RAH1,
  9232. RA_CUSTOMER_TRX_LINES RAL1,
  9233. OE_ORDER_LINES LIN,
  9234. OE_ORDER_HEADERS ORD,
  9235. OE_TRANSACTION_TYPES_V TYP
  9236. WHERE
  9237. RAH1.CUSTOMER_TRX_ID = RAL1.CUSTOMER_TRX_ID
  9238. and RAL1.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9239. and RAL1.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9240. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9241. and ORD.HEADER_ID = LIN.HEADER_ID
  9242. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  9243. LIN.TOP_MODEL_LINE_ID,
  9244. LIN.ATO_LINE_ID,
  9245. LIN.LINK_TO_LINE_ID,
  9246. LIN.REFERENCE_LINE_ID,
  9247. LIN.SERVICE_REFERENCE_LINE_ID)
  9248. and NVL(RAL1.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
  9249. LIN.TOP_MODEL_LINE_ID,
  9250. LIN.ATO_LINE_ID,
  9251. LIN.LINK_TO_LINE_ID,
  9252. LIN.REFERENCE_LINE_ID,
  9253. LIN.SERVICE_REFERENCE_LINE_ID)
  9254. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id))
  9255. UNION
  9256. select /* LINKED LINES */
  9257. distinct
  9258. RAL.CUSTOMER_TRX_LINE_ID TRX_LINE_ID,
  9259. RAL.LINK_TO_CUST_TRX_LINE_ID LINK_TO_ID,
  9260. RAL.CUSTOMER_TRX_ID CUST_TRX_ID,
  9261. RAH.TRX_NUMBER TRX_NUMBER,
  9262. RAL.SALES_ORDER_SOURCE SOURCE,
  9263. RAL.LINE_NUMBER LINE_NUM,
  9264. RAL.INVENTORY_ITEM_ID ITEM_ID,
  9265. RAL.QUANTITY_ORDERED ORD_Q,
  9266. RAL.QUANTITY_INVOICED INV_Q,
  9267. RAL.QUANTITY_CREDITED CRD_Q,
  9268. RAL.UOM_CODE UOM,
  9269. RAL.UNIT_SELLING_PRICE PRICE,
  9270. RAL.EXTENDED_AMOUNT EXTD_AMT,
  9271. RAL.REVENUE_AMOUNT REV_AMT,
  9272. TRIM(RAL.SALES_ORDER_LINE) SO_LIN,
  9273. RAL.LINE_TYPE LINE_TYPE,
  9274. RAL.INTERFACE_LINE_ATTRIBUTE1 Order_Num_1,
  9275. RAL.INTERFACE_LINE_ATTRIBUTE2 Order_Type_2,
  9276. RAL.INTERFACE_LINE_ATTRIBUTE3 Delivery_3,
  9277. RAL.INTERFACE_LINE_ATTRIBUTE4 WayBill_4,
  9278. RAL.INTERFACE_LINE_ATTRIBUTE6 Line_ID_5,
  9279. RAL.INTERFACE_LINE_ATTRIBUTE8 Bill_Lading_8,
  9280. RAL.INTERFACE_LINE_ATTRIBUTE10 WH_ID_10,
  9281. RAL.INTERFACE_LINE_ATTRIBUTE11 PA_ID_11,
  9282. RAL.TAXABLE_FLAG TF,
  9283. RAL.TAX_RATE TR,
  9284. RAL.VAT_TAX_ID VAT_ID,
  9285. RAL.SALES_TAX_ID S_TAX_ID
  9286. --ENABLE_TIMESTAMP ,to_char(RAL.CREATION_DATE,'DD-MON-RR_HH24:MI:SS') CREATE_DT
  9287. --ENABLE_TIMESTAMP ,to_char(RAL.LAST_UPDATE_DATE,'DD-MON-RR_HH24:MI:SS') UPDATE_DT
  9288. --ENABLE_TIMESTAMP ,RAL.REQUEST_ID REQUEST_ID
  9289. FROM
  9290. RA_CUSTOMER_TRX RAH,
  9291. RA_CUSTOMER_TRX_LINES RAL
  9292. WHERE
  9293. RAH.CUSTOMER_TRX_ID = RAL.CUSTOMER_TRX_ID
  9294. and RAL.LINK_TO_CUST_TRX_LINE_ID in
  9295. (select RAL1.CUSTOMER_TRX_LINE_ID
  9296. FROM
  9297. RA_CUSTOMER_TRX RAH1,
  9298. RA_CUSTOMER_TRX_LINES RAL1,
  9299. OE_ORDER_LINES LIN,
  9300. OE_ORDER_HEADERS ORD,
  9301. OE_TRANSACTION_TYPES_V TYP
  9302. WHERE
  9303. RAH1.CUSTOMER_TRX_ID = RAL1.CUSTOMER_TRX_ID
  9304. and RAL1.SALES_ORDER = to_char(ORD.ORDER_NUMBER)
  9305. and RAL1.INTERFACE_LINE_ATTRIBUTE2 = TYP.NAME
  9306. and TYP.TRANSACTION_TYPE_ID = ORD.ORDER_TYPE_ID
  9307. and ORD.HEADER_ID = LIN.HEADER_ID
  9308. and NVL('&line_id_selected',0) in (0,LIN.LINE_ID,
  9309. LIN.TOP_MODEL_LINE_ID,
  9310. LIN.ATO_LINE_ID,
  9311. LIN.LINK_TO_LINE_ID,
  9312. LIN.REFERENCE_LINE_ID,
  9313. LIN.SERVICE_REFERENCE_LINE_ID)
  9314. and NVL(RAL1.INTERFACE_LINE_ATTRIBUTE6,0) in (0,LIN.LINE_ID,
  9315. LIN.TOP_MODEL_LINE_ID,
  9316. LIN.ATO_LINE_ID,
  9317. LIN.LINK_TO_LINE_ID,
  9318. LIN.REFERENCE_LINE_ID,
  9319. LIN.SERVICE_REFERENCE_LINE_ID)
  9320. and LIN.HEADER_ID = nvl('&header_id_selected',:v_header_id))
  9321. order by
  9322. TRX_NUMBER,
  9323. TRX_LINE_ID;
  9324.  
  9325. begin
  9326. for rctl in ra_cus_trxl
  9327. loop
  9328. utl_file.put_line(handle,'&sld'||n(rctl.TRX_LINE_ID)||'&d'||n(rctl.LINK_TO_ID)||'&d');
  9329. utl_file.put_line(handle,n(rctl.CUST_TRX_ID)||'&d'||n(rctl.TRX_NUMBER)||'&d');
  9330. utl_file.put_line(handle,n(rctl.SOURCE)||'&d'||n(rctl.LINE_NUM)||'&d');
  9331. utl_file.put_line(handle,n(rctl.ITEM_ID)||'&d'||n(rctl.ORD_Q)||'&d');
  9332. utl_file.put_line(handle,n(rctl.INV_Q)||'&d'||n(rctl.CRD_Q)||'&d');
  9333. utl_file.put_line(handle,n(rctl.UOM)||'&d'||n(rctl.PRICE)||'&d');
  9334. utl_file.put_line(handle,n(rctl.EXTD_AMT)||'&d'||n(rctl.REV_AMT)||'&d');
  9335. utl_file.put_line(handle,n(rctl.SO_LIN)||'&d'||n(rctl.LINE_TYPE)||'&d');
  9336. utl_file.put_line(handle,n(rctl.ORDER_NUM_1)||'&d'||n(rctl.ORDER_TYPE_2)||'&d');
  9337. utl_file.put_line(handle,n(rctl.DELIVERY_3)||'&d'||n(rctl.WAYBILL_4)||'&d');
  9338. utl_file.put_line(handle,n(rctl.LINE_ID_5)||'&d'||n(rctl.BILL_LADING_8)||'&d');
  9339. utl_file.put_line(handle,n(rctl.WH_ID_10)||'&d'||n(rctl.PA_ID_11)||'&d');
  9340. utl_file.put_line(handle,n(rctl.TF)||'&d'||n(rctl.TR)||'&d');
  9341. utl_file.put_line(handle,n(rctl.VAT_ID)||'&d'||n(rctl.S_TAX_ID)||'&el');
  9342. end loop;
  9343. end;
  9344.  
  9345. UTL_FILE.PUT_LINE(handle,'&et');
  9346.  
  9347. end if; --prt_ar
  9348.  
  9349. end if; -- :v_head_only
  9350.  
  9351. -- Column descriptions for each table
  9352. UTL_FILE.PUT_LINE(handle,'&f &f');
  9353.  
  9354. UTL_FILE.PUT_LINE(handle,'&std &sh <CENTER> COLUMN DEFINITIONS </CENTER> &eh &et &f');
  9355.  
  9356. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="OOH">OE_ORDER_HEADERS (ORD)</a> &dh &sp &dh &sp &eh');
  9357. UTL_FILE.PUT_LINE(handle,'&sld OP => OPEN FLAG &d BK => BOOKED FLAG &d SP => PARTIAL SHIPMENTS ALLOWED &el ');
  9358. UTL_FILE.PUT_LINE(handle,'&sld CN => CANCEL FLAG &d STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el &et');
  9359.  
  9360. UTL_FILE.PUT_LINE(handle,'&f &f');
  9361.  
  9362. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="OOL">OE_ORDER_LINES (LIN)</a> &dh &sp &dh &sp &eh');
  9363. UTL_FILE.PUT_LINE(handle,'&sld SHN_Q => SHIPPING QUANTITY &d OP => OPEN FLAG &d ORG => ORGANIZATION CODE &el');
  9364. UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d BK => BOOKED FLAG &d SI => Shipping Interfaced Flag &el');
  9365. UTL_FILE.PUT_LINE(handle,'&sld FUL_Q => FULFILLED QUANTITY &d SH => SHIPPABLE FLAG &d II => Inventory Interfaced Flag &el');
  9366. UTL_FILE.PUT_LINE(handle,'&sld CAN_Q => CANCELLED QUANTITY &d CN => CANCELLED FLAG &d ATO => ATO FLAG &el');
  9367. UTL_FILE.PUT_LINE(handle,'&sld INC_Q => INVOICED QUANTITY &d VD => VISIBLE DEMAND FLAG &d OPT => OPTION FLAG &el');
  9368. UTL_FILE.PUT_LINE(handle,'&sld RES_Q => RESERVATION QUANTITY &d SMC => SHIP MODEL COMPLETE &d FF => FULFILLED_FLAG &el');
  9369. UTL_FILE.PUT_LINE(handle,'&sld LCN_Q => LAST CANCELLED QTY &d CAL_PR => CALCULATE PRICE &d &sp &el');
  9370. UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &d &sp &el &et');
  9371.  
  9372. UTL_FILE.PUT_LINE(handle,'&f &f');
  9373.  
  9374. if UPPER(nvl('&prt_price','Y')) = 'Y' then
  9375.  
  9376. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="ADJC">APPLIED and UN-APPLIED HEADER PRICE ADJUSTMENTS (ADJ)</a> &dh &sp &dh &sp &eh');
  9377. UTL_FILE.PUT_LINE(handle,'&sld MOD_LVL => MODIFIER_LEVEL &d IF => INVOICED FLAG &d LK => LOCK CONTROL &el');
  9378. UTL_FILE.PUT_LINE(handle,'&sld CHG_TY_CD => CHARGE_TYPE_CODE &d EF => ESTIMATED FLAG &d PP => PRICING PHASE &el');
  9379. UTL_FILE.PUT_LINE(handle,'&sld CD => CREDIT_OR_DEBIT &d UA => UPDATE ALLOWED &d PI => PRINT ON INVOICE &el');
  9380. UTL_FILE.PUT_LINE(handle,'&sld AF => AUTOMATIC FLAG &d UF => UPDATED FLAG &d AP => APPLIED FLAG &el &et');
  9381.  
  9382. UTL_FILE.PUT_LINE(handle,'&f &f');
  9383.  
  9384. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="ALA">APPLIED AND UNAPPLIED LINE PRICE ADJUSTMENTS</a> &dh &sp &dh &sp &eh');
  9385. UTL_FILE.PUT_LINE(handle,'&sld MOD_LVL => MODIFIER_LEVEL_CODE &d CD => CREDIT_OR_CHARGE_FLAG &d UA => UPDATE_ALLOWED &el');
  9386. UTL_FILE.PUT_LINE(handle,'&sld CHG_TY_CD => CHARGE_TYPE_CODE &d AF => AUTOMATIC_FLAG &d UF => UPDATED_FLAG &el');
  9387. UTL_FILE.PUT_LINE(handle,'&sld ARITH_OP => ARITHMETIC_OPERATOR &d PI => PRINT_ON_INVOICE_FLAG &d AP => APPLIED_FLAG &el');
  9388. UTL_FILE.PUT_LINE(handle,'&sld OP_PER_QTY => OPERAND_PER_PQTY &d AC => ACCRUAL_FLAG &d LK => LOCK_CONTROL &el');
  9389. UTL_FILE.PUT_LINE(handle,'&sld ADJ_AMT_PO => ADJUSTED_AMOUNT_PER_PQTY &d EF => ESTIMATED_FLAG &d PERC => PERCENT &el');
  9390. UTL_FILE.PUT_LINE(handle,'&sld ADJ_AMT => ADJUSTED_AMOUNT &d PP => PRICING_PHASE_ID &d &sp &el &et');
  9391.  
  9392. UTL_FILE.PUT_LINE(handle,'&f &f');
  9393.  
  9394. end if; -- prt_price
  9395.  
  9396. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="WDD">WSH_DELIVERY_DETAILS (DET)</a> &dh &sp &eh');
  9397. UTL_FILE.PUT_LINE(handle,'&sld MO_LINE_ID => MOVE ORDER LINE ID &d DLV_Q => DELIVERED QUANTITY &el');
  9398. UTL_FILE.PUT_LINE(handle,'&sld DELIV_ID => DELIVERY ID &d CAN_Q => CANCELLED QUANTITY &el');
  9399. UTL_FILE.PUT_LINE(handle,'&sld SRQ_Q => SOURCE REQUESTED QUANTITY &d SRQ_U => SOURCE REQUESTED QUANTITY UOM &el');
  9400. UTL_FILE.PUT_LINE(handle,'&sld REQ_Q => REQUESTED QUANTITY &d REQ_U => REQUESTED QUANTITY UOM &el');
  9401. UTL_FILE.PUT_LINE(handle,'&sld OMI => ORDER MANAGEMENT INTERFACED &d INI => INVENTORY INTERFACED &el');
  9402. UTL_FILE.PUT_LINE(handle,'&sld PIKF => PICKABLE_FLAG &d PIK_Q => PICKED_QUANTITY &el');
  9403. UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d ORG_SUB => ORIGINAL SUBINVENTORY &el');
  9404. UTL_FILE.PUT_LINE(handle,'&sld CUR_SUB => CURRENT SUBINVENTORY &d CF => CONTAINER FLAG &el');
  9405. UTL_FILE.PUT_LINE(handle,'&sld FL_PERC => FILL PERCENTAGE &d SHP_SET => SHIP_SET_ID &el');
  9406. UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el');
  9407. UTL_FILE.PUT_LINE(handle,'&sld TRX_TEMP_ID=> TRANSACTION_TEMP_ID &d TOP_MO_LIN => TOP_MODEL_LINE_ID &el');
  9408. UTL_FILE.PUT_LINE(handle,'&sld SHP_MC => SHIP_MODEL_COMPLETE_FLAG &d SPL_DEL_DET_ID ==> SPLIT FROM DEL.DETAIL ID &el &et');
  9409.  
  9410. UTL_FILE.PUT_LINE(handle,'&f &f');
  9411.  
  9412. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="WSN">WSH_SERIAL_NUMBERS (WSN)</a> &dh &sp &eh');
  9413. UTL_FILE.PUT_LINE(handle,'&sld DET_DET_ID => DELIVERY DETAIL ID &d DLV_Q => DELIVERED QUANTITY &el');
  9414. UTL_FILE.PUT_LINE(handle,'&sld REL_STATUS => RELEASED STATUS &d CAN_Q => CANCELLED QUANTITY &el');
  9415. UTL_FILE.PUT_LINE(handle,'&sld SRQ_Q => SOURCE REQUESTED QUANTITY &d SRQ_U => SOURCE REQUESTED QUANTITY UOM &el');
  9416. UTL_FILE.PUT_LINE(handle,'&sld REQ_Q => REQUESTED QUANTITY &d REQ_U => REQUESTED QUANTITY UOM &el');
  9417. UTL_FILE.PUT_LINE(handle,'&sld OMI => ORDER MANAGEMENT INTERFACED &d INI => INVENTORY INTERFACED &el');
  9418. UTL_FILE.PUT_LINE(handle,'&sld PIKF => PICKABLE_FLAG &d PIK_Q => PICKED_QUANTITY &el');
  9419. UTL_FILE.PUT_LINE(handle,'&sld SHP_Q => SHIPPED QUANTITY &d ORG_SUB => ORIGINAL SUBINVENTORY &el');
  9420. UTL_FILE.PUT_LINE(handle,'&sld CUR_SUB => CURRENT SUBINVENTORY &d CF => CONTAINER FLAG &el');
  9421. UTL_FILE.PUT_LINE(handle,'&sld FL_PERC => FILL PERCENTAGE &d SHP_SET => SHIP_SET_ID &el');
  9422. UTL_FILE.PUT_LINE(handle,'&sld STA => SHIP TOLERANCE ABOVE &d STB => SHIP TOLERANCE BELOW &el');
  9423. UTL_FILE.PUT_LINE(handle,'&sld SHP_MC => SHIP_MODEL_COMPLETE_FLAG &d SPL_DEL_DET_ID ==> SPLIT FROM DEL.DETAIL ID &el &et');
  9424.  
  9425. UTL_FILE.PUT_LINE(handle,'&f &f');
  9426.  
  9427. if UPPER(nvl('&prt_inv','Y')) = 'Y' then
  9428.  
  9429. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MR">MTL_RESERVATIONS (RES)</a> &dh &sp &eh');
  9430. UTL_FILE.PUT_LINE(handle,'&sld RES_Q => PRIMARY RESERVATION QUANTITY &d DET_Q => DETAILED QUANTITY &el');
  9431. UTL_FILE.PUT_LINE(handle,'&sld DS_TYPE => DEMAND SOURCE TYPE &d WH_ID => ORGANIZATION ID &el');
  9432. UTL_FILE.PUT_LINE(handle,'&sld SS_TYPE_ID => SUPPLY SOURCE TYPE ID &d &sp &el &et');
  9433.  
  9434. UTL_FILE.PUT_LINE(handle,'&f &f');
  9435.  
  9436. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MTI">MTL_TRANSACTIONS_INTERFACE (MTI)</a> &dh &sp &eh');
  9437. UTL_FILE.PUT_LINE(handle,'&sld TRX_INT_ID => TRANSACTION_INTERFACE_ID &d PRM_Q => PRIMARY QUANTITY &el');
  9438. UTL_FILE.PUT_LINE(handle,'&sld LCK => LOCK CODE &d FROM_SUB => FROM SUBINVENTORY &el');
  9439. UTL_FILE.PUT_LINE(handle,'&sld FROM_LOC_ID => FROM LOCATOR ID &d TRANS_MODE => TRANSACTION MODE &el &et');
  9440.  
  9441. UTL_FILE.PUT_LINE(handle,'&f &f');
  9442.  
  9443. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="TMP">MTL_MATERIAL_TRANSACTIONS_TEMP (TMP) - UNPICKED LINES</a> &dh &sp &eh');
  9444. UTL_FILE.PUT_LINE(handle,'&sld MTL_TRNS_ID => MTL TRANSACTION ID &d PICK_SLIP => PICK SLIP NUMBER &el');
  9445. UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d LCK => LOCK CODE &el');
  9446. UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
  9447. UTL_FILE.PUT_LINE(handle,'&sld TRANS_MODE => TRANSACTION MODE &d &sp &el &et');
  9448.  
  9449. UTL_FILE.PUT_LINE(handle,'&f &f');
  9450.  
  9451. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="TRN">MTL_MATERIAL_TRANSACTIONS (TRN) - PICKED LINES</a> &dh &sp &eh');
  9452. UTL_FILE.PUT_LINE(handle,'&sld MTL_TRNS_ID => MTL TRANSACTION ID &d TRANS_TYPE => TRANSACTION TYPE &el');
  9453. UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d LCK => LOCK CODE &el');
  9454. UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
  9455. UTL_FILE.PUT_LINE(handle,'&sld TO_SUB => TO SUBINVENTORY &d TO_LOC_ID => TO LOCATOR ID &el');
  9456. UTL_FILE.PUT_LINE(handle,'&sld TRANS_MODE => TRANSACTION MODE &d &sp &el &et');
  9457.  
  9458. UTL_FILE.PUT_LINE(handle,'&f &f');
  9459.  
  9460. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="UNT">MTL_UNIT_TRANSACTIONS (UNT)</a> &dh &sp &eh');
  9461. UTL_FILE.PUT_LINE(handle,'&sld TRANS_ID => TRANSACTION ID &d SUBINV => SUBINVENTRY CODE &el');
  9462. UTL_FILE.PUT_LINE(handle,'&sld LOC_ID => LOCATOR ID &d SERIAL_NUM => SERIAL NUMBER &el');
  9463. UTL_FILE.PUT_LINE(handle,'&sld WH_ID => WAREHOUSE ID &d TRX_DATE => TRANSACTION DATE &el');
  9464. UTL_FILE.PUT_LINE(handle,'&sld TRX_SRC_ID => TRANSACTION SOURCE ID &d TRX_SRC_TYPE_ID => TRANSACTION SOURCE TYPE ID &el');
  9465. UTL_FILE.PUT_LINE(handle,'&sld CUST_ID => CUSTOMER ID &d SHIP_ID => SHIPMENT ID &el &et');
  9466.  
  9467. UTL_FILE.PUT_LINE(handle,'&f &f');
  9468.  
  9469. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="MOV">MTL_TXN_REQUEST_LINES_V (MOV) - MOVE TRANSACTIONS</a> &dh &sp &eh');
  9470. UTL_FILE.PUT_LINE(handle,'&sld MO_LINE_ID => MOVE ORDER LINE ID &d MO_NUMBER => MOVE ORDER NUMBER &el');
  9471. UTL_FILE.PUT_LINE(handle,'&sld MV_HDR_ID => MOVE ORDER HEADER ID &d MV_LINE_NUM => MOVE ORDER LINE NUMBER &el');
  9472. UTL_FILE.PUT_LINE(handle,'&sld MV_LINE_STAT => MOVE ORDER LINE STATUS &d TXN_SLINE_ID=> TRANSACTION SOURCE LINE ID &el');
  9473. UTL_FILE.PUT_LINE(handle,'&sld PRM_Q => PRIMARY QUANTITY &d DLV_Q => DELIVERED QUANTITY &el');
  9474. UTL_FILE.PUT_LINE(handle,'&sld DTL_Q => DETAILED QUANTITY &d WH_ID => WAREHOUSE ID &el');
  9475. UTL_FILE.PUT_LINE(handle,'&sld FROM_SUB => FROM SUBINVENTORY &d FROM_LOC_ID => FROM LOCATOR ID &el');
  9476. UTL_FILE.PUT_LINE(handle,'&sld TO_SUB => TO SUBINVENTORY &d TO_LOC_ID => TO LOCATOR ID &el');
  9477. UTL_FILE.PUT_LINE(handle,'&sld LOT_NUM => LOT NUMBER &d TRNS_HEAD_ID=> TRANSACTION HEADER ID &el &et');
  9478.  
  9479. UTL_FILE.PUT_LINE(handle,'&f &f');
  9480.  
  9481. end if; -- prt_inv
  9482.  
  9483. if UPPER(nvl('&prt_ar','Y')) = 'Y' then
  9484.  
  9485. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAI">RA_INTERFACE_LINES (RAI)</a> &dh &sp &dh &sp &eh');
  9486. UTL_FILE.PUT_LINE(handle,'&sld QTY => QUANTITY &d IR_ID => INVOICING RULE ID &d TR => TAX RATE &el');
  9487. UTL_FILE.PUT_LINE(handle,'&sld ORD_Q => ORDERED QUANTITY &d PA_ID_11 => PRICE ADJUSTMENT ID &d EF => TAX EXEMPT FLAG &el');
  9488. 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');
  9489. UTL_FILE.PUT_LINE(handle,'&sld AR_ID => ACCOUNTING RULE ID &d C_DATE => CONVERSION DATE &d CURR => CURRENCY CODE &el');
  9490. UTL_FILE.PUT_LINE(handle,'&sld WH_ID => WAREHOUSE ID &d VAT_ID => VALUE ADDED TAX ID &d EF => TAX EXEMPT FLAG &el');
  9491. UTL_FILE.PUT_LINE(handle,'&sld TERR_ID=> TERRITORY ID &d &sp &d &sp &el &et');
  9492.  
  9493. UTL_FILE.PUT_LINE(handle,'&f &f');
  9494.  
  9495. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAH">RA_CUSTOMER_TRX (RAH) - INVOICE HEADERS</a> &dh &sp &dh &sp &eh');
  9496. UTL_FILE.PUT_LINE(handle,'&sld CUST_TRX_ID => CUSTOMER TRANSACTION ID &d TRX_NUMBER => TRANSACTION NUMBER &d TRX_DATE => TRANSACTION DATE &el');
  9497. UTL_FILE.PUT_LINE(handle,'&sld CURR => CURRENCY &d COMP_FL => COMPLETE FLAG &d IR_ID => INVOICING RULE ID &el &et');
  9498.  
  9499. UTL_FILE.PUT_LINE(handle,'&f &f');
  9500.  
  9501. UTL_FILE.PUT_LINE(handle,'&std &sh <a NAME="RAL">RA_CUSTOMER_TRX_LINES (RAL) - INVOICE LINES</a> &dh &sp &dh &sp &eh');
  9502. 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');
  9503. UTL_FILE.PUT_LINE(handle,'&sld ORD_Q => ORDERED QUANTITY &d INV_Q => INVOICED QUANTITY &d CRD_Q => CREDITED QUANTITY &el');
  9504. UTL_FILE.PUT_LINE(handle,'&sld EXTD_AMT => EXTENDED AMOUNT &d REV_AMT => REVISED AMOUNT &d PA_ID_11 => PRICE ADJUSTMENT ID &el');
  9505. UTL_FILE.PUT_LINE(handle,'&sld TF => TAXABLE FLAG &d TR => TAX RATE &d VAT_ID => VALUE ADDED TAX ID &el &et');
  9506.  
  9507. end if; -- prt_ar
  9508.  
  9509. UTL_FILE.PUT_LINE(handle,'&f &f');
  9510.  
  9511. -- Closing Time
  9512. select '&std &sh Script completion time: &eh &sld '||to_char(sysdate,'DD-MON-RR_HH24:MI:SS')||' &el &et &f &f'
  9513. into text
  9514. from dual;
  9515. UTL_FILE.PUT_LINE(handle,text);
  9516.  
  9517. UTL_FILE.PUT_LINE(handle,'</HTML>');
  9518.  
  9519. -- Close output file
  9520.  
  9521. UTL_FILE.FCLOSE(handle);
  9522. END;
  9523. /

此脚本用于诊断销售订单的所有信息,运行完成后生产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包的使用的更多相关文章

  1. ORACLE之UTL_FILE包详解

    1 Utl_File包简介Oracle的UTL_FILE包用来实现对磁盘文件的I/O操作.(1)Oracle10g之前的版本需要指定utl_file包可以操作的目录.      方法:        ...

  2. oracle读写文件--利用utl_file包对磁盘文件的读写操作

    oracle读写文件--利用utl_file包对磁盘文件的读写操作 摘要: 用户提出一个需求,即ORACLE中的一个表存储了照片信息,字段类型为BLOB,要求能导出成文件形式. 本想写个C#程序来做, ...

  3. Oracle之UTL_FILE 包用法详解

    [转自] http://zhangzhongjie.iteye.com/blog/1903024 UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等)和服 ...

  4. oracle中utl_file包读写文件操作实例学习

    在oracle中utl_file包提供了一些操作文本文件的函数和过程,学习了一下他的基本操作 1.创建directory,并给用户授权 复制代码 代码如下: --创建directory create ...

  5. UTL_FILE 包使用介绍

    Postgresql 不支持 package功能,这给oracle 向 postgresql迁移增加了很多迁移工作.人大金仓Kingbase数据库实现了类似 oracle package 功能,并提供 ...

  6. Oracle学习笔记十四 内置程序包

    扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...

  7. UTL_FILE

    在PL/SQL中,UTL_FILE包提供文本文件输入和输出功能. 可以访问的目录通过初始化参数UTL_FILE_DIR设置. 注意:UTL_FILE只能读取服务器端文本文件,不能读取二进制文件.这时候 ...

  8. PL/SQL之--包

    一.包 包是一组相关过程.函数.常量.变量.游标.异常等PL/SQL程序设计元素的组合.它类似于C++和Java中的类,其中变量相当于类中的成员变量,过程和函数相当于类中的方法.通过使用包,可以使开发 ...

  9. 利用utl_file来读取文件.

    以前写过用external table来加载trace文件,详情参考下面链接. http://www.cnblogs.com/princessd8251/p/3779145.html 今天要做到是用U ...

随机推荐

  1. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  2. JQuery插件使用之Validation 快速完成表单验证的几种方式

    JQuery的Validation插件可以到http://plugins.jquery.com/上去下载.今天来分享一下,关于这个插件的使用. 简易使用 这第一种方式可谓是傻瓜式的使用,我们只需要按照 ...

  3. Scala actor的使用

    Actor 为什么需要Actor? Actor的本质即万物皆Actor, Actor之间只有发送消息这一种通信方式.例如,无论是管理员让工作者干活,还是工作者把成果交还给管理员,它们之间也要通过发送消 ...

  4. scala for spark

    写了点scala的内容,方便看spark源码,估计一两天就能看完,内容比较粗浅. 下载地址: http://download.csdn.net/detail/lsshlsw/7983541

  5. UNIX环境高级编程——Linux终端设备详解

    终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备.tty是Teletype的缩写.Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype ...

  6. leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题

    三星机试也考了类似的题目,只不过是要针对给出的数独修改其中三个错误数字,总过10个测试用例只过了3个与世界500强无缘了 36. Valid Sudoku Determine if a Sudoku ...

  7. windows下实现win32俄罗斯方块练手,编程的几点心得

    编程珠玑2阅读笔记: 1.使用c语言性能监视器,完成对代码的调优工作 2.关联数组:  拓扑排序算法,可以用于当存在遮挡的时候决定三维场景的绘制顺序. 3.小型算法中的测试与调试工具 脚手架程序:&l ...

  8. Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架

    类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是Jav ...

  9. 11 PopupMenu菜单和代码例子

    PopupMenu 弹出式菜单 API 11以上可用 1. 获取弹出菜单的对象 2. 在res里的menu添加菜单项 3. 将布局里的菜单项 给弹出菜单 4. 进行监听弹出菜单 5. 展示出弹出菜单 ...

  10. hadoop端口使用配置总结(非常好的总结)

    转自http://www.aboutyun.com/thread-7513-1-1.html Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以 ...