FAQ: OPEN INTERFACES - ASN Transactions (Doc ID 225233.1)

来源:互联网 发布:win10不信任软件 编辑:程序博客网 时间:2024/05/16 11:30

In this Document

Purpose Questions and Answers  What is an ASN?  What are the business needs for an ASN? What are the different ways of populating data in the interface table?   How can we debug if an error occurs? What are the profile options available for ASN? Is ASN available for every customer? Can we cancel a PO after shipping the ASN but before receiving the ASN?

Applies to:

Oracle Inventory Management - Version 10.7 to 12.1.2 [Release 10.7 to 12.1]
Information in this document applies to any platform.
Executable:RCVTPO - Receiving Transaction Manager
***Checked for relevance on 20-Apr-2010***


Purpose

FAQ for ASN.

Questions and Answers

 What is an ASN?

 

A: The ASN (Advanced Shipment Notice (856)) is a document that is sent to a buyer in advance of the buyer receiving the product. It is typically used within the context of an EDI environment. It can be used to list the contents of an expected shipment of goods as well as additional information relating to the shipment, such as order information, product description, physical characteristics, type of packaging, marking carrier information, and configuration of goods within the transportation equipment. In the implementation of the transaction the latest the ship notice may be sent is the time of shipment. In practice the ship notice just arrive before the shipment.

The process flow is as follows:
1. Supplier sends ASN.
2. EDI validates the data for EDI standards and inserts data into Receiving Interface tables.
3. Receiving Open Interface validates ASN data. If accepted shipment lines are populated.
4. Supply details are maintained.
5. Application Advice is generated. The supplier can check if there is a rejection of ASN through the advice.

 What are the business needs for an ASN?

 

Receive a Shipping notice in Advance.
Load ASN electronically into Oracle Apps using ROI.
Respond using Application Advice via EDI against the received ASN.

 

What are the different ways of populating data in the interface table?

The data can be populated in the interface table either by EDI, custom scripts that the customer can write (an example script is provided below) or via SQL Loader. The documentation is available in Oracle Manufacturing APIs and Open Interfaces Manual, Volume 1, Receiving Open interface between pages 658-690.The documentation clearly states which fields are required, which fields are optional and which fields are conditionally populated in each of the receiving open interface tables. A sample script is as follows. Save the below information in a file called asn.sql and run it .

/*The following script is what we use to load data for testing.
You may have to change this as per the data at your site. You need to
create and approve a PO for use with this script.

You run the asn.sql script in sqlplus which deletes old data from the
interface tables and then calls testasn.sql which inserts the data
into the interface tables.


This script inserts data into the RCV_HEADERS_INTERFACE and

RCV_TRANSACTIONS_INTERFACE. This data is for a DELIVER

transaction (TRANSACTION_TYPE ='RECEIVE' & AUTO_TRANSACT_CODE = 'DELIVER') -- DELIVER transaction

Other supported types are

(TRANSACTION_TYPE ='RECEIVE' & AUTO_TRANSACT_CODE = 'RECEIVE') -- RECEIVE transaction

(TRANSACTION_TYPE = 'SHIP' & AUTO_TRANSACT_CODE = 'SHIP'/'RECEIVE') -- SHIP or SHIP and RECEIVE transaction

 

/* Start of asn.sql  */set serveroutput on;set pages 999;execute DBMS_OUTPUT.ENABLE (100000);execute fnd_client_info.set_org_context ('129');delete from rcv_transactions_interface where processing_mode_code = 'BATCH';delete from rcv_headers_interface;delete from po_interface_errors where interface_type in ('RCV-856', 'ASBN');commit;start testasn.sql;/* end of asn.sql */ /* testasn.sql */INSERT INTO RCV_HEADERS_INTERFACE(HEADER_INTERFACE_ID  ,GROUP_ID    ,PROCESSING_STATUS_CODE   ,RECEIPT_SOURCE_CODE   ,ASN_TYPE    ,TRANSACTION_TYPE   ,LAST_UPDATE_DATE   ,LAST_UPDATED_BY   ,LAST_UPDATE_LOGIN   ,CREATION_DATE    ,CREATED_BY    ,SHIPMENT_NUM    ,SHIPPED_DATE                    ,<br> VENDOR_NAME    ,EMPLOYEE_NAME    ,VALIDATION_FLAG   ,FREIGHT_AMOUNT    ,FREIGHT_CARRIER_CODE            ,NUM_OF_CONTAINERS               ,SHIP_TO_ORGANIZATION_CODE       ,EXPECTED_RECEIPT_DATE)SELECTRCV_HEADERS_INTERFACE_S.NEXTVAL,RCV_INTERFACE_GROUPS_S.NEXTVAL,'PENDING','VENDOR','ASN','NEW',  -- 'CANCEL',sysdate,1,1,sysdate,1,'&shipment_num',--'05-JAN-1998',sysdate,'A-1 Lighting and Interiors','Subramanian, Mr. Kesavan (Kev)','Y',50,'DHL',20,'GLO',sysdate+5FROM DUAL;INSERT INTO RCV_TRANSACTIONS_INTERFACE(INTERFACE_TRANSACTION_ID ,HEADER_INTERFACE_ID         ,GROUP_ID   ,LAST_UPDATE_DATE  ,LAST_UPDATED_BY  ,CREATION_DATE   ,CREATED_BY   ,LAST_UPDATE_LOGIN  ,TRANSACTION_TYPE  ,TRANSACTION_DATE  ,PROCESSING_STATUS_CODE  ,PROCESSING_MODE_CODE  ,TRANSACTION_STATUS_CODE ,QUANTITY   ,UNIT_OF_MEASURE  ,AUTO_TRANSACT_CODE  ,RECEIPT_SOURCE_CODE  ,SOURCE_DOCUMENT_CODE  ,DOCUMENT_NUM   ,RELEASE_NUM                    ,DOCUMENT_LINE_NUM              ,DOCUMENT_SHIPMENT_LINE_NUM     ,-- DOCUMENT_DISTRIBUTION_NUM      ,SHIP_TO_LOCATION_CODE  ,--VENDOR_NAME   ,--VENDOR_SITE_CODE  ,NOTICE_UNIT_PRICE  ,VALIDATION_FLAG                ,CONTAINER_NUM   ,TRUCK_NUM   ,BARCODE_LABEL                  ,SUBINVENTORY                   ,TO_ORGANIZATION_CODE           ,ITEM_NUM                       ,LOCATOR)  SELECTRCV_TRANSACTIONS_INTERFACE_S.NEXTVAL,RCV_HEADERS_INTERFACE_S.CURRVAL,RCV_INTERFACE_GROUPS_S.CURRVAL,SYSDATE,1,SYSDATE,1,1,'RECEIVE', --'SHIP', --'06-JAN-1998',sysdate,'PENDING','BATCH','PENDING','&quantity','Each','DELIVER', --'SHIP','VENDOR','PO','&po_number','&po_release_num','&po_line_num','&po_shipment_line_num',--'&po_distribution_num','SACHQ', --'SACHQ',--'A-1 Lighting and Interiors',--'SACRAMENTO', 351,'Y','101-64643','64643','1.1.64643.03','Global','GLO', --'SAC','C13139', -- 'C13139''12.12.12..'FROM DUAL;commit; /* End of testasn.sql */


 

  How can we debug if an error occurs?

We can check in the po_interface_errors for errors with shipment numbers. As each ASN uses distinct shipment number, we can identify the error for the shipment. We may get a very generic error message RCV_ASN_NOT_ACCEPT. When we get the error message either there are a series of errors have occurred which cannot be handled or an undetermined error has occurred. To handle this kind of situation we have a script called runit.sql. This actually prints debug messages as the pre-processor process the interface records. We can also run the Receiving Interface report. This report shows you what warnings or errors occurred while the Receiving Transaction Processor was processing rows in the Receiving Open Interface tables. Rows processed in the Receiving Open Interface include Advance Shipment Notices (ASNs), receipts, and deliveries. Any errors that occur during this process are displayed in the Receiving Interface Errors report when you run the report. At the same time, the errors are also sent to the Oracle e–Commerce Gateway process responsible for generating Application Advices. (For example, Application Advices are sent back to suppliers detailing errors that occurred when the suppliers sent ASNs.)
A sample of runit.sql is available at the following link: http://www-apps.us.oracle.com/po/support
For R11i we have a profile option PO: Enable sql Trace on for Receiving, which actually prints the debug messages of runit.sql in the log file.

What are the profile options available for ASN?

The profile option available for ASN is RCV: Fail All ASN Lines if One Line Fails. When this profile option is set to ‘YES’, when multiple lines are being processed, even if one line fails validations or errors, the valid lines also error out.

Is ASN available for every customer?

In R107, ASN is a controlled production, which means only customers in the controlledproduction list can use ASN. In R11 and R11i, it is available for all customers.

Can we cancel a PO after shipping the ASN but before receiving the ASN?

We cannot cancel a PO if ASN is yet to be received.

0 0
原创粉丝点击