Inventory management

  1. Goods movements 
    • Goods issue 
    • Transfer Postings and Stock Transfers
    • Goods Receipt (03.11.2021)
  2. Reservation
    • 519580 - FAQ: Reservations
  3. Stock inconsistency and how to fix it?
    • Inventory management 
    • Handling units
    • WM vs IM
  4. Negative stocks ( 01.10.2021 )
  5. Special stock types
  6. Additional information
    • 1985306 - Performance guide for goods movements
    • 3023744 - S/4: sales order/project stock postings into non-valuated GR blocked stock - special stock fields usage in table MATDOC
    • 2699406 - MIGO: Automatic setting of the inward delivery completed indicator for a variance in timely consumption
    • 100690 - Inconsistencies with EKET-GLMNG, EKET-WAMNG, and EKET-WEMNG
    • 115899 - Correction Report for Subcontractor Requirements
    • 520000 - FAQ: Valuated special stock
    • 1598760 - FAQ: MSEG extension & redesign of MB51/MB5B
    • 2689573 - Available business scenarios and their
    • 2420247 - Goods Movement types
    • 1985306 - Performance guide for goods movements
    • 540392 - FAQ: Automatic goods movements
https://help.sap.com/saphelp_me61/helpdata/en/9e/64bd534f22b44ce10000000a174cb4/frameset.htm


Special stock types

(E) Individual Customer (Sales Order) Stock 

Individual customer (make-to-order) stock is managed in WM using a special stock number and the special stock indicator E. The special stock number is made up of the sales order number (10 digits) and the sales order item (6 digits).

(B) Customer Stock

Unevaluated stock of spare parts that the customer sends to the service provider for the repair of a customer aircraft or component. Customer Stock belongs to the customer.

All you need is a PP order with a BOM having a component with Material Provision Indicator = K.

Once the PP order is created and BOM is exploeded this set up will ensure that the Preq is created with an account assignment likning to the production order and item category C.

So the process will go as follows:
  1. Sales Order for a FG material
  2. PP order is generated to cover the SO requirement - BOM is exploded and Preq with Acc.assignment and item category is generated too.
  3. PO is created from the Preq
  4. GR into customer stock - (the material may be non-valuated since it belongs to the customer)
  5. production and component consumption posting
  6. GR of a FG material

Goods movements

Goods issue options and effect 

Options for posting goods issue:
  1. Goods Issue Posting for individual outbound deliveries
  2. Goods Issue in Collective Processing to post goods issue for multiple outbound deliveries
  3. Goods Issue in Collective Processing for posting goods issue for multiple outbound deliveries in the background without manual intervention
  4. Posting Goods Issue for an Entire Shipment

When you post goods issue for an outbound delivery, the following functions are carried out on the basis of the goods issue document:
  1. Warehouse stock of the material is reduced by the delivery quantity
  2. Value changes are posted to the balance sheet account in inventory accounting
  3. Requirements are reduced by the delivery quantity
  4. The serial number status is updated
  5. Goods issue posting is automatically recorded in the document flow
  6. Stock determination is executed for the vendor's consignment stock
  7. A worklist for the proof of delivery is generated
  8. A worklist for the proof of delivery is generated

Stock Transfers

Stock transfers can occur at three different levels:
  1. Stock transfer from company code to company code
  2. Stock transfer from plant to plant: if both plants are assigned to different valuation areas, an accounting document is also created. This type of stock transfer can only be carried out from unrestricted-use stock of the issuing plant to unrestricted-use stock of the receiving plant.
  3. Stock transfer from storage location to storage location (in the plant): A stock transfer from storage location to storage location is possible for all stock types.
Transfer postings differ from stock transfers, in that transfer postings are not connected with a physical goods movement. They usually involve a change in stock type, batch number, or material number.

Stock Transfer Procedures
  1. Stock transfer via stock transfer posting using the one-step procedure
  2. Stock transfer via stock transfer posting using the two-step procedure
  3. Stock transfer using a stock transport order

Goods Receipt

  1. Goods receipts with reference to a reservation
  2. Goods receipts with reference to an order
  3. Other goods receipts
    • Initial Entry of Inventory Data
    • External Goods Receipts Without a Purchase Order
    • Internal Goods Receipts Without a Production Order
    • Goods Receipt of By-Products (?)
    • Delivery Free of Charge
    • Returns From Customer
Planned goods receipts:
  1. planned goods receipts using purchase orders
    • Latest Possible Delivery Date
    • Planned Delivery Date or Week
    • Shipping Instructions
    • Minimum Remaining Shelf Life
    • Information Contained in the Shipping Notification
    • Batch
  2. planned goods receipts using production orders
    • Plant
    • Material and Quantity
    • Underdelivery and Overdelivery Tolerances
    • Planned Delivery Date
    • Destination of the Goods
    • Stock into Which the Goods Should be Posted
  3. planned goods receipts using reservations

Movement types


Proof of Delivery

Proof of delivery (POD) is an instrument involved in business processes in which an invoice is issued only after the customer has confirmed the delivery's arrival. 

In addition to the proof of delivery itself, you can also record the POD date, POD time, the actual quantity that arrived and the reason for possible differences in quantities. This is especially important for deliveries in which the delivery quantity varies because of the nature of the goods or for which the exact delivery quantity is unknown from the start.

Customizing:
  1. Define for each delivery item category whether it is relevant for the POD process .
  2. Define reasons for deviation .
Automatic confirmation: 
The ship-to party transfers the proof of delivery to the SAP System via IDoc from another SAP System, an external system or via Internet. In this way, the quantities are verified for the delivery. Multiple verification is only possible if the outbound delivery has not yet been completely confirmed.
The current proof of delivery situation is reflected by the POD status: POD-relevant, Deviations reported or Confirmed .

Proof of delivery uses IDoc DELVRY03, although if deviations occur, the delivery proof segment (E1EDL53) in delivery item E1EDL24 and the segments in delivery header E1EDL20 must be filled in.
  •  In this segment, the ship-to party enters the deviation reason, the deviation quantity and the delivery unit or stockkeeping unit and the corresponding unit of measure. You can carry out a proof of delivery more than once for the entire delivery (if differences were entered incorrectly during the first verification, for example). However, if all items of a delivery were recorded in the first verification with no deviations from the shipping notification, POD confirmation occurs automatically. In this case, it is not possible for the ship-to party to make multiple verifications. If there are no deviations, you must fill in segments E1EDL20 and E1EDL24.

Additional information

1985306 - Performance guide for goods movements

With parallel goods movements, the system often issues error message M3 024: "Valuation data for material & is locked by the user &" or M3 023: "Plant data is locked by the user &", and you would like to find out more about what is behind these error messages.

This guide provides information on how the block needed from a business point of view works in relation to the use of the late, exclusive block (late block) with goods movements, and identifies performance optimization opportunities, particularly with respect to goods issues.

1) The late block for goods movements

You can use transaction OMJI or the Implementation Guide (SPRO), using the path "Materials Management -> General Settings for Materials Management -> Set Material Block for Goods Movements", to carry this out.

The late block with goods movements specifies that a material is not always blocked exclusively. It is blocked exclusively only when you actually want to save the data, in order to keep the block time as short as possible. The advantage of this process is that several users can enter goods movements simultaneously because when you enter a movement, the system only sets a shared block for the material.

To begin with, you can leave the waiting time of the late block at the default value of 10 seconds. The waiting time for the late block specifies the number of blocking attempts permitted before the system rejects the goods movement with a block error. When the late block is activated, the system attempts to block the material master record data directly before the update starts. This is necessary in order to ensure that postings are consistent.

If it is not possible to set the block because, for example, another user is currently carrying out an update process with the same material, the system waits for a second and then attempts to set the block again.

A higher value for the waiting time means that the system rejects fewer good movements. However, the waiting time for the user may be longer.

The late block is mapped on the central lock server via the lock objects EM07M for the quantities, EM07W for the values and EM07C for the batch valuation. In this case, the master tables (for example, MBEW, MARC) have a shared block only.

2) The late block for the material master

You can use transaction OMT0 or the Implementation Guide (SPRO), using the path "Logistics - General -> Material Master -> Make Global Settings", to set this block.

If the indicator for the shared block is set in the material master, plant and valuation data (table MARC or MBEW) is not blocked exclusively in material master maintenance - this data is subject to a shared block. The advantage of this is that you can perform goods movements at the same time as material master maintenance, as long as you do not change any valuation-relevant or inventory management-relevant fields (for example, base unit of measure, batch management requirement indicator, valuation category or price unit) in material master maintenance.

If you try to change a valuation-relevant or inventory management-relevant field, the system reacts as follows:

It blocks the plant and valuation data in material master maintenance exclusively in order to prevent simultaneous goods movements.
It reads the plant and/or valuation data from the database again because it is possible that it has changed due to a goods movement between the beginning of material master maintenance and changing the affected field.
If a goods movement takes place or has taken place simultaneously or directly beforehand, the system does not perform the required change and issues a message. If this happens, try to change the data at a later time.

3) The late block for invoice verification

You can use the Implementation Guide (SPRO), using the path "Materials Management -> General Settings for Materials Management -> Set Up Material Block for Invoice Verification", to make the setting.

In this step you determine the time when materials in invoice verification are blocked:

During the assignment phase, the system blocks all the materials in the invoice.
With simulation/posting, the system blocks and reads the materials whose stock needs to be changed.
The system blocks and reads the materials whose stock needs to be changed only during posting.
With direct posting to the material, the system blocks the specified material in all settings immediately.

If you often post invoices parallel to goods movements, resulting in overlapping blocks, you can then set the block to come into effect with the simulation/posting only.

4) Price control and the effects on the late block

Use "S" price control for materials that you would like to post in parallel very often. During calculation of the values for the accounting document, it is always imperative from a business point of view to block the material (or the material assessment with the lock object EM07W) exclusively for a certain period. If the goods movement changes the ratio between the stock value (MBEW-SALK3) and the valuated stock (MBEW-LBKUM), the moving average price is adapted or changes have to be made to the previous period in a similar way, then an exclusive block is set until the V1 update is completed. If you use the "S" price control, the probability that the late, exclusive block is replaced by a shared block before the update begins is significantly higher than if you use moving average price control because the quantity/value ratio will probably not change. However, you must bear in mind that with "S" price control, the system valuates the material with the statistical moving average price in parallel as well. This means that, based on the statistical total value in alternative price control (MBEW-SALKV), the system creates a quantity/value ratio in relation to the quantity (MBEW-SALK3) in the same way. If this is influenced by the current update, it also results in the exclusive value block not being converted into the shared block before the update. In this way you definitely ensure that the statistical moving average prices are maintained correctly and checked periodically. Alternatively, SAP Note 139176 contains a report that you can use to set the statistical moving average price to the current standard price.

You must also bear in mind that if, with a goods receipt, an external value (for example, from the purchase order) is specified that affects the quantity/value ratio of the statistical moving average price, the exclusive block is then compulsorily kept until the end of the V1 update program. Try to optimize your processes to ensure that, during peak times, you do not post goods receipts parallel to goods issue postings, in order to attain maximum goods issue performance.

5) Performance optimization of customer-defined program source code

Ensure that, within the function modules MB_CREATE_GOODS_MOVEMENT and MB_POST_GOODS_MOVEMENT, you do not use any customer enhancements that cause an increase in the overall runtime (ABAP statements LOOP, SELECT). In addition to the exits & BAdIs in inventory management, this also includes implicit/explicit enhancements and the output determination conditions.

You can use transaction SE95 or the report SNIF to find activated exits/BAdIs. You can use the report MBFINDENHS to find enhancements (restriction to customer namespaces (for example, Z*) is advisable).

Using a performance trace (transaction ST12 - see SAP Note 755977), you can also record the goods movement process and check all the activities between setting the exclusive value block (EEM07WE) and possibly converting it into a shared block for loss of performance.

6) To be borne in mind by SAP SCM APO with late block for goods movements

Bear in mind the application-specific settings for the integration with APO in the integration guide under "Integration with Other SAP Components -> Advanced Planning and Optimization -> Application-Specific Settings and Enhancements -> Settings and Enhancements for Stocks -> Read Stock Values Before the Transfer to SAP APO".

7) Optimization of the database update for the tables MBEW, MARD and MCHB

SAP Note 1737609 makes it possible to move the database lock for the update to the tables MBEW, MARD and MCHB in the update program to a later time. This is helpful if several processes on the database compete for blocking a data record/tuple of a table. In transaction OMJI or using the Implementation Guide (SPRO), use the path "Materials Management -> General Settings for Materials Management -> Set Material Block for Goods Movements" to activate the late database update. The system then performs the table updates only at the end of the update program, thus significantly reducing the total blocking time on the database for the data records involved, and therefore speeding up the parallel postings in the update program.

8) Individual fine tuning

If you have performed the above changes, it is advisable to use a mass test to determine the optimum waiting time/the number of blocking attempts from Point 1. There are no general recommendations for this because the value depends to a large extent on the type and constellation of the postings. Try to determine the best value in a realistic scenario by starting with a low value of 10 seconds and increasing it slowly until the terminations due to blocks decrease. In principle, you can increase the time to a maximum of 999 seconds. However, bear in mind that this significantly increases the time a dialog user waits until the block error, and that the runtime of the background job also increases. You should therefore also adapt this value in line with the maximum resources available to you.

If you would like to differentiate between the waiting time of a background user and a dialog user because, for example, the dialog user is to receive a block error after only 10 seconds but the background user is only to receive one after 180 seconds, you can use the BAdI in SAP Note 1840264 to achieve this. Also see the information in this SAP Note.

9) Special optimization with goods movements via delivery

If you post several parallel goods movements for a material in the same plant via several individual deliveries (transaction VL02N, VL32N or derivatives of them, such as BAPIs, IDocs), you can use the solution from SAP Note "1776807 - Performance improvement for GI parallel processing" to reduce the exclusive block time of the material. The SAP Note changes the processing sequence in the delivery update so that the decision to convert the exclusive value block (EM07W) to the shared block happens earlier which, in positive cases, results in the block being converted significantly earlier than before. One cause of long block times in a delivery could be, for example, an extremely excessive condition technique in delivery output determination. A performance trace, as described in Point 5, can provide information on this.

10) Blocks when using batches for goods issue

You are to post to the same batch in the event of parallel goods movements. Although the late block for goods movements has been activated (transaction OMJI), the system issues the message M3682 "Batch & of material & is already locked by &". Batches are all exclusively blocked. SAP Note 1501121 provides a BAdI that you can use to control the shared lock for goods issue with batches. You may use the BAdI only if the business processes are coordinated in such a way that, during the goods movements, it is not possible to change batch data or classification data. This is because the shared block that is now set means that a simultaneous change cannot be prevented. The last save then applies.

However, the transaction for the batch master (MSC2N) is an exception; this means that an exclusive block is still set that then also prevents a parallel goods movement.

For transaction MIGO, you should additionally observe SAP Note 1523750, which is to be implemented in analogy to SAP Note 1501121 as the MIGO has an additional logic of its own for rejecting batch blocks.

11) Locks for goods movements in SAP S/4HANA

Important: All the following SAP Notes are consulting notes. The instructions they contain must always be executed manually. Even if an SAP Note contains assignment to a support package, the manual activities always apply generally for all S/4HANA releases from On Premise edition 1610 or higher.

a) Posting without exclusive quantity/value lock
The lock logic in SAP S/4HANA has been completely redefined and, therefore, an option is available with SAP S/4HANA On Premise edition 1610 that enables no exclusive lock to be set with the late lock behavior. For more details, see SAP Notes 2319579 and 2267835. The new option for the late lock is activated by the report SAPRCKM_NO_EXCLUSIVELY_LOCKING if you have not done so yet.

b) Reduction of the runtime of a posting using pre-compaction
If you experience problems with the performance during the posting of goods movements, in particular with direct or indirect accesses to the tables MATDOC_EXTRACT or ACDOCA_M_EXTRACT, perform pre-compaction as described in SAP Notes 2246602 and 2342347 as a high priority. Pre-compaction is executed accordingly with the report FML_ACDOCA_M_EXTRACT_PRECOMP or NSDM_MTDCSA_PRECOMP.

540392 - FAQ: Automatic goods movements

1. Question: When I confirm using the single entry transactions, why do I get a message about the number of successfully posted goods movements, but not when I confirm using the collective entry transactions?

Answer: As of Release 4. 5, the goods movements of the collective entry and the BAPI confirmation, of mass processing, or of the dependent goods movements are executed in the update program and not in the dialog. As a result, the system cannot issue a message. Also refer to SAP Note 515656 for this.

2. Question: Why is the goods movement overview not ready for input when canceling a confirmation and when postprocessing incorrect goods movements from confirmation cancellations?

Answer: As of Release 4. 6, a document reversal is executed. The system always cancels what was updated by the confirmation to the material document. Therefore, changes are no longer required on the goods movement overview. For more information, see the related SAP Notes 527361 and 514482.

3. Question: In Customizing for the confirmation (transaction OPK4), I have set the error handling if there are incorrect goods movements. However, during confirmation cancellation, no error handling is provided even though there are incorrect goods movements.  The system also does not provide error handling when posting confirmations via the collective entry or via BAPI and when updating dependent goods movements of collective order processing.

Answer:  As of Release 4.6, goods movements of the cancellation are always executed in the update program; as of Release 4.5, goods movements of the direct production assembly from collective orders are always executed in the update program. Therefore, the system displays neither an error handling nor a message about the number of successfully posted goods movements.

4. Question: Is a termination possible in the case of incorrect goods movements for a reversal in the standard system?

Answer: Yes. For this, you must set the flag for error handling in Customizing transaction OPK4 as well as the flag for termination in the event of incorrect goods movements. The system then displays the error message in transaction CO13, the reversal is then terminated.

5. Question: During the confirmation cancellation, goods movements "disappear". They are neither posted successfully nor are they in transaction COGI under the incorrect goods movements. How can I find the goods movements?

Answer: As of Release 4. 6, the goods movements of the reversal are always executed in the update program. If there are locks, no error record is generated, but instead a request is generated for a later update because the system assumes that the lock is only temporary. These requests can be found for the confirmation or for the order with transaction CO1P. In addition, refer to SAP Note 313985, symptom 1.

6. Question: How can I prevent COGI records during the confirmation?

Answer: For the transactions that can execute the goods movements online, there is an option if error handling is activated: As long as you answer the dialog box with the SAP Note about incorrect goods movements with "Cancel", the overall confirmation is terminated. However if you answer with "No", COGI records are generated.
As of Release 4. 70, there is a customizable setting for generating a termination for incorrect goods movements.

7. Question: When do I receive a dialog box to enter the date of manufacture or the shelf life expiration date for the goods receipt and when do I not?

Answer: Refer to SAP Note 567522, which contains detailed information.

8. Question: I frequently use the unit of measure "Piece" for goods movements. How is this unit of measure rounded and which setting options do I have?

Answer: Read SAP Note 359621 carefully.

9. Question: I receive negative stocks for collective order processing with dependent goods movements if the storage locations are WM-managed. Why?

Answer: Read consulting Note 514131.

10. Question: How can an automatic goods receipt be achieved for co-products?

Answer: This function is available up to and including Release 600 Enhancement Package 5, not in the SAP standard system. For details about this, refer to SAP Note 38108. With Release 600 Enhancement Package 6, the enhancement LOG_PP_CI_1 is delivered, which enables an automatic goods receipt for co-products. You can find details about this in the documentation for this enhancement.

11. Question: The system does not perform automatic goods receipt for co-products. What could be the cause of this?

Answer:
Note the following restrictions:
In the case of confirmations for collective orders, the system does not support automatic goods receipt for co-products for subordinate orders. The use of WIP batches in the confirmation also does not support the automatic goods receipt of co-products

In all other cases, check the following points:
- The indicator for automatic goods receipt must be set in Customizing (transaction OPK4 or OPK4N).
- In Customizing for the message type (transaction OPJB), the message C6 040 must not be set as a warning or error.
- The order must contain only one operation with a control key that has the attribute "Automatic Goods Receipt".
- The co-product must be assigned to the last operation.

If the system still does not perform goods receipt, check whether IS Mill is active in your system. If so, use Customizing for the confirmation parameters (transaction OPK4 or OPK4N) to assign a process control key with the attribute "immed. in update task" or "later in background" for "Auto. GR" and "Backflush".

12. Question: When posting confirmations with automatic goods movements using mass processing COHV, the collective entry CO12/CORR via confirmation BAPIS, confirmations via the PDC interface, or when saving requested confirmations with CO1L or predefined goods movements with CO1P, the goods movements are processed incorrectly and the system issues error M7 120 or M7 121 although the user has the authorization for the corresponding transactions. If the goods movements are not processed incorrectly, I receive the goods receipt and goods issue items on separate material documents. Why?

Answer: For separated goods movements, that is, goods movements that are posted in the update program or via requests, only one transaction code can be specified due to technical reasons. This is always COGI. Therefore, this user must also have an authorization for COGI; otherwise the goods movements are processed incorrectly.

Also for technical reasons, goods receipts and goods issues must be transferred in separate packages of inventory management. This leads to the different material documents.

13. Question: Despite successful goods movements, the material document is not updated in the field AFRU-WABLNR. Where do I find the document number?

Answer:  As of Release 3. 1H, the system provides the reference from confirmation to material document via table AFWI. The system still uses AFRU-WABLNR only for header confirmations or confirmations for an individual operation. With milestone confirmations or with separate goods movements, that is, goods movements that are posted in the update program or via requests (BAPIs, collective entry, mass processing, BDC/PDC), table AFWI is always provided due to technical reasons.

14. Question: During postprocessing of incorrect goods movements with transaction COGI, I see error messages that I do not understand or for which I do not see any option for postprocessing. How can I proceed?

Answer: Check whether the error message is described in SAP Note 545749 and/or ask your responsible SAP consultant.

15. Question: When posting confirmations with automatic goods movements via mass processing COHV, the collective entry CO12/CORR, via confirmation BAPIs, or when saving requested confirmations with CO1L or predefined goods movements with CO1P, the printouts (goods receipts/issue slips) are not generated according to Customizing of the transaction executed in each case.

Answer: Since the original transaction code (COHV, CO12, and so on) is no longer available when you post the separated goods movements (posting in the update program in a separate process) due to technical reasons, the system uses transaction code COGI instead by default. Therefore, it is necessary that you also set up Customizing for the print control correctly for transaction COGI.

16. Question: You post a final confirmation with a quantity of 0. As a result, the components of the order are assigned the final issue indicator (the content of the field RESB-KZEAR is set to "X") even though COGI entries still exist for this order and this material.

Answer: The behavior corresponds to the SAP standard system. For a final confirmation with quantity 0, the system sets the final issue indicator and does not check whether postprocessing records still exist in the COGI or whether future change records still exist. To avoid these situations, we recommend that you process postprocessing records and future change records as quickly as possible and that you schedule the report CORUPROC, for example, regularly.

17. Question: You enter a partial confirmation for a production order that has a component quantity with backflushing flagged and that is defined as a fixed quantity. The component quantity is not adjusted proportionally here.

Answer: The behavior corresponds to the SAP standard system. If a component is flagged for backflushing and the "Fixed Quantity" indicator is set, the quantity of these components is not adjusted proportionally for a partial confirmation. The "Final Issue Effected" indicator is not set. Remove the "Fixed Quantity" indicator if you want to adjust the quantity for a partial confirmation.

18. Question: Despite the "All Components" flag in confirmation Customizing (OPK4), the system posts the components only if you go to the goods movement overview in the confirmation.

Answer: This behavior corresponds to the SAP standard system. With the "All Components" flag in Customizing, the system also displays the components that are not backflushed in the goods movement overview to which you have to navigate. If you do not call the goods movement overview, the system posts only the components that are to be backflushed.

19. Question: When is the indicator "Final issue" (KZEAR) set for the reservation?

Answer: In this case, you must differentiate between two different scenarios.

Goods movements are posted in the dialog
If the goods movements in the confirmation are posted in the dialog, the indicator "Completed" (COWB_COMP-ENDKZ) is set automatically if a final confirmation is posted. The indicator can be reset manually or be influenced via user exit or BAdI.
If it is not reset, it is transferred to inventory management (MM) and activated in the reservation. There is no automatic adjustment by inventory management. Accordingly, the indicator is displayed in the confirmation (transaction CO14 or CORT) and in the order.
Goods movements are posted separately
The decoupled posting of the goods movements occurs during mass processing, collective entry, confirmation via BAPI, or if it is defined this way with a corresponding process control key. SAP Note 208477 contains further information about this.
If the goods movements are posted separately, the system always creates data records in the table AFFW. The logic for the posting of the AFFW records differs from the posting of the goods movements in the dialog: Here, inventory management decides whether or not the "Completed" indicator is set. After successful posting of the goods movements, the system executes the final issue or the final delivery if the operation or order that belongs to the goods movement is finally confirmed.
This logic was implemented with SAP Note 123458.
20. Question: I frequently experience terminations with the error MESSAGE_TYPE_X, error RU803/RU805. What can I do?

Answer:
In general, the termination does not occur due to a program error. The settings for posting the goods movements or the scheduled jobs in relation to this are the cause.
There are no settings that provide an optimal approach for every data constellation. We therefore recommend that you speak to a PP consultant.

In general, the termination occurs if a process that writes AFFW data records is started when another such process is already active.
Which processes are these?

Reports CORUPROC, CORUAFFW, CORUPORC1, CORUAFWP
Manual posting in COGI, CO1P, CO16N
Goods movements from the subsystem if the "Immediate Update" indicator is active in transaction CI41.
Goods movements via confirmation with immediate process control in update mode
Scheduled jobs and these processes must be reconciled in such a way that no overlaps exist.
Some basic recommendations:

If goods movements are posted using a BAPI, the goods movements should be posted in completely decoupled form. SAP Note 208477 describes the settings.
If you use a subsystem (PDC, interface) to post goods movements, the "Immediate Update" indicator may result in problems. Check carefully whether this setting makes sense for you. If you do not receive data from the subsystem in packages, we generally advise that you do not set this flag and instead schedule the program CORUPROC1.
You should schedule the update of incorrect goods movements less frequently than the update of flagged goods movements. Therefore, you should not simply update everything using the program CORUPROC on each occasion.
SAP Note 2519125 introduces the new parameter P_OFFEST, which generally leads to a significant improvement. The scheduled jobs and processes should still be checked and the value of the parameter P_OFFSET in the used variants may have to be adjusted.


Reservation

519580 - FAQ: Reservations


1.Question: Can you define the storage location as a required entry field when you create or change reservations?
 In the standard SAP system, there is no option to define the storage location as a required entry field in transaction MB21 or MB22 using a field selection.

2. Question: What options are there for printing stored reservations?
Answer:
1) You can print all items of a reservation connected with one another using transaction MB26 (pick list) by choosing "Print" after entering a reservation number on the following overview screen.
2) You call the display reservation view using transaction MB23. After you have entered the required reservation number, you can create a hard copy of the screen by choosing the pushbutton to the very right in the toolbar. The following menu has the selection option for a hard copy.
3) Select the required item in the display reservation view. Use the path "Environment -> Reservation -> For material" to display an overview of all reservations for the selected material. By choosing "Print", you can now print the displayed reservations.
4) You can use transaction MB24 and MB25 to select reservations according to certain selection criteria. After you enter the selection criteria for the selection, you can choose "Print" on the following overview screen to print the selected reservation.

3. Question: Why does the system display the items that are flagged for deletion on the template when you create a reservation with a template?
Answer: That is the normal system behavior. When a new reservation is created with reference to a template, all items are copied from the template.

4. Question: Why is the movement type that is entered on the initial screen of transaction MIGO (goods movement), MB1A (goods issue), MB1B (transfer posting), MB1C (other goods receipts), and MB11 (goods movement) not transferred when there is a reference to a reservation?
Answer: Essential data that can be planned in advance using a reservation must not or cannot be changed anymore during the goods movement. Otherwise, reservations could not be used anymore for planning purposes.
This process is provided in this way because the intended purpose of the reservation should not be changed by an entry during the material issue.

5. Question: Why can some reservations of transaction MB24 and MBVR not be deleted or changed in transaction MB22?
Answer: The reservation is created automatically; that is, these reservations are reservations that were not created with the function MB21 and are not assigned to the requirements type 'MR'. Deleting reservations that were generated using other functions or applications must be managed or deleted with the management programs from these applications.

6. Question: Can you create reservations for two-step stock transfers?
Answer: There is no option to enter a reservation for a two-step stock transfer in the system. If the preplanning of a stock transfer is necessary in two steps, the stock transport order must be used. Otherwise, only the reservation remains for the one-step stock transfer with movement type 301 or with movement type 311.
 
7. Question: Why does the system issue only a warning message when the requirement quantity is exceeded in the case of a goods movement with reference to a reservation?
Answer: See SAP Note 200654.

8. Question: When you call the "To Reservation..." function and also specify a storage location in the case of a goods movement for a reservation (for example, MB11, MB1A), the entered storage location is not taken into account in the selection. Why does the system display all reservations, including those for other storage locations?
Answer: The dialog box for the "To Reservation..." function provides the following input parameters:
Reservation SLoc S By-Prds
_____________ ____ _ __ _ Extended selection
Material ____________
Cost Center ____________
Order ____________
WBS Element ____________
Network ____________
Asset ____________
Receiving Plant ____________
Receiving SLoc. ____________
Sales Order ____________
Plant ____________
Reqmt Date ____________
By-Products ____________

1.) The lower parameters of "Material to By-Product' are used to find reservations to which these selection parameters apply. If several reservations are returned, a full screen change occurs to the list output of the selected reservations.

2.) Following this, the parameters of the first line are analyzed:
a) Extended selection not selected:
Data not entered in the reservation can be used as default data; that is, if, for example, a storage location was entered in the first line and no storage location was maintained in the selected reservation, the storage location is copied to item processing.
b) Extended selection selected:
The parameters of the first line as extended selection parameters now restrict the data for the returned reservation.
Example:
A reservation was selected under point 1:
Reservation 1234
Item Plant SLoc. Qty
1 0001 0001 15
2 0001 0002 20
3 0001 0003 25
If storage location 0002 was entered in the first line, only the second item is proposed on the item entry screen. In addition, when "Extended sel." is selected, the system displays another dialog box where you can enter additional selection criteria for the selected reservation.

Therefore, the parameters of the first line refer to one reservation only: They refer to the reservation entered in the first line or the reservation that was found (selected in the hit list).

You cannot enter the storage location to display all reservations for this storage location. Only reservations with a receiving storage location (stock transfer reservations) could be selected in this way.


9. Question: Why are incorrect reservations displayed partially in transaction COGI and partially in transaction MB26 after being processed in transaction MB26?

Answer: In contrast to the PP pick list, the focus of transaction MB26 is on the selection and processing of open reservations. During the selection, no distinction is made between automatic and manually created reservations. However, since automatic reservations cannot be created within materials management, these are processed according to the processing logic of the PP pick list (transaction CO27).
For this reason, incorrect automatic reservations must be postprocessed using transaction COGI.
However, incorrect reservations that are manually created are displayed again by transaction MB26.
For more information about picking, see SAP Note 544520.

10. Question: Why can you make selections only using production orders and not using other order types on the initial screen of transaction MB26?
Answer: The main task of transaction MB26 is to create a pick list from reservations and production orders. The program was designed with regard to this task taking into account performance considerations. For this reason, you cannot make selections using other order types on the initial screen.

11. Question: On what basis does the system calculate the base date in transaction MBVR?
Answer: The date for deleting reservations is calculated from the entered base date minus a predefined number of days (default: 30 days). In Customizing "Default Values: Reservation" (transaction OMBN), you can define the retention period. The days that are subtracted from the base date are calculated using the working days of the plant calendar. If you have omitted, for example, Sunday as a working day from your plant calendar, this day is excluded from the calculation. This is the standard and desired behavior of the system.

12.Question: How can the receiving storage location and the receiving plant be changed in transaction MB22 in the case of transfer postings with, for example, movement type 301 or 311?
Answer: A change of the receiving storage location / plant is unfortunately not possible using transaction MB22, because this information is saved at header level of the reservation and therefore occupies a special°control function in the reservation. If you want to change this information, delete the reservation and create it again with a changed receiving storage location / plant.

 
13. Question:mHow can I prevent the requirement quantity from being changed if a quantity has already been withdrawn?
Answer: In the standard system, the quantity of a reservation item for a manual reservation can be changed at any time even if the reserved quantity has already been withdrawn. If you want to prevent this, you can use the BAdI MB_RESERVATION_BADI to implement customer-specific checks that prevent this.
 
14. Question: What option is there for Funds Management integration in the reservation?
Answer: Refer to SAP Note 1321375 for information about Funds Management integration in the reservation.

Stock inconsistency and how to fix it? 

HUM stock and WM stock are different

Use the report: RHU_STOCK_DIFFERENCES
It will post the inventory count difference (711, 712).

1871525 - Correction cases of stock inconsistencies between IM and WM

CaseIM stock levelWM stock levelAction to be done
A

0
100
0

-100
0
0

IM is correct (0 pc). LX23 cannot be used in case of negative WM stock.
1. Post GR of 100 pcs (WM will be correct)
2. Run the LX23 to correct the IM side.

B0
100
0
100
100
0
IM is correct (0 pc).
1. Run LX23 to correct the IM side.
2. Carry out a WM inventory (e.g. tcode LI01N).
C100
0
0
0
WM is correct (0 pc).
1. Run LX23 to correct the IM side.
D0
100
100
100
WM is correct (100 pcs).
1. Run LX23 to correct the IM side.
E200
250
150
100
150
150
Both of them are incorrect, 150 pcs is the correct stock level.
1. Carry out a WM inventory (e.g. tcode LI01N).
2. Run LX23 to correct the IM side.
F200
100
150
100
100
150
Both of them are incorrect, 150 pcs is the correct stock level (same case like "E").
1. Run LX23 to correct the IM side.
2. Carry out a WM inventory (e.g. tcode LI01N).
G0
150
50

-100
50
50

Both of them are incorrect, 50 pcs is the correct stock level. LX23 cannot be used in case of negative WM stock.
1. Post GR of 150 pcs (WM will be correct)
2. Run LX23 to correct IM side.

Package MB_INCONS  Analysis and Correction Reports for Inventory Management

Если же вы сейчас начнете запускать корректирующие отчеты или править напрямую в таблицах, так до конца и не разобравшись причин отклонения между ММ и FI, то вы просто получите в результате неконсистентность данных.
  • MBSTOCKS: Compare Stocks with Quantities of MM Documents 
  • MBFINDENHS: Find enhancements 
  • MBLABSTS: Lean Analysis for Both Stocks 
  • MBCKBSEGS: Search Manual FI Postings for Stock Accounts 
  • MBCKMDOCS Check Material Document: Completeness, Consistency
  • MBMATDOC Data Integrity Analysis for Inventory Management  
1618888 - How to deal with stock inconsistency?

Transaction MBMENU 

SAPRCKMU Consistency Check Between Material Master and Material Ledger

MBVALUES: Check Material Value Against FI Documents

 It shows differences between MBEW and FI-documents

MBTRAME: Check MARC-TRAME = Open GR/GI Quantity in PO History

MBMISSFI: Search for Missing FI Documents

MBMISSMMS

This report searches for existing FI documents without corresponding MM documents      

RM07MR51: Search for incorrect MBEW updates

MBENQMAT: Enqueue MARC entries during repair

MM/FI balance comparison ( get a GL account with the difference a stock account)

This report compares the totals of the values from the material masters with the balances of the assigned stock accounts.

We recommend running this report at regular intervals (for example, monthly or at the end of the year).

You can save the results of a run and evaluate the saved results at a later point in time. The result comprises the result of an MM-FI comparison of balances per company code for a checked period. It comprises at least one line with a stock account.

The system determines such cases by determining the stock accounts and their balances and comparing them with each other before and after the database selection. If differences are found here, the result of this run is unusable. The list output includes the column 'Postings'. If a difference between before and after is found, the line is marked with a stock account with postings.

Variances are now only shown in red: positive variances in bright red (instead of green as previously) and negative ones in dark red.

List of Stock Values RM07MBST

SAP offers a report which we should run periodically such as once per month or during the tasks of year end closing called List of Stock Values with transaction code MB5L / MB5W or program RM07MBST. This report compares the total quantity and value of a stock against the respective stock accounts assigned (BSX).

Variances can occur when:
  1. You enter postings to the stock account manually
  2. Stock account is used for postings other than for stock postings. The stock GL should only be used for BSX transaction key assignment
  3. The account assignment for stock accounts was changed during a productive operation, but the respective stocks however, were not deducted from the old account and posted to the new one (via 562 and 561 movement type respectively.

Analysis of conversion differences RM07AUMD

In SAP, you can maintain various unit of measures. This is by maintaining a Base Unit of Measure and alternative unit of measures. An example of alternative unit of measures are such as Goods Issue unit of measure, Order unit of measure, etc. When you perform a transaction, SAP will automatically convert all Uoms  to the Base Unit of Measure.

However, there may be times where conversion differences occur. There are 2 possibilities for this to happen.
1) When the Base Uom is a metric unit such as meter, litre, kilogram and the posting is made with a non-metric unit such as yard, gallon, pound
2) When the Base Uom is not the smallest unit of measure compared to the alternative unit of measures.

For this, run transaction MB5U or RM07AUMD to analyze and correct this conversion differences if any exist.

204393 - Inconsistencies between stocks of MARD and MBEW

The table MBEW contains the valuation data of the material, including the total stock and the total value. The table MARD contains the stock quantity of the stock management unit. These fields are updated with every goods movement.
Due to these frequent changes in the table, each update that does not lock the table correctly can cause a data inconsistency.

RM07KO01 - Stock consistency report

You use the stock consistency check report (RM07KO01) to check the consistency of your stock data at company code level, valuation area level, or material level. This allows the system to determine possible errors in your stocks in good time, before they cause greater problems.
The report provides the following functions:
For the table of stock values for anonymous stocks (MBEW), valuated sales order stock (EBEW), and valuated project stock (QBEW), the program checks if:
The quantity of the total valuated stock matches the total of the individual subordinate stock segments
The price specified corresponds to the value/plant quotient
There is a negative price when you have a positive quantity of a material
A negative value exists for a material when negative stocks are not allowed in Customizing
There is a value when the relevant material has a stock level of zero
In the case of split valuation, the program checks if:
The quantity of the total valuated stock matches the total of the individual subordinate stock segments
The total valuated stock for each material matches the total of the valuation segments
The program checks for each material whether a cost estimate number exists. This updates the index for the accounting documents for the material (table CKMI1).
In the case of materials subject to batch management, the program checks if the quantity of storage location stock matches the total of the individual subordinate batches.
If the material ledger is active, the program checks if the tables in Inventory Management correspond to the material ledger tables.
Note:
We recommend that you run this report at regular intervals, for example, monthly after the period closing, or during the tasks for year-end closing. Periodic processing -> Consistency check.

Negative stocks

Negative Stocks allowed can be activated at Valuation Area and Storage Location level. This is useful when the business wants to use the Physical stock although the Goods Receipt in the system is not yet happened due to any other reasons.

Negative stock balances can only result if they are allowed at the following levels:
  1. Valuation area level
  2. Storage location level
  3. Material level (plant data in the material master record)

Negative stock levels are already allowed for special stocks if negative stocks have been activated in the valuation area and for the special stock in question in the plant. You do not have to activate them in each material master record. 

You can have negative balances in stocks of the types Unrestricted and Blocked

Negative balances are possible in the following special stocks:
  • Vendor consignment (K)
  • Stock of material provided to vendor (O)
  • Consignment stock at customer (W)
  • Sales order stock (E)
  • Project stock (Q)
  • Returnable packaging stock at customer (V)
  • Returnable transport packaging (M)


 

Additional information

1985306 - Performance guide for goods movements

With parallel goods movements, the system often issues error message M3 024: "Valuation data for material & is locked by the user &" or M3 023: "Plant data is locked by the user &", and you would like to find out more about what is behind these error messages.

This guide provides information on how the block needed from a business point of view works in relation to the use of the late, exclusive block (late block) with goods movements, and identifies performance optimization opportunities, particularly with respect to goods issues.

1) The late block for goods movements

You can use transaction OMJI or the Implementation Guide (SPRO), using the path "Materials Management -> General Settings for Materials Management -> Set Material Block for Goods Movements", to carry this out.

The late block with goods movements specifies that a material is not always blocked exclusively. It is blocked exclusively only when you actually want to save the data, in order to keep the block time as short as possible. The advantage of this process is that several users can enter goods movements simultaneously because when you enter a movement, the system only sets a shared block for the material.

To begin with, you can leave the waiting time of the late block at the default value of 10 seconds. The waiting time for the late block specifies the number of blocking attempts permitted before the system rejects the goods movement with a block error. When the late block is activated, the system attempts to block the material master record data directly before the update starts. This is necessary in order to ensure that postings are consistent.

If it is not possible to set the block because, for example, another user is currently carrying out an update process with the same material, the system waits for a second and then attempts to set the block again.

A higher value for the waiting time means that the system rejects fewer good movements. However, the waiting time for the user may be longer.

The late block is mapped on the central lock server via the lock objects EM07M for the quantities, EM07W for the values and EM07C for the batch valuation. In this case, the master tables (for example, MBEW, MARC) have a shared block only.

2) The late block for the material master

You can use transaction OMT0 or the Implementation Guide (SPRO), using the path "Logistics - General -> Material Master -> Make Global Settings", to set this block.

If the indicator for the shared block is set in the material master, plant and valuation data (table MARC or MBEW) is not blocked exclusively in material master maintenance - this data is subject to a shared block. The advantage of this is that you can perform goods movements at the same time as material master maintenance, as long as you do not change any valuation-relevant or inventory management-relevant fields (for example, base unit of measure, batch management requirement indicator, valuation category or price unit) in material master maintenance.

If you try to change a valuation-relevant or inventory management-relevant field, the system reacts as follows:

It blocks the plant and valuation data in material master maintenance exclusively in order to prevent simultaneous goods movements.
It reads the plant and/or valuation data from the database again because it is possible that it has changed due to a goods movement between the beginning of material master maintenance and changing the affected field.
If a goods movement takes place or has taken place simultaneously or directly beforehand, the system does not perform the required change and issues a message. If this happens, try to change the data at a later time.

3) The late block for invoice verification

You can use the Implementation Guide (SPRO), using the path "Materials Management -> General Settings for Materials Management -> Set Up Material Block for Invoice Verification", to make the setting.

In this step you determine the time when materials in invoice verification are blocked:

During the assignment phase, the system blocks all the materials in the invoice.
With simulation/posting, the system blocks and reads the materials whose stock needs to be changed.
The system blocks and reads the materials whose stock needs to be changed only during posting.
With direct posting to the material, the system blocks the specified material in all settings immediately.

If you often post invoices parallel to goods movements, resulting in overlapping blocks, you can then set the block to come into effect with the simulation/posting only.

4) Price control and the effects on the late block

Use "S" price control for materials that you would like to post in parallel very often. During calculation of the values for the accounting document, it is always imperative from a business point of view to block the material (or the material assessment with the lock object EM07W) exclusively for a certain period. If the goods movement changes the ratio between the stock value (MBEW-SALK3) and the valuated stock (MBEW-LBKUM), the moving average price is adapted or changes have to be made to the previous period in a similar way, then an exclusive block is set until the V1 update is completed. If you use the "S" price control, the probability that the late, exclusive block is replaced by a shared block before the update begins is significantly higher than if you use moving average price control because the quantity/value ratio will probably not change. However, you must bear in mind that with "S" price control, the system valuates the material with the statistical moving average price in parallel as well. This means that, based on the statistical total value in alternative price control (MBEW-SALKV), the system creates a quantity/value ratio in relation to the quantity (MBEW-SALK3) in the same way. If this is influenced by the current update, it also results in the exclusive value block not being converted into the shared block before the update. In this way you definitely ensure that the statistical moving average prices are maintained correctly and checked periodically. Alternatively, SAP Note 139176 contains a report that you can use to set the statistical moving average price to the current standard price.

You must also bear in mind that if, with a goods receipt, an external value (for example, from the purchase order) is specified that affects the quantity/value ratio of the statistical moving average price, the exclusive block is then compulsorily kept until the end of the V1 update program. Try to optimize your processes to ensure that, during peak times, you do not post goods receipts parallel to goods issue postings, in order to attain maximum goods issue performance.

You can obtain more information on material valuation from SAP Education, course CA535, which is also available as an e-learning module: https://training.sap.com/course/ca535

5) Performance optimization of customer-defined program source code

Ensure that, within the function modules MB_CREATE_GOODS_MOVEMENT and MB_POST_GOODS_MOVEMENT, you do not use any customer enhancements that cause an increase in the overall runtime (ABAP statements LOOP, SELECT). In addition to the exits & BAdIs in inventory management, this also includes implicit/explicit enhancements and the output determination conditions.

You can use transaction SE95 or the report SNIF to find activated exits/BAdIs. You can use the report MBFINDENHS to find enhancements (restriction to customer namespaces (for example, Z*) is advisable).

Using a performance trace (transaction ST12 - see SAP Note 755977), you can also record the goods movement process and check all the activities between setting the exclusive value block (EEM07WE) and possibly converting it into a shared block for loss of performance.


8) Individual fine tuning

If you have performed the above changes, it is advisable to use a mass test to determine the optimum waiting time/the number of blocking attempts from Point 1. There are no general recommendations for this because the value depends to a large extent on the type and constellation of the postings. Try to determine the best value in a realistic scenario by starting with a low value of 10 seconds and increasing it slowly until the terminations due to blocks decrease. In principle, you can increase the time to a maximum of 999 seconds. However, bear in mind that this significantly increases the time a dialog user waits until the block error, and that the runtime of the background job also increases. You should therefore also adapt this value in line with the maximum resources available to you.

If you would like to differentiate between the waiting time of a background user and a dialog user because, for example, the dialog user is to receive a block error after only 10 seconds but the background user is only to receive one after 180 seconds, you can use the BAdI in SAP Note 1840264 to achieve this. Also see the information in this SAP Note.

9) Special optimization with goods movements via delivery

If you post several parallel goods movements for a material in the same plant via several individual deliveries (transaction VL02N, VL32N or derivatives of them, such as BAPIs, IDocs), you can use the solution from SAP Note "1776807 - Performance improvement for GI parallel processing" to reduce the exclusive block time of the material. The SAP Note changes the processing sequence in the delivery update so that the decision to convert the exclusive value block (EM07W) to the shared block happens earlier which, in positive cases, results in the block being converted significantly earlier than before. One cause of long block times in a delivery could be, for example, an extremely excessive condition technique in delivery output determination. A performance trace, as described in Point 5, can provide information on this.

10) Blocks when using batches for goods issue

You are to post to the same batch in the event of parallel goods movements. Although the late block for goods movements has been activated (transaction OMJI), the system issues the message M3682 "Batch & of material & is already locked by &". Batches are all exclusively blocked. SAP Note 1501121 provides a BAdI that you can use to control the shared lock for goods issue with batches. You may use the BAdI only if the business processes are coordinated in such a way that, during the goods movements, it is not possible to change batch data or classification data. This is because the shared block that is now set means that a simultaneous change cannot be prevented. The last save then applies.

However, the transaction for the batch master (MSC2N) is an exception; this means that an exclusive block is still set that then also prevents a parallel goods movement.

For transaction MIGO, you should additionally observe SAP Note 1523750, which is to be implemented in analogy to SAP Note 1501121 as the MIGO has an additional logic of its own for rejecting batch blocks.

11) Locks for goods movements in SAP S/4HANA

Important: All the following SAP Notes are consulting notes. The instructions they contain must always be executed manually. Even if an SAP Note contains assignment to a support package, the manual activities always apply generally for all S/4HANA releases from On Premise edition 1610 or higher.
  • a) Posting without exclusive quantity/value lock
    • The lock logic in SAP S/4HANA has been completely redefined and, therefore, an option is available with SAP S/4HANA On Premise edition 1610 that enables no exclusive lock to be set with the late lock behavior. For more details, see SAP Notes 2319579 and 2267835. The new option for the late lock is activated by the report SAPRCKM_NO_EXCLUSIVELY_LOCKING if you have not done so yet.
  • b) Reduction of the runtime of a posting using pre-compaction
    • If you experience problems with the performance during the posting of goods movements, in particular with direct or indirect accesses to the tables MATDOC_EXTRACT or ACDOCA_M_EXTRACT, perform pre-compaction as described in SAP Notes 2246602 and 2342347 as a high priority. Pre-compaction is executed accordingly with the report FML_ACDOCA_M_EXTRACT_PRECOMP or NSDM_MTDCSA_PRECOMP.

3023744 - S/4: sales order/project stock postings into non-valuated GR blocked stock - special stock fields usage in table MATDOC

You post a goods movement with reference to purchase order into/from GR blocked stock with reference to a sales order or project using one of the movement types 103, 104, 121, 124, 141 or 142 with the special stock indicators E or Q. You are wondering why the fields MAT_KDAUF and MAT_KDPOS (for sales order stock) or MAT_PSPNR (for project stock) are not filled in table MATDOC.

In the course of this development the fields MAT_KDAUF, MAT_KDPOS and MAT_PSPNR in table MATDOC (MSEG) are not filled when posting a goods movement with reference to purchase order with special stock E/Q into/from the non-valuated GR blocked stock.

The fields MAT_KDAUF, MAT_KDPOS and MAT_PSPNR are to be filled if you post an according goods movement with special stock E/Q related to an inventory posting (indicated by the field MATDOC-LBBSA_SID is not empty and usually resulting in transaction/event key BSX in the accounting document if the posting is valuated).

2699406 - MIGO: Automatic setting of the inward delivery completed indicator for a variance in timely consumption

You use the process with timely consumption for subcontracting from "Outsourced Manufacturing" . Component consumptions have already been posted "timely".

During the goods receipt in transaction MIGO, the inward delivery completed indicator with the setting "3 = Do Not Set" is proposed if the previously posted consumptions deviate from the planned quantities. . It cannot be changed to "1 = Set Automatically".

The purchase order contains an account assignment to a CO/PP order. Setting the inward delivery completed indicator changes the status of this order so that it can be settled. This should only take place when not only the goods receipt, but also the component consumptions have been completed. If the component consumptions deviate from the planned quantities, the program cannot "automatically" decide whether further consumption postings will follow. Setting the inward delivery completed indicator is therefore a manual operation as soon as there are deviations in the component consumptions.

We recommend that you accept the standard logic with which the inward delivery completed indicator is set manually.

Alternatively, you can implement the correction instructions attached to this SAP Note. This involves a modification (see SAP Note 170183). The following changes are made to the standard logic:
1) Automatic setting of the inward delivery completed indicator is proposed in MIGO as soon as component consumptions have already been posted; the quantities do not play a role here.
2) When you post the goods receipt document, the component consumptions that have already been posted are compared with the planned quantities. If the planned quantity of a component will differ by more than 10%, the inward delivery completed indicator is not set.

Customer-specific logic that deviates from the standard behavior (point 2) can be implemented using an implementation of the business add-in MB_DOCUMENT_DCI.

100690 - Inconsistencies with EKET-GLMNG, EKET-WAMNG, and EKET-WEMNG

Implement SAP Note 101804 in your system.

Correct the purchasing documents with the correction reports (see corrections/NOT in the standard SAP system). When the update indicator is set, the corrections are updated in the database.
The reports list all schedule lines for inconsistent items, show the correct quantity distributions and the adjustments that have been made.

Check carefully, WHICH inconsistencies exist and WHICH report you execute!

Symptom 1: The quantity actually delivered (see purchase order history) differs from the delivered quantity at schedule line level (EKET-GLMNG).

ZKOGLMNG: Correction of the delivered quantity (EKET-GLMNG).

Update: 8/18/2020: The correction report now also takes into account the new schedule line logic in accordance with SAP Note 885177.

Symptom 2: The goods receipt quantity (EKET-WEMNG) at schedule line level is greater than the goods issue quantity (EKET-WAMNG).

ZKOWEMNG: Correction of the goods receipt quantity (EKET-WEMNG) if the goods receipt is greater than the goods issue.

Symptom 3: The schedule line quantity is less than the goods issue quantity (EKET-WAMNG) or less than the delivered quantity at schedule line level (EKET-GLMNG).

ZKOMENGE: Correction of the schedule line quantity (EKET-MENGE).

Update: 8/18/2020: ZKOMENGE2: Correction of the schedule line quantity (EKET-MENGE) if the new schedule line logic according to SAP Note 885177 is active.

Symptom 4: The goods receipt quantity (EKET-WEMNG) at schedule line level differs from the goods receipt quantity actually posted (according to the purchase order history).

ZKORWEM2: Correction of the goods receipt quantity (EKET-WEMNG) if the goods receipt quantity does not match the purchase order history.
(This report does not take movement type 641 into account).

Update: 8/18/2020: This report has been changed to also consider the new schedule line logic (see SAP Note 885177).

Symptom 5: The goods issue quantity (EKET-WAMNG) at schedule line level differs from the goods issue quantity actually posted (according to the purchase order history).

ZKOWAMNG: Correction of the goods issue quantity (EKET-WAMNG) if the goods issue quantity does not match the purchase order history.

Update: 8/18/2020: This report has been changed to also consider the new schedule line logic (see SAP Note 885177).

Symptom 6: The goods receipt quantity (EKET-WEMNG) at schedule line level differs from the goods receipt quantity actually posted (according to the purchase order history).

Provided for standard purchase orders:
ZKORWEMN3: Correction of the goods receipt quantity (EKET-WEMNG) if the goods receipt quantity does not match the purchase order history.

For returns items:
ZKORWEMN4: Correction of the goods receipt quantity (EKET-WEMNG) if the goods receipt quantity does not match the purchase order history.

Symptom 7: Symptoms 1 (EKET-GLMNG), 2 (EKET-WEMNG), and 5 (EKET-WAMNG) occur together.

ZZ_CORR_EKET_WEMNG_WAMNG_GLMNG: Correction of the goods receipt quantity (EKET-WEMNG), goods issue quantity (EKET-WAMNG), and delivered quantity (EKET-GLMNG).


If you use SAP SCM, the schedule lines of OLTP scheduling agreements are not updated automatically in SCM. To transfer the changes made to SCM, start an initial data transfer using the report RIMODINI or use the delta report (/sapapo/ccr) for the object Purchase Orders.

If you have inconsistencies when using the new schedule line logic, please contact SAP.

Note that the updated correction reports cannot be used for stock transport orders if they were posted with the new schedule line logic and there are multiple requirement elements (for each purchase order item).

115899 - Correction Report for Subcontractor Requirements

You can use the RM06C020 correction report to identify and correct inconsistencies. The report is contained in the correction instruction.

520000 - FAQ: Valuated special stock

In Customizing, you made settings in relation to how the system is to determine the price when you use valuated sales order stock. Despite this, it is not possible to see how the system determines the price.

The Customizing settings for the valuation variants of goods receipts are relevant only for materials with a moving average price control. If the material is managed with a standard price, the system determines the standard price for valuated sales order stock and valuated project stock in accordance with the following predefined strategy sequence:
  • Standard price from valuation table EBEW/QBEW (i.e. "Value from Make-to-Order Stock Segment"), if the EBEW/QBEW segment already exists
  • Standard price according to CUSTOMER exit COPCP002 "Material valuation of valuated sales order stock"
  • Standard price according to sales order costing or order BOM cost estimate; during engineer-to-order costing of the WBS element
  • Standard price according to preliminary cost estimate for the production order or process order or product cost collector
  • Standard price according to the entry in the material master record of the collective requirements material.
Is it better to manage project stock with or without valuation? See SAP Note 533207.

1598760 - FAQ: MSEG extension & redesign of MB51/MB5B

1. Question: Which fields can now be included in the Customizing table MMIM_REP_CUST and which cannot? What does the optimal Customizing look like?

Answer:
In general, all of the fields from MKPF and MSEG can still be included in the Customizing table MMIM_REP_CUST apart from the new MSEG fields, which were held redundantly:
MSEG-VGART_MKPF
MSEG-BUDAT_MKPF
MSEG-CPUDT_MKPF
MSEG-CPUTM_MKPF
MSEG-USNAM_MKPF
MSEG-XBLNR_MKPF
MSEG-TCODE2_MKPF
And also the key fields:
MSEG-MBLNR
MSEG-MJAHR
These fields must remain with the reference MKPF:
MKPF-MBLNR (instead of MSEG-MBLNR)
MKPF-MJAHR (instead of MSEG-MJAHR)
MKPF-VGART (instead of MSEG-VGART_MKPF)
MKPF-BUDAT (instead of MSEG-BUDAT_MKPF)
MKPF-CPUDT (instead of MSEG-CPUDT_MKPF)
MKPF-CPUTM (instead of MSEG-CPUTM_MKPF)
MKPF-USNAM (instead of MSEG-USNAM_MKPF)
MKPF-XBLNR (instead of MSEG-XBLNR_MKPF)
MKPF-TCODE2 (instead of MSEG-TCODE2_MKPF)

Of course, these fields are not required entry fields, rather
they are optional entry fields.

To ensure an optimal runtime for MB51, only the redundant fields (such as mentioned) from the table MKPF can be included. To do this, you would have to avoid other MKPF fields as selection parameters and in the output list. However, if you still require other MKPF fields in MB51, then the original JOIN between MKPF and MSEG is required again. We recommend that you define other fields from MKPF only as output fields in this case. The WHERE condition of the JOIN SELECT can then only consist of MSEG fields. This still improves the performance. However, you should still avoid defining other fields from MKPF (that were not held redundantly in MSEG) as selection fields. This would not result in performance being optimized due to the implementation of Notes 1516684 and 1550000.

2. Question: How can I speed up the runtime of the conversion report ZMST_FILL_MSEG_FROM_MKPF for filling the existing MSEG documents?

Answer: You can reduce the runtime of the conversion report by creating a temporary index. To do this, create the following index:
MSEG~TMP: MANDT, BUDAT_MKPF, MJAHR, MBLNR
You can delete this index again after the conversion is completed.

3. Question: Does the report ZMST_FILL_MSEG_FROM_MKPF affect the daily business? When should the report run?

Answer: The report ZMST_FILL_MSEG_FROM_MKPF fills the newly created MSEG fields with the values from MKPF for the old documents in the system. That is, only these new fields are updated. The fields of documents that are already posted are not read or updated by any other application. Therefore, no locks are necessary. Furthermore, the run of the conversion report also does not affect any running applications. The daily business processes can be carried out as usual. The report can be executed in the background during normal day-to-day activities. You also have the option of leaving the report to run over the weekend.

4. Question: What is the background of the function "Set conversion complete"? Is this active in all clients?
Answer: You can use this function to set a switch in the client so that the conversion is carried out completely. Transaction MB51 (in accordance with Note 1550000) can then be used with optimized functions.
Important: You must execute this function separately for all clients. The function "Set conversion complete" checks only whether the conversion was carried out in the current client.

5. Question: Additional fields from MKPF are required redundantly in MSEG, which is not provided in the standard SAP system. Can additional fields from MKPF be included in the MSEG?

Answer: We have gathered information over the years with regard to the MKPF fields that are used most frequently as selection parameters in MB51. These seven fields are now held redundantly in MSEG. You must implement a modification if you require an additional field. For this, you would have to include this additional field in MSEG, enhance the conversion report, and implement the source code changes so that this new MSEG field is also updated with the value from MKPF during every goods movement. Unfortunately, SAP cannot include anymore fields in the standard system.

6. Question: The parameter "Set conversion complete" is set. However, MB51 and MB5B still run using old logic. Is this due to an error?
Answer: Use the report ZMST_FILL_MSEG_FROM_MKPF to execute the "Regenerate MB51" option. Furthermore, you must ensure that you have implemented Notes 1550000 (MB51) and 1558298 (MB5B).

7. Question: It is not possible to include the new fields in the MSEG in Customizing (table MMIM_REP_CUST) as selection fields or output fields. How can I change the logic?
Answer: Refer to the answer for question 1 in this note. It is not possible to include the new fields in Customizing. These fields must remain listed with your MKPF reference. Transaction MB51 then references the new MSEG fields internally in the program. With regard to this, you must not make any changes to the Customizing. If possible, you should adhere to the recommendations from question 1 in this note.

8. Question: Material documents were already archived (archiving object MM_MABTEL -> MSEG/MKPF). Does this redesign affect documents that were already archived? What should I do in this case?

Answer: No. The archived documents are not affected by this change. The redesign refers only to the SELECT on MKPF & MSEG that selects the current data in the database tables. The documents from the archive are still selected from the archive and integrated from the database to the output table after the SELECT.

9. Question: What exactly does the function "Regenerate MB51" do, and why is it required?
Answer: The include RM07DOCS_GENERATED is an automatically generated include that is generated on the basis of the Customizing table MMIM_REP_CUST. The SELECT statement is generated automatically with regard to the fields that are to be selected (MMIM_REP_CUST-SELPOS), and the fields that are to be output (MMIM_REP_CUST-OUTPOS). The fields that are in Customizing for selection are later displayed on the selection screen and are generated to the WHERE clause. The fields that are in Customizing for output are generated as fields in the SELECT clause. When you make changes in Customizing (table MMIM_REP_CUST), the include RM07DOCS_GENERATE is re-generated with regard to the changes when you call transaction MB51 for the first time. After you implement this SAP Note, Customizing is not necessarily changed automatically. As a consequence, you must start re-generation manually. Only if you do this, the SELECT is adjusted to the new fields of the table MSEG.


10. Question: You use a Release higher than or equal to SAPKH60021, SAPKH60211, SAPKH60310, SAPKH60411, SAPKH60507,SAPKH60602 and want to use the performance optimization. Why is the performance optimization not available directly, even though the changes for tables and source codes are already available in the system?

Answer: The changes for tables and sources codes alone are insufficient for using the redesign of the selection strategy. You must still execute the complete MSEG conversion with the report ZMST_FILL_MSEG_FROM_MKPF. After you complete the conversion successfully, you must also set the status to "complete" and regenerate transaction MB51 (as described in the attachment). Furthermore, you must adjust and activate the Customizing changes and the DB indexes on MSEG. The DB indexes are not actively delivered via Support Package because this may affect performance when you upgrade.

11. Question: To what extent are customer-specific reports that select material documents affected by the redesign?

Answer: This question cannot be answered across the board. The redesign can have both positive and negative effects on customer-specific reports. If Z* programs select data from MKPF and MSEG (using a JOIN condition) and if data is required exclusively from MKPF that is available redundantly in MSEG (the fields VGART, BUDAT, USNAM, CPUDT, CPUTM, XBLNR or TCODE2), then the SELECT statements in the Z* programs can be adjusted. Depending on the type of the SELECT statement, the JOIN MKPF statement can be omitted, and a simple SELECT on MSEG is sufficient. However, the entire WHERE clause can also be rewritten purely to MSEG fields, which in turn would have a positive effect on performance (e.g. by replacing MKPF-BUDAT with MSEG-BUDAT_MKPF in the WHERE condition). It therefore makes sense to investigate customer-specific programs for their optimization potential. Of course, one should ensure beforehand that the conversion has been carried out. If you have several clients in the system and if you have not carried out the conversion in all clients, you can use the function module MB_CHECK_MSEG_CONVERSION_DONE to determine whether the conversion was carried out in the relevant client, and then process your coding accordingly. If you create new indexes and delete old ones, this may result in a deterioration of the performance of the Z* programs, since these cannot determine an optimal index any more. On the whole, in summary, the redesign is a good opportunity for optimizing customer-specific programs in terms of their performance. However, customer-specific programs do not necessarily have to be adjusted, since the data still exists and the original data model can be used exactly as before.

12. Question:Can the conversion program ZMST_FILL_MSEG_FROM_MKPF be terminated and restarted without any problems?

Answer: Yes, the conversion program can be terminated and restarted at any time? When you terminate it, documents that were converted are not rolled back. In other words, any data that was already converted is not lost with the termination. When you restart the conversion program, the system continues with the next document that was not yet converted. You can therefore stop and restart the tool as often as you like and without any negative side effects.


13. Question: What can be done if the conversion using program ZMST_FILL_MSEG_FROM_MKPF takes too long to run due to the large volume of data?

Answer: For very large systems, an alternative, performance-optimized report is available that covers only the substep of MSEG-MKPF conversion. For details of this, refer to SAP Note 1516684.

Comments