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

Third-party process overview

$
0
0

In third-party process the delivery of the goods required by the customer is not done by sales organization where customer orders. Instead, the request of the goods is forwarded to an external vendor who sends the material directly to the customer.

 

Here is what happens in third-party process:

  1. Customer orders goods and a sales order is created in a sales organization
  2. Purchase requisition is created automatically when sales order is saved.
  3. Purchase order is created at the vendor in the MM purchasing application (manually or automatically)
  4. If the vendor does the outbound delivery to the customer, the goods receipt can be posted in the system
  5. Invoice receipt is created (invoice from vendor)
  6. Invoice to customer is created (order based invoice)

 

SALES ORDER

Third-party process is triggered when the sales order with third-party item is created. Depending on settings done in customization third-party item categories can be automatically determined by the system (automatic third-party processing) or they can be changed from standard item to third-party item category in sales order (manual third-party processing).

 

Sales order type used for third-party – OR (standard order)

Item category for third-party – TAS

Schedule line category for third-party – CS

 

Let’s look deeper into the settings in the system done for automatic and standard third-party process:

 

ITEM CATEGORY TAS:

1.jpg

Create PO Automatic indicator is not marked in TAS. ALES is an item category for third-party processing where this indicator is marked.

 

ITEM CATEGORY DETERMINATION

2.jpg

Item category TAS will be determined automatically for standard order (OR) and item category group BANS (third-party item). Item category group can be found in material master, Sales: Sales org.2 view.

 

SCHEDULE LINE CATEGORY CS

3.jpg

Data: Order type = NB, Item Category = 5 and Acct.AssgntCat  = X is the data for Purchase requisition. If it is filled like above the purchasing requisition will be created automatically as standard purchasing requisition (NB), with item category S and acc.assign cat X. The mapping of item category (from 5 to S) can be found in IMG:  MM->Purchasing->Define External Representation of item categories. The definition of account assignment category can be found in IMG: MM->Purchasing->Account assignment->Maintain acc.***. categories

 

SCHEDULE LINE CATEGORY DETERMINATION  

4.jpg

 

THIRD-PARTY PURCHASE REQUISITION

After saving sales order with item category TAS the purchase requisition is automatically created. In order to see the document go to: Environment -> Status overview and expand data for item, then expand data for purchase requisition as well:

 

5.jpg

Double click on the requisition number and you will be taken to the purchase requisition document. The other way is to go to schedule line where you can find the purchase requisition number.

If third-party item has more than one schedule line with confirmed quantity > 0, then purchase requisition is created for each schedule line.

It is wise to have the vendor determined in source of supply at this stage of the process (i.e. source list)

 

MANUAL PURCHASE ORDER

The purchase requisition needs to be converted into purchase order in MM (t-code me21n). The purchase order document type is NB (standard order), item category S, that must be assigned to account. Thus account assignment category needs to be given. In this example it is X (automatically taken during conversion from purchase requisition, as it was defined in item category CS).

The definition of acct assignment category can be found in IMG: MM->Purchasing->Account assignment->Maintain acc.***. categories:

6.jpg

Note: There is also a third-party account assignment category created in the system and its definition looks as follows:

7.jpg

The mapping of item categories: IMG:  MM->Purchasing->Define External Representation of item categories:

8.jpg

AUTOMATIC PURCHASE ORDER

As it was written before – the purchase requisition is created automatically when sales order is saved. It is possible to automatize the next step, the creation of purchase order, as well. The ALE function is used for that purpose.  The indicator for the automatic creation of purchase order is not set for TAS item category. However, there is a special item category – ALES which can be used instead in third-party process. The indicator for the automatic creation of purchase order is marked in ALES by default.

 

Prerequisites for the automatic creation of purchase order are as follows:

  • The indicator automatic purchase order needs to be marked in item category definition (item category ALES has it by default)
  • Unique source of supply needs to exist for third-party item
  • At least the document type for the purchase order must be assigned for Sales organization in customizing under Enterprise structure->Definition->SD->Define, copy, delete, check sales organization

9.jpg

If all above prerequisites are set up correctly, purchase order will be created when sales order is saved. Then, it can be found in document flow in sales order.

 

GOODS RECEIPT

Since during third-party processing goods are moved directly from the vendor to the customer, inventory management is not affected by this event. However, if sales department would like to document and enter delivery to the customer in the system it is possible depending on settings in customization. If account assignment category 1 is used in item category definition, goods receipt is not possible, as the goods receipt indicator is not set for this account assignment cat. If account assignment category X is used, goods receipt is possible.

 

The goods receipt posting (t-code migo) would have the following effects:

  • The warehouse stock is not updated
  • The goods receipt is posted directly to consumption and the consumption quantity is updated
  • The order value is posted to a GR/IR clearing account for invoice verification purposes
  • The goods receipt can be traced in the purchase order history

 

The goods receipt posting should happen when the vendor reports that outbound delivery was executed or customer confirms that delivery arrives.

Since no flow of goods occurs in the enterprise, the goods receipt posting results in updates on value basis.

 

INVOICE RECEIPT

The invoice verification with reference to purchase order needs to be created when invoice from vendor arrives to enterprise (t-code miro). The value and, if goods receipt was done earlier, the quantity are proposed by the system. When the incoming invoice is posted following are updated:

  • Purchase order history
  • G/L  accounts
  • The vendor account in subledger accounting, as well as the liabilities account (general ledger)

 

CUSTOMER BILLING DOCUMENT

Once invoice receipt has been entered, the customer can be billed as well (t-code vf01). Since an outbound delivery doesn’t exist for the third-party the invoicing will be order based. In the item category TAS definition, the billing relevance indicator is set to F by default. That means: relevant for order-related billing document: status according to invoice receipt quantity. That is, the system allows invoicing the order only when vendor’s invoice has been processed in invoice verification.

The customer invoice is created for the quantity specified in the vendor invoice. The setting in the copy control for the third-party item category from sales document to billing document specifies that the quantity from the invoice receipt is transferred to the billing document instead of the order quantity (billing quantity indicator in copy control is F)


use 2 price condition in same pricing procedure for one sales order

$
0
0

Hi,

 

We can use two materials and two pricing condition in one sales pricing procedure by configuration process:

 

See sales order 5000000000 Material is Finish Goods & it has a BOM.  3000000001 and 2000000000 Materials are BOM sub Item. We can sales this 5000000000 material in SO & 2000000000 materials also in SO. For both materials we can use one sales order pricing procedure.

 

  1. First extend both materials sales view for the sales order.

 

   2.  For 2 materials create different two item category (ZMSO & ZMTA) and two price condition ZMP0 & ZBP0. Assign condition in sales order pricing procedure (SPRO => Sales & Distribution => Basic function => Pricing Control.)

 

  3. Create ZMSO copy from TAN & ZMTA copy from TANN. (SPRO => Sales & Distribution => Sales => Sales Documents=>value Contract =>Define Item categories for value contact and contract rel.) Assign Item category (SPRO => Sales & Distribution => Sales => Sales Documents=>value Contract.)

 

    4. Assign Item category ZMSO & ZMTA under sales order type.

Assign itencategory.PNG


5. Price condition ZMP0 for Item Category ZMSO and price condition ZBP0 for Item Category ZMTA.

 

  6. If ZMP0 & ZBP0 price condition has same GL then use same account key or GL are not same then create different account key for 2 price condition to assign GL.

 

  7. ZMP0 & ZBP0 assign in pricing procedure keep option blank for Mandatory, Required & statistic.

 

  8. In ZMSO item category ZMP0 price condition should be maintain & in ZMTA item category ZBP0 price condition should be maintain.


  9. sales order type pricing procedure:

Pricingprocedure3.PNG

 


10. BOM item

BOM.PNG

 


11. sales line item

Pricingprocedure.PNG

 


12. ZMSO item category pricing condition

Pricingprocedure2.PNG

 


13. ZMTA item category pricing condition

Price condition.PNG


 

Pricingprocedure4.PNG


in this way we can add one more price condition for one material in SO

 

thanks

 

Md. Enayet Hossain


Sales Order Delivery Block due to Material Costing Update

$
0
0

Sales Order Delivery Block due to Material Costing Update


Sometimes we create sales order with Material MRP schedule line (CP).  As per schedule line sales order refers the product to production department for Production Process. Then production team produce the finish goods against the Sales Order. But Sales Order line item showing “Delivery Block Status: Blocked”.

During create of sales order if material costing not update then below status shown in sales order line item.

va01.PNG

So sales order not possible to process for delivery. During creation of Delivery for the reference sales order system give some error. Like

“Create Delivery” not allowed (Sys. Status cost, object VB ……………………………)

material error.PNG

 

How can we solve the error?

That’s mean delivery is not allow for this sales order due to material costing update. This sales order material has a BOM and BOM item component. This material and component item also needs to update material price costing. For this material we need to maintain Activity Type / Price Planning by Cost Center and Activity Type wise.

We can use this transaction by T-Code: KP26

Like :      Cost Center        :               Production

                Activity Type      :               LABOUR, MACHIN, POWER

KP26.PNG

After maintain Activity Type / Price Planning we can active the material costing price update by T-Code: CK11N

  ck11n.PNG

 

now open the sales order and save the sales order then material costing already updated and sales order material block status changed in " Not Blocked" Status.

 

VA02.PNG

now this sales should be allow for delivery process.

T-code: VL01N

DO.PNG

 

do-1.PNG

 

this way we can remove sales order update material costing and allow for delivery process.

 

best regards,

 

Md. Enayet Hossain

The Sales Order Availability Check: With or Without Total Replenishment Lead Time ?

$
0
0

If you look at the 'Scope of Check' that was setup for your Sales Order Availability Check, you'll see a choice that says: 'Check without RLT?'

 

 

Besides the question being a bit confusing (when I check it on, is it with or without RLT??), the decision has many, some hidden, implications. First off: when the choice is checked, your availability check performs its routine without the Total Replenishment Lead Time.

 

So what is the difference between the two? Let's look at an example:

 

Assuming you have nothing in inventory today and a customer orders 100 pieces with a desired shipment sometime in the near future. There are 50 pieces coming from the production line BEFORE the customer wants to pick up 100, and 50 coming in AFTER the customer wishes to pick up 100 - the last 50 are coming after the end of the Replenishment Lead Time.

 

If our sales availability check performs with Total replenishment Lead Time (the option in the 'Scope of Check' is checked), the following happens:

 

 

The system checks ONLY within the Replenishment Lead Time and ignores all receipts outside of it. It also assumes unlimited availability at the end of the TRLT. Therefore 50 pieces can be confirmed to the customer's requested delivery date and 50 are confirmed just after the end of TRLT.

 

This has the following implications: First, the sales order will confirm ANY quantity, no matter how crazy the request is, right after the TRLT, and second, it confirms quantities that are not on the schedule or even on the plan at that moment. Only after MRP is run, there will be a planned order to meet the new demand. This is a very unreliable and noisy way to do business and, in my personal opinion, only makes sense if you run MRP every day, or in a Make To Order situation, where there is no stock, nor any receipts.

 

On the other hand, when you check without Total replenishment Lead Time, the system checks the entire planning horizon for receipts, but doesn't let you confirm, if there aren't any.

Doing this right is imperative to business success, leveling demand, reducing noise in the production program and increasing visibility on what's demanded for the production scheduler and what's available for the customer sales representative.

error message VF056 & VF188 appeared when you reversal billing by VF11

$
0
0

When you reversal billing  document by VF11, the error message appeared as below:

error message.png

Due to this billing which create without refer to actually sales document or delivery document, the may be created by  POS or IDoc with Billing category as "W" (filed: TVFK-FKTYP and VBRK-FKTYP); In this case, we can't revesal billing use VF11 by normal program. We should assign copying requirment route 410 to filed TVFK-GRBED within Billing document. Then we can reversal billing by VF11.

config.png

PS: for more detial information, pls refer to sap note 489678, this note just for you reference to resolve issue quickly.

OTM Implementation on SAP ECC

$
0
0

At a major FM CG organization we are implementing Oracle transport management  and integrating with SAP landscape. However in the initial discussion it's coming to the light that many data points needed for optimization are not available or maintained in SAP. It's too early to say what's the glitch but I am curious to understand and understand the experience/inputs from  larger SAP community.

I intend to keep this blog updated as we progress through various stages of this implementation.

Please feel free to share your comments

 

Delivery (I doc ) created in SAP is interfaced to OTM via XI , Delivery change is also interfaced to OTM (change pointers) . Delivery change is allowed in SAP til the OTM planning run. Deliveries are locked during planning run (OTM sends list of Deliveries and those are locked in SAP custom table).

 

Currently we are analyzing whether any performance issues will come  or not, We are positive that there will not be any issue.

Are we missing something?

On Complexity & SAP....

$
0
0

Many things can be approached with simple and direct ways including business and especially business. We have enterprise resource planning, our very own SAP to make business more accountable, less prone to human errors and therefore easier. The integration in SAP is what makes it much sought after, whereas thorough dependencies and good standard reports make it a business savvy product.

Nevertheless, Z-developments attract companies, organizations and individual users to an amazing extent. It can be attributed to business needs, custom requirements of each industry and business vertical; which can definitely be addressed with Z-developments in SAP. And some of them are absolutely essential to allow for uniqueness of a given business and to create value for the users.

  That said I have come across users who do not want to go to multiple transaction codes in standard SAP to create subsequent documents. They expect a single window where many buttons will create multiple documents and the zapping part is that they do not want to see the created document. Well, when SAP was not there, documentation still happened and nobody ever expected not having to see a document they were creating!

The maintenance of these Z-developments is time-consuming and expensive to say the least. Imagine the scale of expenses both operational & financial on both sides of business. Each time there is a change in personnel; huge time has to be spent on training and user ease for these multitasking Z-developments. Each time a new business scenario is mapped in the system, apart from standard configuration and Z-screen; ten other Z-reports have to be revamped to accommodate data from new scenario. While it seems good business for consulting, there is no actual consulting involved where simply individual user wants are accommodated, with no regard to overall business & core activities which the software was intended to support.

ERP must be used to simplify & standardize business documentation while allowing for focus on core business competencies and the same must be the goal of consulting & consultants. The whole idea is to not forget the underlying simplicity of processes & maintenance while looking at the overall complexity which is but a result of various simple processes linked together to create something of more value.

***

Reprinting SD documents after customer master data change

$
0
0

Symptom

 

 

In some cases it is necessary to modify the customer master data (name, address ...) of a business partner within a productive SAP system.

As a result of that modification you face the problem that already existing SD documents are updated according to the new master data.
Thus old SD documents already sent to customers contain now new partner data (for example different address).

 

 

 

You might think this is a system error, in case you need to issue an output for an old SD document, since it displays now different data than the one it used to have in the past before master data change.

This phenomenon is not a program error but the standard design of the system.

 


Reason

 

 

SAP can not store all the master data inside the SD document tables.

An address change in the customer master record is always transferred to all existing documents (unless the document has a manual address).

The system does not save the master data in the document, but in the master record. The document shows only a reference to the master record.

 

 

Following SAP note provides an explanation:

 

380456 - Customer master data: Address change in documents

 

 

 

Solution

 

 

  • One option could be to create a manual address in the documents. See note 550073 (Point 5) and 97832. In this case the address is only stored in the document and a change in the customer master does not have an influence on the address in the existing documents.

 

 

 

  • However, in order to avoid such a problem, as a solution I would suggest you to use the optical archiving via ArchiveLink.
    This functionality makes it possible to store the outputs of SD documents so that you can print out them in the future at any time in their original form. In the output type customizing you have the possibility to set the storage mode 'Archive only' or 'Print and archive'

 

 

 

You can find the documentation in R/3 Library under the following path:

 


- Basis Components
- Basis Services / Communication Interfaces (BC-SRV)
  - SAP ArchiveLink (BC-SRV-ARL)
   - SAP ArchiveLink - Scenarios in Applications (BC-SRV-ARL)

    - SAP ArchiveLink - Archiving Scenarios (SD)

 


ArchiveLink - SAP Library

 

 

 

Use transaction OAAD (Administration of Stored Documents) to display documents from the optical archive

 

OAAD1.JPG

 

 

 

Stored documents are classified according to document types. The system uses the following document types in case of SD documents:

 

 

SDOCONTRACContract
SDOORDEROrder confirmation
SDODELNOTEDelivery note
SDODELPLANScheduling Agreement
SDOINVOICEBilling documents
SDOINVLISTInvoice list
SDOBONUSRebate credit memo
...

 

 

 

You can make use of the activation of ArchiveLink functionality even after real document archiving. Sometimes people need the output of an already archived document. But it can not be opened from the archive and the reload of archived documents into the system is not supported by SAP.

In that case you can easily have an access to the output of documents stored by ArchiveLink in the Attachment list.

 

 

 

The following image shows how you can access the stored PDF output of an already archived billing document in VF07 transaction.
The output is also available from SARI transaction.

 

oaad2.JPG

 

 

 

For more information have a look at the following notes:

 

1822569 - Not possible to display/print the output of archived billing document in VF07

  440033 - Informationen zur Fakturaanzeige aus Archiv (VF07)

 

.


Top 30 Knowledge Base Articles (KBA) in ERP SD

$
0
0

Hey everyone!

 

Let me share with you the most relevant KBAs related to ERP SD. Perhaps they will be useful to you in a situation you may face in the future.

 

These are the most relevant KBAs in terms of number of views since SAP started to make Knowledge Base Articles available to its customers.

 

Here's the list:

 

  1. 1524325 - Poor performance due to locks on table NRIV - Buffering of billing documents
  2. 1469906 - FF805 Tax Statement Item missing for Tax Code
  3. 1606732 - Short dump SAPSQL_ARRAY_INSERT_DUPREC when creating Delivery
  4. 1459805 - Error F5702 or RW022 Balance in Transaction Currency when releasing SD invoice to accounting
  5. 1466810 - Object services missing in SD Sales transactions
  6. 1756125 - Wrong credit values - identify and correct
  7. 1934946 - Performance Issue When Creating Billing Documents
  8. 1464620 - Error V1427: Item does not match schedule line
  9. 2006809 - Composite SAP note: How to fix delivery-related inconsistencies.
  10. 1472777 - Dump POSTING_ILLEGAL_STATEMENT during output processing in sales / billing
  11. 1561427 - Billing document split
  12. 1915114 - FF753 Tax code does not appear in any G/L account item
  13. 1481238 - How are different exchange rates (Price, FI postings and Conditions) determined in billing documents
  14. 1505357 - No body text when sending external mails (transmission medium 5) from SD documents
  15. 1869738 - TPAUM: incorrect/changed partner function conversion after upgrade
  16. 1675235 - Error message F5727 "Maximum number of items in FI reached" when release SD billing document to accounting
  17. 1700237 - Transaction VA*5N (VA05N, VA15N, VA25N, VA35N, VA45N)
  18. 1459764 - Cannot cancel a TO using LT0G as items are locked
  19. 1573274 - Dump POSTING_ILLEGAL_STATEMENT during output processing in K_KKB_LIST_DISPLAY
  20. 1860058 - LE: Dump GETWA_NOT_ASSIGNED in VL02N or VL06O
  21. 1498158 - Error "No Correction due to value change" when updating rebate agreement using transaction VBOF
  22. 1483198 - Error F5 727 "Maximum number of items in FI reached" when releasing invoice to accounting.
  23. 1879824 - delivery index VETVG is wrong after create delivery for STO
  24. 1469092 - Stock transfer order (STO) can be selected by transaction VL10B, but cannot be delivered.
  25. 1590601 - Stock transfer order intercompany: how to copy price from PO to intercompany billing
  26. 1460297 - Message VE108 in pricing analysis for a sales document
  27. 1459330 - Error Message: VF072 Foreign Trade Data Incomplete.
  28. 1833486 - Error VK 780 "The sales volume for agreement & is not current" after execution of transaction OVB3
  29. 1805241 - MESSAGE_TYPE_X dump in VI01 transaction
  30. 1916138 - Extra records in transaction VKOA. Error TK420 occurs during maintenance.

 

The following KBAs also rank in the top viewed, but are related to Brazil's NFe:

 

  1. 1944020 - FAQ - Information about new SEFAZ layout 3.10
  2. 1877172 - Shortdump READ_BAD_KEY_ALIGN when using VF01, VF02 or VF03
  3. 1995232 - NFe 3.10 - New tool to help with automatic comparison of manual steps from note 1933985
  4. 1873257 - SEFAZ Rejection 215 for SKIPPING after SP14
  5. 1880504 - Brazilian Legal books do not show some NFes

 

Always remember: if you find a KBA deserves some recognition, you can give it a star rating on the top right corner!!!

 

Maybe you can comment if you have found a KBA to be very useful which is not on the top viewed list I just shared.

 

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.

...

 

 

..

the user-exit about atp and production allocation

$
0
0

My company need to enhance the atp and production allocation, so I list all user-exits about atp and production allocation.

  • The user-exit column is user-exit name.
  • The caller column list the user-exit's call stack.
  • The refer column displays the user-exit sequence.

Capture.JPG

Returns - comprehensive analysis

$
0
0

The chess grand masters analyze hundreds and hundreds of chess games!

Constant studying of threads will give SD consultants the much needed "richness and density"...making them better consultants!

 

Below is a list of threads related to Returns. Study these regularly, make notes, do the practice in IDES and with time, you will become a MASTER!

 

 

 

1. Temporary issues after Go Live, how to design solutions for temporary issues?

Functionality - Reference mandatory

Understanding the issue - is it related to transaction data OR related to configuration?

SALES RETURN for the material sold before SAP implementation

 

2. Business user wants a different item category in RE order, not the default item category

Functionality - Billing relevance

Return Sales order - update of Item category change

Complaint Processing -

 

3. Business does not want any major changes

Functionality - copy control

Userexit, enhancement

Propose order quantity in return sales order

 

4. View selected Order reasons in VA01/2

Functionality - make order reason a "mandatory" field in RE process, useful for reporting

Userexit, concept of Ztable (important and used frequently)

Order reason codes - specific to sales order type

 

User Exits In Sales Document Processing - System Modifications - SAP Library

Side comment: For a SD consultant to understand, identify the appropriate user exits that can be used for a requirement is very helpful.

 

5. Business process related ticket

How to handle "after" goods are returned to the company? Give credit to customer, supply the goods free of charge

Functionality - SDF, FoC

Sale return of Component of Fin Prod

 

6. Should returned goods be part of Salable stock or not?

Functionality - Movement type 651, 653

sales returns

Movement type for Sale return

Return Delivery from Customer with Movement type 653 - Toolbox for IT Groups

 

Important - DN is the schedule line category provided for return process, in standard. VOV6

 

7. Business process and enterprise setup

Functionality - Enterprise structure > assignment > Sales org, distribution channel to delivering plant. An important step in SD

Intercompany Return Process Error

 

8. Pricing - what components to refund to customer? should tax component be refunded? should freight be refunded?

Functionality - Pricing

Return process

Side comment: In every aspect of SD design/tickets, mentally check - is there any impact on pricing?

 

9. Flow of goods in return direction, to which plant should goods be returned?

Functionality - Delivering plant (receiving)

Return order

Good example of a business requirement


10. Quantity in return order, compared to quantity in sales cycle

return order

Return order with reference to the Billing Document

 

11. Business requirement

Implementing any thing...an entire process or one specific functionality, clearly understanding the requirement is very important.

Functionality - Implementation

In SCN, we have to understand based on reading the information. Read carefully!

Block sales order items for return orders

 

12. Functionality - Billing block

Generally in returns, credit, billing block is setup. Billing block can be setup at different levels (header, item) in RE order

Below thread touches on authorization also.

Unable to remove biling block return sales order

Billing block

Important is to read the error message carefully, it gives clues, for solution

 

13. Functionality - REN, item category

Item category in a return order

 



Returns in standard SAP:


1. Return order created with reference to billing document

RE order can be created without reference or can be created with reference to sales order. But best practice is to create with reference to invoice

At item level of copy control configuration, pricing type is an important functionality - should prices be copied unchanged from invoice or any other way. The business requirement dictates pricing type. VTAF

1.copycontro.jpg


2. Return document type

In several projects, I have noticed that field Reference mandatory has played an important role. Take note: when creating any custom reports, the SD document category is H, at transaction level, in order VBAK-VBTYP; at configuration level, in order type TVAK-VBTYP.

Different number ranges are given to RE orders, for easy recognition and reporting purposes. VOV8

2.doctype, reference mandatory.jpg


3. Continuing with order type, shipping condition can play an important role. Also billing block given here, then in sales order, at header level billing block will be set automatically. Business has to remove the billing block from the sales order in order to create a RE credit memo. If business does not want to give RE credit note, then a reason for rejection can be put

3.doctype, shipping condition, billing block.jpg


4. Item category

In addition to field billing relevance, also note field Returns has to be activated for all return processes including credit memo, check G2N. VOV7

4.itemcat.jpg


5. Schedule line category

Movement type is an important field. There are threads will discuss about this in more detail. Availability check and Transfer of Requirement has been deactivated, as these functionalities are not required for goods coming into the plant. VOV6

5.schedulelinecat.jpg


6. Delivery item category

The item category name REN remains the same in sales order, delivery and billing

Relevant for Picking in deactivated as goods are coming into the plant. Document category is T, sometimes needed for analysis in VTFA. 0VLP (zeroVLP)

6.dlvitemcat.jpg


7. Billing type

The RE credit can be cancelled, for that SAP standard cancellation billing type is S2. Additional requirements can be setup, conditions where cancellation is permitted in copying requirements. Does a company want the option to cancel the RE credit memo is a business decision. VOFA

7.bill.jpg


All the screenshots are from SAP, copyright by SAP AG.


Contest and a way to share knowledge -

If you find a thread which provides value to this document, please post it in your comments. I will add it; along with your name, as contributor

Atregular intervals, I will update this blog with the "best" contributors

 

 

typewriter

 

Career Center

`Discount and Free goods on Customer Group with Pricing Condition

$
0
0

Dear All,

 

Blog is just to explain how we have  implemented Discount and Free goods on Customer Group  with Pricing Condition


Business Scenario


 

This was one of our client requirements who are into FMCG business and company wanted to give Discount and Free Goods on following Levels

 

    A.Group 1 ASM Area Sales Manager one who handling entire State-State Level -Customer Group 1

    B.Group 2 TSM Territory Sales Manager one who Handling 2 or 3 district- Multiple Districts/zone Level-Customer Group 2

    C.Group 3 TSE Territory Sales Executive one who handles single District-District/City Level-Customer Group 3

    D.Group 4 Modern Trades like Reliance fresh, Lulu, More, Big Bazaar, Spencer’s etc. - Customer Group 4

                                  

Capture25.PNG


We are maintaining 3 Distribution Channels


10 Direct Channels

20 Distribution Channel

30 Modern Trade (Reliance Fresh, More,Lulu, Big Bazar etc….


Now into Requirements Let’s says

 

1.The company wants to give a discount to Chennai alone.

2.The company wants to give discounts in 3 Districts alone.

3.The company wants to run a sales promotion campaign for particular TSM or TSE Alone to boost his business.

4.The company wants to give Free goods on Particular TSM or TSE Alone

5.The company wants to give a discount on particular material group in ASM, TSM and TSE level.

 

                                                                                        Configuration Settings

 

1.Customer Group

 

SPRO-Sales and Distribution-Master Data-Business Partner –Customers-Maintain Reserve Fields In Customer Master

 

customer GRP.png

Customer Group 1 at State Level

customer GRP.png

Customer Group 2 at District(Multiple Districts/zone)  Level

  customer GRP.png

Customer Group  3 at  District/city  Level

customer GRP.png

 

Plz note  that  since Chennai is big  territory so I am dividing Chennai into two i.e. Chennai 1 and Chennai 2.

 

                                                                                                    Customer Group 4 Modern Trade

customer GRP.png

 

2.Customer Master Data

 

Got to customer master data  under Sales area  tab above menu Bar Extras click on  additional Data

 

Fill all relevant data according to your requirements. Plz note that  Customer Group is 4 not applicable, since this customer is belongs to Direct Channel in  my case it is applicable only for Distribution channel  3 i.e. Modern Trade.

customer GRP.png

3. Pricing Configuration Part

 

Got to Pricing, pricing control Field catalog

 

Customer Groups fields are not added in the Field Catalog so add  the field catalog

 

customer GRP.png

Before you create a new condition table, you should check whether the fields listed in the field catalog meet your requirements. If you require a field in pricing which is not intended for this usage in the standard system, you must enter it in the field catalog. You can only enter fields from tables KOMG, KOMK or KOMP.


If you want to use a new field in the field catalog, you must add the field to KOMP or KOMK in the following INCLUDES:


                                                              Header data in INCLUDE KOMKAZ in KOMK

                                                              Item data in INCLUDE KOMPAZ in KOMP

 

The routines for assigning values to the new fields in order processing are found in member MV45AFZZ and new fields in billing are found in member RV60AFZZ. Use the following user exits:

                                                        USEREXIT_PRICING_PREPARE_TKOMK (header fields)

                                                        USEREXIT_PRICING_PREPARE_TKOMP (item fields)


                                                User Exit For Discount and Free Goods



Capture23.PNG



Capture26.PNG




Condition Tables

 

customer GRP.png

 

 

customer GRP.png

 

 

                                                                                                        Access sequence


Copied Standard Access Sequence and created new Access sequence call IFPR

customer GRP.png

 

Condition Types

 

Copied Standard Condition type and created new Condition Type call IFPR

customer GRP.png

 

Pricing Procedure

customer GRP.png

 

Creating a Discount for TSM Level in VK 11

 

We have different Material Group, for Example PK-Lime Pickle, SP-Chilli Powder, and WS-Kashmiri chilli so we can give discount on Particular group alone for ASM, TSM and TSE level

customer GRP.png

 

Plz Map your customer according to your ASM, TSM and TSE located in different State, Zone and District. customer GRP.png

customer GRP.png

 

 

customer GRP.png


4. Free Goods  Configuration


Business Scenario

 

  1. The company wants to give Free goods on Particular ASM, TSM, TSE Zone and District level Alone

 

        Condition Table Group 1

 

customer GRP.png

customer GRP.png

                                    

Access Sequence

 

customer GRP.png

Condition Table

customer GRP.png

            Creating Free Goods records in VBN1


customer GRP.png

 

customer GRP.png


I am Nothing in this SAP Ocean  just learning day  by day , so please share your ideas and suggestions with me.Thanks in Advance.


Thanks&Regards

Thomson


Repricing not happen in intercompany billing for certain condition types

$
0
0

Some customers tried to re-update their pricing in intercompany billing but failed.

 

From price analysis, the following message is listed:

 

Access Message Description

05     108      Condition record exists, but has not been set

10     230      Access has not been executed due to previous access

 

Then we checked further and found the condition category KNTYP for the affected condition type is blank in V/06.

This is actually the standard behavior that condition type with KNTYP blank is not redetermined in intercompany billing, neither with pricing type B.

 

It is also specified in SAP Note 33487.

......

In the case of invoice type IV...

    • repricing SHOULD NOT occur for condition types with the condition category = ' ' (blank) or the condition category = 'G' (Cost).

......

 

Here in the blog I will introduce the responsible coding during the pricing update:

 

LV60AU24
RV_INVOICE_PRICE_PBO
...
*   Verrechnungspreise und TP nicht neu ermitteln
ENHANCEMENT-POINT RV_INVOICE_PRICE_PBO_01 SPOTS ES_SAPLV60A.
    IF tkomp-kaend_typ = space.
      IF tkomk-vbtyp NA vbtyp_fkiv.         << not intercompany
        tkomp-kaend_typ = 'Gbh..'.
      ELSE.                                              << intercompany
        tkomp-kaend_typ = 'Gbh .'.
      ENDIF.
    ENDIF.
* jetzt käme der PRICING_DIALOG
  ELSE.
* Kopfpreisfindung
ENHANCEMENT-POINT RV_INVOICE_PRICE_PBO_04 SPOTS ES_SAPLV60A.
...

 

Remark to the coding above:
tkomp-kaend_typ contains the condition categories that will not be redetermined regardless of the pricing type.

 

Hope it will do you some help.

Mass update of route determination with LSMW part 2

$
0
0

This is a continuation of Mass update of route determination with LSMW. See Mass update of route determination with LSMW

 

Due to restriction of amount of images loaded in previous post, this part continues with the LSMW upload for the TROLZ upload.

 

TROLZ upload

 

Now the TROIZ entries have been loaded, we can load the entries for shipping conditions and loading group.

 

Create a new object in transaction LSMW with different name.

trolz1.png

Goto Maintain Object Attributes and create a new recording as described in the TROIZ load. Also use transaction 0VRF. In the first transaction we now press the button "Position" first. A popup appears and enter the Country of departure, Zone, Destination Country and Destination zone.

trolz2.png

Then select the line and press the button "route determination w/o weight group".

trolz3.png

In the next screen press button "New Entries"

trolz4.png

Then SAVE the entries and the popup of the transport request appears again.

troiz6.png

Confirm and return to the batch input overview using the BACK button.

Then change the values here as shown in the screenshot - like the TROIZ steps.

trolz5.png

Enter the name of the recording in the attributes.

trolz6.png

Then maintain source structure as described in the TROIZ upload.

 

Then goto Maintain Source Fields and enter the following fields.

trolz7.png

Then maintain structure relation as described in the TROIZ upload.

Then goto Maintain Field Mapping and Conversion Rules

Same steps as in the TROIZ upload. Map the source fields to the structure.

trolz8.png

Then goto Specify Files.

Source file should look like in Excel.

trolz9.png

Save the file as a .CSV. Make sure the leading zero's don't get lost.

Then enter the file details like the TROIZ upload.

trolz10.png

Then execute the same steps as the TROIZ load (see Mass update of route determination with LSMW).

- Assign Files

- Read Data

- Convert Data

- Create Batch Input Session

- Run Batch Input Session

After running the batch input session in background the entries in 0VRF are now completed.

trolz11.png

Note that the generic entry is also created. In this example it would be sufficient to load only the generic entry. Then you only need to load the 'exceptions'. This saves some maintenance and amount of entries in the customizing table.

This completes the steps for loading route determination via LSMW.


Mass update of route determination with LSMW

$
0
0


This blog is to explain the steps for uploading route determination without weight group via LSMW.

 

During several rollouts or redefinition of routes we need to upload new route determination in the system. If the amount of records are not that many, best approach is to do it manual. However with a lot of records, we can use the LSMW tool for this activity.

 

Prerequisites:

  • Routes must be available.
  • Shipping conditions must be available.
  • Transportation groups must be available.
  • A basic knowledge of using LSMW tool.

 

Generic route determination:

 

In this post, I also load entries with a generic route determination. Refer to notes 386105, 414250, 656444 for this functionality. For the route determination maintenance in the Customizing, it is possible to generate entries for which shipping condition, transportation group, weight group are initial (generic). When entering a generic key, it will take the generic route entered in that key. So you only need to maintain the exceptions with an actual key. This can save a huge amount of records to be loaded.

 

2 step approach:

 

The route determination is contained in 2 tables:

  • TROIZ (keys for country from/to and departure zone from/to)
  • TROLZ (keys for shipping condition, transportation group, weight group (not used in this blog) and actual route)

 

To make it easy for the LSMW we load the records for each table so we need to have 2 LSMW's.

 

Note: Before starting, go to transaction 0VRF and change/update one entry in the route determination table so a transport request is created. This transport request is used in the LSMW's.

 

TROIZ upload

 

Goto transaction LSMW.

 

Create new project/subproject/object

 

Here we create a new load for the route determination load of the TROIZ table.

troiz1.png

Maintain Object Attributes

 

This is the most important step of the LSMW, we create a recording for the TROIZ table. Using a batch input recording.

troiz2.png

Next popup needs a transaction code. Enter transaction 0VRF

troiz3.png

Next screen appears and press button "New Entries".

troiz4.png

Enter one key that does not exist in the route determination table. Else you get error message and have to start over.

troiz5.png

Press the SAVE button. The transport request we created before starting comes up.

troiz6.png

Confirm and go back with green arrow a couple of times so that the recording screen is shown.

troiz7.png

Now double click on the fields ALAND, AZONE, LLAND, LZONE and TRKORR one by one and give the following names. I normally delete the default value and only keep the field name + description. The transport request number do not change.

troiz8.png

SAVE the recording and enter the recording name in the previous screen (object attributes).

troiz9.png

Then go to menu option source structure. Enter something similar below.

troiz10.png

Then enter Maintain Source Fields.

troiz11.png

Then enter Maintain Structure Relations.

troiz12.png

Then enter Maintain Field Mapping and Conversion Rules.

 

Note: In the menu --> Extra's --> Auto-fieldmapping will do the mapping more quickly. Else select the fields one by one and pressing button source field to assign the source fields manually.

troiz13.png

Then goto Specify Files

You need to create your input file first. In Excel the source looks like this:

troiz14.png

I normally save the Excel as a .CSV file (comma separated) for usage in the LSMW.

 

Note: always check if the keys are the same as in the Excel file. Sometimes the leading zero's get lost in the conversion.

troiz15.png

Then goto Specify Files select Legacy Data and double click on that node.

 

Enter:

    • File name on your computer
    • Description (any)
    • Delimiter as Comma (we use .CSV)
    • Field names at start of file checked.
    • Field order matches source structure definition checked.

 

          SAVE the entries.

troiz16.png

Then goto Assign Files:

troiz17.png

Then goto Read Data

troiz18.png

Execute this transaction (F8) and you get overview of loaded entries. When it shows read = written it's ok. When not written there is something wrong. You should check your file or mapping when this is the case.

troiz19.png

Then goto Convert Data

troiz20.png

Press Execute (F8). The transactions read - written should be the same.

troiz21.png

Then goto Create Batch Input Session

 

Screen should show the following, I always select 'keep batch input'.

troiz22.png

Execute this transaction (F8)

troiz23.png

Then goto Run Batch Input Session

troiz24.png

Select the line and press button "Process". Select Background and press button "Process".

troiz25.png

This will result that the from/to route determination is loaded in your system. In transaction 0VRF all records are now loaded.

troiz26.png

This is the end of the first LSMW load.

 

TROLZ upload

 

Please refer to next link for the upload of the TROLZ entries.

Mass update of route determination with LSMW part 2

Checking material availability - which transaction to use?

$
0
0

Working on ERP/ATP related issues made one thing quite clear: many of the end users still use the wrong transaction(s) when they try to check the availability of certain materials. End users often refer to transactions like MD04 or MMBE, but in fact, these transactions are not suitable for checking ATP quantities.

 

In order to check the availability situation of materials, transaction CO09 must be used. This is the only transaction which takes into consideration not just the

different stock levels, but inward and outward stock movements as well. Other transactions (like MD04 and MMBE) does not have this functionality, these transactions were designed for completely different purposes.

 

Here is a simple example which shows the difference between how these transactions handle quantities.

 

In this situation we have:

  •   a material (AC_1)
  •   a plant (AC1)
  •   three storage locations (AC1, AC2, AC3)
  •   a planned order created for 23.09.2015 about 100 PCs (storage location determined in the planned order is AC1).

 

Transaction CO09:


CO09_1.jpg

 

In transaction CO09 the system shows the most important data which are considered by the ATP check, including:

  •   the material availability date
  •   the MRP element related data
  •   the required / requested quantity
  •   the confirmed quantity
  •   the cumulated ATP quantity (quantity still available after the confirmation is made).


Also, the created sales and delivery requirements, as well as the production and purchasing documents are shown on all the concerned storage levels, meaning that:

  •   if only the plant is given in the document, the MRP element will be shown only under the plant section
  •   if both the plant and the storage location are given, then the  MRP element will be shown under the plant stock and the storage location section as well.


In CO09 it can be seen that after 23.09.2015 we have 100 PCs available. These 100 PCs can be confirmed in sales or delivery requirements.

Now, what can we see in transaction MMBE?


MMBE_1.jpg

 

In short: nothing. From an availability perspective this transaction is not useful at all. MMBE does not consider inward / outward stock movements. If someone checks MMBE to find out how many pieces are available of material AC_1, he/she will think that this material is currently not available (which is true) and will not be available in the future (which is wrong).

 

Let's take a look on transaction MD04 next.

MD04_1.jpg

 

In the current situation, MD04 shows the same available quantity that CO09 does, but there is a catch here. Transaction MD04 calculates with requested quantities, not with confirmed quantities.

 

To see what this means in terms of availability, let's create a sales requirement (a sales order) in which the requested quantity is 50 PCs. The system could confirm these 50 PCs for 23.09.2015, but let's change the confirmed quantity to 20 PCs manually (which can be done on the availability control screen) before saving the sales order.

 

In this case, CO09 will look like this.


CO09_2.jpg


Again, as I have already mentioned, the sales requirement will be displayed under all the relevant storage levels (in our case, under the plant section and the storage location section as well). Since the requested quantity was 50 PCs, but we confirmed only 20 PCs, the cumulated ATP quantity (the quantity which remains available after the confirmation is done) will be 80 PCs at 23.09.2015.

 

Now, what does MD04 tell us?


MD04_2.jpg


As it can be seen above, MD04 uses the requested quantity for the calculation, not the confirmed quantity, that is why column 'Available Qty' shows that 50 PCs are still available (which is not true).

 

In summary, as it has been represented, material availability related questions cannot be answered by using transaction MD04 or MMBE, the transaction that has to be used is CO09.

Calculation of the Replenishment Lead Time

$
0
0

The replenishment lead time represents the total period of time which is required to procure or manufacture an item. The replenishment lead time is mainly used by the availability check to calculate the material availability date. In order to enable the calculation of the replenishment lead time for availability check, the field 'Check without RLT' (V_441V-OWBZP) in the scope of check (transaction OVZ9) must be empty.

 

OVZ9_1.jpg

RLT calculation is performed in form END_OF_RLT_CALCULATE which is called from function module AVAILABILITY_CHECK / form AVAILABILITY_CHECK_R3.

 

RLT_1.jpg

 

Key variables:

 

S_MTWZT = In-house production time

S_WEBAZ = GR processing time

P_ATPMATX-PLIFZ = Planned delivery time

P_ATPMATX-WZEIT = Total replenishment lead time

P_ATPPLANTX-BZTEK = Purchasing processing time

S_FKDAY = Factory calendar day

S_GKDAY = Gregorian calendar day

 

1 - Calculation of the Replenishment Lead Time in case of externally procured materials ==> Material Master, MRP 2 view, Procurement type (field BESKZ) = F:

 

For externally procured materials, the replenishment lead time gets calculated based on:

  •   the purchasing processing time (transaction OPPQ, Material Planning Run section, External Procurement button, field BZTEK)
  •   the planned delivery time (transaction MM02, MRP 2 view, field PLIFZ OR transaction ME12, Purch.org.data 1 view, field APLFZ)
  •   the GR processing time (transaction MM02, MRP 2 view, field WEBAZ).


In case of the purchasing processing time, the system considers factory calendar days, a.k.a working days of the plant.

In case of the planned delivery time, the system considers standard calendar days.

In case of the GR processing time, again the system considers factory calendar days (working days of the plant).

The sequence of RLT calculation is:

  •   1st = purchasing processing time
  •   2nd = planned delivery time
  •   3rd = GR processing time.


EXAMPLE 1:

Actual date = 09.03.2015 (Monday)

Requested delivery date = 09.03.2015 (Monday)

Available quantity = 0 PCs

Requested quantity = 10 PCs

Purchasing processing time = 2 days

Planned delivery time =  5 days

GR processing time = 3 days

 

Since the requested quantity is not available for the required delivery date, the system calculates the RLT as follows:

 

09.03.2015 (Monday) - Requested delivery date

10.03.2015 (Tuesday) - Purchasing processing time | DAY 1

11.03.2015 (Wednesday) - Purchasing processing time | DAY 2

12.03.2015 (Thursday) - Planned delivery time | DAY 1

13.03.2015 (Friday) - Planned delivery time | DAY 2

14.03.2015 (Saturday) - Planned delivery time | DAY 3

15.03.2015 (Sunday) - Planned delivery time | DAY 4

16.03.2015 (Monday) - Planned delivery time | DAY 5

17.03.2015 (Tuesday) - GR processing time | DAY 1

18.03.2015 (Wednesday) - GR processing time | DAY 2

19.03.2015 (Thursday) - GR processing time | DAY 3

 

Based on the above described calculation the end of replenishment lead time will be 19.03.2015.

 

EXAMPLE 2:

Actual date = 09.03.2015 (Monday)

Requested delivery date = 09.03.2015 (Monday)

Available quantity = 0 PCs

Requested quantity = 10 PCs

Purchasing processing time = 2 days

Planned delivery time =  3 days

GR processing time = 3 days

 

Since the requested quantity is not available for the required delivery date, the system calculates the RLT as follows:

 

09.03.2015 (Monday) - Requested delivery date

10.03.2015 (Tuesday) - Purchasing processing time | DAY 1

11.03.2015 (Wednesday) - Purchasing processing time | DAY 2

12.03.2015 (Thursday) - Planned delivery time | DAY 1

13.03.2015 (Friday) - Planned delivery time | DAY 2

14.03.2015 (Saturday) - Planned delivery time | DAY 3 -----> The system performs an extra check to see whether the end date of the planned delivery time is a working day at the plant. If it is not, the end date of the planned delivery time will be moved to the next possible working day.

16.03.2015 (Monday) - Planned delivery time | DAY 3

17.03.2015 (Tuesday) - GR processing time | DAY 1

18.03.2015 (Wednesday) - GR processing time | DAY 2

19.03.2015 (Thursday) - GR processing time | DAY 3

 

Based on the above described calculation the end of replenishment lead time will be 19.03.2015.

 

2 - Calculation of the Replenishment Lead Time in case of internally produced materials ==> Material Master, MRP 2 view, Procurement type (field BESKZ) = E:


For internally produced materials, the replenishment lead time gets calculated based on:

  •   the in-house production time (transaction MM02, MRP 2 view, field DZEIT)
  •   the GR processing time (transaction MM02, MRP 2 view, field WEBAZ)
  •   OR the total replenishment lead time (transaction MM02, MRP 2 view, field WZEIT).


In case of all the above mentioned figures, the system considers factory calendar days, a.k.a working days of the plant. If the total replenishment lead time (field WZEIT) is maintained, and the in-house production time (field DZEIT) or the GR processing time (field WEBAZ) are also maintained, the system will only take the total replenishment lead time into consideration.

The sequence of RLT calculation (if the total replenishment lead time is not maintained) is:

  •   1st = in-house production time
  •   2nd = GR processing time.


EXAMPLE 3:

Actual date = 09.03.2015 (Monday)

Requested delivery date = 09.03.2015 (Monday)

Available quantity = 0 PCs

Requested quantity = 10 PCs

In-house production time = 3 days

GR processing time = 2 days

Total replenishment lead time = 0 days

 

Since the requested quantity is not available for the required delivery date, the system calculates the RLT as follows:

 

09.03.2015 (Monday) - Requested delivery date

10.03.2015 (Tuesday) - In-house production time | DAY 1

11.03.2015 (Wednesday) - In-house production time | DAY 2

12.03.2015 (Thursday) - In-house production time | DAY 3

13.03.2015 (Friday) - GR processing time | DAY 1

16.03.2015 (Monday) - GR processing time | DAY 2

 

Based on the above described calculation the end of replenishment lead time will be 16.03.2015.

 

EXAMPLE 4:

Actual date = 09.03.2015 (Monday)

Requested delivery date = 09.03.2015 (Monday)

Available quantity = 0 PCs

Requested quantity = 10 PCs

In-house production time = 3 days

GR processing time = 2 days

Total replenishment lead time = 8 days

 

Since the requested quantity is not available for the required delivery date, the system calculates the RLT as follows:

 

09.03.2015 (Monday) - Requested delivery date

10.03.2015 (Tuesday) - Total replenishment lead time | DAY 1

11.03.2015 (Wednesday) - Total replenishment lead time | DAY 2

12.03.2015 (Thursday) - Total replenishment lead time | DAY 3

13.03.2015 (Friday) - Total replenishment lead time | DAY 4

16.03.2015 (Monday) - Total replenishment lead time | DAY 5

17.03.2015 (Tuesday) - Total replenishment lead time | DAY 6

18.03.2015 (Wednesday) - Total replenishment lead time | DAY 7

19.03.2015 (Thursday) - Total replenishment lead time | DAY 8

Since the total replenishment lead time field is maintained, the system will not take the in-house production time and the GR processing time into consideration, so the end of the replenishment lead time will be 19.03.2015.

 

3 - Calculation of the Replenishment Lead Time in case of materials maintained for both procurement types ==> Material Master, MRP 2 view, Procurement type (field BESKZ) = X:


If a material is maintained for both procurement types, during RLT calculation the system will consider it as a material, which is internally procured. This means that the purchasing processing time and the planned delivery time will not be taken into consideration, not even if these are the only RLT relevant fields maintained.

Why does delivery date get postponed in sales documents?

$
0
0

When you create a sales document item for a certain quantity and a certain date, you expect that the system should confirm the item on the requested delivery date, but instead a new schedule line gets generated with a proposed delivery date.

 

Delivery date postponement (a.k.a the generation of a 2nd schedule line) can be the result of:

  •   delivery scheduling (in case the system performs forwards scheduling)
  •   transportation scheduling (in case the system performs forwards scheduling)
  •   availability check.

 

In order to disable the determination of a new delivery date, delivery scheduling, transportation scheduling AND the availability check needs to be deactivated.

 

Scenario 1 - Delivery scheduling turned OFF | Transportation scheduling turned ON | ATP check turned ON:

 

If delivery scheduling is switched OFF, but transportation scheduling remains active, AND the system switches to forwards scheduling, the material availability date/time (MBDAT/MBUHR), the transportation planning date/time (TDDAT/TDUHR), the loading date/time (LDDAT/LDUHR), and the goods issue date/time (WADAT/WAUHR) will be the same, but a new delivery date/time (LFDAT/LFUHR) will be determined based on the route relevant settings. If ATP check is also active then the system will check whether the requested quantity is available on the material availability date (MBDAT) calculated by transportation scheduling. If the material is available on the calculated material availability date then no further calculation will be performed. If the material is not available on the calculated material availability date then the system will check what is the closest availability date of the material. If the material can be available on a later date than this date will be found and be taken over as the new MBDAT by function module SD_SCHEDULING_ATP_CALC where the system will perform forwards scheduling.

   

Scenario 2 - Delivery scheduling turned ON | Transportation scheduling turned OFF | ATP check turned ON:

  

If transportation scheduling is switched OFF, but delivery scheduling remains active, AND the system switches to forwards scheduling, the material availability date/time (MBDAT/MBUHR), the transportation planning date/time (TDDAT/TDUHR), the loading date/time (LDDAT/LDUHR), and the goods issue date/time (WADAT/WAUHR) will be calculated based on the shipping point and/or route relevant settings. Also, a new delivery date/time (LFDAT/LFUHR) will be determined that is going to be the same as the goods issue date/time (WADAT/WAUHR). If ATP check is also active then the system will check whether the requested quantity is available on the material availability date (MBDAT) calculated by delivery scheduling. If the material is available on the calculated material availability date then no further calculation will be performed. If the material is not available on the calculated material availability date then the system will check what is the closest availability date of the material. If the material can be available on a later date than this date will be found and be taken over as the new MBDAT by function module SD_SCHEDULING_ATP_CALC where the system will perform forwards scheduling.

  

Scenario 3 - Delivery scheduling turned OFF | Transportation scheduling turned OFF | ATP check turned ON:

 

If delivery and transportation scheduling are both switched OFF, but availability check remains active, the system will not carry out scheduling at all, but will check whether the requested material is available on the requested delivery date. In this case, the requested delivery date (LFDAT) will be the material availability date (MBDAT). Please note that ERP/ATP is only accurate to the day, so only the date is considered, the time is not.

    

In order to prevent the calculation of a proposed delivery date, you need to disable the ATP check (transaction VOV6, field ATPPR; OR transaction OVZG, field ATPPR; OR transaction OVZ2, field VERPN) AND you need to:

 

  • disable delivery scheduling (transaction OVLY, field VSTRM) AND forwards scheduling (transaction OVLY, field TENUR)

OR

  • disable transportation scheduling (transaction OVLY, field TRTRM) AND forwards scheduling (transaction OVLY, field TENUR)

OR

  • disable delivery scheduling (transaction OVLY, field VSTRM) AND transportation scheduling (transaction OVLY, field TRTRM)

OR

  • disable forwards scheduling (transaction OVLY, field TENUR).

Revisiting the basics: returnable containers exchange scenario with empties tracking

$
0
0

After several years as a SAP consultant, sometimes I find myself guilty of trying to tackle a seemingly difficult problem by first going through SAP notes, then searching the online documentation and checking SMOD for a possible solution. Back in the days, when I did not have any previous project experience, armed only with the .CHM SAP help version, I might have handled the situation differently and surprisingly – better. It may seem illogical at first, but gaining more experience could act as a ‘blind spot’ and instead of going through SPRO and master data (as you probably did as a junior), you find yourself rushing to an ABAPer with a new development specification, which looks stunningly similar to the specifications you wrote during your previous 5 projects.

 

Returnable containers exchange, which I will use as an example, is a very common scenario in the beverage business. In some companies it is realized by complex developments, in others – it is left out as a purely manual process. There is a good reason behind each of the possible methods – external systems involved, agreed project scope and budget, availability of resources, project deadlines, the level of process standardization in the company, the possibility of change management and so on.

 

There is also this really simple and cheap alternative that a junior consultant could have come up with.


A junior consultant does not refer to the person’s position neither implies inferior skills – it describes a person who is relatively new to a certain area.


Business case:


The usage of refillable containers for produced products in beverages industry has not only environmental benefits, but also substantially reduces the costs-per-filling compared to one-way RGB bottles, one-way PET bottles, carton packaging.  In case a product in returnable container is sold, the company charges a deposit to the customer, which is returned on receiving back the empty containers. A very common business practice is after the initial delivery to establish a process where the customer returns the same quantity and type of empty containers as the quantity of purchased products.

 

Benefits for the producing company in RC exchange scenario:

  • Timely collection of containers which can be used for further refilling;
  • Reduction of transportation costs (the empty crates when returning from customer visit occupy the same space as the delivered FG).

 

Benefits for the customer:

  • After the initial delivery he is basically charged only for the ‘liquid’. Deposits from customer’s perspective are money that he cannot use for investing in his own enterprise.

 

Challenges:

 

If the company is not able to deliver the FG on time (insufficient stock or temporary credit issue) no separate visits for empties collection and for FG delivery should be scheduled – the current order should be fully rejected and a new order for empties return should be created and planned (as a part of the order cleaning procedure). The reason behind the decision for no separate visits is to have a better utilization of truck capacity and lower transportation costs.

The company needs to track the containers per type both by value and quantity for each domestic customer and to be able to perform reconciliation between the quantity and value of the containers and the balances on the deposit account/accounts. 

This idea aims to minimize the effort in ERP during order entry and route settlement process and to cover most of the described company requirements without an additional development.

The purpose of showing some of the customizing settings is not to create a general ‘how to configure the process’ and there are no revolutionary discoveries presented (you would not expect too many revolutionary discoveries from a fresher, anyway). They simply illustrate what you can achieve by applying some basic SAP knowledge in a slightly different manner to address a customer requirement – something that a junior consultant could do.

 

Setup for standard sales order


Item categories:


Item category of the main item (FG)

Notable fields: the item is pricing and billing-relevant, schedule lines allowed = ‘X’, credit active = ‘X’, structure scope = ‘B’ and application = ‘SD01) (I will use multi-BOM explosion and sales BOM); create delivery group = ‘A’ (to ensure that both implied and returned empties are kept together).

image001.jpg

Schedule line assignment = ‘CP’.

 

Item category for the implied empty:

image002.jpg

Important fields: the item billing relevant, pricing for empties, credit exposure should be updated, schedule lines are allowed.

Assignment to schedule line = ‘ZX’ – no goods movement, no ATP, no requirements transfer, relevant for delivery. The item is used to collect the deposit and track empties at the customer’s premises. The goods issue for implied empties is performed during production order confirmation.

 

Item category for return empty:

image003.jpg

Notable fields: pricing for empties, no weight/vol. relevance, billing-relevant, schedule lines allowed, returns = ‘X’, update credit exposure.

Incompletion procedure assignment: copy of 20 without weight checks.

Schedule line assigned = ‘DN’ (movement type 651, no ATP, no requirements transfer, relevant for delivery).

 

Item category assignment:

image004.jpg

(ZARN is used for BOM-relevant products with % discount based on manual setting of KVGR1 to a specific value).

 

Pricing:


Main item – relevant for base price, discounts, VAT.

Implied empty – relevant only for deposit, value collected in CMPRE.

Return empty – also relevant for deposit, value collected in CMPRE.

Pricing requirement for deposit condition – checks for pricing relevance = ‘A’ (to be on the safe side).image005.jpg

Credit management settings:

image006.jpg

Delivery item categories specifics:


Main item: relevant for picking, determine storage location, storage location required, check quantity 0, check over delivery dismissed with error.

Implied empty – no storage location required, no picking relevance, check quantity 0 and check over delivery dismissed with error.

Return empty – determine storage location, storage location required, check quantity 0 and check over delivery dismissed with error, not relevant for picking.

Copy control VTLA, VTFL for all item categories.

The tracking of returnable containers is achieved by using empties update functionality in billing.

Prerequisite: you need to have EA-CP active in SFW5 to use empties update.

The settings relevant for the process are in SPRO->Sales and Distribution->Billing->Empties Update.

 

Empties management settings:


  1. Material types that determine empties – set the material type used for RC (in the standard system this is LEER, in my case this is a separate material type for non-valuated materials with quantity update for the valuation area).
  2. Billing types without empties update – maintain all proforma types and intercompany billing types to avoid incorrect empties movement registration.
  3. Maintain empties account holder – SAP suggests a choice for account holder between payer, sold-to, ship-to, bill-to party as account holder, but it is also possible to set a custom partner function and in this way to be able to group several customers for reporting purposes. I chose to use 3A – Customer chain, which I have set up as a level in the customer hierarchy. This partner function is transferred to the respective sales document types.

image007.jpg

Log empties update – a useful feature to track each step of empties update in a greater detail during the test phase. It should be switched off for productive environment. The log is in table /BEV1/EMLGFS:

image008.jpg

4. Manage empties fields – the defaults provided by SAP are sufficient for most companies, but in case you have a requirement for a more detailed reporting, you can use additional quantity and value fields.

image009.jpg

5.  Calculation matrix for empties – this is where the main logic for empties balance is defined. It is extremely important in case you define additional empties fields to update them correctly into the respective formula, otherwise it will be impossible to perform reconciliation between the empties register and the deposit account balance.

image010.jpg

6 Assign item categories for empties – settings for the exchange process:

image011.jpg

Here only the assignment for some of the item categories for the process is displayed– you also need to assign the item categories for debit/credit memos (only for value fields update), free deliveries and returns to get an accurate representation in the empties register.

7. You can maintain empties groups in case you wish to group several materials with the same deposit price for reporting and printing purposes.

 

How empties management works?

 

Empties update is performed at the time of billing document generation, when certain requirements are fulfilled.

  1. The billing type should be relevant for empties update. If it is not relevant for update, the billing document is stored in table /BEV1/EMLOGFS with LGOF = ‘F’ – suppression of update using billing type.
  2. The partner function for account holder should be present in the billing document. In case of missing partner function the document is recorded in table /BEV1/EMLOGFS with LGOF = ‘P’– suppression of update as partner not found.
  3. It is possible to restrict empties update for a specific customer by setting the indicator Empties Update from = ‘X’. Such billing documents are recorded in /BEV1/EMLOGFS with LGOF = ‘D’– suppression of update using indicator on customer.

image012.jpg

 

4. The material type of the item should be specified as empties material.

5. The item category for empties should be assigned to the fields for quantity/value.

When all of the prerequisites are fulfilled, the billing document items containing empties are stored in /BEV1/EMLGBDP with the Q and V fields updated with the logic from the empties matrix and the pricing data of the document, reference documents for the billing, billing date etc.

In addition the data from V and Q fields is stored in aggregated form in /BEV1/EMLGBSD – per account holder, month and material number. It is used to prepare empties balance confirmations for the customer and for internal reporting purposes.

Calculation example:

  image013.jpg

ZAR is excluded from the calculation based on material type.

ZAI and ZRU are checked against the assignment to empties fields.

ZAI should update Q1 and V1.

ZRU should update Q2 and V2.

Q1, Q2, V1 and V2 are part of the formulas defined in /BEV1/EMMATRIX_V (calculation matrix for empties).

ZAI updates V13 – difference del./returned value

As V13 is part of the calculation of V14 – individual price /vs quantity, we are updating it as well, similar logic for V16 – total value for delivered empties in the new period.

ZAI also updates quantities – Q13 for calculating difference between returned and delivered,

Q16 total delivered quantity for the new period; it influences the result in V14 (also in the quantity part of the calculation).

Result in /BEV1/EMLGBWDP for RECHNR = billing document number:

  image014.jpg

In addition to the empties account holder number, the payer, ship-to and sold-to parties are also recorded in the table, which allows performing also detailed analysis for empties transfers.

Updates in /BEV1/EMLGBSD:

For each combination of empties partner, sold-to, ship-to, bill-to, payer and material number for a specific sales area a separate line is recorded per period (MMYYYY).  There are separate V* and Q* fields for the balances of the old and new period. My customer is a new one, so I have zeroes for the old periods (non-zero values only in TO* (total) and BN* (new balance) fields:

  image015.jpg

Note: Empties tracking in general will not work very well with the standard approach for Advanced Returns Management, since it relies on billing documents for empties register updates. Still it is possible to record the returned containers by using a dedicated billing type without FI postings (with the assumption that ARM is used as originally intended – returning of products  from the customer for the finished product (e.g. due to quality issues) and not for value adjustments of the returnable containers).

 

Empties management functionality observations

 

The good part:

It is extremely easy to set up empties management update in SD and fulfill the customer requirements – you need:

  • to understand the different properties of item categories in the sales processes (basic SD knowledge);
  • knowledge of basic arithmetic operations (skill obtained during 1st -2nd  grade at school)
  • only the standard authorizations granted to functional consultants.

A nice ALV report for empties balance (most users prefer this type of representation).

Balance confirmation printout - SAPScript is delivered by default, it is technically possible to use a smartform or a PDF form as well for empties balance confirmation (with an additional development).

Archiving functionality is provided.

It is easy to correct the empties balance in case the reason is a missing partner or incorrectly assigned/not assigned item category.

Despite what the name suggests, you can use this functionality to track not only returnable containers, but also all kinds of fixed assets at the customer’s premises without having equipment master data in the system.

 

The bad part:

The idea behind and the functionality for empties tracking is good, but does not have the look and the feel of a finished product. While most of the customers’ requirements could be covered by what is provided as standard, it would be good to have the option to switch on logging of empties update for a specific partner in the productive environment without flooding the database with thousands of records for all other partners (when you cannot reproduce some issue in the development client).

You cannot get empties update for NLCC originating documents per empties code without an additional development (because PO/STO BOM explosion is not provided in standard). It seems a strange design decision to deliver a sample BAPI for BOM explosion with hardcoded account assignments instead of providing some customizable logic that can be used out-of-the-box.

 

The really bad part:

In case you need to change empties calculation matrix after the initial implementation in the productive environment, the process is extremely difficult (when it is possible at all), not straightforward (you have to figure it out by yourself considering what you change, when-number of documents affected, archived data, usage of balance confirmations, what is the current and the future setup). Even SAP advises not to do that, because this will cause inconsistencies in the database.

In the unlikely (or not so unlikely, judging by the number of notes and available correction reports) event of corruption of the empties tables, the reconstruction process takes a lot of time, involves running several reports in a certain sequence with specific selections, you have to ensure that no empties updates occur in the meantime (this essentially means to stop all billing activities, which is considered as a serious business disruption).

605075 - Documentation for reconstruction Beverage empties tables

 

Q: Can we simply achieve this traceability with a list of all billing items with specific item categories in a SQ* query? You do not need a developer to do that.

A: Yes, but it will be slow, because the data is not aggregated. And you will not have balance confirmation printouts. It would be better to use BW for such kind of reporting instead of queries.

Q: Could this be achieved with LIS?

A: Yes. You will still need a developer to produce some professionally-looking balance confirmation forms, though. The forms are quite simple, so the effort estimation will not be really high.

Q: Could this be done with a custom development instead?

A: Yes, you can create your own logic to populate z-tables, create reports and print balance confirmations that use the data from these z-tables, set authorizations for the new transactions, create service reports for the support team to fix potential problems etc. You will need to consider the archiving aspect and as well. Depending on the skill of the developer and the quality of the solution proposal, the end product could be a really great and reliable functionality. It will also be a very expensive one, which requires a lot of effort in development and testing. 

 

Master data specifics:

Customer master data:

‘Empties Update from’ should be ‘ ‘ – we do not need exceptions from empties update for any trade customers.

Credit master record exists with risk category maintained for the credit control area and document credit group with activated dynamic credit check.

Material master data:

FG – separate item category group for BOM-relevant materials in order to determine a different item category than TAN.

The implied empty uses LEER item category group.

The materials involved should be extended for the relevant plants and storage locations.

BOM setup:

There are 2 bills of material used for the process. Both are with usage 5 – Sales and Distribution.

FG BOM with implied empty code:

Material code – FG product, component – implied empty code for sorted bottles. For the implied empty we need to have quantity correlation.

image016.jpg

BOM for exploding the returned empty code:

  image017.jpg

Material code – sorted implied empty.

Item 1: the same material code for sorted bottles (recursiveness allowed = ‘X’).

In case the customer returns unsorted empties of the same size and the same deposit price, you can use a separate material code for the second BOM - then recursiveness is not needed.

 

 

Document processing:

Order entry:

Upon entering the material code of the FG, the implied empty and return empty are exploded with quantity dependent of the FG quantity.

Default view – 1:1 exchange

image018.jpg

Processing variant 1: first fill or no available empties for return – delete the ZRU item

 

Credit control:

In case of credit block the exposure is not updated at all.

In case of partial confirmation – the credit price for the FG is taken from the confirmed quantity, ZAI and ZRU with material 122 offset each other (so the fact that they are not relevant for ATP does not cause a problem for credit price).

image020.jpg

Delivery creation result:

  image021.jpg

Due to the correlation the quantity of material 122 is adjusted to the FG quantity.

As all items are relevant for delivery, the value from S066 (open orders) is moved to S067-OLIKW (open delivery quantity).

Only the FG is relevant for picking.

No specifics for this process related to transportation planning.

The process is intended to be used mainly in the context of paper-based DSD pre-sales scenario.

When selling products directly from the plant there is not a very significant benefit of using such technique apart from the initial credit price calculation, since the warehouse personnel could update directly the actually returned containers as a manual item in the outbound delivery upon customer arrival, post goods movement and handle the final invoice.

 

Delivery execution:

In the DSD process at shipment completion no material documents are posted.

Shipment output DSDP is used to trigger the printouts of the outbound deliveries, which are assigned to proforma billing type (this is used to print valuated delivery notes, which in case of no changes to the delivery execution are the ‘official’ documents received by the customer.

The proforma billing types are excluded from updating the empties register.

 

Route settlement:

The settlement clerk receives copies of the valuated notes signed by the driver and the customer, which serve also as acceptance protocols. In case of changes to the delivery quantities indicated on the printed documents, the items are updated manually in the delivery execution tab.

During FSR (final settlement run):

  1. New orders are created or the original orders are updated (for example the billing block is reset, new items are added – depending on the settings of the determined customer sales transaction type). For my case the original orders are updated with correction items and the billing block is reset.
  2. New deliveries for correction postings are created.
  3. Goods movement is posted for all selected deliveries (original and new).
  4. Billing is executed.
  5. In case of cash collection clearing is also performed.

At point 4 the empties register is updated.

Important note on DSD CSTT determination – with sap note 1701162 - Incorrect processing of returns items SAP changed the logic for determination of whether a delivery item change should be treated as an increase or decrease and considers /DSD/HH_RADELIT-TA_CODE values (which affects the customizing related for RC exchange).

Related sap notes for DSD:

1819489 - Incorrect processing of new returns items

1823436 - No customer sales transaction type for new items

1971555 - DSD: Incorrect processing of new returns items

 

Billing:

image022.jpg

  image023.jpg

Reporting for returnable containers:


Balances for the deposit account (FS10N):

image024.jpg

Empties evaluation report (/BEV1/EMS):

image025.jpg 

 

Details per account holder/material:

  image026.jpg

Documents without empties update (table /BEV1/EMLOGFS)

 

The table can also be used as a basis for creating a query with an optional authorization check per sales area. It is used in case discrepancies are discovered between FS10N and /BEV1/EMS.

  image027.jpg

In the example all documents with billing type IV are excluded from empties update based on the customizing settings for empties update. Billing document 90038179 is not updated because of missing empties partner (the customer was not added yet to the customer hierarchy at the time of billing document creation).

 

Process variant 1: No agreement for empties exchange (yet) with some of the customers


As the company does not have a unified approach for a specific process, this will be at the cost of additional master data maintenance. It is possible to create a separate document type, but it will result in additional effort for setup (including the adjustment of authorization roles) and a higher learning curve for the employees. Even in the case of pure custom development to check for a specific customer property there should be some criteria in the master data or a z-table that somebody maintains and reviews.

 

  1. Create a new item usage – ZNEX – No empties exchange.
  2. Create a new item category for the FG as a copy of ZAR and change only the structure scope:

image028.jpg

 

3. Set up item category determination:

image029.jpg

4. Create customer-material info record and set only the new item usage:

image030.jpg

  As a result: during sales order creation the information is first read from the CMIR (setting in VOV8 Read infor record = 'X'). Usage ZNEX is determined and we get ZARX for the finished good and only ZAI for the implied empty.

 

Process variant 2: Empties exchange process is acceptable only in some of the locations


Some distribution centers do not have a dedicated warehouse to store empty crates. This means that the agreement for empties exchange can be valid only when the customer orders from a production location or a DC, which can store the returned empties.

When creating the BOMs for the plant, maintain only the first BOM (for the FG and implied empty).

Note: in case of CRM order creation, the approach cannot be used, because you can have only one BOM per product.

Viewing all 69 articles
Browse latest View live


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