Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Management
An Oracle White Paper
March 2004
Order Import in Oracle Order Management
EXECUTIVE OVERVIEW 3
INTRODUCTION 3
BASIC FEATURES 3
DATA MODEL 16
ORDER IMPORT PROCESS 19
PROCESS FLOW 27
EXECUTIVE OVERVIEW
Order Import in Order Management allows import of Sales Orders from various
sources (Internal and External) and of different statuses (Open, Closed). Some
limitations of order import that were there in Order Entry (Release 11) have been
corrected in Order Management (Release 11i). This white paper covers how Order
Import Interface works in Order Management and serves as a functional and
technical guide to the Order Import Interface. This paper covers the features
available in OM Family pack H or below.
INTRODUCTION
Order Import is an Order Management Open Interface that consists of open
interface tables and a set of APIs. Order Import can import changes for existing
Sales Orders, new and completed sales orders or returns from various sources, both
Oracle and Non Oracle, for example, legacy systems, EDI transactions that are
processed by the Oracle e-Commerce Gateway, or internal orders created for
internal requisitions developed in Oracle Purchasing or returns.
Order Import features include validation and defaulting, processing constraint
checks, applying and releasing of order holds, scheduling of shipments, and finally
inserting, updating or deleting the orders in the base Order Management tables.
Order Management checks all the data during the import process to ensure its
validity within the module. Valid transactions are then converted into orders with
lines, reservations, price adjustments, and sales credits in the base Order
Management tables. It is to be noted here that Order Import does not populate any
Shipping tables. If the order is imported as BOOKED then during the post
booking process (when the Line status becomes AWAITING SHIPPING from
BOOKED) will cause data to be written in the WSH_DELIVERY_DETAILS and
WSH_DELIVERY_ASSIGNMENTS tables.
Each time you run Order Import, Order Management produces a summary of
information letting you know of the total number of orders that Order Import has
evaluated, and if succeeded or failed.
BASIC FEATURES
This section gives a brief idea of the features available, the limitations and the
Profile Options associated with Order Import in Release 11i.
Import Sources
Orders can be imported from different Import sources as long as the Import
source is defined in the application and is enabled. This can consist of both Oracle
and non-Oracle sources.
Order Import in Order Management Page 3
Status Of Orders
Orders can be imported as ENTERED, BOOKED or CLOSED.
If an order is imported with an entry status of ENTERED
(OE_HEADERS_IFACE_ALL.BOOKED_FLAG=N or NULL) then the result
after import is that the line is BOOK_ORDER eligible.
Order can be imported in Booked condition using one of the following methods:
By populating the column BOOK_FLAG of the table
OE_HEADERS_IFACE_ALL as ‘Y’.
By passing the action request to the OE_ACTIONS_IFACE_ALL table,
i.e. in the OE_HEADERS_IFACE_ALL do not pass the BOOK_FLAG
and in the OE_ACTIONS_IFACE_ALL table put operation code as
BOOK_ORDER.
Order Import ensures that all required fields for entry or booking are validated
appropriately as the orders are imported. It imports the order as Entered and
attempts to book it. If any of the required fields for a booked order are not
supplied, Order Management retains the order in the ‘ENTERED’ status and
notifies you of the error.
Closed Order is treated differently than the open orders while importing. Importing
order the first time in Closed status, means importing order from the legacy system
where they were already Closed to Oracle OM system, they should pass
Closed_Flag as "Y" and operation_code should be "INSERT". The Closed_Flag
should be passed as "Y" to the oe_headers_iface_all table. As orders were already
closed in the old system, there cannot be any changes performed to the records,
which means no defaulting. For example, while importing open orders if the
order_type is not passed and defaulting rule is set, the value of order_type can be
generated and assigned to order_type column, however this part cannot be done
for the Closed Order Import in which case all the mandatory columns such as
Closed Order must go through the booking cycle. The validation for all the
booking required columns could be done. The only difference being that the two
columns Transactional currency code, and the line number are passed for importing
closed orders which is not required for open orders.
WORKLOW
Order can be imported within any valid order workflow activity but this valid
workflow has to be the initial activity of Entered, Booked, or Closed. Orders
imported using Order Import cannot be in the middle of a workflow activity.
SCHEDULING
Order Import allows you to reserve orders as they are imported, using the same
rules as online order entry. If the scheduling request is unsuccessful on an imported
order, the order will still be imported, and the scheduling exceptions can be viewed
in the Error Messages of the Order Import Corrections window. To unscheduled a
line by order import the operation_code should be ‘UPDATE’ and the
request_date and scheduled_ship_date on OE_LINES_IFACE_ALL should be
NULL
However, before Patchset G, this order import will fail if scheduling fails with the
message ‘Unable to meet latest acceptable Date’. One work around was to set up
Order Import in Order Management Page 4
the latest acceptable date to be larger than the infinite supply time horizon for the
items. This ensures that scheduling never fails on the internal orders and they get
into OM without a problem. Order import will also fail if
SCHEDULE_SHIP_DATE is populated in the interface or is defaulted and
scheduling fails.
The following are the scenarios in detail.
1. If ATP is available at request date of requisition: OK/ Order is created;
Scheduling is done
2. If ATP is not available at need_by_date (request_date) of requisition but
ATP is available at (request_date + x days) and that (request_date + x
days) <= Latest acceptable date then the order is imported and scheduled
at date = (request_date + x days)
3. If ATP is neither available at need_by_date (request_date) of requisition
nor available at date < Latest acceptable date, then the order is not created
and the import fails with the message ‘Scheduling failed - Unable to meet
the latest acceptable date’.
Another workaround is to use PDS (Planning Data Store) instead of ODS
(Operation Data Store) as there is a change with MRP Patchset E whereby
scheduling of Internal Orders always succeed when running in a PDS Planning
mode.
Post Patchset G for internal Orders PO will only pass the request_date, which
will be treated as schedule_arrival_date, and schedule_ship_date will be
calculated by MRP API’s, which look at the shipping network setup to
determine intransit and lead times.
For ATO and PTO items when the order is imported in booked status, the
scheduling level for the order type and line type is set to all scheduling actions, It
will reserve only the PTO components. ATO components will not be reserved
when order is booked. ATO components will be reserved when the work order is
opened.
Add Customer
Order Management provides the capability to add a new customer, the address and
contacts using Order Import. The table OE_CUSTOMER_INFO_IFACE_ALL
needs to be populated for this.
Based on the data available in the OE_HEADERS_IFACE_ALL the data from the
table OE_CUSTOMER_INFO_IFACE_ALL is processed to add a new customer.
This table can also be used to import a new address only or contact information of
an existing Customer.
The link between the header interface record and the customer interface record is
made through the column CUSTOMER_INFO_REF of the table
OE_CUSTOMER_INFO_IFACE_ALL and any one of the columns mentioned
below. The link depends on the CUSTOMER_INFO_TYPE_CODE. When the
order import is used to create a new customer (new account/address/contact etc),
the CUSTOMER_INFO_TYPE_CODE should be either ('ACCOUNT',
'ADDRESS', or 'CONTACT') to denote the type of information in the record. The
following table explains the linkage between the various header interface table
columns and the column CUSTOMER_INFO_TYPE_CODE and the usage of
the combination.
OE_CUSTOMER_INFO_IFACE_ALL
Importing an order using a new Customer information will require you to add and
also to remove some data from the headers interface table depending on the kind
of information being imported. For example if the customer account alone is to be
imported then the Orig_Sys_Customer_Ref needs to be populated and the
sold_to_org/sold_to_org_id should be populated as null.
Some or all of the following data is to be populated in oe_headers_iface_all table,
Orig_Sys_Customer_Ref
Orig_Ship_Address_Ref
Orig_Bill_Address_Ref
Orig_Deliver_Address_Ref
Sold_to_Contact_Ref
Ship_to_Contact_Ref
Bill_to_Contact_Ref
Deliver_to_Contact_Ref
And some or all of the following data needs to be removed from the
oe_headers_iface_all tables depending upon the information being imported.
sold_to_org / sold_to_org_id
invoice_to_org / invoice_to_org_id
ship_to_org / ship_to_org_id
Price Comparison
Order Import performs a price comparison on imported orders. If a selling price
has been provided and Calculate_price_flag is ‘Y’, Order Import warns of the
Order Import in Order Management Page 10
differences, if any, between the two prices as discrepancies. The warning can be
viewed in the Error Message window of the Order Import Corrections window.
i. Order, Returns -> Process Messages -> (Provide Request Id to Query)
ii. Order, Returns -> Import Orders -> Corrections -> Query on some existing
order (as successfully imported orders are deleted from the interface table) ->
Use Error Button to go to the process message UI and query the request.
Importing Returns
Returns can be imported like a regular sales order. Order Management utilizes
workflow activities to import returns.
If you want to import a return order for a non-referenced return, you must
populate all required attributes for creating a return order. Use an order category of
RETURN or MIXED for the Order Header record. Populate all required attributes
for creating a return order line. For Order Line Record, you cannot specify a value
for the line category_code column. You need to populate the column
ordered_quantity with a negative value. Line_type_id is optional, (provided a
default line_type has been defined for the specified Order Type.). You will need to
populate the column reason_code for all return lines. Valid values are those values
defined for the Order Management QuickCode CREDIT_MEMO_REASON.
Creation of a Referenced RMA (If users want to return an existing outbound line)
If you create a referenced RMA, you should copy the Header Record for the return
from the referenced Order header record, modifying the Order Type to category
RETURN or MIXED (order_type_id from oe_transaction_types_all).
For the Order Line record, populate the following attributes only:
1. line_category_code: RETURN
2. return_context: ORDER
3. return_attribute1: header_id from the referenced order.
4. return_attribute2: line_id from the referenced order line.
5. calculate_price_flag: Set it to “P” if you want to retain the original price,
the flag to “Y” if you want to reprice the RMA line. Putting the flag to
“N” will still import the freight charges from the referenced line.
6. line_type_id: Assign a line_type_id from RMA line. Line_type_id is
optional, provided a default line_type has been defined for the specified
Order Line Type. )
7. Return_reason_code: Populate a reason code from lookup_type
CREDIT_MEMO_REASON
8. For sales credit info, populate the header_level/line level sales credits
details from the referenced order.
Note: Before patchset H there is no validation done for the reason code while
importing the Return Order. However, if the Reason Code is Invalid then after
importing it will be shown in the sales order form as NULL.
To get the Valid Reason Code, set the Org context using the following procedure:
exec fnd_client_info.set_org_context(&org_id); then use the following query:
SELECT LOOKUP_CODE
FROM OE_AR_LOOKUPS_V
Order Import in Order Management Page 12
WHERE LOOKUP_TYPE =
'CREDIT_MEMO_REASON'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL
(START_DATE_ACTIVE, SYSDATE)
AND NVL (END_DATE_ACTIVE, SYSDATE);
Credit Checking
Order Management performs credit checking on all imported orders, or changes
according to the credit checking rules you have been defined in Order
Management.
Configuration (ATO/PTO)
Order Management provides you with the ability to import ATO and PTO
configurations. For EDI orders, you can import valid and invalid configurations,
however, you will not be able to book orders with invalid configurations.
In case of (Configurations) ATO models (also in case of PTO models), user has to
send the optional components along with model. This is because although OM
knows the BOM of the ATO model, it will not know what options user wants to
select. User should not send the standard mandatory components.
The following operation Code can be used in the actions table for the
configurations. For both the operation codes, the Entity Id used is the Line_ID of
the Top Model Line of the ATO Configuration.
-- DELINK_CONFIG deletes the configuration item.
-- MATCH_AND_RESERVE checks if an existing configuration item matches the
configuration created by the user and if the configuration item is available, it
reserves it.
Table : Operation Code for Configuration
ACTION OPERATION_CODE OTHER DATA
Delink the Config Item DELINK_CONFIG none
Line Sets
Unlike in Order Import in Order Entry (10.7 and 11) Line sets like arrival Set,
Invoice Set and Fulfillment Set are allowed to be imported in 11i.
You can import grouped order lines, called sets, for a new or existing orders. You
can also add a line to an existing set. If that set already exists, the line will be
included in the set. However, if the set does not already exist, a new set will be
created and the line will be added to the set. In addition, if any line attribute which
is also a set attribute, does not match with the set attribute value, the set attribute
value will overwrite the line attribute.
A line can be added to a new set by passing set name
(ship_set_name/arrival_Set_name/fullfillment_set_name/invoice_set_name) on
the line record (OE_LINES_IFACE_ALL). Or use the set id
(ship_set_id/arrival_set_id/fulfillment_set_id/invoice_set_id) to add to an existing
set.
Viewing Errors
In Order Management, the error can also be viewed from the Application. The
order that have failed in Order Import can be selected from the Corrections Form
(OEXOIMPT) and the error can be seen using the Error Button. The error
Order Import in Order Management Page 15
messages stored are context sensitive. If you choose the Errors button from the
Order Header region, all the errors for that order are displayed. If you choose the
Errors button from the Lines region, all the errors are displayed for that line. If you
encounter errors while importing orders, you can also fix these errors in the
window and try importing the order again. You can navigate from the Errors
window to the Order Headers or Lines region where the error has occurred.
The error can also be seen in the Order Import Log file when importing using the
Order Import concurrent request.
DATA MODEL
This section graphically represents the tables that store imported order information
and the relationships between them.
A summarization for each of the tables shown in the ER diagram has been done
below.
OE_ORDER_SOURCES
All the Interface tables for validating the Order import source use this table. For
every row in OE_ORDER_SOURCES, there can be one or more rows in the
seven interface tables and the two base tables.
OE_HEADERS_IFACE_ALL
This is a multi–org table for sales order headers open interface. The table stores
order header information that will be imported into the OM tables after successful
running of Order Import. This is related to two other interface tables
OE_CREDIT_IFACE_ALL and OE_LINES_IFACE_ALL. Corresponding to
each record in this table, there can be one or more records in the
OE_CREDIT_IFACE_ALL and OE_LINES_IFACE_ALL tables. In the
OE_HEADERS_IFACE_ALL, the orig_sys_document_ref and order_source_id
form the unique key and in case you have populated more than one record with the
same orig_sys_document_ref and order_source_id, then only one will get imported
and if you delete one from the corrections table, all will get deleted.
OE_LOTSERIAL_IFACE_ALL
This is a multi–org table for return line lot serials open interface. The table stores
return line lot serial information of records that are imported into Oracle Order
Management using Order Import. The column LOT_NUMBER needs to be
populated if the item is lot controlled, it can take both numeric and alphanumeric in
the latest version of Order Management. The orig_sys_document_ref , the
orig_sys_line_ref , the orig_sys_lotserial_ref and order_source_id are to be
populated when using this table and the orig_sys_line_ref has to be populated with
a not null value.
Each record can be related to the OE_LINES_IFACE_ALL,
ORDER_SOURCES_ALL and OE_ORDER_LINES_ALL.
OE_CREDIT_IFACE_ALL
This is a multi–org table for sales order/line credits open interface. This
table stores sales credits information of records that are imported into
Oracle Order Management using Order Import. Each record here is
connected to a record in the OE_LINES_IFACE_ALL,
OE_HEADERS_IFACE_ALL and ORDER_SOURCES_ALL tables.
There can be more than one row in OE_CREDIT_IFACE_ALL table
against each record in the OE_LINES_IFACE_ALL,
OE_HEADERS_IFACE_ALL and ORDER_SOURCES_ALL tables.
OE_RESERVTNS_IFACE_ALL
This is a multi–org table for inventory reservations open interface. This
table stores reservation details of records that are imported into Oracle
Order Management using Order Import. The records of this table are
connected to OE_LINES_IFACE_ALL via orig_sys_line_ref and
orig_sys_shipment_ref.
OE_PRICE_ADJS_IFACE_ALL
This is a multi–org open interface table for sales order/line price adjustments. This
table stores price adjustment information that is imported into Oracle Order
Management using Order Import. The records of this table are connected to
OE_HEADERS_IFACE_ALL via orig_sys_document_ref, and to
OE_LINES_IFACE_ALL via orig_sys_line_ref and
orig_sys_shipment_ref.
OE_CUSTOMER_INFO_IFACE_ALL
This is the multi-org open interface table for customer import. This table stores
information required for creating a new customer using Order Import.
This data of this table is linked to the table OE_HEADERS_IFACE_ALL through
any one of the following columns
Orig_Sys_Customer_Ref
Orig_Ship_Address_Ref
Orig_Bill_Address_Ref
Orig_Deliver_Address_Ref
Sold_to_Contact_Ref
Ship_to_Contact_Ref
Bill_to_Contact_Ref
Deliver_to_Contact_Ref
This data of this table is linked to the table OE_LINES_IFACE_ALL through any
one of the following columns
Orig_Ship_Address_Ref
Orig_Bill_Address_Ref
Orig_Deliver_Address_Ref
Ship_to_Contact_Ref
Bill_to_Contact_Ref
Deliver_to_Contact_Ref
Header Validation
First the Order source and the Orig_sys_document_ref entered in the Header
Interface table is validated for Not NULL values. At this stage, if the value for the
sold_to_org is not there, then a new customer is created (call to
Create_New_Cust_Info).
The value for the BOOKED_FLAG is checked for the header interface table and
if that is Y then OE_ACTIONS_IFACE_ALL is populated with Operation_Code
of BOOK_ORDER. Then the order source and the operation code are checked.
NOTE: The four Operation Codes supported are INSERT, CREATE, UPDATE
and DELETE.
The Header related Adjustment table is validated for a not null value of
orig_sys_discount_ref, based on the combination of the operation code of the
header table and the price adjustment table. Either the Order Price Adjustment Id
or the count is retrieved.
The following table shows the allowed combination of Operation code in Header
interface table and Valid Operation Code in the Price Adjustment table/ Price
attribute table / Sales Credit table.
Table: Valid Operation Code relation
Header Interface Table Price Adj Table/ Price Attb Table/ Sales Credit Table
INSERT, CREATE INSERT, CREATE
UPDATE INSERT, CREATE, UPDATE, DELETE
Order Import in Order Management Page 21
DELETE DELETE
The Header related Price adjustment attributes are validated (if any) for a not null
value of orig_sys_atts_ref. Based on the same combination of the operation code as
in the case of Price adjustment table, the count or the order_price_atrib_id is
retrieved.
Then the Header related sales credit records are validated for not null value of
orig_sys_credit_ref. Here also, based on the same Operation code combination, it
either gets either the count or the sales_credit_id.
After validating the above Header Level Attributes, the Process Order API is
called. However, before calling this it is checked if the Validate Only Flag is Y or N.
If Y, then the API Service Level passed to the Process Order API is Validate only.
Inside Process_Order, first the Header is processed and then a loop over the line
table is done for each Header.
The following steps are done for the Header and the line respectively:
Attribute Security: Check if the operation is allowed based on the
Processing Constraints defined.
Attribute level validation: Here the attribute level validation for header
attributes and the line attributes are done. For example,
Deliver_To_Contact, Conversion_Type etc.
Default missing attributes: Here the missing attributes are defaulted. For
example Org_id, Created_by etc.
Validate Entity: The Entity level validation is done, For example , for
Order_Type, if the BOOKED_FLAG is passed as Y, then the Book
required attributes are also checked. Entity level security is checked again
as some attributes may have changed due to defaulting.
After this, the Write process to the database is done.
Some of the values required for the BOOKING process are listed below,
Table : Book Required attributes:
ATTRIBUTE NAME REMARKS
SOLD_TO_ORG_ID
SALES_REP_ID
ORDERED_DATE
INVOICE_TO_ORG_ID
TAX_EXEMPT_FLAG
SHIP_TO_ORG_ID Not for RETURN Lines
PAYMENT_TERM_ID Not for RETURN Lines
AGREEMENT Based on the ORDER TYPE
CUSTOMER_PO_NUMBER Based on the ORDER TYPE
CONVERSION_TYPE_CODE If SOB currency is different from order
Line Validation
The Line validation starts with the processing of all the top-level parents
(MODEL, KIT, STANDARD) before any of the child lines. This is because all the
child lines refer to the parent lines using top_model_line_index,
service_reference_line_index etc.
The processing is done in the following order.
1. All the models and standard lines first
2. All the classes
3. All the options
4. All service lines (If any).
This is irrespective of the operation on the lines.
Once the Line processing starts, the processing constraints on the Line Attributes
are checked (if this operation is allowed). For example,
DELIVERY_LEAD_TIME,DELIVER_TO_ORG, EARLIEST_ACCEPTABLE
_DATE, FREIGHT_TERMS, INVENTORY_ITEM, and DESCRIPTIVE
FLEXFIELD ATTRIBUTES. If none of the attributes are constrained for this
Operation then the Line attributes are validated. For example,
INVOICE_TO_ORG, ITEM_TYPE, SHIP_FROM_ORG_ID,
SOLD_TO_ORG, LINE FLEXFIELD ATTRIBUTES. After the attribute
validation is done, the attribute defaulting is carried out. It is important for
defaulting to work correctly, these fields must:
A. Not be dependent on any other field (refer OEXUDEPB.pls for the list of
dependencies)
B. Not be enabled for security constraints, as there is no security check for these
fields.
After this the Entity level validation is done, First the required attributes e.g
Line_id, Inventory_item_id etc. are validated and then the conditionally required
attributes for the line e.g subinventory etc., are validated.
If the Booked_flag is set to Y and the Cancelled_flag is not equal to Y then all the
Attributes required for Booking the Line (Order) e.g. SOLD_TO_ORG_ID,
INVOICE_TO_ORG_ID, ORDERED_QUANTITY etc are also validated.
Note: Ship To and Payment Term are required on ORDER lines, NOT on
RETURN lines. Warehouse and schedule date are required on RETURN lines.
Tax code is required under following conditions,
a. The tax handling is required at line level (i.e. Tax_exempt_flag = 'R'-Required.)
ORDER_TYPE
SELECT 'VALID'
FROM OE_ORDER_TYPES_V
WHERE ORDER_TYPE_ID = ‘&order_type_id’
AND SYSDATE BETWEEN NVL( START_DATE_ACTIVE, SYSDATE )
AND NVL( END_DATE_ACTIVE, SYSDATE );
SELECT 'Y'
FROM DUAL
WHERE EXISTS (SELECT 'Y'
FROM OE_ORDER_HEADERS
WHERE HEADER_ID <> ‘&header_id’
AND SOLD_TO_ORG_ID = ‘&sold_to_org_id’
AND CUST_PO_NUMBER = ‘&cust_po_number’ )
OR EXISTS (SELECT 'Y'
FROM OE_ORDER_LINES
WHERE HEADER_ID <> ‘&header_id’
AND SOLD_TO_ORG_ID = ‘&sold_to_org_id’
AND CUST_PO_NUMBER = ‘&cust_po_number’ );
DEMAND CLASS
SELECT 'VALID'
FROM OE_FND_COMMON_LOOKUPS_V
WHERE LOOKUP_CODE = ‘&demand_class_code’
AND LOOKUP_TYPE = 'DEMAND_CLASS'
AND APPLICATION_ID = 700
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL (START_DATE_ACTIVE,
SYSDATE)
AND NVL (END_DATE_ACTIVE, SYSDATE);
SELECT 'VALID'
FROM qp_list_headers_vl
WHERE list_header_id = ‘&price_list_id’
and list_type_code in ('PRL', 'AGR') and
nvl(active_flag,'Y') ='Y';
SELECT 'VALID'
FROM OE_SOLD_TO_ORGS_V
WHERE ORGANIZATION_ID = ‘&sold_to_org_id’
AND STATUS = 'A'
AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
AND NVL(END_DATE_ACTIVE, SYSDATE);
INVOICE TO ORG ID
SELECT 'VALID'
FROM OE_INVOICE_TO_ORGS_V INV
WHERE INV.ORGANIZATION_ID = ‘&invoice_to_org_id’
AND INV.STATUS = 'A'
AND SYSDATE BETWEEN NVL(INV.START_DATE_ACTIVE,
SYSDATE)
AND NVL(INV.END_DATE_ACTIVE, SYSDATE);
DELIVER TO ORG ID
SELECT 'VALID'
FROM OE_DELIVER_TO_ORGS_V DEL
WHERE DEL.ORGANIZATION_ID = ’&deliver_to_org_id’
AND DEL.STATUS = 'A'
AND SYSDATE BETWEEN NVL (DEL.START_DATE_ACTIVE,
SYSDATE)
AND NVL (DEL.END_DATE_ACTIVE, SYSDATE);
SHIP TO CONTACT
SELECT 'VALID'
FROM OE_RA_CONTACTS_V CON
, OE_RA_CONTACT_ROLES_V ROL
WHERE CON.CONTACT_ID = ‘&ship_to_contact_id’
AND CON.STATUS = 'A'
INVOICE TO CONTACT
SELECT 'VALID'
FROM OE_RA_CONTACTS_V CON
, OE_RA_CONTACT_ROLES_V ROL
WHERE CON.CONTACT_ID = ‘&invoice_to_contact_id’
AND CON.STATUS = 'A'
AND CON.CONTACT_ID = ROL.CONTACT_ID (+)
AND NVL (ROL.USAGE_CODE,'BILL_TO')='BILL_TO';
SELECT 'VALID'
FROM OE_LOOKUPS
WHERE LOOKUP_CODE = ‘&source_type_code’
AND LOOKUP_TYPE = 'SOURCE_TYPE'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL (START_DATE_ACTIVE,
SYSDATE)
AND NVL (END_DATE_ACTIVE, SYSDATE);
PAYMENT TYPE
SELECT 'VALID'
FROM OE_LOOKUPS
WHERE LOOKUP_CODE = ‘&payment_type_code’
AND LOOKUP_TYPE = 'PAYMENT TYPE'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL (START_DATE_ACTIVE,
SYSDATE)
AND NVL (END_DATE_ACTIVE, SYSDATE);
SELECT 'VALID'
FROM OE_LOOKUPS
WHERE LOOKUP_CODE = ‘&flow_status_code’
AND LOOKUP_TYPE = 'LINE_FLOW_STATUS'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE,
SYSDATE) AND NVL(END_DATE_ACTIVE, SYSDATE);
SELECT 'VALID'
FROM OE_AR_LOOKUPS_V
WHERE LOOKUP_CODE = p_tax_exempt_flag
AND LOOKUP_TYPE = 'TAX_CONTROL_FLAG'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL (START_DATE_ACTIVE,
SYSDATE) AND NVL (END_DATE_ACTIVE, SYSDATE);
TRANSACTIONAL CURRENCY
SELECT 'VALID'
FROM OE_FND_CURRENCIES_V
WHERE CURRENCY_CODE = p_transactional_curr_code
AND CURRENCY_FLAG = 'Y'
AND ENABLED_FLAG = 'Y'
AND SYSDATE BETWEEN NVL (START_DATE_ACTIVE,
SYSDATE) AND NVL (END_DATE_ACTIVE, SYSDATE);
PROCESS FLOW
The process flow of the records while Order Import is done is shown below. It has
been divided into three parts; first the pre Process Order API part, second the
Process Order API part and third the Post Process Order API part.
The process flow of Header and Line processing by the process order API has
been dealt with separately at the end.
The following Flow diagram shows the Process flow of the records from the time
the Order Import starts till the Process Order API is called.
Figure 1a The flow of Pre Process Order API
There is a branching done at header and line processing to explain them in detail
later.
Order Import in Order Management Page 29
Figure 1c The flow of Process Order API
APAPI
Order Import in Order Management Page 30
After the Process Order API has processed the records the post processor is called
which actually does the price comparison etc. The flow is shown below,
CC
PRICE COMPARISON
RESERVATIONS
UPDATE
DELETE RECORDS
INTERFACE
FROM THE
TABLE ERROR
INTERFACE TABLES
FLAG
COMMIT OR COMMIT OR
ROLLBACK ROLLBACK
AL
CHECK PROCESSING
CONSTRAINT
VALIDATE ATTRIBUTES
POPULATE DEFAULT
ATTRIBUTE
VALIDATE ENTITY
CANCEL RECORD
No
CHECK SCHEDULE
STATUS
NEEDS
SCHEDULING
SCHEDULE THE
LINE SCHEDULED
AL+
AL+
UPDATE
EVALUATE HOLD
SOURCE
EVALUATE HOLD EVALUATE HOLD
SOURCE SOURCE
CREATE
WORKFLOW
MODIFY MODIFY
WORKFLOW WORKFLOW
ASSIGN LINE
NUMBER
END
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracle.com