The application provides for a given month, the average sale prices observed during the X previous months. Data is both:
The aim of the application is to calculate and provide to transfer pricing team the monthly average sale price by BFC Company Code, Material, Revenue Type. This historical sales price will used for internal control in internal flow. |
For this Application the access is provided based on the BW menu "TP - Transfer Price Historical Sales" and it's done via Service one. Fill the form In SAP system select the "WBP - BW Business Warehouse" In WBP - BW Business Warehouse : Select the Business Role select the "TP - Transfer Price Historical Sales" |
Target Users: Transfer Price team. |
VERSION | DATE | MODIFIED BY | DESCRIPTION |
0.01 | 16.11.2023 | Inês Vilares | Initial draft |
|
This project was developed in September 2019 by Ludovic Depoix with BW technical support of Cyril Bianco and a new OFFSET parameters has been added to the data flow in June 2022 by Ludovic Depoix with BW technical support of Charles Benier.
To construct Internal Margin check flow in ECC (PF1 and WP1) the process need to have Historical Sales Price calculated each month at material / company code // Revenue Type level.
This historical sales price will used for internal control in internal flow.
With this it was built a solution in BW to have the necessary information to feed the systems (PF1 and WP1) to the HUSP table and to finalize the process in the TRSA table for the calculations for the Internal Margin flow.

For this application find below all the workbooks available:
| Reports | Definition | Prompts | BW Workbook Query | Query Technical Name |
|---|---|---|---|---|
| Controlling - Sales Price - Detail | This report will show the sales prices to be checked by the users and to be used in SAP to calculate the right internal price. We have a lot of details regarding the documents associated to the sales. | Mandatory:
Optional:
| BW_WBK_COTP_0002 | BW_QRY_CPCOTP01_0004 |
| Controlling - Sales Price - Synthesis | This report it's the same information from "Controlling - Sales Price - Detail" but on a high level perspective. | Mandatory:
Optional:
| BW_WBK_COTP_0001 | BW_QRY_CPCOTP01_0003 |
| COPA Document | Refers to a document related to the Controlling module, specifically to the Profitability Analysis (COPA stands for CO-PA, where CO stands for Controlling). Profitability Analysis (CO-PA) in SAP is a sub-module of SAP Controlling that provides detailed information about the profitability of an organization's segments, such as products, customers, or business areas. COPA documents capture data related to sales, costs, and profitability. A COPA document contains information on revenues, costs, and other key financial metrics associated with specific segments. It helps businesses analyze and understand the profitability of different aspects of their operations. The data in COPA documents can be used for reporting and analysis purposes, enabling organizations to make informed decisions about their business strategies. The exact structure and content of COPA documents can vary based on the specific configuration and customization implemented by each organization in their SAP system. |
|---|---|
| GBU Assignment | The concept for GBU doesn't exist in SAP but it’s a requirement to have in BW since in BFC we have this definition. This GBU assignment is different for WP1 and PF1 and it's explained in detail in the Process Definition section in Profit and Loss functional documentation. |
| Domain | Finance |
|---|---|
| Application | BW reports under TP - Transfer Price Historical Sales |
| Provider | CPCOTP01 |


This is a general view of the workflow to have the data available in the source systems. In the next sections we have more details in the different steps based on the specification for this report. If we need to check the document we can see it in here Internal Margin : Historical sales price calculation. |
Only consider :
Exclude:
PAX GBU (GBU : PV , PX , PM ).
Material type (C_MATNR2_0MATL_TYPE) different from :
Each month M we calculate the historic sales price using M-1 to M-3 datas.
For example Historical Sales price of August 2019 is base and sales from May 2019 to July 2019. We have more information about this number month offset explaining in the technical part.
After meeting with Project, there is no need to save the data before load it in PF1/WP1 . Due to the fact data will be manually change in ERP ; traçability will be complex.
Only dynamic view is necessary . So when the user will launch the query only current business rules will be applied even if the user launch an previous month.
It will simplify developments especially line item query.
Revenue type should take 8 values + 1 Error value
This new object will 3 navigational Attributes
1- Partner Type
With values
a. RP “Related Party”
b. TP “Third Party”
2- Geographical flow
With values
a. ABEX “Abroad-export”
b. ABEU “Abroad-EUdel”
c. DOMS “Domestic”
3- Chinese Duty
With values
a. NC “Not Chinese Company”
b. DF “Duty Free”
c. ID “Included custom duties”

The differing type of revenue will be determined according to 3 steps:
1- Partner type determination
We must determine if the line item is linked to a
We must use the trading partner (C_PCOMPAN) of the line item and and the LE exception table.
1) If there is no trading partner OR the trading partner have a conso method ( C_PCOMPAN_C_CSMETH) = 90 => Third party
2) trading partner(C_PCOMPAN) not empty and consolidation method ( C_PCOMPAN_C_CSMETH) different from 90 sold but the Trading partner is founded in exception table (Z1F_TP-TPLE to be created) => Third party
3 -trading partner(C_PCOMPAN) not empty and consolidation method different from 90 sold and BFC Company of the Trading partner (C_COMPANY__0COMPANY) not founded in exception table (Z1F_TP-TPLE to be created) => Related Party
Remark : this way to split internal and external is completely different from the way it’s done in BW P&L application and Working Capital.
In ZFI_T_TP_TPLE , if a company code is maintained in here we will not consider for the calculation.
2- Geographical flow
The second distinction Domestic sales / abroad sale.
We will compare:
- the recipient country (ship to customer country) C_SHIPID_0COUNTRY.
- And the country of the selling company (company code country):C_PCOMPRS__0COUNTRY (= C_COMPCDE__0COUNTRY).
- Abroad-export :both countries are different and one of them at least is outside E.U.
- Abroad-EU : both countries are different and inside E.U.
- Domestic (same country).
3- Chinese Custom
The third distinction is only for chinese companies.
If the company code is not a chinese company ( C_PCOMPRS__0COUNTRY or C_COMPCDE__0COUNTRY <> CN) = > domestic included duties.
If the company code (C_COMPRS) is a chinese company ; to split the domestic line by "included customs duties" or "duty free", based on:
- the invoicing currency (0DOC_CURRCY) <> Local company currency(C_COMPRS_0CURRENCY ) => domestic duty free
- the invoicing currency = local company currency (CNY), the legal entity is SSP CHANGSHU (5991) and the customer is related party => domestic duty free
- other cases => domestic included duties
Remark : For the future we can have more than one exception than SSP CHANGSHU (5991). We must have a variable.
Additionally for the Transfer price EU definition:
A EU country is a country managed in T005 table with EU country X
+ Monaco country (for fiscal reason)

We must provide:
The quantities must be converted in the unit Base Unit of Measure of C_MATNR2.
We can use a unit conversion rule type RSUOM ; for example UOM_MATNR2 conversion type, convert firstly with table T0006 and after use DSO UOMCMAT2.

Amount and C_FIELDN__C_MGN_ACC = R10000
Remark : technically speaking for PF1 tadata the object of BFC account is C_FIELDN2__C_MGN_ACC. This object is identified with C_FIELDN__C_MGN_ACC in the multi provider.
Sum of Sales R10000 in local currency on the M-1 to M-X /Sum of Sales Qty(VVA01 ) on the M-1 to M-X in UOM
Sum of Sales R10000 in local currency on the M-1 to M-X *1000 /Sum of Sales Qty(VVA01 ) on the M-1 to M-X in UOM
Number of distincts 0CO_AREA/ C_PABELNR/ C_PAPOSNR used to calculate Historical Sales Price.
Remark : to calculate historical sales price we have quantities and perhaps more than 1 amount for the same 0CO_AREA/ C_PABELNR/ C_PAPOSNR. We must count this crossing 0CO_AREA/ C_PABELNR/ C_PAPOSNR only one time.
Number of distincts 0CO_AREA/ C_PABELNR/ C_PAPOSNR used to calculate Historical Sales Price where 0REC_TYPE <> F.
Revenu type will be calculated at:
as per standard.
as per standard.
as per standard.
as per standard.
as per standard.
as per standard.
as per standard.
as per standard.
The load is on a daily basis for master data around 2 a.m CET and for the controlling - TP - Sale Price Extracts it's on the third working day of each month around 5:30 a.m CET.