Quantcast
Channel: SAP ERP Sales and Distribution (SAP SD)
Viewing all 69 articles
Browse latest View live

Creating Tax Groups for Taxes Exception

$
0
0

Creating tax groups can be very useful to handle the tax calculation in Brazil for different taxes (on Sales Orders, PO's and etc) , such as ICMS, IPI, PIS, COFINS, ISS, Tax Substitution, Withholding taxes and etc.
As taxes rates, bases and other taxes matters are very dynamic in Brazil, you will for sure need to have tax groups maintained in your SAP.

First you have to create the tax groups, then go to transaction J1BTAX (or you can go to SPRO - Financial Accounting (New) - Financial Accounting Global Settings (New) - Tax on Sales/Purchases - Calculation - Settings for Tax Calculation in Brazil - Tax Rates -Define Tax Groups for Dynamic Exceptions)

J1BTAX

Then, select the Country BR

Country BR

At J1BTAX, go to Menu: Tax Calculation - Maintain Tax Group

Maintain Tax Groups

Before you select “New entries” let me explain what those fields on J_1BTXGRUOP means:

Tax Groups

In the Red Box – TAX GROUP – You can define groups in the range from 10 to 89. The numbers between 0 and 9 as well as between 90 and 99 are reserved for SAP. These groups should not be deleted. SAP delivers the groups 1, 5 and 97 to 99.
When looking for a tax dynamic exception, SAP will start from the smallest Tax Group to the Higher and stop searching then the 1st combination is found. Take this in consideration, building your groups from the most complex (smallest groups) to the less complex (higher groups)

The table below explains the usage of the tax groups delivered by SAP:

Tax Group Usage
1 MM: ICMS base reduction carrier
SD: ICMS base reduction customer
ISS rates (material-dependent)

5 ICMS, IPI, S.T. material-dependent exceptions
MM: ISS exceptions (dependent on ship-from, ship-to, material)

97 SD: IPI tax laws (based on NCM code)

98 IPI standard taxes (based on NCM code)
SD: IPI tax laws (based on country)
ICMS standard tax rates (based on ship-from and ship-to)
S.T. standard tax rates (based on ship-from, ship-to, S.T. group)

99 Default taxes (based on country)
SD: IPI tax laws (based on tax code)

In the Orange Box– TAX GROUP FIELDS 1, 2 and 3 – You can use between none and 3 possible keys combination to build the tax exception. The fields that are available are:

ASNUM- Service Number
MATNR- Material
NBM- NCM Code
MATKL- Material Class, Material Group
MWSKZ- Tax Code
LIFNR- Vendor
KUNNR- Customer
BRSCH- Industry Sector
CITYC- City Code
OIHMTXGP- Tax Group (Oil)
OIHVGROUP- Customer Tax Group (Oil)
OIHCGROUP- Vendor Tax Group (Oil)
USAGE- Tax Calculation: Material Usage
LOC_PR- Location of Service Provider
LOC_SE- Location of Service Provision
LOC_SR- Location of Service Customer
BUKRS- Company Code
WERKS- Plant
MTUSE_MARC- Material Usage (Material Master Record)
MTORG- Origin of Goods
CNAE- CNAE Code
CRTN- CRT Number
ICMSTAXPAY- ICMS Tax Payer
INDTYP- Industry Main Type
TDT- Tax Declaration Type
COMSIZE- Company Size
DECREGPC- Declaration Regimen for PIS/COFINS
LEGALNAT- Legal Nature
EXTWG- External Material Group
PRDHA- Product Hierarchy
GPART_KK- Business Partner Number

In the Green Box– CALLING APPLICATION – The ones that are valid for using are:
SD Sales and Distribution - it means that the exception will be valid only for the SD applications, like Sales Orders or Billing Documents for Example.
MM Material Management - it means that the exception will be valid only to the MM applications, like Purchase Orders or Invoice verification.
General - it means that, no matter if it is MM or SD, the exception for this group will be applied.

In the Blue Box– TAXES CHECKBOX - Here you select what are the taxes that the tax group can be used for a tax exception.

The screen above is just one example. You have to figure out with your tax department what would be the best combination to the key fields.

To create a new group, hit “new entries”:
New Entries Tax Groups

Map tax Rate tables to Cond. Tables
Once you have created the tax groups you have to assign tax groups to the condition tables. Go back to the J1BTAX main screen and then to the menu Condition Setup - Condition Mapping - Map tax Rate tables to Cond. Tables:
Map tax Rates to Condition tables

When you maintain Brazilian tax tables, the system generates or changes condition records automatically. In this activity, you specify which condition tables are to be used for a specific tax table. In the case of dynamic exceptions, you additionally specify the condition table per tax group. The system then knows for which condition table (which must be contained in the access sequence) condition records are to be generated.

The assignment of tax tables to condition tables is done with reference to a tax group for: dynamic exceptions for IPI, ICMS and Sub.Trib.; always for ISS, PIS, COFINS and withholding taxes.
Tax rate tables Tax Condition tables

* SAP does not deliver standard Customizing of dynamic tax exceptions. If you create new tax groups, you must specify a new entry for each group you use. In SAP’s standard concept, the condition table is the same for all tax groups. However, in case you need to follow a different concept of Customizing access sequences you can specify different condition tables per tax group. We recommend staying with the standard concept of one tax group per table.

** You can find these entries in the overview page of the Tax Manager’s Workplace (transaction J1BTAX). There you define tax rates for several kinds of taxes.

Let’s take a practical example on how to fill the J_1BVIEWMAP table:
I created the tax groups and I did select 9 of these groups to be relevant for COFINS Values Dynamic Exceptions:
Tax Groups CheckBox

Then, I created 9 entries to map the Tax Rate tables to the Condition tables, each one representing one tax group. You will notice that, the tables that has no tax group assigned, they will have one entry each table and they never change.

Every time when a new tax group is created and if the COFINS checkbox is selected, a new entry has to be created as below:
J_1BVIEWMAP

This idea is valid for all the following tables:
J_1BTXCOF –COFINS
J_1BTXIC3 – ICMS
J_1BTXIP3 – IPI
J_1BTXISS – ISS
J_1BTXPIS – PIS
J_1BTXST3 – ST
J_1BTXWITH - WHT

That means, if you have the check box activated to the taxes above, you will have to create one entry to each tax group in this table assigning the table name to the tax group and the correct condition table (349, 346, 382 and so on).

Migrate Tax Groups in Access Sequences
Now it is time to Migrate the Tax groups that you created into the access sequences.
Using the method of Tax Calculating via condition based (CBT), every time a new tax group is created, it must be added in a certain access sequence, automatically by the system through the transaction J1BTAX. The same should occur whenever changes are performed in the tax groups, or even it is deleted.

Go back to J1BTAX main screen and reach the menu: Condition Setup - Migration - Tax Groups in Access Sequences

On the program selection screen, you enter the tax group that you want to include in the update. You can simulate the results of the program by setting the Simulate Only indicator. This is extremely important, since the program makes cross-client changes to your data.

Additionally, you need to specify what type of conversion is to take place:
a. Update access sequences - if you want to update existing steps in the access sequences
b. Insert into the access sequences - if you want to include new steps in the access sequences after creating a new tax group
c. Delete from access sequences - if you want to delete existing steps from the access sequences

If you are creating all groups at once, it is easier select the range from 10 to 89 and you may want simulate first, just to make sure that there are no errors.
Tax Group Into Access Sequence

If it is all green, that means can run without the “simulate” check box active and the tax groups will be added to the access sequences:

You can use the report J_1B_EXT_ACC_SEQ to automatically update access sequences after you have created or changed tax groups for dynamic exceptions. You need to be authorized for cross-client Customizing if you want to modify the access sequences. It is important that you ensure that tax groups are not customized differently in different clients because with each conversion to access sequences, the previous Customizing settings will be overwritten.

The should looks something like this:
Migration Access Sequence results

The result of the run above, is that all access sequences will be updated automatically, check for example below where the different tax groups were added to one specific access sequence:
Acess Sequence MM

Migrate Tax Tables to Conditions
Now you have to migrate the tax tables to conditions to create the condition records. Go back to J1BTAX main screen and reach the menu Condition Setup - Migration - Tax Tables to Conditions. This is the execution of the program J_1B_MIGRATE_TAX_RATES.
Migrate Tax Tables to Conditions

First you have to select the application:
- TX (Material Management)
- V (Sales and Distribution)

Then you will have to select the the Conversion Options:
- Overwrite existing condition records
- Ask in case of existing condition records
- Never overwrite existing condition records

And then finally select the tables, one by one to run the migration.
Note that, the tax groups that you selected as MM will be the only ones that you will be able to run to the application TX and the tax groups that you selected as SD, you will have to run to the application V. the ones that are general, or the tables that has no Tax Group, you will run for both (some exceptions apply).
Table Migration Select Table

The result will be something closer to the screenshot below:
Result of Taxes Migration

Leandro da Pia Nascimento


Item Proposal

$
0
0

Hi,

 

I decided to start my blogging journey with Item proposals. Kindly forgive if there are any mistakes.

 

Definition: An Item Proposal is a list of frequently Ordered Materials and Order Quantities.

 

Usage: Saves Order Entry time and effort

 

Path: Logistics -> SD -> Master Data -> Products -> Item Proposal -> Create

 

T-Code: VA51 - Create

             VA52 - Change

             VA53 - Display.

 

Steps for creating and assigning Item proposal.

 

1. Creating Item Proposal

  •      Initial Screen VA51 - Enter Doc type (Ex MS) and Sales Area
  • Overview Screen - Enter Description, Materials and Quantities
  • Click on Save button
  • Note the Item Proposal Number

 

2. Assigning the Item Proposal to CMR

  •     XD01/02 Sales View

 

3. In the Sales Order enter Customer Number and click on Item Proposal Button. Then specify the item Proposal number and press enter button.

 

For the materials which must have a default quantity in the sales order, create a item proposal condition record.

 

Steps:

1. Creating Item Proposal:

     Go to VA51 - create item proposal:

     va51.PNG

Enter Item Proposal Type (ex MS) and Sales Area.

Press Enter.

 

2.PNG

 

Enter Material Numbers. Enter quantities.

Click on Save button.

 

3.PNG

2. Assigning Item Proposal to CMR:

     Go to XD02, select the customer for which you want an automatic item proposal.

In case you have a lot of customers, you can do this via MASS to update multiple customer master records at the same time.

 

4.PNG

Enter Item proposal item number.

Click on Save.

 

3. Create Sales Order:

 

     5.PNG

 

Create a standard order. Enter the customer number.

Click on Item Proposal Icon:

 

6.PNG

 

There are 3 options:

     Option 1: Press Enter button / Default with quantity.

 

7.PNG

System copies all items and quantities from Item Proposal.

 

Option 2: Default without quantity:

 

       System copies all items only and not quantities from Item Proposal:

9.PNG

 

Option 3: Selection List: The system displays the list of items in the item proposal and lets the user select which materials to copy and how much quantity each material should have:

 

In this example, I have changed Item proposal record 50000033 (VA52) and added two materials to be proposed:

13.PNG

 

The user can select which material should be copied (checkbox on left) and how much quantity should be copied.

For example, I am going to de-select material 100-300 and change the quantity for 350-120 to 50 L:

 

14.PNG

Click on copy Quantities:

 

If you click on copy Materials, only the materials will be copied, not their quantities

15.PNG

Press Enter

16.PNG

The list of materials and their quantities as selected in the previous screen are copied into the sales order

 

 

 

The user can manually change the materials and quantity in the line item:

8.PNG

 

Save the Sales Order.

 

Item Proposal Configuration:

17.PNG

Create Sales Order using BAPI with Variant Configuration

$
0
0

The purpose of this Blog is to describe the Variant Configuration in Sales Order Creation. Before posting this blog, I have referred many SDN blogs, threads and other sites for any sort of help ....But no success.


Variant Configuration:

         

      It is a tool which helps to simplify the complex manufacturing of final product with more varieties and Variation of the input Material.


Example of industries relevant to SAP VC:  Auto mobile Manufacturing, Furniture Manufacturing, Aircraft Manufacturing, Personal Computers,Elevator Systems,Bicycle,Cars, Motor Cycles, Pumps etc.

 

Variant Configuration is for manufacturing complex products in which customer determines the features of the product and it also helps the customers or salespersons to put together specification for the product. Objective of variant configuration is to react quickly to customers’ requirements.

                   

         Here it needs not to create separate Material for each variant of a product. When companies introduce variant configuration this often goes beyond a business process re-engineering project.

 

Variant Configuration offers an opportunity to restructure product structures for which then processes are defined. This has a direct impact to the core areas such as marketing and product data management.


               Variant configuration is useful if you have large number of combination of parts that go into a product. It means different Permutations and Combinations of the parts for same material.

                   

For Examples:

  • In a business involving steel manufacturing, the customer may order steel involving different physical properties like tensile strength, diameter, colour etc.
  • A Customer ordering a Motor Bike can choose different combination of accessories and colour.

 

To define the features of a configurable material, you use Characteristics. To enable you to use Characteristics to configure material, you allocate the material to a class of class type 300. Each Configurable object must have a configuration profile. The configuration profile for a material controls the configuration process in the Sales Order.

                

          You use Dependencies to ensure that only allowed combination of features are selected. Dependencies also select exactly the right BOM (Bill ofMaterial) components and operations to produce a variant.


I have a requirement to create sales order with variant configuration materials, in this scenario I am used function module BAPI_SALESORDER_CREATEFROMDAT2.


          The usage of this BAPI is very simple when used to create sales order that do not used configurable materials. But when it comes to creating sales order using variant configuration materials, the logic of filling the structures of this BAPI is a little bit complicated.


There is a SAP note549563- BAPI: Filling configuration structures which explains how the Configuration structures in the BAPI need to be filled?


              For updating variant configuration (VC) data for sales order item, we need to populate below tables of standard function module or BAPI (e.g. BAPI_SALESORDER_CREATEFROMDAT2).


Sales Order Item Data


ls_item-itm_number       = '000001'.
ls_item
-po_itm_no        = '000001'.
"Should be fill this field
ls_item
-target_qty       = '1'.
ls_item
-material         = 'MAT12'.
APPEND ls_item TO lt_item.


Why the PO_ITM_NO field should be filled because the field POSEX (PO_ITM_NO) to define the connection between the sales order item and the configuration (BAPICUFG-POSEX) (ls_item-po_itm_no = w_sales_cfgs_ref-posex).


     If the item number is 000001, for example ls_item-po_itm_no = 000001 and ls_itemx-po_itm_no = 'X'. so that the configuration is called.


Sales Order Item Data Flags


ls_itemx-itm_number           = '000001'.
ls_itemx
-po_itm_no            = 'X'.
ls_itemx
-target_qty           = 'X'.
ls_itemx
-material             = 'X'.
APPEND ls_itemx TO lt_itemx
.


Schedule Line structure


ls_schedules-itm_number = '000001'.
ls_schedules
-sched_line = '0001'.
ls_schedules
-req_qty    = '1'.   
ls_schedules
-req_date   = '20160120'.
APPEND ls_schedules TO lt_schedules
.


Fill schedule line flags


ls_schedulesx-itm_number      = '000001'.
ls_schedulesx
-sched_line      = '0001'.
ls_schedulesx
-updateflag      = 'X'.
ls_schedulesx
-req_qty         = 'X'.
ls_schedulesx
-req_date        = 'X'.
APPEND ls_schedulesx TO lt_schedulesx
.


The Mandatory Structures filling for Variant Configuration in BAPI are:


    1. ORDER_CFGS_REF
    2. ORDER_CFGS_INST
    3. ORDER_CFGS_VALUE
    4. SALES_CFGS_VK


ORDER_CFGS_REF and ORDER_CFGS_INST tables should have one record per item and combination of CONFIG_ID and ROOT_ID should be unique across line items.


* Filling Configuration Reference Data SALES_CFGS_REF Table
w_sales_cfgs_ref
-posex      = '000001'.”ItemNumber
w_sales_cfgs_ref
-config_id  = '000001'.
w_sales_cfgs_ref
-root_id    = '00000001'.
w_sales_cfgs_ref
-complete   = 'T'.                “GeneralIndicator
w_sales_cfgs_ref
-consistent = 'T'
.  

   APPEND w_sales_cfgs_ref TO lt_sales_cfgs_ref.
CLEAR w_sales_cfgs_ref.


* Filling Configuration Instances SALES_CFGS_INST Table
w_sales_cfgs_inst
-config_id       = '000001'.
w_sales_cfgs_inst
-inst_id         = '00000001'.
w_sales_cfgs_inst
-obj_type        = 'MARA'.
w_sales_cfgs_inst
-class_type      = '300'.
w_sales_cfgs_inst
-obj_key         = 'KL'.         “MaterialNumber
w_sales_cfgs_inst
-quantity_unit   = 'LF'.
APPEND w_sales_cfgs_inst TO lt_sales_cfgs_inst.
CLEAR w_sales_cfgs_inst
.


ORDER_CFGS_VALUE and SALES_CFGS_VK tables we can have multiple characteristics for a material, in that case appropriate records should be inserted and combination of CONFIG_ID and ROOT_ID should be unique across line items.


*Characteristics Values Filling

* ColorCode
ls_sales_cfgs_value_in
-config_id = '000001'.
ls_sales_cfgs_value_in
-inst_id   = '00000001'.
ls_sales_cfgs_value_in
-charc     = 'ZCOLOR'. “Characteristic Name
ls_sales_cfgs_value_in
-value             = 'CHBC'.   “Characteristic Value 
APPEND ls_sales_cfgs_value_in TO lt_sales_cfgs_value.
CLEAR ls_sales_cfgs_value_in
.


* Gauge
ls_sales_cfgs_value_in
-config_id    = '000001'.
ls_sales_cfgs_value_in
-inst_id        = '00000001'.
ls_sales_cfgs_value_in
-charc          = 'ZGAUGE'.        “Characteristic Name
ls_sales_cfgs_value_in
-value          = '24'.           “Characteristic Value
APPEND ls_sales_cfgs_value_in TO lt_sales_cfgs_value.
CLEAR ls_sales_cfgs_value_in
.


*---Filling Configuration Variant Condition Key SALES_CFGS_VK

* ColorCode
         ls_sales_cfgs_vk-config_id    = '000001'.
          ls_sales_cfgs_vk-inst_id        = '00000001'.

           ls_sales_cfgs_vk-vkey           =  'ZCOLOR'.               “Characteristic Name
APPEND ls_sales_cfgs_vk TO ex_cfgs_vk.
CLEAR : ls_sales_cfgs_vk.

 

* Gauge
ls_sales_cfgs_vk
-config_id       = '000001'.
ls_sales_cfgs_vk
-inst_id          = '00000001'.
ls_sales_cfgs_vk
-vkey             = 'ZGAUGE'.    “Characteristic Name
APPEND ls_sales_cfgs_vk TO ex_cfgs_vk.
CLEAR : ls_sales_cfgs_vk.


Finally call your BAPI


  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
      order_header_in    
= ls_header
      behave_when_error  
= 'P'
IMPORTING
      salesdocument      
= lv_vbeln
TABLES
     
return                                  = lt_return
      order_items_in     
= lt_item
      order_items_inx    
= lt_itemx
      order_partners     
= lt_partner
      order_schedules_in 
= lt_schedules
      order_schedules_inx
= lt_schedulesx
      order_cfgs_ref     
= lt_sales_cfgs_ref
      order_cfgs_inst    
= lt_sales_cfgs_inst
      order_cfgs_value   
= lt_sales_cfgs_value
      order_cfgs_vk      
= lt_sales_cfgs_vk
.


It will very helpful for those, who are struggling with Variant Configuration while creating a Sales order using BAPI.


Thanks,

Harikrishna          

How (not) to get your thread ignored in SD space

$
0
0

The recognition as a Member of the Month took me by surprise, because it came at a time, when I almost stopped participating in the forum.


Now I feel that the right thing to do is to explain why and spoil the initial good impression.


The reason is simple - the decreasing quality of content in the forum space.


I will not discuss the topics about violating The Rules of Engagement - the moderators already do a really good job in keeping the forum clean.

This is about the things that will not result in thread rejection, but still make me close the tab without writing a response.

 

1. Title is important. Make it short and informative.

 

If you are new to SCN, it serves as your business card. Try to make a good first impression as a professional.

 

Don't copy/paste the whole main content as a subject title

 

You know how funny and cute 5 year-olds are, when they rush at you and start telling you a story from the middle?

Except that you are not 5, it is creepy when a grown-up tries to trigger nurturing responses with infant-like behavior, and it is sad that you skipped classes at school.

Yes. It looks that bad.

 

Poor choice of title:

Credit issue


You are either too busy to put an effort and explain the problem or you have no knowledge on the topic.

 

If the first is true - I would prefer to spend my time helping people who value my time as much as theirs.

In the second case - you did not follow the advice in 'The Rules of Engagement' to search before posting. What are the chances that you will take any of my advices - like "read carefully note xxxxx before you make any changes"?

 

Better:

Account balance difference in RFCORR40 


This shows that the OP has identified the issue, but has a problem troubleshooting it.

I could be wrong, but if I have the time, I would read further.

 

Even better:

Account balance difference in RFCORR40 even after balance carry-forward


It appears that the OP has tried to do some troubleshooting and understands the idea behind the report.

I would definitely read the details.

 

I will not spoil you with an example how an excellent choice of title would look like.

 

2. Addressing the audience.

 

Dear Sirs/Dear Gurus

 

I am not in the target group (obviously), but you are either making fun of the people, from whom you seek help (not a wise choice), or you are grovelling (unnecessary).

The best consultants/developers I have met, are highly resistant to such form of flattery, anyway.

And this is not because they are extremely modest or have reached some spiritual level, they simply realize that there is a lot more to learn.

 

If you wish to be treated with respect among professionals, you need to behave as a professional.

 

And if you cannot think of a better way to address the fellow forum members, you can safely omit this part and get directly to the point.

 

3. Main content.

 

Present the problem in a well-structured manner, use paragraphs and additional formatting to make the content more readable.

 

If you wish to bounce ideas for a new business process, describe it as a sequence of business steps.

Avoid using company-specific terminology or at least explain briefly the meaning.

If you do that:

a) you will avoid potential misunderstanding and

b) more people will read your complete post.

If this does not happen, you will get either no responses or low-quality ones, and you want none of these.

 

Don't just copy/paste your client requirements or urgent tickets and expect that people will do all the work for you (consultants).


If you don't try by yourself, you will always depend on the mercy of others and this would not work as a strategy even in a forum full of tolerant and helpful people.

I am guilty of having very low tolerance on spec-dumping, so I would need a compelling reason to "help the needy".

On the second thought - no, I won't do that, sorry. I prefer not to assist you in committing a fraud.

 

Problem tickets posted by end users.

 

I am always glad when an end user wishes to learn more about how things work and will do my best to explain you that "technical stuff" in business terms - you wish to become a better professional and I admire that.

This does not mean that I am willing to act as a free-of-charge help desk. Please contact your support consultant to assist you with solving urgent issues.

 

You company does not wish to spend money on proper support


It is a bad idea to give you an advice based on incomplete information and you can't give me all the details, because you have no authorization to view/change any settings.

Present a proper business case to your superiors, make them listen to your concerns!

When you spend your day on workarounds or manually fixing errors, they are losing money and market share.

 

You just don't get on well with your support consultant


Both of you get paid to do your job. Find a way to work together.

 

Don't ask for step-by-step guides with screenshots or demand to be spoon-fed.


I won't do that to my end users (I ask the key users to prepare end-user manuals, which I have to approve before they are distributed), why would I treat you differently?

Picturing somebody clicking in SPRO/SNOTE with little or no understanding scares me. Please do not do that!

Search the web, read sap notes, use your sandbox.

You would be pleasantly surprised how many of your colleagues would be willing to lend you a book if you ask them nicely.

 

You need help creating a new z-report and post the question here, because the development is SD-related


There are more developers in the ABAP forums working on SD reports than techno-functionals visiting the SD space.

You will increase greatly the chances of receiving helpful replies if you add the proper tags - and it takes less than a minute to do that!

 

Provide the relevant screenshots from customizing and the results of troubleshooting you have performed so far.


Example:


You face an issue with incorrect values in S066/S067:

Share your OVA8 settings and the result of CHECK_CM for a problematic document.

If you use non-standard item categories or document types, people will ask you for VOV7, VOV8, copy control settings.


You wish to get the problem resolved as soon as possible, why would you wait for a forum member to ask you for additional information?

 

Describe what you have tried so far/which notes you have read.


It is pointless that both of us spend time doing the same thing - you have already eliminated several options and, if you share these details, it would definitely speed up the investigation.

 

If you are not a native English speaker and struggle to describe the problem or cannot fully understand the responses.


If you can't get help from a friend/colleague/relative, list the languages, in which you can explain better.

If I happen to speak any of them, even if I am not an expert on the subject, I will do my best to help you as an interpreter via PM.

 

4. When you have not provided all the information I would need to investigate further.


You did your best, but still failed to see something obvious?

Don't feel bad about that - if you already knew that you have to check and provide information also on zzzz setting, you might have already solved the issue without my help.

This is why you posted here - to get a different view on the subject, isn't it?

 

Now here comes the really bad part.

 

Before I ask for additional clarification, I will have a look at your profile.

No, not the reputation tab - your points and badges are absolutely irrelevant in this case.

I will read your previous posts.


If it takes you a week or more to respond to requests for more information or provide feedback


Iwould have already forgotten what it was all about by the time you respond and will have to start all over.

If you feel comfortable with the idea to leave your customers waiting for resolution for weeks, then why would I push you?

 

If I see a long list of posts with multiple replies and some good suggestions, but none of them marked as helpful/correct


I would probably choose not to participate in your current discussion.

Don't get me wrong - I am not obsessed with getting these 5 or 10 points or acquiring a shiny badge.


C in SCN stands for community. You can't be a good member and just take without giving back.

If you don't have the time or knowledge or are too shy to post content and participate in discussions - I respect your decision.

This does not change the fact that you can still help - all it takes is to mark the posts, which helped you resolve the issue.

The next person who searches the forum would find your thread and try first the option marked as 'correct' before re-posting.


A thank you to the people who tried to assist you, even if you have solved the problem by yourself, is a nice touch. I will remember you being polite and will be even more inclined to help you in the future.

 

What has my previous behavior got to do with my current discussion/This is not fair/This is against ROE


Not much really (unless you believe that everything you do has consequences).

I have never said that it is.

Please read the disclaimer.

 

Disclaimer:

The content represents my personal view on the subject and does not imply or suggest that any other forum member would feel or react in the same way.

The aim of this blog post is not to berate or insult any SCN member, but to share some ideas on how to improve the quality of content posted in the SD space.

Even if you follow 1.-4. there is no guarantee that you will get even a single response. It could be that your question is really difficult to answer. Probably there are very few people in the forum still using BGADDON on 4.6. I wish I could help you somehow, sorry.

If you do the exact opposite of 1-4. you could get replies. There are helpful and generous people who may still choose to help, there are also point-chasers always coming to rescue. I don't belong to any of these groups and will ignore the thread.

Storage location determination in outbound deliveries

$
0
0

In the last couple of months I was working on many incidents where the customer could not tell why the system determines a certain storage location in delivery documents. Since storage location is an important parameter (especially in availability check) it is important to know the relevant customizing settings and their effects, so I've decided to collect and share the most important information on the topic.

In the standard ERP system, in order to have a storage location determination in outbound deliveries:

  • storage location determination must be activated for the relevant delivery item category in transaction 0VLP

 

7.jpg

  • AND a determination rule must be assigned for the relevant delivery type in SPRO → Logistics Execution → Shipping → Picking → Determine Picking Location → Define Rules for Picking Location Determination.

 

8.jpg


There are three standard determination rules that can be used: MALA, RETA, and MARE.

 

Let's take a closer look on the above mentioned rules.

 

In case of rule MALA, the system determines a storage location based on:

 

  • the shipping point,
  • the delivering plant,
  • and the storage condition.

 

The shipping point and the plant are very straightforward, these data are (mostly) copied from the predecessor document (for which the delivery note is being created). The storage condition can be maintained in the material master, on the 'Plant data / stor. 1' tab.

 

2.jpgPlease be aware that the 'Plant data / stor. 1' tab will not be accessible until you specify the plant AND the storage location when entering transaction MM02.

 

Storage conditions can be created under SPRO → Logistics Execution → Shipping → Picking → Determine Picking Location → Define Storage Conditions.

 

3.jpg

 

In case of rule RETA, the system determines a storage location based on:

 

  • the delivering plant,
  • the situation,
  • and the storage condition.

 

The situation can be assigned under SPRO → Logistics Execution → Shipping → Picking → Determine Picking Location → Storage Location Determination with Situation.

 

4.jpg


If you want to define a new situation, you can do so under SPRO → Logistics Execution → Shipping → Picking → Determine Picking Location → Define Situations.

 

5.jpg

 

In case of rule MARE, the system chooses rule MALA first, and if the predetermined storage location cannot be applied (like for instance the respective material is not created / maintained for the concerned storage location, or there is no storage location determined in transaction OVL3), it switches to rule RETA. If there is no storage location maintained for the combination of plant / situation / storage condition, storage location determination will not give back any storage location and the delivery document will be created without this parameter.

 

Please note that if the predecessor document already contains a storage location, this storage location will simply be copied into the delivery document, so storage location determination will not be carried out.

How to copy inactive or statistical pricing condition into downpayment items

$
0
0

Symptom

 

 

The pricing condition PR00 is marked as mandatory condition (T683S-KOBLI)in the pricing procedure (transaction V/08).
The same pricing procedure contains subsequent price conditions (conditions having Condition Class = B in V/06).

 

 

Due to the last price logic (see SAP note 836243) the PR00 price condition gets deactivated by one of the subsequent price conditions during SD document processing.

It means, KONV-KINAK / XKOMV-KINAK (condition inactive) is filled for PR00.

 

 

If you create a downpayment invoice, only the last active price condition is copied into the downpayment item and the deactivated PR00 condition is ignored. Since PR00 is a mandatory condition, the error message V1801 "Pricing error: Mandatory condition PR00 is missing" is displayed which hampers further activities.

 

 

Reason

 

 

It is the standard design of SAP system that inactive (KONV-KINAK) or statistical (KONV-KSTAT) conditions are not taken over into invoices having downpayment items.
For example billing type FAZ  has downpayment items.

 

 

The following source code is responsible for this behaviour:

 

 

FUNCTION PRICING_COPY

...

* By default, statistic and inactive conditions are not copied
* in downpayment positions. By setting U15_SUBRC to '1' the
* copying is suppressed.
       if konv-kstat ne ' ' or konv-kinak ne ' '.
          u15_subrc = 1.
       endif.
     endif.
...

 

 

Solution

 

 

By using FORM USEREXIT_PRICING_COPY (RV61AFZA) you can easily change this behaviour and fulfill your requirement. Changing the field U15_SUBRC in the user exit achieves that statistical or inactive conditions are copied into downpayment items.

 

 

An example for the source code development:

 

 

 

USEREXIT_PRICING_COPY (RV61AFZA)

...

if ( konv-kstat ne ' ' or konv-kinak ne ' ' ) and amount_rule ca '45'.

  u15_subrc = 0.

endif.

...

 

 

...

Pricing in SAP - A Beginner's Guide

$
0
0

There are many articles available on Pricing in SAP. In this article i particularly want to share my thoughts on what factors one should consider while designing the pricing structure in an implementation project.


As a beginner in SAP SD 5 years back, I had difficulty in understanding the pricing concept. Everyone use to explain the technical part but after doing many implementations as a SAP SD Consultant I feel it is must to have the logical understanding of this process. If we as consultants are clear on the basics, we can make the client understand the concept very easily and provide them a simple yet a very good solution.

 

Remember not every good solution has to be a complex one.

 

This article is especially for the Functional Consultants who have started their career in SAP. The following concept is applicable for pricing across modules such as SD, MM, TM, etc.

 

What is pricing? The first thing which comes in our mind is its complexity and if we land up discussing a very complex model in pricing with our client, we panic. So to make things simpler, I have listed down few basic things which you must think over before designing the pricing structure for your client.

 

First, we need to understand how the system works for pricing. It follows the top down approach in any transaction.

For easy understanding, I have taken an example of a pricing in sales orders. It takes the following approach.

 

1. The pricing procedure is determined.

2. The condition types in that pricing procedure is called for.

3. The access sequence for each condition type is read.

4. The best suitable access/condition table is selected in the access sequence with specific to general approach.

5. Based on the condition record as per the condition table, the price is populated.

 

I will not go into the detail about what the condition types or access sequences are. Many good articles explaining this are available on internet.

 

Following are the few suggestions which every consultant must keep in mind during an implementation project.

 

1. Follow the approach of key business scenarios and the different components involved in arriving at that pricing. For example if the domestic sale (example: India) involves excise duty plus tax and export sale involves excise duty (statistical) and no tax component, then we can either have two different pricing procedures or use routines to capture the differences. The ideal way is to have two different procedures if the component structures are very different so as to fit in the standard pricing instead of writing routines.

 

2. Avoid creating multiple pricing procedures unnecessarily. For example: if you want to apply 100% discount only on a free sample sales scenario to NGO and not in normal sales then use the routine or item category to calculate the same instead of having two different pricing procedures for different business scenario.

 

3. Use  value lines to copy the condition types for effective further calculation in the pricing procedure

 

4. Use sub totals to capture the key figures required for reporting. Sap standard sales order and billing tables have 6 sub totals field which can be directly used for reporting.

 

5. Use of reference condition types in different pricing procedures to avoid duplication of the master data maintenance. For example in STO process: if you have basic price of a material in PO and want the same to be captured in SD billing, then just give the PO condition type as reference condition type in SD. This way you will avoid duplicating the master data.

 

6. Use variations in Document Pricing Procedure more than Customer Pricing Procedure as this will avoid the risk of wrong master data input. The lesser the CPP the better is chance of avoiding the mistake in master data maintenance.

 

7. Maintain the condition type in the pricing procedure determination configuration (OVKK) as the amount and value of the same populates at the line item level of sales orders. This comes in very handy for the users to check the value directly in the sales order main screen instead of checking the conditions tab for each and every line item.

 

8. Follow the specific to general approach while creating the access sequence. Do not forget to check the exclusive indicator in an access sequence to improve the system performance.

 

9. Use standard functionalities available to put in certain checks for the users to avoid wrong master data entry. For example: in order to avoid more than 100% discount you can set the upper limit as 100 in the discount condition type so that even if the users makes a mistake of entering more than 100% in condition record, the system won’t allow to do so.

 

10. Check whether the data is pulled from header table (KOMK) or item table (KOMP) in the access sequence if the condition record is not read even after maintaining the condition master.

 

These are only few things which I have noted among the many things to be considered while designing the pricing structure.

 

With experience, things always get better.


Please share your thoughts on this.

 

Regards,

Ruchika

How to copy inactive or statistical pricing condition into downpayment items

$
0
0

Symptom

 

 

The pricing condition PR00 is marked as mandatory condition (T683S-KOBLI)in the pricing procedure (transaction V/08).
The same pricing procedure contains subsequent price conditions (conditions having Condition Class = B in V/06).

 

 

Due to the last price logic (see SAP note 836243) the PR00 price condition gets deactivated by one of the subsequent price conditions during SD document processing.

It means, KONV-KINAK / XKOMV-KINAK (condition inactive) is filled for PR00.

 

 

If you create a downpayment invoice, only the last active price condition is copied into the downpayment item and the deactivated PR00 condition is ignored. Since PR00 is a mandatory condition, the error message V1801 "Pricing error: Mandatory condition PR00 is missing" is displayed which hampers further activities.

 

 

Reason

 

 

It is the standard design of SAP system that inactive (KONV-KINAK) or statistical (KONV-KSTAT) conditions are not taken over into invoices having downpayment items.
For example billing type FAZ  has downpayment items.

 

 

The following source code is responsible for this behaviour:

 

 

FUNCTION PRICING_COPY

...

* By default, statistic and inactive conditions are not copied
* in downpayment positions. By setting U15_SUBRC to '1' the
* copying is suppressed.
       if konv-kstat ne ' ' or konv-kinak ne ' '.
          u15_subrc = 1.
       endif.
     endif.
...

 

 

Solution

 

 

By using FORM USEREXIT_PRICING_COPY (RV61AFZA) you can easily change this behaviour and fulfill your requirement. Changing the field U15_SUBRC in the user exit achieves that statistical or inactive conditions are copied into downpayment items.

 

 

An example for the source code development:

 

 

 

USEREXIT_PRICING_COPY (RV61AFZA)

...

if ( konv-kstat ne ' ' or konv-kinak ne ' ' ) and amount_rule ca '45'.

  u15_subrc = 0.

endif.

...

 

 

...


Mass maintenance sales order: field "Ship-to Party's Purchase Order Number"(VBKD-BSTKD_E) cannot be changed

$
0
0

When changing sales document in transaction MASS with object BUS2032, it is not possible to change field "Ship-to Party's Purchase Order Number"

(VBKD-BSTKD_E) since the field is not defined in field list of the object.

 

Here, I would like to share a solution to solve this problem.

 

1. Call transaction MASSOBJ.

2. Highlight object type BUS2032.

3. Double click on "Field list(optional)" in "Dialog Structure".

4. nput "Work Area" from BUS2032 to BUS2032 then press "Continue".

5. Press "New Entries" button.

6. Input "ObjectType" BUS2032, "Table Name" MASSSDPOSVBKD and "Field Name" BSTKD_E.

7. Save.

 

After these steps, the field should be listed and can be used in MASS change.

 

Hope this information is helpful

Viewing all 69 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>