Monthly Archives: September 2007

How to refrain users from changing some fields in T-code va02?

There are two ways to do this:
– Make a transaction variant thru SHD0 and assign it to your sales doc. While creating the variant you can place non-changeability ticks on specific fields. Next allow those users only to work with your transaction variant but not with the original transaction.
– You could make use of user-exit FORM USEREXIT_FIELD_MODIFICATION in include MV45AFZZ (via authorization objects, which you can assign in role customizing).
The latter is more flexible but it is not feasible if you want to place restrictions to a large amount of fields.

Advertisements

Useful ABAP Tip

Avoid using hard coding to check for VA01 or VA02 in user exits, Instead use T180-trtyp , when it is ‘H’ it is create mode , when ‘V’ it is change mode.

SD – Availability Check

You control the availability check using general and SD-specific control features. The following control elements need to be maintained in Customizing and in the material master record:_ Strategy groupThe allowed planning strategies (main strategy and further possible strategies) are combined in the strategy group. As of Release 3.0, the strategy group is specified in the material master record in the MRP 1 Screen. In Customizing, strategy groups are assigned, dependent on plant, to MRP groups. If the strategy group is missing in the material master record, it is determined on the basis of the MRP group, if it has been  maintained.  Up to Release 3.0, the strategy group is determined on the basis of the MRP groupMRP group : The MRP group combines materials from the point of view of material requirements  planning. This enables you to control planning for these materials in a particular way using, for example, the strategy group, consumption mode and planning period. You enter the MRP group in the material master in the MRP 1 screen. The strategy group is determined from the MRP group.Planning Strategy : The planning strategy specifies the requirements type for planning and customer requirements. This represents the decisive control feature for the interaction between Production Planning and Sales and distribution.MRP type and item category : If no requirements type is found using the planning strategy, the system tries todetermine a corresponding requirements type on the basis of the MRP type and the item category. Until 3.0C, determination of the requirements type via planning strategy has taken priority. This is not always the best option, however, as the following example will show. A requirements type is determined for a material, which causes availability to be checked against planning. In consignment stock processing, however, availability should be checked against stock. Until 3.0C the availability check had to be deactivated in these cases. As of Release 3.0C, you can determine how the requirements type is to be determined for each transaction by maintaining the Source field in Determination of requirement types using transaction in Customizing.Requirements type : The various requirements are identified by their requirements type. The requirements type refers to the requirements class and its control features.Requirements Class : The requirements class contains all control features for planning such as relevance forplanning, requirements planning strategy and requirements consumption strategy. In addition, it is specified at a global level whether an availability check is to take place for the material in the sales and distribution documents on the basis of the ATP quantity (ATP = available to promise) and whether requirements are to be passed on. A finerdegree of control can be obtained for sales documents using the schedule line category.

Control Features Specific to Sales and Distribution

The following SD-specific control features need to be maintained in Customizing:

Checking group : The checking group controls whether the system is to create indivdual or collective requirements in sales and shipping processing. In addition, a material block for the availability check with transfer of requirements can be set here. The checking group can also be used to deactivate the availability check. This option was created especially for the assembly order so that when the bill of material is exploded in the assembly order, the individual components, if necessary, can be classified as non-critical parts as far as procurement is concerned. The checking group specifies in combination with the checking rule the scope of the availability check. It is proposed in the material master record on the basis of the material type and the plant, and copied into the sales and distribution documents.

Checking Rule : You use the checking rule to control the scope of the availability check for each transaction in sales and distribution. You also specify whether the check should be carried out including or excluding replenishment lead time. The individual checking rules define by transaction, which stock and inward and outward movement of goods should be taken into account for the availability check.Schedule line category : You can control with the schedule line category whether an availability check and transfer of requirements should be carried out in the sales documents. The possible settings for this at schedule line level are dependent on the settings in the requirements class which is determined from the requirements type of the material.Delivery item category : The delivery item category can be used to control whether an availability check takes place in deliveries.

Prerequisites

An availability check can only be carried out if the following prerequisites have been fulfilled:

  • The control elements described above for the availability check must be maintained in Customizing for Sales and the relevant assignments made to the sales transactions.
  • The availability check must be switched on at requirements class level and – for the availability check in the sales documents – at schedule line category level
  • A requirements type must exist by which the requirements class can be found. 
  • A plant must be defined. It can either be proposed from the customer or material master record or can be entered manually in the document.
  • A checking group must be defined in the material master record on the Sales/plant data screen in the Availability check field.

Global and Fine Control in Customizing

At the global requirements class level, the availability check can only be switched on in combination with the transfer of requirements. At schedule line level, the settings are proposed from the requirements class. If the availability check is switched on at requirements class level, it can be switched off at schedule line level. However, you cannot switch on the availability check at schedule line level, if it is switched off at requirements class level. You can make this setting at schedule line level. But the system ignores it and the setting for the requirements class applies. Also, at schedule line level when the availability check is switched on, the transfer of requirements can be switched off. For example, this makes sense for inquiries or sales information. The settings specific to schedule lines for performing an availability check are only relevant for sales documents. In the shipping documents, the settings from the requirements class and the delivery item category are used. As with the schedule line category, the availability check can be switched off as required in the delivery item category.

Blocking Logic

There are two blocking concepts:_ Material blockIn Customizing, the Define material block for other users, step is used to determine, by checking group and transaction (order/delivery), whether a material master record should be blocked for other users during an availability check. The block is set at material-plant level and remains in place until you save the sales document._ Material block with quantity transferFor performance-related reasons, the only time when it makes sense to set the material block with quantity transfer is when it is common for several users to work on the same material simultaneously. If this is not the case in your organization, you can work with the conventional blocking logic at material-plant level. In Customizing, the material block can be set with quantity transfer under Define checking group. If this block is active, the material is blocked only for the duration of the availability check when you create or change a sales and distribution document.Thus, it is possible for several users to process the same material simultaneously in various transactions without blocking each other. During the availability check, the material being used is blocked exclusively in the current plant as in a conventional block. 

For more details, please refer to this documentation from SAP.

Availability Check

Consignment Process

Scenario

1. Client creates a consignment order for their distributor.

2. The consignment stock sits at the distributor location. The distributor sells some of this stock to end customer.

3. Client creates an issue order for this quantity, this order has end customer as the ship to as well as bill to parties.

4. When the goods are delivered against this order, the consignment stock is reduced.

5. Client then creates an invoice for the end customer.

SAP Solution

1. Create Cosignment fill up order of type KB with distributor as sold-to, ship-to and bill-to and payer.

2. Create delivery for this order and do PGI, which shifts this stock to ‘customer consignment stock” (special stock w).

3. Assumption – the master data for the end customer exists in the system and has all mandatory partner functions defined.

4. Create a consignment issue order of type KE, which has sold-to as the distributor and ship-to, bill-to as the end customer.

5. Create delivery and do the PGI, which reduces the consignment stock.

6. Create invoice, which has the end customer as bill-to and the distributor as ‘payer’.

Pricing – Alternate Calculation type, Alt Condition base value and Requirements

The alternate condition base value (Alt CBV) 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 ZPR1, with a condition record maintained (master data) for $10. Now, condition ZPR2 also exists lower in the schema, but with a rate of 10%. The standard calculation would result in a final value of $11.

The alternate base value could say, “don’t use $10 as the basis — use the original price PR00 only, which was $9.” Then, the final value would be $10 + (10% of $9) = $10.9.

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

Put them both together, and you could end up with $10 + (20% of $9) = $11.8.

Alternative Calculation Type:

Normally if you want to calculate a value you have to use a calculation type for determining 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 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 $10,- for each material then the value determined is $100,-. 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 formula. 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.

Set Material Master Price of a material as sales price

The first method – Do not set the pricing condition VPRS as a statistical condition type. Simply remove PR00 and it will work fine if you always use VPRS as your pricing base inside the pricing procedure. VPRS will read both prices based on the price control in the material master. 

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

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