ABOUT SAP SD ONLY

Wednesday, October 10, 2007


Integration of SD and HR

Is there any integration between SD module and HR module?


1) Primary Relationship : Enterprise Structure : the highest level of the HR module is Enterprise Structure and this is the base for every module.

While implementing SAP for the companies all the consultants of various modules sit together and identify the elements of enterprise structure from their point of view and form a common code for their various terminlogies.

Let us say Personnela Area ::::::: Human Resource
Plant ::::::: MM and PP
Sales organisation ::::::: SD


Like this for the same area we do address with several names from different SAP Modules.

For this Common Area we take a common code let us say 1000.

So the highest level of organisation after the company code is identified.

Next to this step Our responsibility is to identify "Personnel Sub Areas"

It is a division or Department below the level of personnel area.

From SD module below the sales organisation distibution channela and divisions will come. Also the sales Areas . these are all assigned to the Sales organisation. And we know sales organisation has to be assigned to the Company Code.

Meas From HR Personnel area = Sales Org in SD
Personnel Subar = Distibution channel , Division

To identify which is the common terminology for personnel subarea, we need to identify the reporting structure of the company and its accountability at each level .


THIS APPEARS TO SIMPLE BUT SO COMPLEX.


Like this maintaining the relationship at enterprise structure level shuold be done


2) Seconday Relationship (Indirect Relationships):

Sales areas are assigned to another sales areas. Here many to many relationships are maintained rather than many to one ( many Sales orgs to one company code) of primany relationships.

Here we should be very keen From H R point of view to identify personnel sub areas.

At the same time we should keep in mind the functionality of cost center also while framing the structure .


3) Employee relationships :


HR Point of view:

Once we identify the employee groups in the company like permanent, contracts, temporary , trainee etc., we do focus on Employee Sub Groups.


SD Point of view :

If the employee is at TRAINEE or PERMANENT or TEMPORARY has to be decided and accordingly should be assigned on recruitment at org assignemnt infotype 0001.

We aslo know that infotype 0900 may also be initiated for maintaining the master data of employee at PA 30 to assign sales
organisation,Sales Office, Sales Groups to each employee.


4) Recruitment : We at HR have to identify the position and declare it as vacancy then we can recruit as per our procedure as every body knows.

Other wise go to the transcation code PAL1 and creat sales representative and assign him to respective org div through 0001 infotype. PAL3,PAL4 also may be useful.

Like this at enterprise structure and employee structure HR and SD share common ideas.

Thursday, October 4, 2007

Pricing-16



Add a Field To New Condition Table in Pricing


Add a field to a new condition table in Pricing (Condition Technique):-

I will explain you the process with below example...Please follow steps in below sequence-

Try to add the filed from the field catalog. In case the required combination field is not there, you can add the field through the following process to filed catalog and create the condition table. It is most common that one or other time we need to use this function while configuring multi tasking & complex Pricing Architecture.

Here I'm giving a simple guide to add fields to the Pricing Field Catalogues:

For example you want to use field PSTYV ('Sales document item category') that is included in structure KOMP ('Pricing Communication Item') as a key for a condition table.

When you create a condition table (Transaction V/03), however, the system does not propose the field in the field catalog.

Condition access, field catalog, allowed fields, KOMG, KOMK, KOMP, KOMPAZ, KOMKAZ, PSTYV are the other terms which we need to know about, to add Fields.

Reason and Prerequisites:
For technical reasons, field PSTYV was included in structure KOMP, however, not in structure KOMG ('Allowed Fields for Condition Structures').


Proceed as follows:

1. Call up the ABAP Dictionary (Transaction SE11) and create data type ZZPSTYV. Choose PSTYV as a domain.As a short text, you can use, for example, 'ZZ - sales document item category' and as a field label, you can use the field labels of PSTYV.Save, check and activate your entries.

2. Call up structure KOMPAZ in the ABAP Dictionary (Transaction SE11) in the change mode and make the following entry:
Component Component type:
ZZPSTYV ZZPSTYV
Save, check and activate the change you made.

3. Note:Because of the change in structure KOMPAZ, field ZZPSTYV is now known in structures KOMG and KOMP because structure KOMPAZ is included in both structures.

4. Call up Transaction SPRO. Navigate to 'Sales and Distribution -> Basic Functions -> Pricing -> Pricing Control' and execute 'Define Condition Tables'.
Choose 'Conditions: Allowed fields' and include ZZPSTYV as a new entry.

5. Note:Now you can use field ZZPSTYV as a key field when you create a condition table Axxx.

6. Supply the new field you defined by including the following source code line in USEREXIT_PRICING_PREPARE_TKOMP:
MOVE xxxx-PSTYV TO TKOMP-ZZPSTYV.
In order processing you find the user exit in Include MV45AFZZ, and in billing document processing you find it in Include RV60AFZZ.

Consider that you can also use this note as a help if you want to use other customer-specific fields as key fields in a condition table.

For header fields, use structure KOMKAZ instead of structure KOMPAZ and
USEREXIT_PRICING_PREPARE_TKOMK instead of
USEREXIT_PRICING_PREPARE_TKOMP.

For more information, see Transaction SPRO via the path 'Sales and Distribution -> System Modifications -> Create New Fields (Using Condition Technique) -> New Fields for Pricing' and OSS Note 21040.

Pricing-15

SD Questions About Pricing Condition

The Most Important Tips in Pricing For SAP SD Module to crack interviews...

Whenever we define our pricing procedures, we remain least interested in creating our own Condition Types,Condition
Tables & Access Sequences. What we do is, we just define our own pricing procedures by using the existing condition types (i.e: PR00, K004, K007, KA02, KF00 etc.) & then assign that Pricing Procedure with " Sales Area, Document Pricing Procedure & Customer Pricing Procedure " .

After that we put the values against each Condition Types, mentioned in our Pricing Procedure by using the T-Code "VK11". But we also need to know about the Condition Tables, Condition Types & Access Sequence Creation. So for that purpose we have to use the following T-Codes respectively : "V/05", "V/06" & "V/07". Now it will become easy to create the same.

Also to inform that, using T-Codes is more smarter than following paths through IMG screen.


What is the difference of VK11 and VK31 (condition records)?

My condition type is PR00 and Access sequence is PR02. And in this access sequence table 304 is available. Now when I was entering the PR00 in VK31 it shows error Table 304 is not defining for the condition type PR02. But when I was entering the PR00 at VK11 it is accepting it.

Difference between VK11 and VK31 - if you go through the menu path you will get the vk 31 as condition record from the tamplets whereas vk11 as simple condition record. In VK11 you can store condition record for more than one condition type.

This means you can have same condition record for different condition types.This feature is given to enhance the system's performane and not to create the duplcation of the work for each condition type.

Again system is not allowing to store the record in the vk31 for the condition type pr00 and access sequence pr02.This is because if you see this ac seq cointains two accessses 20 and 30 having the same table no.But you see there is the difference between the technical view of it for transfering the data from document field and condition field,so you can not maintain the data at VK31.

What is the difference between Header condition and Item condition? I know item condition applies to each item in a sales document. Header condition can only be applied to an entire document.

Difference between header and item condition - as YOU CORRECTLY SAID HEADER CONDITION IS APPLICABLE FOR THE WHOLE DOCUMENT where as item is for item.

Ex-Say fright is dependent on the total weight of all the items in the documents then header condition adds on weights of all items and calculates the record accordingly.
You have two different types of the header conditions.

a) In one you can duplicate the same value throughout the document for each item.Say discount 2% at header level which is also applicable to all the items

b)Second is the accumulation of the values of all the item at the header level,as earlier explained for the weight/fright.

These differenes are controlled through the indicator of group condition in the cond.type configuration.

And so obviously header condition can not have the condition record and hence access sequence.


Disallowing Condition Types - How I can accomplish the following:

Be able to DISALLOW Z0BP Condition type to be negative ( Invoice Block)

You can modify condition type from customizing;

Sales and Distribution->Basic Functions->Pricing->Pricing Control->Define Condition Types->Maintain Condition Types

Change condition type ZOBP's plus/minus indicator to "A" which means only positive is allowed.

In pricing procedure there are column such as requirement, sub total altclty, altbv, accurals. What are these and where we calculate all these values which we put.

1. Requirement: Denoted by nos and maintained in VOFM, this is a condition required for a particular condition type to be executed.

Eg. PR00: req 2 ie item relevant for pricing
VPRS/EKO1: req 4 ie cost
Rebate BAO1 Req 24/Req 25 etc

2. Subtotal: this represents where a which table a value is stored, which can be processed for further calculation.

Eg. for PR00, if this value is to be used for credt check of a customer, we mark the subtotal as A.

3. Alternate Calculation type: this is also denoted by numbers and maintained in VOFM. Eg. Suppose for 45 units , each unit is charged $100 per unit, the order value comes out to be $4500, that is calculation is done as per unit price, if the client wants calculation type to be based on volume or wieght, alternate calculation type can be configured.

4. Alternate base value: Denoted by no. and maintained in VOFM.

Eg, if the pricing scale is maintained and pricing for 45 units comes under the scale of $100 per unit., the base value is 45 units, but if the client wants a standard base value in some casesto be assumed inspite of maintaining the scale, an alternate base value is confihured, that is the base value based on which the order value is to be calculated changes.

5. Accruals: Accruals are maintained for rebate agreements, it constitutes the total accumulated value which customer has earned through rebate, one the rebate for certain amount is settled the amount from the accruals get deducted.

Pricing-14



Steps to Create Commission for Agent

For creating commission agent, you have to follow below steps.

1) Establish Partner Functions for the Commissionee(s)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA

2) Assign the Partner Functions to Partner Procedures

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA

3) Create a Partner Procedure for the Commissionees

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA

4) Create New Customer Account Group(s) for Commission Agents

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; LOGISTICS GENERAL ->; LOGISTICS BASIC DATA: BUSINESS PARTNERS ->; CUSTOMERS ->; CONTROL ->; DEFINE ACCOUNT GROUPS AND FIELD SELECTION FOR CUSTOMER
Transaction Code: OVT0

5) Assign the Partner Functions to the Customer Account Group(s)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS ->; GOTO ->; PARTNER FUNCTIONS ->; ENVIRONMENT ->; ACCOUNT GROUP ASSIGNMENT
Transaction Code: VOPA

6) Assign the Partner Functions to the Partner Procedure for the Sales Document Header

Menu Path: Tools ->; Business Engineer ->; Customizing ->; Sales and Distribution ->; Basic Functions ->; Partner Determination ->; Define Partner Functions
Transaction Code: VOPA

7) Assign the Partner Functions to the Partner Procedure for the Sales Document Item (OPTIONAL)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA

8) Edit the Pricing Communication Structure (KOMKAZ) to Hold the New Functions (Client Independent)

Menu Path: Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; DICTIONARY
Transaction Code: SE11

9) Edit MV45AFZZ – userexit_pricing_prepare_tkomk (Client Independent)

Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38

10) Edit RV60AFZZ - userexit_pricing_prepare_tkomk (Client Independent)

Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38

11) Edit MV45AFZB - userexit_new_pricing_vbkd changing new_pricing (Client Independent)

Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38

The following code should be inserted into program MV45AFZZ to allow the system to re-execute pricing if the user makes a change to the relevant partner function (alteration, addition, deletion).

12) Add the KOMKAZ Fields to the Pricing Field Catalog (Client Independent)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: OV24

13) Create Condition Tables (Client Independent)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/03

14) Create an access sequence containing the new tables (Client Independent)

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/07

15) Create a new condition type

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE CONDITION TYPES ->; MAINTAIN CONDITION TYPES
Transaction Code: V/06

16) Add the Condition Type to the Pricing Procedure

Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE AND ASSIGN PRICING PROCEDURES ->; MAINTAIN PRICING PROCEDURES
Transaction Code: V/08

17) Create Commsission Report ZZCOMMISSION (Client Independent)

Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38

Pricing-13



Customer discounts on effort only



We have a requirement of giving a discount to customer based on the total amount invoiced so far (across financial years). Where do we set this up? We have seen so far the discounts are calculated based on the value of the current invoice.

The discount should be on a graduated scale basis for example

0 - 100000 No discount
100000 - 200000 5%
200000 - and above 10%
This means that discount would only start after the customer's net sale value crosses 100000.

For example, if the customer has been billed for 99000 and the current invoice is for 3000, a discount of 5% should be given on 2000 i.e. 100. Another complication is that, the discount is not based on the total amount billed so far, but only on the effort billed and not on reimbursements (like airfares, living expenses, visa charges, beeper charges etc).

The discount applies only to the effort and not to the reimbursements. In the above example (invoice of 3000) say the effort billed is only 1500, the rest being reimbursements. The discount is only on the 500. (the rest being taken up by the lower limit for eligibility of 100000)

For example the customer might have been billed say 150000 so far but actual effort billed might be only 90000, the rest being reimbursements of actual costs and hence the customer is not eligible for the discount.


solution1:

The solution for this is Using rebate condition types and suitable condition records.

Of this to handle your first problem that is the rebate has to be applied only on the "effort" you have to set up a line in the pricing procedure which gives the rebate basis i.e the value to be used for rebate cond types.

This I believe solves your problem of rebate only on effort.

Your second problem i.e the discount should start getting applied automatically when it reaches the first scale for which the values span few financial years. This I am not really sure whether it can be made possible in the invoice itself. But a work around is not giving the discount directly in the invoice but settling it against the rebate agreements by Credit notes periodically.



solution2:

Arent we looking at rebate agreeement. That appears to be a straightaway solution to your problem. You activate the sales organization and the payer for that



solution3:

I am in SAP R/3 rel.30F.
We have 2 options to meet your requirement.

1. Using scale in condition type ( tcode V/06 ), choose scale basis G.Scale based on a formula ( be: your based amount is invoice ). Define scale formula. You need ABAPER to define it.

2. Using routine in Alt.calc.type ( tcode V/08 , Maintain Pricing Procedure ). Here, you also need ABAPER to create routine.




Pricing-12



Make Material Master Price of a material as sales price automatically

The first method is not to set the pricing condition VPRS as statistical.

Simply remove PR00 and it will work fine if you always use VPRS as your pricing base inside the pricing procedure.

VPRS will reads both prices based on the price control in the material master.

Price control S for standard price.
Price control V for moving average price.

It is this simple if you do not have any other "Prices" in the price procedure.

However, if you are using one pricing procedure where for some items you price using VPRS and some others using PR00, then you should use requirement routines to enable the correct price condition type at the right time.

The second method involves more work as you need to write a formula (VOFM) to get that information.


This is how it goes :-

1. Set VPRS to be the first step in the pricing procedure and to be subtotal B (as standard).

2. Set PR00 with alt. calc. type formula, which sets the value of PR00 to be equal to the subtotal B.
The routine (created with transaction VOFM) is:

RV64A901
FORM FRM_KONDI_WERT_600.
XKWERT = KOMP-WAVWR.
ENDFORM.


The pricing procedure than looks like that:

Step 1 VPRS statistical, subtotal B, reqt 4
Step 2 PR00 Altcty 600

Pricing-11



Mass Update of condition pricing

You can update the condition pricing for a range of sales order.

For e.g. if you create sales order for 15 months or so, and at the beginning of each year, you have to update the prices for lots of sales orders.

Other than using VA02 and make an Update of the conditions at item level which is a big work because you will have lots of open sales order after so many months.

Use VA05, select your Orders and on the result screen :-

click Edit- > Mass Change -> New Pricing (menu).

or

if you don't want to do that Online, write your own abap report and use Function SD_BULK_CHANGE (check where-Used at SE37, Trace VA05 on how to fill the parameters, Function MPRF => New Pricing)

Pricing-10



Report to Check the Entered Pricing Condition Price


Which is the best transaction code to check the Pricing condition price entered in "VK11"?

Other than "VK13", to display the price, you can use V/LD - Execute Pricing Report to check the prices entered into the Pricing Master.

Normally Pricing Report - "07 Cust.-specific Prices with Scale Display" will do.


Other Pricing Reports you can tried are these:.


---------------------------------------------------------------------------
|LR|Report title |
-- ------------------------------------------------------------------------
|01|Comparison of Price Lists Without Scale Display |
|02|Comparison of Price Groups Without Scale Display |
|03|Incoterms with Scale Display |
|04|Incoterms Without Scale Display |
|05|Price List Types Without Scale Display |
|06|Price List Types with Scale Display |
|07|Cust.-specific Prices with Scale Display |
|08|Cust.-specific Prices W/out Scale Display |
|09|Material List/Material Pricing Group with Scale Display |
|10|List Mat./Mat.Pricing Groups Without Scale Display |
|11|Price Groups With Scale Display |
|14|Taxes |
|15|Material Price |
|16|Individual Prices |
|17|Discounts and Surcharges by Customer |
|18|Discounts and Surcharges by Material |
|19|Discounts and Surcharges by Price Group |
|20|Discounts and Surcharges by Material Group |
|21|Discounts and Surcharges by Customer/Material |
|22|Discounts and Surcharges by Customer/Material Group |
|23|Discounts and Surcharges by Price Group/Material |
|24|Discounts and Surcharges by Price Group/Material Group |
|25|VAT/ATX1 |
|26|Canada/USA |
|27|I.E.P.S Mexico |
|28|Conditions by Customer |
|30|Conditions by Customer Hierarchy |
|31|Price List with Release Status |
|AC| |
|AD| |
---------------------------------------------------------------------------

Pricing-9



Pricing date based on delivery date

Used transaction VOV8.

This configuration is by order type.

There is a field called proposal for pricing date.

There you can select pricing date as requested delivery date.

A - Proposed pricing date based on the requested dlv.date (Header)

This control is set at the document level as oppose to the condition type level (PR00).

That means your other condition types such as surcharges and discounts are also determined using the requested delivery date.

If your requirement is for PR00 to alone to be priced at delivery date then this will not work.

How pricing date is determine in the sales order and billing document? Where is the setting?

The pricing date is proposed based on the setting you make in the Sales document configuration. ( T code : VOV8)
You have a field" Prop.f.pricing date " in the Requested delivery date / pricing date / purchase order date segment.

Then you can choose the follwoing options:

Blank - Indicates the current date as the pricing date

A - Indicates the date based on the requested delivery date

B - Indicates the date based on the order validity start from date

And the pricing in the billing document is copied from thte sales order / Delivery document..

It again depends on the setting u have in the copy control from order - billng or delivery - billing.
In the copy control, in the item settings you have two fields relavant for this.

One is pricing source and the other is pricing type.

The pricing sources are generally the order. But if you want you can change it to other values mentioned in the drop down,
but this values have no effect if the pricing type is B.

Any other value other than B in the pricing type will take the reference document price mentioned in the pricing source field.
but for the pricing type B. The new price is determined in the billing order.

Pricing-8



Determine Sales Price with Shipping Point

You are trying to use shipping point as a key field (with sales org. distribution channel and ship-to party together) to determine the sales price. You created a condition table with the above key fields, and maintained the relevant setting (access sequence, condition type and pricing procedure).

There is an error message in the sales order pricing analysis ("access not made" in the shipping point field).
In the access sequence, you found that the shipping point field's document structure is KOMK.

Can you put to item level field in the condition table and access sequence?

Structure KOMK refers to header of the sales order, but shipping point of course is on item level.

You'll have to do some settings to reach your goal, it is possible.


Step 1
Append structure KOMP. Do this by changing through SE11 the table KOMPAZ.
This is the include for structure KOMP.
Add a component e.g. ZZVSTEL with component type VSTEL.
Save, activate.
If you want to make more points, assign search help H_TVST to the component.
Ask a programmer if you don't understand this part.


Step 2

Change user exit MV45AFZZ. Say there that field ZVSTEL should be filled with information from your shipping point.
Do this under part FORM USEREXIT_PRICING_PREPARE_TKOMP.
The coding should be like tkomp-zzvstel = vbap-vstel.
Save, generate.


Step 3

Make a new table as you did before, but first maintain your new field in Condition: allowed fields.
When you create your new table you will see you have two shipping points.
With the button technical view you can check which one ZZVSTEL or VSTEL.


Step 4

Finish with the steps you did before. That was ok.

Now, you will see in your sales order that the shipping point is filled with information.

Pricing-7



Quantity Based Discounts in Bulk Quantities Sales

You're looking to implement quantity based discounts in 4.6c. You are trying to sell items in specific bulk quantities, and only give the discount for specific quantity intervals.

For example, if a customer orders 1 piece, 2 pieces, 3, etc. of part ABC, the price is $100.

If the customer orders 10 pieces of part ABC, the price is $50.

However, this is not only a standard minimum quantity discount. If the customer tries to order 11 pieces, 12, 13, etc. it should return $100 again.

The only values for which $50 should apply are 10, 20, 30, etc. - multiples of the bulk quantity 10.

You have discussed changing your part number to reflect a bulk qty of 10, however you have in house consumption that is allowed to consume only 1 part at a time. You would vastly prefer to keep one part number that you order from the supplier, consume internally and ship externally.

You are fairly certain there is basic functionality that covers this, but you're just not sure where to start.

Taking your requirements literally. Standard SAP scale pricing will not do it in that you only want the reduced price to come into effect when the order quantity is multiple of some bulk factor.

It is agreed with that creating a separate material number is not a good idea.

You can try this :-

1. Define/Select a UOM for selling in bulk (i.e. cas, pallet, box whatever)
2. Maintain UOM conversion between your base UOM and this new UOM
3. Configure you bulk pricing condition type by usual means (it should be a base price rather than discount).
4. Place this new bulk price behind your normal "PR00" price in the pricing procedure
5. Create a new condition base value routine via VOFM where you check XKWERT to see if it is a whole number. If it is not then set XKWERT to zero.
6. Assign this new routine to your bulk price condition in your pricing procedure in ALT condition base value column.
7. Maintain bulk price conditon record in the Bulk UOM.

That should do it.

Wednesday, October 3, 2007

Pricing-6




Re-pricing in a Quotation

How can I, or am I able to find anything on a way of RE-Pricing be done in a QUOTATION?

You can always 'Update" pricing manually in a quotation the same way you do in a sales order, either in create or change modes. Menu path Edit --> New Pricing or press the 'Update pricing' button on the item conditions tab.

If you are asking how to reprice a quotation when it converts into a sales order, that can be done with the copy controls of the Item Category. IMG: Sales & Dist --> Sales --> --> Maintain Copy Control for Sales Docs --> Sales Doc to Sales Doc (transaction vtaa). Just choose the combination of documents and the respective item category. The field you need to be concerned with is "Pricing type".

However, from a business process perspective it makes absolutely NO sense to reprice a quotation when converting to a sales order. After all, the entire point of using quotations is to firm up details like pricing before creating the sales order.

Pricing-5



What is "alt cal type" & "alt base value" & "Requirement field" in the Pricing Procedure

Can any one explain exactly what is "alt cal type" & "alt base value" and also " Requirement field" in the pricing procedure?

The alternate base value is used as the calculation basis only, while the alternate calculation is used to modify the final value.

For example, imagine you have a condition type ZZ01, with a condition record maintained (master data) for $100. Now, condition ZZ02 also exists lower in the schema, but with a rate of 10%. The standard calculation would result in a final value of $110.

The alternate base value could say, "don't use $100 as the basis -- use the original price PR00 only, which was $90." Then, the final value would be $100 + (10% of $90) = $109.

The alternate calculation routine says, "ignore the 10% altogether. Instead, use an externally calculated 20%." Then, you end up with a final value of $100 + (20% of $100) = $120.

Put them both together, and you could end up with $100 + (20% of $90) = $118.

Now once again,

Alternative Calculation Type:

Normally if you want to calculate a value you have to use a calculation type for determinating the value. This calculation type is either addition, subtraction or multiplication. Similarly SAP also has got a default calculation type in the control data of the condition type. There you have the options of either Qty based , Fixed Amount Based or Percentage based.

Here what happens is suppose if you define Your condition type that calculates the base price of a material on Qty based. Then the calculation will be done based on the quantity of the material. If the customer orders 10 Nos and you have maintained a unit price of 100 Rs for each material then the value determined is 1000 INR. Similarly if the discount condition type , you maintain the calculation type as %. This means if you maintain the value of 10 % in the condition record. Then this percentage is taken as the calculation type and the condition value is determined.

In some cases you have to forego the default calculation types and use the customer specific method for calculating a value. For ex if you are calculating the Freight charges for a Material . it depends on so many criteria like, the weight, volume and also the minimum amount etc etc, in those cases, you forego the default value and then use the alternative calculation type in calculating the condition value against the particular condition.

Alternative Condition Base value :

If you have to calculate any value then you have to have a base value for it. For ex if you want to calculate the discount of 10 % for a material then you have to have a base value on which this 10% is calculated. Normally you take the condition value of the base price of the material to calculate the value.

Now you don't want to take the base value and take other values as base value which are derived on some formulae. So you create a routine which will do the mathematical operations in the routine and derive you a value which is now used as the base value for calculating the condition value for a particular condition type.

Requirement:
A factor in the condition technique that restricts access to a condition table. The system only accesses a condition table to determine the price if the requirement specified has been met.

Example:
The system uses an access sequence to determine the price of a material. One of the accesses in the sequence contains the requirement "in foreign currency." The system only uses the table behind this access if the sales order for which the price must be calculated is in a foreign currency.

Pricing-4



Creating New Pricing Procedure

What is the transaction code for creating new pricing procedure and how to attach it to specific plant?

You create PP in spro > Sales and Distribution > Basic Functions > Pricing > Pricing Control > Define and Assign Pricing Procedures > Maintain Pricing Procedures

You can't attach PP to specific plant. Pricing Procedure is determined thru trx OVKK. The defining parameters for pricing procedure determination are:

1. SalesOrg
2. Distribution Channel
3. Division
4. Document Procedure (defined in Sales doc\Billing doc maintenance)
5. Pricing procedure assigned to customer (defined in customer master)

Hope this helps.



Reg pricing procedure.

1. Use transaction code v/07 to create a access sequence and assign tables based on which you want to carry on pricing as accesses.

2. Use transaction code v/06 to define condition type. It can be for base price, discount, freight etc., (Do assign relevant access sequence)

3. Use transaction code v/08 to define pricing procedure.

4. Assign this to your relevant sales area+ dpp+cupp.

While specifying requirement, we can give reqt no.22 which specifies that plant has to be set. This is generally done for output taxes since output taxes depend upon the delivering plant. But directly there is no assignment between plant and pricing procedure.

Hope this helps,

Pricing-3



Hiding Price Condition Types on a Sales Document

Up to now you, you still cannot exclude certain condition types and subtotal lines from being processed or displayed in the condition screen by restricting the authorizations.

You have to implement SAP Note No. 105621 - Authorization check for the condition screen

Pricing-2



Accumulate the amount of condition types in accounting document

To accumulate the amount of condition types in accounting document without affecting the pricing display in billing document.

As an illustration :-

ZPXX 3500
ZDXX 1000-
ZWXX 500-

(all condition types are shown separately in pricing view)

Journal:
Dr Vendor 2000
Cr Sales 2000 (ZPXX - ZDXX - ZWXX)

One way to do it is :-

Mark the condition types you want to group as statistical and remove the account assignment key.

Create a subtotal in your pricing procedure that will add them together and put in the account assignment key for it. This way the individual components will still display on your pricing screen but FI will only get one posting.

Pricing-1



Difference between Condition Type

Please explain the difference between Ek01 ( Actual Cost) and EK02 Calculated Cost.

These are the condition type that will display the results of the unit costing for certain type of sales document.

EK01 :
If you use this condition type, the result of unit costing is issued to the first position on the conditions screen for the item. The value can be used as a basis for price determination.

EK02:
If you use this condition type, the result of unit costing is simply a statistical value which you can compare with the price.

Please note the following points :

1) The condition type must have condition category 'Q' (costing).

2) The condition type must agree with the condition type defined for unit costing in the pricing procedure.

I have a customer who is being offered two discounts ie k007 and k005, now I want to exclude k007 for the next 2 orders or so? I have set the exclusion indicator for the condition type,but still the condition is being accepted when I create a sales order. Am I missing something, how do I do it?

I think u need to change the validity of the condition record for the condition type K007 defining it not valid for that particular 2 months. And also the settings of the Requirements as it is correct that it overrules the exclusion.

Sheduling



Backward and Forward Scheduling

Backward scheduling is the calculation of deadline dates: the arrival time at the customer site is calculated as the earliest possible goods receipt time at the customers unloading point on the requested delivery date. All four of the delivery and transportation scheduling lead times are subtracted from the customer's requested delivery date to determine if this date can be met.

The transit time, loading time, and pick/pack time are subtracted from the customer’s requested delivery date to calculate the required material availability date.

The system calculates backward scheduling as follows:

Requested delivery date minus transit time = Goods issue date
Goods issue date minus loading time = Loading date
Loading date minus transportation lead time = Transportation scheduling date
Loading date minus pick/pack time = Material availability date

By default, the system will calculate delivery dates the closest day, taking into consideration the working days of the shipping point and a rounding profile. In this case the system assumes a 24 hour work day and lead times can be entered in days up to 2 decimal points. This is referred to as daily scheduling.

Precise scheduling calculated down to the day, hour and minute is supported. This allows the scheduling of a delivery within a single day. It is activated by maintaining the working hours for a particular shipping point.

Backward scheduling is always carried out first. If the material availability date or transportation scheduling date is calculated to be in the past, the system must then use forward scheduling.

Forward scheduling is also done if no product is available on the material availability date calculated by backward scheduling. The system does an availability check to determine the first possible date when product will be available. This new material availability date forms the starting point for scheduling the remaining activities. The loading time, pick/pack time, transit time, and transportation lead time are added to the new material availability date to calculate the confirmed delivery date.

Multiple Materials in Material Determination



Creating Multiple Materials in Material Determination

Material Determination is used to swap one material for another.It is possible to get a list of materials for substituiton,but remember you can substitue only one material from the list.

This can be done through substituiton reason T Code [OVRQ]
See the substitution reason number for Manual Material Selection
- check the Entry box
- check the Warning box
- select A for Stategy
- save.

Go To VB11 to create Material Determination (taking into consideration that all the previous steps for material determiantion i.e. maintaining condition types,maintaining procedures for material determination and assigning procedures to sales doc. types have been done)

Create one material determination,dont forget to give the Subst reason on top and also on the line.

Click the Variants Icon on top left-Sreen opens

Specify different materials you want to swap with the material you have enterd

Note that the subst reason is already copied on the screen

Remember materials should be of the same sales area,atleast Divisions should be same.

Material Determination based on Availability check



SD material Determination based on availability check

For SD material Determination you can create a Substitution reason and on the Strategy field, the following info. is available:

Product selection in the background is performed on the basis of the availability check.

We want to have the material determination only in case on material shortage. We expect the Substitution reason to give us this functionallity. It does not hovever take the availabilty into account before substitution.

We thought the worse case is to create a ABAP which is linked to the "requirement" field in the Procedure (OV13).


Has anyone had the same requirement? Is this a bug or just incorrectly documented?


I also encountered this abnormally recently using material determination. In order to combat the problem, the first product substitution should be for the original material. I've illustrated this below:

Original Product: ABC
Substitutes: DEF, XYZ

In order to perform product substitution ONLY in the case of ATP failure for product ABC, structure the Material Determination record as follows:

Material Entered:

ABC Substitutes:

ABC
DEF
XYZ


There seems to be a devaition at availability check and or on a conceptual note still.

Availability check can be configured both at requiremnt class and at the schedule line categories level.

Whilst the availabilty check at the requirement class level via global and mandatory configuration the schedule line catgry availability check deals with the order.

It is mandatory that the reqmnt class is flagged off for avlblty check and the schdelu line cat need not be.


The following are the mandatory for Availability check to happen--


1. Must be swithced on at the requirment class level and at the schedule line level.


2. Reqmnt type must exist by which a requiremnt class can be found


3. There must exist a plant and is defined


4.Checking group must be defined in Material Master records(it controls whthr the system is to create individual or collective reqmnt)


A combination of checking gropup and checking rule will determine the scope of availbaility check.




AvailabilityCheck




Availability Check on Quotation

SAP standard does not do an availability check on the quotation, as it is not a definite order, usually just a pricing quote.


When it is converted to an order, the first availability check is carried out, as well as credit checks. The system will check stock in the plant, plus what is contained in the availability checking rule (scope of check)


eg: can add POs for replenishment, purchase reqs, different planned orders, and subtract sales orders, deliveries etc already created against that material in that plant (and possibly Storage location).


If there is enough stock in the plant/SLoc, the system will give you a confirmed date, or give you a date based on the production time or purchasing time from the material master. The date the system proposes is based on the customer's requested delivery date.


SAP first backward schedules looking at the required delivery date, less transportation time, less transportation lead time, less pick and pack time, less production/purchase time if applicable.


If the date it calculates is equal or later than today’s date, then it will confirm the customer’s required date. If it falls in the past, SAP will then forward schedule for today’s date, plus the times listed above to get the date when the customer can actually have it.


ATP is the single most complex part of the SD module, depending upon how PP and MRP is set up.


MRP works semi-separately, depending on how it is set up. Basically, MRP looks at the demand on the plant, and if it the stock does not meet expected sales orders and deliveries, it will create a purchase requisition (outside purchase) or requirement or planned order (for production) to cover the shortfall. When MRP is started, it will turn the PR into a PO or the requirement into a production order.




http://sap-career.blogspot.com