5 04 sales pricing engine[1]
TRANSCRIPT
SAP AG 2001
Overview
Business Application Scenarios Using IPC
Sales Configuration Engine
IPC Implementation
IPC Integration in CRM Internet Sales
Summary and Outlook
Sales Pricing Engine
Sales Pricing Engine
SAP AG 2001
At the conclusion of this unit you will:
Use R/3 pricing and condition technique to prepare for working with the Internet Pricing and Configurator (IPC)
Receive a basic overview of condition records in R/3 Pricing: Pricing Procedure, Condition Type, Access Sequence, Condition Tables etc.
Exposure to Pricing User Exits, Requirements, and Formulas and their need to be rewritten in JAVA
Objectives
SAP AG 2001
Variant Configuration
Characteristic valuation:
Key of Condition Records:
Memory_256MB
Harddisk_20GB
Monitor_21Inch
Sales & Distribution: Pricing
Pricing in Variant Configuration
MemoryMemory
20 GB
21 Inch
Hard diskHard disk
MonitorMonitor
256 MB
............
Surcharge Memory_256MB 200.00
Surcharge Harddisk_20GB 350.00
Surcharge Monitor_21Inch 450.00
Total Price 1,550.00
Base price 550.00
SAP AG 2001
Pricing With IPC
Differences R/3 and IPC
Sales Pricing Engine
Pricing User Exits
Conditions in CRM
Modeling Pricing: Pricing With IPC
SAP AG 2001
Similarities: IPC and R/3 Pricing
Both pricing engines are based on the condition technique. The pricing in IPC corresponds to pricing in the R/3 standard system in its structure and function.
The same logic is used for the following:
Pricing Procedure
Condition Types
Access Sequences
Condition Tables The same master data: Condition Records
The customizing data
SAP AG 2001
Overview of Pricing and Condition Technique
A001Pricing ProcedureRVAA001
PricingPR00
SurchargeVA00
Condition TypeTA V/06
Access SequenceTA V/07
Condition TablesTA V/05
Fields in Condition Tables
VA00
PR02
A304
A305
VKORGVTWEGKUNNRMATNR
A057
VKORGVTWEGMATRN
VKORGVTWEGMATRN
R/3 IMG Pricing
TA V/08
TA – Transaction Code
SAP AG 2001
A002A005 A003A006
KONHKONH
KONPKONP
KONMKONM KONWKONW
KONAKONA
. . .A001A004 A502A502A501A501
SAP Standard Customers
KONAKONV
Master Data
Document Data
Tables Used in IPC for Scenarios without CRM (R/3 Data Model)
SAP AG 2001
CNCCRMPRSAP004 CNCCRMPRSCUS004CNCCRMPRSAP005 ...
CNSCRMPRSAP004 CNSCRMPRCUS004CNSCRMPRSAP005 ...
PRCD_HEAD
PRCD_ITEM
PRCD_CONDCNL_CRMPRSCxxxx
Master Data
Document Data
SAP Standard Customers
...
...
Tables Used in IPC for Scenarios with CRM (CRM Data Model)
SAP AG 2001
CNCCRMPRSAPxxx
CNSCRMPRSAPxxx
CRM Data Model
A003Axxx
KONHKONH
KONPKONP
R/3 Data Model
Mapping
Mapping of R/3 Data Model to CRM Data Model
SAP AG 2001
Link condition records to characteristic values
1) Pricing procedure in sales and distribution must take condition type for variants (VA00 or VA01, the standard) into consideration
2) Define condition records for the variant condition type (VA00 or VA01)
3) Link condition key with the characteristic value in CU50 (table MACOND )
Preparation in R/3 for Pricing in Configuration (I)
SAP AG 2001
Using reference object and dependencies
1) Define condition records for the variant condition type (VA00 or VA01)
2) Create reference characteristic with reference to SDCOM-VKOND
3) Assign reference characteristic to class
4) Create dependencies (procedures) for value assignment (condition key) to the reference characteristics
5) Assign dependencies to configuration profile or to BOM
Preparation in R/3 for Pricing in Configuration (II)
SAP AG 2001
Pricing with IPC
Differences R/3 and IPC
Sales Pricing Engine
Pricing User Exits
Conditions in CRM
Modeling Pricing: Differences R/3 and IPC
SAP AG 2001
General Differences: IPC and R/3 Pricing
In IPC one cannot maintain master data (condition records) and customizing data
All the master data is maintained in R/3 or the CRM system
The master data can be downloaded to IPC (e.g. IPC standalone )
IPC can share the CRM database via RFC (e.g., Internet Sales and CRM Online)
IPC functionality is limited by the inputs from external packages which call the IPC, e.g., CRM
SAP AG 2001
Pricing with IPC
Differences R/3 and IPC
Sales Pricing Engine
Pricing User Exits
Conditions in CRM
Modeling Pricing: Conditions in CRM
SAP AG 2001
New Features in CRM 3.0
Integration of IPC in CRM:IPC accesses the CRM database
Integration of IPC in CRM:IPC accesses the CRM database
Customizing for condition technique in CRM
Manual changes in CRM business transactions at item level
Condition maintenance in CRMCondition maintenance in CRM
Copy of pricing information
SAP AG 2001
IPC Pricing Using Data from R/3 and CRM
IPC Data transfer from R/3
Settings maintained directly in CRM
CRM DB
R/3
CRM
SAP AG 2001
The following functions are not available in CRM:
General condition maintenance in the user menu
Condition analysis in transaction
Display the condition record in transaction
Change header conditions
The following R/3 standard condition types cannot be used in CRM:
Rebate conditions, actual costs, free goods, cash discount, cost, down payment, expected customer price
Differences Between R/3 and CRM Pricing (I)
SAP AG 2001
Tax determination can also be carried out by the Transaction Tax Engine (TTE)
CRM and R/3 pricing determination procedures must be completely identical
Customizing settings downloaded from R/3 cannot be changed in CRM
Customizing settings created in CRM cannot be uploaded to R/3
Differences Between R/3 and CRM Pricing (II)
SAP AG 2001
Condition Maintenance in CRM
ProductBusiness Partner
BusinessPartner
Hierarchy
Roles:Sold-to party Bill-to partyPayer
You can call up condition maintenance from the following objects:
Hierarchy type:Pricing
Condition screen:Sales conditions
SAP AG 2001
Header: Fields that apply to all
conditions
Header: Fields that apply to all
conditions
Items: Condition types
Items: Condition types
Details screen: Condition scales
Details screen: Condition scales
MessagesMessages
The condition maintenance is divided into 4 areas:
Condition Maintenance Structure
SAP AG 2001
Header
Item
Prices
PricesPricing informatione.g., gross and net prices, tax, currency
Header Conditions
Total of item conditions
Display mode You cannot change conditions
Prices
Item data
e.g., currency conversion, net value, exchange rate
Conditions
Item conditions
You can change conditions
How Do Conditions Appear in Documents?
SAP AG 2001
Working with Item Conditions
Add or delete condition Update pricingCondition details
Pricing analysis (not yet available)
SAP AG 2001
Pricing with IPC
Differences R/3 and IPC
Sales Pricing Engine
Pricing User Exits
Conditions in CRM
Modeling Pricing: Sales Pricing Engine
SAP AG 2001
OtherSystems:
IPC Server
Mobile Sales
Legacy System
OtherSystems:
IPC Server
Mobile Sales
Legacy System
Pricing ServerPricing Server
IPC or CRM Database
IPC or CRM Database
IPC APIsIPC APIs
JAVA UIJAVA UI
Enables pricing capability
Compatible with R/3 pricing rules
Calculation types
Scales
Group conditions
Currency conversion, including EURO conversion
Unit of measurement conversion
Integrates configuration and pricing
Flexible pricing engine
Pure JAVA development
API based
Sales Pricing Engine - Overview
SAP AG 2001
IPC Swing UI - Item Conditions
SAP AG 2001
IPC Swing UI - Conditions Record
SAP AG 2001
IPC Swing UI - Activate Pricing Trace
SAP AG 2001
IPC Swing UI - Access Pricing Trace
SAP AG 2001
IPC Swing UI - View Pricing Trace
SAP AG 2001
IPC Swing UI - Select Products to View
2 3
1
SAP AG 2001
IPC Swing UI - View Condition Records
SAP AG 2001
Pricing with IPC
Differences R/3 and IPC
Sales Pricing Engine
Pricing User Exits
Conditions in CRM
Modeling Pricing: Pricing User Exits
SAP AG 2001
Analyze R/3 Pricing User Exits
Analyze R/3 RV61AFZB
Standard delivered Pricing User Exits are automatically converted to JAVA (90%)
Default menu path pattern %INSTALLDIR%\spe\lib\userexits
Userexits can be connected to the IPC via maintanance in the IPC Administrator.
Pricing User Exits Workflow
SAP AG 2001
Six types of user-exits (events)
R/3
Transaction VOFM
ABAP form routines
CRM
IPC should be used
JAVA methods in class PricingStandardExits(extends class ConditionFindingStandardExits)
Formulas and Requirements (I)
SAP AG 2001
Pricing requirements (KOBED)
checkRequirement ()
Condition value formulas (KOFRM)
overwriteConditionValue()
overwriteGroupConditionValue()
Condition base formulas (KOFRA)
overwriteConditionBase()
Formulas and Requirements (II)
SAP AG 2001
Scale base formulas (KOFRS)
overwriteScaleBase()overwriteGroupConditionScaleBase()
Group condition key routines (GRLNR)
setGroupConditionKey()
Copy routines
pricingCopy()
Formulas and Requirements (III)
SAP AG 2001
You are now able to:
Set up the the pricing data in R/3 so that it can be used in both R/3 and IPC pricing.
Identify the modeling differences between IPC, CRM, and R/3 Pricing
Understand the need to rewrite User Exits in JAVA
Summary
SAP AG 2001
C.-Type C.-type name available Reason
EK01 Actual costs no Product costing is not supported
PR00 Price yes
PB00 Gross price yes
PR02 Interval price yes
VA00 Variant price yes
Gross
KUMU Cumul. condition Yes
KA00 Sales promotion yes
K032 Price group/material yes
K005 Customer/material yes
K007 Customer discount Yes
K004 Material Yes
K029 Material pricing group yes
K030 Cust/mat. pr. group yes
K031 Price group/Mat. group yes
Appendix: Condition Types in IPC (I)
SAP AG 2001
C.-Type C.-type name available Reason
RA01 % disc. from gross yes
RA00 % disc. from net yes
RC00 Quantity discount yes
RB00 Absolute discount yes
RD00 Weight discount yes
VA01 Variant price yes
NETP Price no Base value calculation formula 3 missing
PN00 Net price yes
PMIN Minimum price yes
Net item value
KP00 Pallet discount yes
KP01 Incomplete pallet surcharge yes
KP02 Mixed pallet discountyes
KP03 Surcharge for incomplete mixed pallet no Scale formula 23 missing
Appendix: Condition Types in IPC (II)
SAP AG 2001
C.-Type C.-type name available Reason
HA00 Percentage discount yes
HB00 Absolute discount yes
HD00 Freight yes
KF00 Freight yes
AMIW Minimum order value no Function not supported
AMIZ Proposed minimum no Function not supported
value
R100 100% discount no Free goods item is not automatically created, base value calculation formula 28 is missing, scale
formula 23 is missing
HM00 Order value yes
PI01 Internal billing price no Office-based personnel function
AZWR Down payment/cost no Function not supported
SKTV Cash discount no Function not supported
MWST Output tax yes yes
DIFF 5 centime rounding no SPE/MSA interface is not provided
Appendix: Condition Types in IPC (III)
SAP AG 2001
C.-Type C.-type name available Reason
BO01 Group rebate no Office-based personnel function:BO02 Material rebate no Rebate conditions are determined first of all at the BO03 Customer rebate no point of billing
BO04 Hierarchy rebate
BO05 Hierarchy rebate/Mat.
SKTO Cash discount no Function not supported
RL00 Factoring discount no Office-based personnel function: (Invoice lists)
MW15 Factoring discount tax no
VPRS Cost SPE/MSA interface is not provided
EK02 Calculated costs no Function not supported
Profit margin
EDI1 Exp. Customer price no Office-based personnel function
EDI2 Exp. Customer value no
Appendix: Condition Types in IPC (IV)
SAP AG 2001
Requirements
1: Different payer
2: Item with pricing
3: Foreign currency document
4: Settlement value
7: Domestic trade
8: Export/import trade
9: Cash discount depending on tax
10: Activated plant
11: Without material
13: Rounded according to T001R
14: Cash discount before tax
21: Tax invoice lists
22: Cross company
23: Only in billing docs (+ relevant for billing docs)
24: Only in billing documents
25: Only in rebate billing documents
52: Exporting II
Condition Basis Formulae1: Volume
2: Net value
4: Net value + tax
5: KZWI 1
6: KZWI 2
7: KZWI 3
11: Cash discount base
12: Gross weight
13: Net weight
14: Set exclusion
15: Read exclusion
16: Net value - cash discount
18: No quantity conversion
19: KZWI 4
20: KZWI 5
21: KZWI 6
22: Whole numbers
24: Quantity = 1 in case of partial quantity
25: Cash discount
26: Bollo in Fattura (Italian taxes)
27: XWORKK: Deactivate condition
Appendix: Requirements & Condition Basis Formulas in IPC
SAP AG 2001
Scale Basis Formula
1 Available
Condition Value Formula
1 Profit margin with rebate
2 Net value
3 Tax qualifying for cash discount
4 Net value + tax
6 Outbound price
11 Profit margin
12 XWORKD - XWORKE
13 Proposed minimum value
14 Low price
15 Minimum price
16 Rounding final amount
17 Rounding in accordance with T001R
18 Percentage profit margin
25 KZWI 1 minus tax
41 Net 1 Berliner V.
42 Net 2 Berliner V.
Appendix: Condition Value & Scale Basis Formulas in IPC
SAP AG 2001
ABAP Routine (VOFM)
Requirements -> Pricing
Formulas -> Scale base
Formulas -> Condition base value
Formulas -> Condition value
Formulas -> Structure of grp key
Definition Item or document
Item Level: KPOSN <> 0
Document Level: KPOSN = 0
JAVA Methods (UserExits)
boolean checkRequirement
BigDecimal overwriteScaleBase
BigDecimal overwriteConditionBase
BigDecimal overwriteConditionValue
String setGroupConditionKey
Additional for Document:
BigDecimal overwriteGroupConditionScaleBase
BigDecimal overwriteGroupConditionValue
Appendix: User Exits Mapping (I)
SAP AG 2001
JAVA Methods (UserExits)
pricingDocumentInit
pricingItemInit
pricingConditionInit
pricingItemCalculateBegin
pricingItemCalculateEnd
ABAP Routine (RV61AFZB)
userexit_print_head
userexit_print_item
userexit_xkomv_ergaenzen
userexit_xkomv_bewerten_init
userexit_xkomv_bewerten_end
ABAP Structures and tables
KOMP
KOMK
XKOMV; KONVD; KONV
Last Price data
JAVA Objects UserExits
IPricingItemUserExits
IPricingDocumentUserExits
IPricingConditionUserExit
ILastPrice
Appendix: User Exits Mapping (II)
SAP AG 2001
1. form frm_kondi_wert_015.
2. if komp-shkzg = ' '.
3. if xkomv-kwert <= komp-netwr.
4. xkomv-kinak = 'X'.
5. xkwert = 0.
6. endif.
7. else.
8. if xkomv-kwert > komp-netwr.
9. xkomv-kinak = 'X'.
10. xkwert = 0.
11. endif.
12. endif.
13. if xkomv-koaid = 'A' and xkomv-kinak = ' '.
14. xkwert = xkomv-kwert - komp-netwr.
15. endif.
16. endform.
case 15:{
BigDecimal condValue =prCondition.getConditionValue().getValue();
BigDecimal netValue = prItem.getNetValue().getValue();
if (!prItem.getIsReturn()){
if (condValue.compareTo(netValue) <= 0) {
prCondition.setInactive(PricingConstants.C_INACTIVE_DUE_TO_ERROR);
return PricingConstants.C_ZERO;}
}
else{
if (condValue.compareTo(netValue) > 0) {
prCondition.setInactive(PricingConstants.C_INACTIVE_DUE_TO_ERROR);
return PricingConstants.C_ZERO;
}
}
if (prCondition.getConditionClass() == PricingConstants.C_DISCOUNT &&
prCondition.getInactive() == SAPString.C_INITIAL_CHAR){
return condValue.subtract(netValue);
}
return null;
Appendix: User Exits Mapping (III)
SAP AG 2001
IPC
Pricing
Sales Order Billing
R/3
CR
M
CRM Order
Pricing
Pricing API
Billing Engine *
* Above Release 3.0
TTE*
Appendix: Overview of Pricing in R/3 and CRM