You are on page 1of 47

Sales Pricing Engine

Overview IPC Implementation

Business Application IPC Integration


Scenarios Using IPC in CRM Internet Sales

Summary
Sales Configuration Engine
and Outlook

Sales Pricing Engine

 SAP AG 2001
Objectives

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

 SAP AG 2001
Pricing in Variant Configuration

Key of
Variant Configuration Condition Records:

Memory_256MB

Characteristic valuation: Harddisk_20GB


Monitor_21Inch

Memory 256 MB
Hard disk 20 GB
Monitor 21 Inch
Sales & Distribution:
... ... Pricing
Base price 550.00
Surcharge Memory_256MB 200.00
Surcharge Harddisk_20GB 350.00
Surcharge Monitor_21Inch 450.00

Total Price 1,550.00

 SAP AG 2001
Modeling Pricing: Pricing With IPC

Pricing With IPC

Differences R/3 and IPC

Conditions in CRM

Sales Pricing Engine

Pricing User Exits

 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

R/3 IMG
Pricing Fields in
Condition
Condition Tables
Tables
Access TA V/05
Sequence
Condition VKORG
TA V/07
Type VTWEG
TA V/06 A305 KUNNR
TA V/08 MATNR
Pricing PR02
PR00
VKORG
A304 VTWEG
Pricing MATRN
A001
Procedure
RVAA001 VKORG
Surcharge VA00 A057 VTWEG
VA00
MATRN

TA – Transaction Code

 SAP AG 2001
Tables Used in IPC for Scenarios without CRM
(R/3 Data Model)

SAP Standard Customers

A004
A001 A005
A002 A006
A003 ... A501
A501 A502
A502

KONH
KONH KONA
KONA

KONP
KONP KONV
KONA

KONM
KONM KONW
KONW Master Data
Document Data

 SAP AG 2001
Tables Used in IPC for Scenarios with CRM
(CRM Data Model)

SAP Standard Customers

CNCCRMPRSAP004 CNCCRMPRSAP005 ... CNCCRMPRSCUS004 ...

CNSCRMPRSAP004 CNSCRMPRSAP005 CNSCRMPRCUS004 ...


...

PRCD_HEAD

PRCD_ITEM

CNL_CRMPRSCxxxx PRCD_COND

Master Data
Document Data
 SAP AG 2001
Mapping of R/3 Data Model to CRM Data Model

R/3 Data Model CRM Data Model

Axxx
A003

CNCCRMPRSAPxxx

Mapping

KONH
KONH

CNSCRMPRSAPxxx

KONP
KONP

 SAP AG 2001
Preparation in R/3 for Pricing in Configuration (I)

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 )

 SAP AG 2001
Preparation in R/3 for Pricing in Configuration (II)

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

 SAP AG 2001
Modeling Pricing: Differences R/3 and IPC

Pricing with IPC

Differences R/3 and IPC

Conditions in CRM

Sales Pricing Engine

Pricing User Exits

 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
Modeling Pricing: Conditions in CRM

Pricing with IPC

Differences R/3 and IPC

Conditions in CRM

Sales Pricing Engine

Pricing User Exits

 SAP AG 2001
New Features in CRM 3.0

Integration
Integrationof
ofIPC
IPCin
in CRM:
CRM:
IPC
IPCaccesses
accessesthe
theCRM
CRMdatabase
database

Condition
Conditionmaintenance
maintenancein
in CRM
CRM

Manual changes in CRM business


transactions at item level

Customizing for condition technique in CRM

Copy of pricing information

 SAP AG 2001
IPC Pricing Using Data from R/3 and CRM

R/3
Data transfer
from R/3
IPC
CRM

Settings
maintained
directly in CRM

CRM DB

 SAP AG 2001
Differences Between R/3 and CRM Pricing (I)

 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

 SAP AG 2001
Differences Between R/3 and CRM Pricing (II)

 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

 SAP AG 2001
Condition Maintenance in CRM

You can call up condition maintenance from the


following objects:

Business
Business Partner
Product
Partner Hierarchy

Condition screen: Roles: Hierarchy type:


Sales conditions Sold-to party Pricing
Bill-to party
Payer

 SAP AG 2001
Condition Maintenance Structure

The condition maintenance is divided into 4 areas:

Header:
Fields that apply to all
conditions

Items:
Condition types

Details screen:
Condition scales

Messages

 SAP AG 2001
How Do Conditions Appear in Documents?

Prices

Prices Header Conditions


Pricing information
Total of item
e.g., gross and net
conditions
Header prices, tax, currency
Display mode
You cannot change
conditions
Item
Prices

Item data Conditions

e.g., currency Item conditions


conversion, net value,
exchange rate You can change
conditions

 SAP AG 2001
Working with Item Conditions

Condition details
Add or delete condition Update pricing

Pricing analysis
(not yet available)
 SAP AG 2001
Modeling Pricing: Sales Pricing Engine

Pricing with IPC

Differences R/3 and IPC

Conditions in CRM

Sales Pricing Engine

Pricing User Exits

 SAP AG 2001
Sales Pricing Engine - Overview

 Enables pricing capability


 Compatible with R/3 pricing rules
JAVA UI
Other  Calculation types
Other
Systems:  Scales
Systems:
 IPC  Group conditions
 IPC IPC APIs
Server  Currency conversion, including
Server
 Mobile EURO conversion
 Mobile
Sales
Sales  Unit of measurement conversion
 Legacy Pricing Server
 Legacy
System  Integrates configuration and pricing
System
 Flexible pricing engine
 Pure JAVA development
IPC or CRM  API based
Database

 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

 SAP AG 2001
IPC Swing UI - View Condition Records

 SAP AG 2001
Modeling Pricing: Pricing User Exits

Pricing with IPC

Differences R/3 and IPC

Conditions in CRM

Sales Pricing Engine

Pricing User Exits

 SAP AG 2001
Pricing User Exits Workflow

 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.

 SAP AG 2001
Formulas and Requirements (I)

 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)

 SAP AG 2001
Formulas and Requirements (II)

 Pricing requirements (KOBED)


 checkRequirement ()

 Condition value formulas (KOFRM)


 overwriteConditionValue()
 overwriteGroupConditionValue()

 Condition base formulas (KOFRA)


 overwriteConditionBase()

 SAP AG 2001
Formulas and Requirements (III)

 Scale base formulas (KOFRS)


 overwriteScaleBase()
overwriteGroupConditionScaleBase()

 Group condition key routines (GRLNR)


 setGroupConditionKey()

 Copy routines
 pricingCopy()

 SAP AG 2001
Summary

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

 SAP AG 2001
Appendix: Condition Types in IPC (I)

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

 SAP AG 2001
Appendix: Condition Types in IPC (II)

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 discount yes
KP03 Surcharge for incomplete mixed pallet no Scale formula 23 missing

 SAP AG 2001
Appendix: Condition Types in IPC (III)

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

 SAP AG 2001
Appendix: Condition Types in IPC (IV)

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

 SAP AG 2001
Appendix: Requirements & Condition Basis
Formulas in IPC
Requirements Condition Basis Formulae
1: Different payer 1: Volume
2: Net value
2: Item with pricing
4: Net value + tax
3: Foreign currency document
5: KZWI 1
4: Settlement value 6: KZWI 2
7: Domestic trade 7: KZWI 3
8: Export/import trade 11: Cash discount base
9: Cash discount depending on tax 12: Gross weight
13: Net weight
10: Activated plant
14: Set exclusion
11: Without material
15: Read exclusion
13: Rounded according to T001R 16: Net value - cash discount
14: Cash discount before tax 18: No quantity conversion
21: Tax invoice lists 19: KZWI 4
22: Cross company 20: KZWI 5
21: KZWI 6
23: Only in billing docs (+ relevant
for billing docs) 22: Whole numbers
24: Only in billing documents 24: Quantity = 1 in case of partial quantity
25: Cash discount
25: Only in rebate billing
documents 26: Bollo in Fattura (Italian taxes)
52: Exporting II 27: XWORKK: Deactivate condition

 SAP AG 2001
Appendix: Condition Value & Scale Basis Formulas
in IPC

Condition Value Formula Scale Basis Formula


1 Profit margin with rebate 1 Available
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.

 SAP AG 2001
Appendix: User Exits Mapping (I)

ABAP Routine (VOFM) JAVA Methods (UserExits)


Requirements -> Pricing boolean checkRequirement
Formulas -> Scale base BigDecimal overwriteScaleBase
Formulas -> Condition base value BigDecimal overwriteConditionBase
Formulas -> Condition value BigDecimal overwriteConditionValue
Formulas -> Structure of grp key String setGroupConditionKey

Definition Item or document Additional for Document:


Item Level: KPOSN <> 0 BigDecimal overwriteGroupConditionScaleBase
Document Level: KPOSN = 0 BigDecimal overwriteGroupConditionValue

 SAP AG 2001
Appendix: User Exits Mapping (II)

ABAP Routine (RV61AFZB) JAVA Methods (UserExits)


userexit_print_head pricingDocumentInit
userexit_print_item pricingItemInit
userexit_xkomv_ergaenzen pricingConditionInit
userexit_xkomv_bewerten_init pricingItemCalculateBegin
userexit_xkomv_bewerten_end pricingItemCalculateEnd

ABAP Structures and tables JAVA Objects UserExits


KOMP IPricingItemUserExits
KOMK IPricingDocumentUserExits
XKOMV; KONVD; KONV IPricingConditionUserExit
Last Price data ILastPrice

 SAP AG 2001
Appendix: User Exits Mapping (III)
case 15:{
BigDecimal condValue =prCondition.getConditionValue().getValue();
BigDecimal netValue = prItem.getNetValue().getValue();

1. form frm_kondi_wert_015. if (!prItem.getIsReturn()){


if (condValue.compareTo(netValue) <= 0) {
2. if komp-shkzg = ' '.
prCondition.setInactive(PricingConstants.C_INACTIVE_DUE_TO_ERROR);
3. if xkomv-kwert <= komp-netwr. return PricingConstants.C_ZERO;}
4. xkomv-kinak = 'X'. }
else{
5. xkwert = 0.
if (condValue.compareTo(netValue) > 0) {
6. endif.
prCondition.setInactive(PricingConstants.C_INACTIVE_DUE_TO_ERROR);
7. else. return PricingConstants.C_ZERO;

8. if xkomv-kwert > komp-netwr. }


}
9. xkomv-kinak = 'X'.
if (prCondition.getConditionClass() == PricingConstants.C_DISCOUNT &&
10. xkwert = 0. prCondition.getInactive() == SAPString.C_INITIAL_CHAR){
11. endif. return condValue.subtract(netValue);

12. endif. }
return null;
13. if xkomv-koaid = 'A' and xkomv-kinak = ' '.
14. xkwert = xkomv-kwert - komp-netwr.
15. endif.
16. endform.

 SAP AG 2001
Appendix: Overview of Pricing in R/3 and CRM

Sales Order Billing

Pricing Pricing

R/3
CRM Order Billing Engine *

CRM
Pricing API
IPC
TTE*

* Above Release 3.0


 SAP AG 2001

You might also like