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 Inventorys 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

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 called2. 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 doesnt 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 doesnt 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

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 External (Customer) API Returns Price External (Customer) API doesnt Return Price

End / Go to next record

QP profile set to Yes

QP profile set to No

QP not installed

QP installed

No Customer Price List Price returned End / Go to next record

Customer Price List

Price not returned Log Error/ End / Go to next record

Price not returned Log Error/ End / Go to next record

Price returned End / Go to next 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:

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 Context Intercompany_Invoicing Qualifier Attribute Shipping Organization Data Source Qualifier_ attribute1 Table Validated Value Set HR_OPERATING_UNITS

Selling Organization Customer ID Customer Site ID

Qualifier_ attribute2 Qualifier_ attribute3 Qualifier_ attribute4

HR_OPERATING_UNITS HZ_CUST_ACCOUNTS, Hz_parties ra_addresses_all, ra_site_uses_all, fnd_territories_vl ft

Default Attribute Mapping for Line Qualifier Attributes Context Intercompany_Invoicing Pricing Attribute Qualifier Attribute1 Qualifier Attribute2 Qualifier Attribute3 Qualifier Attribute4 Qualifier Attribute1 Qualifier Attribute15 Source Package INV_IC_ORDER_ PUB INV_IC_ORDER_ PUB INV_IC_ORDER_ PUB INV_IC_ORDER_ PUB INV_IC_ORDER_ PUB INV_IC_ORDER_ PUB Source Function G_LINE. IC_SHIPPING_ORG_ID G_LINE. IC_SELLING_ORG_ID G_LINE. IC_CUSTOMER_ID G_LINE. IC_CUSTOMER_SITE_ID G_LINE.ordered_date G_LINE.ORDERED_QUA NTITY Defaulting Condition Template INV Intercompany Pricing INV Intercompany Pricing INV Intercompany Pricing INV Order Volume Context INV Order Context INV Order Volume Context

Intercompany_Invoicing

Intercompany_Invoicing

Intercompany_Invoicing

Order Volume

Default Attribute Mapping for Line Pricing Attributes Context Item Pricing Attribute Pricing Attribute1 Source Package INV_IC_ORDER_ PUB Source Function G_LINE.inventory_item_id Defaulting Template INV Context Item

Global Structure: PACKAGE INV_IC_ORDER_PUB

accounting_rule_id agreement_id attribute1 attribute10 attribute11 attribute12 attribute13 attribute14 attribute15 attribute2 attribute3 attribute4 attribute5 attribute6 attribute7 attribute8 attribute9 booked_flag cancelled_flag context conversion_rate conversion_rate_date conversion_type_code customer_preference_set_code created_by creation_date cust_po_number deliver_to_contact_id deliver_to_org_id demand_class_code earliest_schedule_limit expiration_date fob_point_code freight_carrier_code freight_terms_code global_attribute1 global_attribute10 global_attribute11 global_attribute12 global_attribute13 global_attribute14 global_attribute15 global_attribute16 global_attribute17 global_attribute18 global_attribute19 global_attribute2 global_attribute20 global_attribute3 global_attribute4 global_attribute5 global_attribute6 global_attribute7 global_attribute8

NUMBER NUMBER VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(1) VARCHAR2(1) VARCHAR2(30) NUMBER DATE VARCHAR2(30) VARCHAR2(30) NUMBER DATE VARCHAR2(50) NUMBER NUMBER VARCHAR2(30) NUMBER DATE VARCHAR2(30) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240)

VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240)

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

VARCHAR2(240) VARCHAR2(30) VARCHAR2(30) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) NUMBER NUMBER NUMBER NUMBER NUMBER DATE NUMBER NUMBER VARCHAR2(1) VARCHAR2(30) DATE VARCHAR2(30) NUMBER NUMBER NUMBER NUMBER VARCHAR2(50) VARCHAR2(1) NUMBER NUMBER VARCHAR2(240) DATE NUMBER NUMBER DATE DATE NUMBER VARCHAR2(30) NUMBER VARCHAR2(30) VARCHAR2(30) VARCHAR2(30) NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER

sold_to_contact_id sold_to_org_id source_document_id source_document_type_id tax_exempt_flag tax_exempt_number tax_exempt_reason_code tax_point_code transactional_curr_code version_number return_status db_flag operation first_ack_code first_ack_date last_ack_code last_ack_date change_reason change_comments change_sequence change_request_code ready_flag status_flag force_apply_flag drop_ship_flag customer_payment_term_id payment_type_code payment_amount check_number credit_card_code credit_card_holder_name credit_card_number credit_card_expiration_date credit_card_approval_code credit_card_approval_date shipping_instructions packing_instructions flow_status_code booked_date marketing_source_code_id upgraded_flag lock_control ship_to_edi_location_code sold_to_edi_location_code bill_to_edi_location_code

NUMBER NUMBER NUMBER NUMBER VARCHAR2(30) VARCHAR2(50) VARCHAR2(30) VARCHAR2(30) VARCHAR2(15) NUMBER VARCHAR2(1) VARCHAR2(1) VARCHAR2(30) VARCHAR2(30) DATE VARCHAR2(30) DATE VARCHAR2(30) VARCHAR2(2000) VARCHAR2(50) VARCHAR2(30) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) NUMBER VARCHAR2(30) NUMBER VARCHAR2(50) VARCHAR2(80) VARCHAR2(80) VARCHAR2(80) DATE VARCHAR2(80) DATE VARCHAR2(2000) VARCHAR2(2000) VARCHAR2(30) DATE NUMBER VARCHAR2(1) NUMBER VARCHAR2(40) VARCHAR2(40) VARCHAR2(40)

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