You are on page 1of 10

Intercompany Invoicing and

Advance Pricing Integration


An Oracle White Paper
May 2002
Intercompany Invoicing and Advance Pricing
Integration

OVERVIEW

This document gives an overview of the two new functionalities that are
enhancement to Oracle Inventory’s Intercompany Invoicing functionality. These
enhancements were released as part of patch set H features. The new features are
as follows:
1. Invoicing Internal Orders (of type Intransit Shipments) as a part of
Intercompany invoicing.
2. Using Advance Pricing (QP) setup and Engine to derive invoice price
for items to generate Intercompany Invoices.
Note: For information regarding setup for internal orders, please refer to
Purchasing, Order Management, and Shipping and Financial manuals. For
details on the setup for advanced pricing, please refer to advanced pricing users
guide.

Intercompany Invoicing for Internal Orders


Before patch set H of inventory, inter-company invoices were created for trade
orders only. Now users can set up a profile to create inter company invoices for
Internal Orders of type In-transit Shipments. The profile is called –
1. INV: Inter-company Invoice for Internal Orders. This profile can be set
at site level and assumes a default value of No.
The form to define the inter-company relations is common for both trade orders
and internal orders and remains unchanged. It is this set up between the selling
and shipping operating units that decides if an internal order or a trade order
qualifies for creating inter-company invoices (Both AR and AP).

Advance Pricing (QP) Engine Integration


In the existing functionality, the invoice price for creating inter-company AR
and AP invoices for Trade Orders is picked from the price list specified for the
customer in the customer setup. So every time an item in a trade order is
invoiced for a given customer, same price and the price list is used. In other

1
words, the price of an item is static. If user wants to use a different price, user
would have to either change the price in the price list for that item or change the
price list code in the customer set up. Item price could also come from an
external API, if the external API was programmed to return a value for that item.
This external API is a hook provided which users can program to use their own
criteria to return an invoice price.
With this enhancement, Inter-company invoicing program would be able to use
Advanced Pricing Engine to derive invoice price for an item. Advanced pricing
setup would allow users to define different rules based on which a price list
should be used to get invoice price for an item. Users can use this feature by
setting a profile otherwise the system would use the static price as explained in
the previous paragraph. The new profile is called-
2. INV: Advanced Pricing for Inter-company Invoice. This can be set at
site level. When this profile is set to “Yes”, user can use Advance
Pricing (QP) engine for Inter-company Invoicing.
Note: User is expected to purchase a separate license for Advance Pricing.
Setting this profile without a license will not provide the functionality.
New Request Type, Global Structure, Context and new set of Qualifier and
Pricing Attributes have been seeded to define advanced pricing rules for inter
company invoicing process. Details are given in the following pages.

INTEGRATION OF ADVANCE PRICING & INTERCOMPANY INVOICING


If profiles 1 and 2 are set to “Yes” and QP is installed then user will be able to
use QP for Intercompany invoicing of Internal Orders.
Flow chart given below gives in details the logic that is used to get item price
during the process of intercompany invoicing.
Intercompany invoicing for Sales Order and Internal Order will look for an
external API (customer / user programmable hook) to return a price for the items
that have been included in the Sales Order or Internal Order. If the API doesn’t
return a value and if both the profiles that are mentioned above are set to “Yes”,
then the pricing logic will try to get the price from the price list using the QP
engine. If QP finds the price for that Item in one of the price lists then
intercompany invoicing will process that record and move to the next record. If
QP is unable to find a correct price for that item then intercompany invoicing
will log an error message for that record and move to the next record.
Intercompany invoicing for Sales Order & Internal Order will look for an
external API (customer / user programmable hook) to return a price for the items
that have been included in the Sales Order or Internal Order. If the API doesn’t
return a value and If QP profile (profile # 2) is set to “No” and profile # 1 is set
to “Yes”, then the pricing logic will try to get the price from the price list then
that has been specified for that customer (in the customer setup). If there is no

2
price defined then an error message will be logged and pricing logic will go to
the next record and start processing it.

Intercompany Price
for a given item End / Go
External (Customer) to next
API Returns Price record
External (Customer)
API doesn’t Return
Price

QP profile set QP profile set


to “Yes” to “No”

QP not QP No Customer
installed installed Customer Price List
Price List

Price not Price Price not Price


returned returned returned returned

Log Error/ End / Go Log Error/ End / Go


End / Go to to next End / Go to to next
next record record next record record

Pricing Logic for Intercompany Invoicing

IMPLEMENTATION CONSIDERATIONS
If users want to use Advanced Pricing feature for Intercompany Pricing, then
before defining pricelists, user has to set the following 2 profiles at the user level
with the following values:

3
QP: Pricing Transaction Entity – Intercompany Transaction
QP: Source System Code - IC
This will allow the user to see and use the Intercompany context, in addition to
the Order Fulfillment context to define attribute-mapping rules.

SEED DATA SUPPORT OF ADVANCED PRICING INTEGRATION WITH


INTERCOMPANY INVOICING

Two new mappings/relationships between request type and source system codes
have been seeded. One is between request type IC and source system INV, and
the second is between request type IC and source system QP. The request type
IC and Source system INV are new set of seed data. The above two mappings
allow the users to have price lists that are common to both inter-company
invoicing and sales order invoicing. For trade orders, price lists are created with
source system code of ‘QP’, and the mapping between OM (Oracle order
management system) and QP (Advanced pricing) is used to pick pricelists for
trade order invoices. Similarly, inter-company users may decide to create
separate price lists for intercompany invoicing, that is with source system code
of INV. This can be achieved by setting the profile ‘QP: Source system code’ to
INV. In order to use only these prices lists for inter-company invoicing, the
mapping between IC and QP should be disabled, otherwise if pricing engine
finds a better fit for the price list defined under QP, it will return use that
pricelist.
A new global structure has been defined that can be used to define mapping
rules for qualifier attributes and pricing attributes for price lists. This global
structure is based on all the information that is captured and available in a sales
order or an internal sales order record. All seeded defaulting rules are defined by
using this global structure. Users can use the data in this global structure to
define more mapping rules. The global structure is listed at the end of this
document.
Following is the set of seeded Qualifier attributes, Pricing attributes and
defaulting rules to support inter-company invoicing:

Qualifier Context
Qualifier Data
Context Table Validated Value Set
Attribute Source
Intercompany_Invoicing Shipping Qualifier_ HR_OPERATING_UNITS
Organization attribute1

4
Selling Qualifier_ HR_OPERATING_UNITS
Organization attribute2
Customer ID Qualifier_ HZ_CUST_ACCOUNTS,
attribute3 Hz_parties
Customer Site ID Qualifier_ ra_addresses_all,
attribute4 ra_site_uses_all,
fnd_territories_vl ft
Default Attribute Mapping for Line Qualifier Attributes
Defaulting
Pricing
Context Source Package Source Function Condition
Attribute
Template
Intercompany_Invoicing Qualifier INV_IC_ORDER_ G_LINE. INV
Attribute1 PUB IC_SHIPPING_ORG_ID Intercompany
Pricing
Intercompany_Invoicing Qualifier INV_IC_ORDER_ G_LINE. INV
Attribute2 PUB IC_SELLING_ORG_ID Intercompany
Pricing
Intercompany_Invoicing Qualifier INV_IC_ORDER_ G_LINE. INV
Attribute3 PUB IC_CUSTOMER_ID Intercompany
Pricing
Intercompany_Invoicing Qualifier INV_IC_ORDER_ G_LINE. INV Order
Attribute4 PUB IC_CUSTOMER_SITE_ID Volume
Context
Order Qualifier INV_IC_ORDER_ G_LINE.ordered_date INV Order
Attribute1 PUB Context
Volume Qualifier INV_IC_ORDER_ G_LINE.ORDERED_QUA INV Order
Attribute15 PUB NTITY Volume
Context
Default Attribute Mapping for Line Pricing Attributes
Pricing Defaulting
Context Source Package Source Function
Attribute Template
Item Pricing INV_IC_ORDER_ G_LINE.inventory_item_id INV Item
Attribute1 PUB Context

Global Structure:
PACKAGE INV_IC_ORDER_PUB

5
accounting_rule_id NUMBER
agreement_id NUMBER
attribute1 VARCHAR2(240)
attribute10 VARCHAR2(240)
attribute11 VARCHAR2(240)
attribute12 VARCHAR2(240)
attribute13 VARCHAR2(240)
attribute14 VARCHAR2(240)
attribute15 VARCHAR2(240)
attribute2 VARCHAR2(240)
attribute3 VARCHAR2(240)
attribute4 VARCHAR2(240)
attribute5 VARCHAR2(240)
attribute6 VARCHAR2(240)
attribute7 VARCHAR2(240)
attribute8 VARCHAR2(240)
attribute9 VARCHAR2(240)
booked_flag VARCHAR2(1)
cancelled_flag VARCHAR2(1)
context VARCHAR2(30)
conversion_rate NUMBER
conversion_rate_date DATE
conversion_type_code VARCHAR2(30)
VARCHAR2(30)
customer_preference_set_code NUMBER
created_by DATE
creation_date VARCHAR2(50)
cust_po_number NUMBER
deliver_to_contact_id NUMBER
deliver_to_org_id VARCHAR2(30)
demand_class_code NUMBER
earliest_schedule_limit DATE
expiration_date VARCHAR2(30)
fob_point_code VARCHAR2(30)
freight_carrier_code VARCHAR2(30)
freight_terms_code VARCHAR2(240)
global_attribute1

global_attribute10 VARCHAR2(240)
global_attribute11 VARCHAR2(240)
global_attribute12 VARCHAR2(240)
global_attribute13 VARCHAR2(240)
global_attribute14 VARCHAR2(240)
global_attribute15 VARCHAR2(240)
global_attribute16 VARCHAR2(240)
global_attribute17 VARCHAR2(240)
global_attribute18 VARCHAR2(240)
global_attribute19 VARCHAR2(240)
global_attribute2 VARCHAR2(240)
global_attribute20 VARCHAR2(240)
global_attribute3 VARCHAR2(240)
global_attribute4 VARCHAR2(240)
global_attribute5 VARCHAR2(240)
global_attribute6 VARCHAR2(240)
global_attribute7 VARCHAR2(240)
global_attribute8 VARCHAR2(240)

6
global_attribute9 VARCHAR2(240)
global_attribute_category VARCHAR2(30)
TP_CONTEXT VARCHAR2(30)
TP_ATTRIBUTE1 VARCHAR2(240)
TP_ATTRIBUTE2 VARCHAR2(240)
TP_ATTRIBUTE3 VARCHAR2(240)
TP_ATTRIBUTE4 VARCHAR2(240)
TP_ATTRIBUTE5 VARCHAR2(240)
TP_ATTRIBUTE6 VARCHAR2(240)
TP_ATTRIBUTE7 VARCHAR2(240)
TP_ATTRIBUTE8 VARCHAR2(240)
TP_ATTRIBUTE9 VARCHAR2(240)
TP_ATTRIBUTE10 VARCHAR2(240)
TP_ATTRIBUTE11 VARCHAR2(240)
TP_ATTRIBUTE12 VARCHAR2(240)
TP_ATTRIBUTE13 VARCHAR2(240)
TP_ATTRIBUTE14 VARCHAR2(240)
TP_ATTRIBUTE15 VARCHAR2(240)
header_id NUMBER
invoice_to_contact_id NUMBER
invoice_to_org_id NUMBER
invoicing_rule_id NUMBER
last_updated_by NUMBER
last_update_date DATE
last_update_login NUMBER
latest_schedule_limit NUMBER
open_flag VARCHAR2(1)
order_category_code VARCHAR2(30)
ordered_date DATE
order_date_type_code VARCHAR2(30)
order_number NUMBER
order_source_id NUMBER
order_type_id NUMBER
org_id NUMBER
orig_sys_document_ref VARCHAR2(50)
partial_shipments_allowed VARCHAR2(1)
payment_term_id NUMBER
price_list_id NUMBER
price_request_code VARCHAR2(240)
pricing_date DATE
program_application_id NUMBER
program_id NUMBER
program_update_date DATE
request_date DATE
request_id NUMBER
return_reason_code VARCHAR2(30)
salesrep_id NUMBER
sales_channel_code VARCHAR2(30)
shipment_priority_code VARCHAR2(30)
shipping_method_code VARCHAR2(30)
ship_from_org_id NUMBER
ship_tolerance_above NUMBER
ship_tolerance_below NUMBER
ship_to_contact_id NUMBER
ship_to_org_id NUMBER
sold_from_org_id NUMBER

7
sold_to_contact_id NUMBER
sold_to_org_id NUMBER
source_document_id NUMBER
source_document_type_id NUMBER
tax_exempt_flag VARCHAR2(30)
tax_exempt_number VARCHAR2(50)
tax_exempt_reason_code VARCHAR2(30)
tax_point_code VARCHAR2(30)
transactional_curr_code VARCHAR2(15)
version_number NUMBER
return_status VARCHAR2(1)
db_flag VARCHAR2(1)
operation VARCHAR2(30)
first_ack_code VARCHAR2(30)
first_ack_date DATE
last_ack_code VARCHAR2(30)
last_ack_date DATE
change_reason VARCHAR2(30)
change_comments VARCHAR2(2000)
change_sequence VARCHAR2(50)
change_request_code VARCHAR2(30)
ready_flag VARCHAR2(1)
status_flag VARCHAR2(1)
force_apply_flag VARCHAR2(1)
drop_ship_flag VARCHAR2(1)
customer_payment_term_id NUMBER
payment_type_code VARCHAR2(30)
payment_amount NUMBER
check_number VARCHAR2(50)
credit_card_code VARCHAR2(80)
credit_card_holder_name VARCHAR2(80)
credit_card_number VARCHAR2(80)
DATE
credit_card_expiration_date VARCHAR2(80)
credit_card_approval_code DATE
credit_card_approval_date VARCHAR2(2000)
shipping_instructions VARCHAR2(2000)
packing_instructions VARCHAR2(30)
flow_status_code DATE
booked_date NUMBER
marketing_source_code_id VARCHAR2(1)
upgraded_flag NUMBER
lock_control VARCHAR2(40)
ship_to_edi_location_code VARCHAR2(40)
sold_to_edi_location_code VARCHAR2(40)
bill_to_edi_location_code

8
Intercompany Invoicing and Advance Pricing Integration
March, 2002
Author: ADITYA BHELANDE & MANI RANA
Copyright © Oracle Corporation 2001
All Rights Reserved Printed in the U.S.A.

This document is provided for informational purposes


only and the information herein is subject to change
without notice. Please report any errors herein to
Oracle Corporation. Oracle Corporation does not
provide any warranties covering and specifically
disclaims any liability in connection with this document.

Oracle is a registered trademark and Enabling the


Information Age are trademarks
of Oracle Corporation.

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
415.506.7000
Fax 415.506.7200

Copyright © Oracle Corporation 1995


All Rights Reserved

You might also like