Tuesday, February 10, 2009

SAP SD Practice Projects

Hello,

The idea behind this page is to help those consultants who have acquired SAP skills through training or self studies but have not yet been able to find projects where they could apply their knowledge and gain confidence therefrom.

For those of you, who are interested in getting these projects, first read the details below and then email me at jd@sapsdforum.com with your specific requirement (simple / medium or complex).

These projects are categorized broadly in these 3 categories depending on the complexity level. This will help you choose the best project as per your needs.

 

 

Simple

Medium

Complex

Sales areas

2

5

10

Standard sales

Y

Y

Y

Return sales

Y

Y

Y

Customer Master

Y

Y

Y

Account determination

Y

Y

Y

Material determination

Y

Y

Y

Material listing/ exclusion

Y

Y

Y

Pricing

Y

Y

Y

Text

 

Y

Y

Customer Material Info

 

Y

Y

Intercompany Pricing

 

Y

Y

Consignments

 

Y

Y

Scrap sales

 

Y

Y

Intrecompany Sales

 

Y

Y

Sales BOM

 

Y

Y

Credit limits

 

Y

Y

Customer blocking

 

Y

Y

Posting Material stock

 

Y

Y

Functional Specs

1

4

8

Business Process Procedures

2

6

12

Test Scripts

2

6

12

3rd party sales

 

 

Y

Variant Configuration

 

 

Y

Credit Card Payment

 

 

Y

Down Payment

 

 

Y

Invoice Retention

 

 

Y

Rebate

 

 

Y

Product Hierarchy

 

 

Y

EDI/IDOC

 

 

Y

Condition Exclusion

 

 

Y

Supplementary Conditions

 

 

Y

Charges - Blueprint Only

USD 200,-

USD 250,-

USD 300,-

Charges - Complete solution

USD 400,-

USD 500,-

USD 650,-

     


Here are the terms for order processing -
1. 50% of the total order value payable in advance through paypal (www.paypal.com). My ID with paypal is -jitesh.dua@gmail.com.
2. Within 7 days of receipt of payment, you will receive the blueprint document including the complete gap analysis. In case within these 7 days, for any reason, you decide to cancel the order, you may do so with full refund of your money.
3. Whenever you are ready to get the solution (project plan, configuration document and the Functional Specifications), you may send the remaining 50% through the same channel (paypal).
4. You will receive the requested documents within 7 days of receipt of the payment.
5. You will be entitled to follow-on support (through email) for 15 days after the complete solution is mailed to you.
What will I provide - I will be providing a word document which specifies the requirements. In SAP terms , the AS-IS part of blueprint document and depending on your requirements - any or all of the following documents as well.

What you need to do - You would need to have access to an IDES /SAP Demo system and need to get the basic configuration from other modules (FI and MM). This will be the flow of activities afterwards -

1. Completing the blueprint - This will involve finding out what all can be done using standard SAP functions and for which scenarios would you need developments (Gaps). You will prepare a time line or a project plan and assign deadlines to each task and clearly marking the dependencies on other tasks.

2. Implementation -In this phase you will start configuring your SAP system in line with the requirement and as per the project plan.

3. Development - Here you will start developing functional specifications for development objects. The development objects include Reports, Interface, Conversions, Enhancements and Forms (RICEF). In the functional specification, you will identify the table and field name from where you will get the data and also write the logic to get data from multiple tables.

4. Testing - Once these objects are developed, they need to be tested (I am not sure if you would have any ABAPper to develop these objects for you)

5. Documentation - In this phase you will be preparing the following documents - BPP (business Process Procedures) and CD (Configuration documents) and Test Scripts.

 

If you are interested in buying but wondering how it will look like, mail me at jd@sapsdforum.com for a free sample.

thanks

Jitesh

Friday, October 26, 2007

Steps for Variant Configuration and Pricing

1. Create a Material of your Motor Cycle using Material type KMAT(MM01).

2.Then create a characteristic called ZColour(SAP has a standard Characteristic for this but it has multiple values-i.e you can select more than one colour for your Bike.If you do not want that create your own)with character format and assign single value radio button on the initial screen. Go to values Tab and give the colors you need.save the characteristic. Similarly repeat for CC (I figure this CC as 100cc & 200cc kind of thing. If you want these as materials then it is a different story-I am taking this as feature as well)

3. Create a class called Zbike with the above 2 characteristics and save the class.

4. Create a configuration profile Zbikeprof using Cu41 and assign the Kmat material to Class Zbike,

5. Then create the order and Enter the Kmat material you want in the Order.

————————————-
Q - In variant configuration I have configured my material properly during sales order creation it is selecting proper characterstics but my question is pricing should calculate at characterstics level not at header level.

————————————
A - Pricing in variant Configuration is done at the Header level only. The logic is that you create pricing variant keys for each characteristic Value. This will be done at the Header level using cond type VA00.based on the characteristic chosen the appropriate price according to the pricing variant key will be picked up.

————————————-
Q - Here my question is with out creating the materials is it possible to get price based on the characterstics.

I am working on variant configuration here my product is 9-100. i have created characterstics for describing colours. this characterstics assigned to class, this class is assigned to 9-100(KMAT type). here i have not created amterial to describe each colour.

Now how I need to setup my system to calculate the price based on colour.

————————————-
A - A cool Question. It will really get us into the thick of things in Variant Configuration.

Here are the steps.

1. Create a Characteristic called ZColour(Standard SAP has a characteristic called colour.I did not use it.)
Give your values.
Say, Red & Blue

2. Now create another characteristic called ZCol_surcharge
Give the description and go directly to Addnl Data Tab.Here in the table name Enter “SDCOM” and in the Field Name Enter “VKOND”.The system will pick up the format from the Dictionary.

3. Now go to CT04 and change the Characteristic Zcolour.
Go to values tab and select RED.Goto Extras-> Object Dependencies->Editor and then select Procedure.

In front of 000010 Enter $self.ZCol_surcharge=’RED’.
Similarly Select Blue and enter $self.ZCol_surcharge=’BLUE’

3. Link both these characteristics to the Class(The class which you have attached the KMAT Material).

4. Go to VK11 and the Enter VA00.Then give the values RED and BLUE and enter the values.

5. Go to your order and Enter your material.

————————————-
Q - Here are some clarifications required from you.

what is the significance of item category group 0002 and 0004. Apart from these are they any other item category groups are available for configurable materials ?
In BOM header material having components. is it possible to make the component as configurable material.

————————————-
A - The difference b/w 0002 and 0004 is basically that of LUMF & ERLA.
In 0002 the pricing happens at the Header Item Level.
In 0004 the pricing happens at the Sub Item Level.
Check out the Item category Assignments and things will be Clear.

I think these two are the only ones used for Configuration.

Please let me know in which Scenario you would like to have the configurable material Inside a BOM(as it would help me in visualising thh Item Category Assignment).

————————————-
Q - As you said I setup my system to calculate price based on colour.
ZCOLOUR contains all colours in values tab page.
ZPRICE contains table name and filed name in additional data tab page.

I went to ZCOLOUR characterstics I maintained (extras-object dependicies-editor-action) there I have given $self.ZPRICE = ‘RED’ for all the values.

when am creating the sales order price is coming only for RED colour not other colours. even price is maintained for all the colours.

————————————-
A - Seems like there is a mistake in the line $self.ZPRICE = ‘RED’ (You have said you have given this for all the values- If I have not mistaken). This refers only to red colour.

In front of 000010 Enter $self.ZCol_surcharge=’RED’.
Similarly Select Blue in the Values Tab and enter $self.ZCol_surcharge=’BLUE’

All this is Case Sensitive. So please be careful.

Delivery Pricing Conditions

Configure the pricing procedure at delivery with the required condition type to determine freight. Also have the copying control from delivery to billing at item level with Price source as D for Delivery. While you execute billing you would get the prices from the sales order as well as from deliveries.

If you were to look at the pricing procedure RVAA01 you will see there was a section dedicated to the various freight charges. Normally, I would use one of the available condition types and create a condition master based on the Incoterms.

Configuration path :-

IMG -> Logistics Execution -> Shipping -> Basic Shipping Functions -> Pricing

Hiding condition type VPRS - OSS note 105621

It tells you to modify userexits: USEREXIT_FIELD_MODIFICATION, USEREXIT_FIELD_MODIFIC_LEER,
USEREXIT_FIELD_MODIFIC_KZWI, USEREXIT_FIELD_MODIFIC_KOPF and USEREXIT_PRICING_CHECK.

It also tells you to create two new includes: ZZAUTH01 and ZZAUTH02, but it doesn’t tell you what changes to actually make in any of these. I am assuming that the authority checks have to be added somewhere, but what goes where?

The coding for includes ZZAUTH* are (create them in SE38 like INCLUDE, and althought note say that dev.class must be VF, I have them with own dev.class ie: Z**, and it works)

include ZZAUTH01
*&———————————————————————*
*&———————————————————————*
*& Object REPS ZZAUTH01
*& Object header PROG ZZAUTH01
*&———————————————————————*
*& This object has been generated from an advance correction *
*& attached to a R/3 note.
*
*&———————————————————————*
*&———————————————————————*
*& Title: Authority check for displaying fields *
*&———————————————————————*
***INCLUDE ZZAUTH01.
* Beim ersten Aufruf ist KOMV initial; OLD_KOMK löschen,
* damit auf jeden Fall Berechtigungsprüfung durchgeführt wird.
* Sicherheitshalber zunächst Berechtigung verweigern.
* if komv is initial.
IF SCREEN-NAME = ‘FCODE’.
CLEAR OLD_KOMK.
AUTH_SUBRC = 4.
ENDIF.

* Berechtigungsprüfung auf Kalkulationsschema und Stufen-Nr.
* Beim Wechsel der KOMV-Zeile einmalig eine Berechtigungsprüfung
* durchführen
IF KOMK-KALSM NE OLD_KOMK-KALSM OR KOMV-STUNR NE OLD_KOMV-STUNR.
AUTHORITY-CHECK OBJECT ‘Z_KONH_KLS’
ID ‘ZKALSM’ FIELD KOMK-KALSM
ID ‘ZSTUNR’ FIELD KOMV-STUNR
ID ‘ACTVT’ DUMMY.
AUTH_SUBRC = SY-SUBRC.
OLD_KOMK = KOMK.
OLD_KOMV = KOMV.
ENDIF.

IF AUTH_SUBRC NE 0 AND ( SCREEN-NAME = ‘RV61A-SELKZ’
OR SCREEN-NAME = ‘KOMV-KAWRT’
OR SCREEN-NAME = ‘RV61A-AWEIN’
OR SCREEN-NAME = ‘KOMV-KBETR’
OR SCREEN-NAME = ‘RV61A-KOEIN’
OR SCREEN-NAME = ‘KOMV-KPEIN’
OR SCREEN-NAME = ‘KOMV-KMEIN’
OR SCREEN-NAME = ‘KOMV-KWERT’ ).
SCREEN-ACTIVE = 0.
ENDIF.
MODIFY SCREEN.
* Ende Berechtigungsprüfung

for include ZZAUTH02

***INCLUDE ZZAUTH02 .
*&———————————————————————*
*&———————————————————————*
*& Object REPS ZZAUTH02
*& Object header PROG ZZAUTH02
*&———————————————————————*
*& This object has been generated from an advance correction *
*& attached to a R/3 note. *
*&———————————————————————*
*&———————————————————————*
*& Title: Authority check for creating new conditions *
*&———————————————————————*
***INCLUDE ZZAUTH02.
AUTHORITY-CHECK OBJECT ‘Z_KONH_KLS’
ID ‘ZKALSM’ FIELD KOMK-KALSM
ID ‘ZSTUNR’ FIELD KOMV-STUNR
ID ‘ACTVT’ DUMMY.
IF SY-SUBRC NE 0.
MESSAGE E609(VH).
ENDIF.
* Ende Berechtigungsprüfung

*&———————————————————————*

In my system (46B) I remember that the subroutines USEREXIT is not changed for this purpose. With SU21 (z_konh_kls I think that you don’t have problems), like with SU02.

In su02, remember that in XU180-PROFILE of first dynpro, you must populate with value ‘ZCOND_STD’ and click on create work area for profiles. Double click on zcond_std. In object populate with ‘Z_KONH_KLS’, double click and you see the parameters like in tcode PFCG (profiles and auth.)

For action you can populate ‘*’

For procedure you can populate with the procedure (see tcode V/08 ) that you use in your SD documents, or the procedure/s in where you want that the restriction will work, if you have many procedures.

For level, you must write the ranges of levels in this procedures (into V/08 ) that you want that the user can see (remember that alpha routine conversion dont works, ie: for level ‘ 1′ [in dynpro] you must write ‘001′, if not, you will have problems). The levels out of this ranges, the user with this profile when go to conditions in SD document will not see the value of these items.

Finally, in SU01, add this profile to profiles created with PFCG in ‘profiles’.

After check if it works.

Pricing Procedure in Product Hierarchy

Pricing structure for line item is KOMP. A quick look thru KOMP structure (tx SE11) shows that you have only PRODH field for all 18 digits of product hierarchy, whereas you need only the first three. So you do the following:

1. Create the new data element ZZPRODH1. Also create a domain with the length “3″ and the data type “CHAR” for the new data element. Remember that new data fields must start with the letters “ZZ” or “YY”, since SAP reserved these letters to protect them from being overwritten during a release upgrade.

2. Check whether the product hierarchy (PRODH) is found at header or at item level. In table VBAP, document field PRODH is defined as an item field.

3. Integrate the field name ZZPRODH in the communication structure KOMP using the INCLUDE KOMPAZ and allocate the data element PRODH to it.

4. Activate the structure.

5. Check in which table the field PRODH exists.
The field is in table VBAP (sales document: item data).

6. Assign a value to the new field in the FORM routines for sales order processing and billing using the appropriate user exits: In sales order processing the user exit is found in member MV45AFZZ. The complete statement is:
FORM USEREXIT_PRICING_PREPARE_TKOMP.
MOVE VBAP-PRODH(3) TO TKOMP-ZZPRODH. ENDFORM.
The routines for assigning a value to the new fields in billing are found in member RV60AFZZ. The statement is as follows:
FORM USEREXIT_PRICING_PREPARE_TKOMK MOVE
XVBRP-PRODH(3) TO TKOMP-ZZPRODH. ENDFORM.

7. Allocate the specifications A, V and 001 to the field ZZPRODH in table T681F. Use “E” has been added for fields in rebate processing.

This is a standard example from SAP Library. In this case you must tell the ABAP three things:
- that your source field is VBAP-PRODH,
- that you need to get the first three digits from that field into your pricing structure KOMP
- and that you need to specify the transfer by user exit thru MV45AFZZ

Please note that this is a very simple example. Quite often you have to dig a lot deeper.

Modifications of Copy Control routines, making output forms (thru SapScript) and such requires you to know all the necessary tables, structures and fileds.

The only advice I can give you is to use tx SE11, which will show you the organisation of a table/structure, and can also help you check the contents of a specific table in a specific sales doc.

Pricing Release Procedures

Define Processing Status - SM30 -> V_T686E

You are free to design your own processing status flow.
e.g. from 01 -> 02 or
from 01 -> 02 -> 03

To convert the old Pricing Condition with the release status use program SD_MOVE_A004_TO_A304.
For the standard tables, the following pairs of condition tables are intended to be used:
‘old’ <–> ‘new’ VAKEY fields
A004 <–> A304 VKORG + VTWEG + MATNR
A005 <–> A305 VKORG + VTWEG + KUNNR + MATNR
A006 <–> A306 VKORG + VTWEG + PLTYP + WAERK + MATNR
A007 <–> A307 VKORG + VTWEG + (SPART) + KUNNR

For example, if you are using A005 –> A305, you have to copy the program to ZSD_MOVE_A005_TO_A305 and amend the program Source and Target table.

First test run by ticking both option. If you confirm that there are no errors, then run by unticking both options.

Be careful while executing the conversion program as it can erase all your existing pricing condition data.

Once the conversion is completed, you can activate the Customer/Material with release status :-

IMG -> Sales and Distribution -> Basic Functions -> Pricing -> Pricing Control -> Define Access Sequences -> Maintain Access Sequences

In VK12, you will be able to choose the new Customer/Material with the release status column per material.

Control Pricing Conditions based on Order Type

You create an order type ZP00 for QT - Quotation and does not wish it to be used in OR - Standard Order.

Follows this steps :-

IMG - Sales and Distribution -> Basic Functions -> Pricing Control -> Define and Assign Pricing Procedures

Define document pricing procedure
e.g. Q - Quotation

Assign document pricing procedures to order types
e.g. Assign Q to Order Type QT - Quotation

Maintain pricing procedures
e.g. Copy Standard Pricing Procedure to e.g. ZQT (all the pricing conditions list will only be allowed in order type QT - Quotation

Define Pricing Procedure Determination
e.g. Copy and assign Document Pricing Q and Pricing Procedure ZQT accordingly

Users will receive Message no. V1 206Condition ZP00 is missing in pricing procedure A V ZQT“.

Create a New Pricing Conditions Key Combination

4.6x

In VK12, click the Key Combination button. You can see a list of available key combination for your price master.

Now, let create a new key combination e.g. Customer + Sales Document + Material

IMG - Sales and Distribution -> Basic Functions -> Pricing Control -> Define Condition Tables -> Create condition tables

e.g. 900
Selected fields
Sales organization
Distribution channel
Customer
Sales document
Material
Click Generate to activate it

IMG - Sales and Distribution -> Basic Functions -> Pricing Control -> Define Condition Tables -> Defince Access Sequences -> Maintain Access Sequences

Select PR00 - Price
Click Accesses
Click New entries

AcNo Tab Exclusive
50 90 X - Tick

Save your entries

IMG - Sales and Distribution -> Basic Functions -> Pricing Control -> Define Condition Tables -> Defince Access Sequences -> Optimize accesses

Copy an existing PR00 and substitute the AcNo with 50

Finally, goto VK12 and key in the new price master for PR00.

Next, goto VA02 and test out the material. If it didn’t work check the pricing date in the header details. Is the pricing date within the validity period?

Price with additional decimals

You can add additional decimals for a currency through a work around method.

Set up a currency let’s say instead of USD call it US$ ( OY03 ) and define the number of decimal places ( OY04 ) to be 3 or more depending on your requirement.

Maintain the exchange rate for between US$ and USD to be 1 to 1 ( OBBS and OB08 ).

Create pricing condition records for those customers requiring 3 decimal places using Current US$ instead of USD.

That will give you 3 decimal places for your prices. However, one thing you will have to watch out for is rounding.

You can try transaction OB90, define rounding rule for currency. Here you define the rounding rule for your customer’s currency.

Define Condition types

V/05 - Condition Table for V/07
e.g. a business may no longer wants to have a sales discount based on the sales organization, customer group, and material, but decided that the discount should be based on the sales organization, customer group and material group.

V/06 - Create new condition types by copying a similar conditions type and changing it according to your needs.

  • Double click on the condition type to change the control options

V/07 - Access Sequences for condition type

V/08 - Pricing Procedures for condition types.
The pricing procedure is also used in the account determination. This determines the general ledger accounts to which prices, discounts and taxes must be posted.

  • Click on the Pricing Procedures e.g. PR0000 - Condition Supplements for PR00
  • Click Control - e.g. Tick Mdt if you want the condition type to be mandatory
    • OV34 - Define account key
    • OV35 - Assign account key
      • Actky - Revenue account
      • Accrls - Accruals account

OVKK - Determine which Pricing Procedures to use for which Condition Type.