⤷ CA-GTF-CPE (Application Component) Commodity Pricing Engine
⤷ CPE_FA_FE (Package) Commodity Pricing: Formula Assembly and Evaluation (ABAP)
|ID||NOTES_ES_CPE_FE||Notes on Implementation|
|Customizing Attributes||NOTES_ES_CPE_FE||Notes on Implementation|
|Document Class||SIMG||Hypertext: Object Class - Class to which a document belongs.|
All the Business Add-Ins (BAdIs) grouped under this structure node belong to the enhancement spot ES_CPE_FE. You can use these BAdIs to define a partner-specific or customer-specific logic within CPE formula evaluation.
SAP delivers an implementation for each CPE formula evaluation routine that provides a set of variants for defining most of the common business rules. You can either adopt these SAP implementations and modify them or implement your own customer-specific logic.
You can use BADI_CPE_FE_EVALUATION_ROUTINE to change the entire formula evaluation logic or replace it with your own logic. If you only want to change parts of the formula evaluation, you can use the BAdIs of this enhancement spot independently from one another to do the following:
- Distribute the quantity across different terms: BADI_CPE_FE_QTY_SPLIT_ROUTINE
- Calculate the formula result from its term results: BADI_CPE_FE_COMBINATION_ROUTIN
- Define term types: BADI_CPE_FE_TERM_TYPE
- Determine the time period for which market data for commodities and currencies is to be read: BADI_CPE_FE_PERIOD_DET_ROUTINE.
If you only want to change certain parts of the period determination, you can use the following BAdIs to
- Determine a reference date: BADI_CPE_FE_REF_DATE_ROUTINE
- Apply an offset to the reference date (to determine the base date): BADI_CPE_FE_DATEOFFSET_ROUTINE
- Define the time units before and after the base date: BADI_CPE_FE_TIME_UOM_ROUTINE
- Create a list of timestamp entries within the time period for which market data is to be read: BADI_CPE_FE_DATE_LIST_ROUTINE
- Restrict the end date of the time period in which market data is to be read: BADI_CPE_FE_READ_UNTIL_ROUTINE
- Specify the market data source for commodities and currencies that are to be read: BADI_CPE_FE_SOURCE_ROUTINE
- Determine a substitute date for a day that does not have any market data: BADI_CPE_FE_DATE_SUBST_ROUTINE
- Calculate a quotation rate from several quotations: BADI_CPE_FE_CALCULATION_ROUTIN
- Calculate a surcharge for the quotation rate: BADI_CPE_FE_SURCHARGE_ROUTINE
- Convert rates from one combination of currency, price unit, and unit of measure to another combination: BADI_CPE_FE_CONVERSION_ROUTINE
- Convert quantities from one unit of measure to another unit of measure: BADI_CPE_FE_QTY_CONV_ROUTINE
- Round values: BADI_CPE_FE_ROUNDING_ROUTINE
Valid Namespaces for CPE Routines and Rules
The following namespaces are valid for the routines:
- 0000000 - 0009999: General CPE routines from SAP
- 0010000 - 0199999: Industry-specific routines from SAP
- 0020000 - 0029999: Routines from SAP partners
- 0030000 - 0099999: Customer-specific routines
- 0100000 - 9999999: Not used yet
The following namespaces are valid for the rules:
- 00000 - 0ZZZZ: General CPR rules from SAP
- 10000 - 8ZZZZ: Industry-specific rules from SAP
- 90000 - 9ZZZZ: Rules from SAP partners
- A0000 - ZZZZZ: Customer-specific rules
Calculation of Amounts with Reference to Currency
The system always internally calculates amounts with two decimal places, independent of the currency (associated type CPET_INTERNAL_VALUE). The system then refers to the assigned currency to output the calculated amounts with the number of decimal places that currency requires (such as in the calculation routine or combination routine).
In the rounding routine, however, the system considers the currency even for internal calculations and always rounds the amounts to the number of decimal places required by the assigned currency.
You use currency USDN and therefore enter the amount with 5 decimal places: 1.12345.
- In every routine other than the rounding routine the system internally calculates this amount with two decimal places: 1123,45.
The system then uses this internal value for any further calculations, such as for multiplication by factor 2: 1123.45 x 2 = 2246.9. Since USDN has been assigned in the currency field, the system outputs the amount with 5 decimal places on the user interface: 2.2469 USDN.
- In the rounding routine, however, the system calculates internally with 5 decimal places: 1.12345. If you have specified that the system should round to 2 decimal places, the system rounds the value to 1.12. The system uses the value 1120.00 for any other internal calculations, such as 1120.00 x 2 = 2240.00. Since USDN is the assigned currency, the system outputs the amount 2.2400 on the user interface.
|ASAP Roadmap ID||257||Create User Exits|
|Mandatory / Optional||2||Optional activity|
|Critical / Non-Critical||2||Non-critical|
|Country-Dependency||A||Valid for all countries|
Assigned Application Components
|Documentation Object Class||Documentation Object Name||Current line number||Application Component||Application Component Name|
|SIMG||NOTES_ES_CPE_FE||0||AEC0000003||Customer Relationship Management|
|Maintenance object type|
|Last changed by/on||SAP||20100915|
|SAP Release Created in||731|