Hello,

Sign up to join our community!

Welcome Back,

Please sign in to your account!

Forgot Password,

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

You must login to ask a question.

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

SAP EWM Help Latest Questions

  • 0
  • 0
DPM125
Beginner

Enhancement vs Modification in SAP

AspectEnhancement 🚀 (Safe)Modification ⚠️ (Risky)
DefinitionExtend standard SAP without changing its codeChange SAP standard code directly
Upgrade ImpactUpgrade-safe ✅Upgrade issues ❌ (need rework)
Where UsedUser Exits, BAdIs, EnhancementsDirect changes in SAP standard objects
MaintainabilityEasy to maintainHard to maintain
ExampleAdd custom field validationChange standard pricing logic inside SAP program

 

Scenario: Sales Order Creation (VA01)

Business Requirement:
When creating a Sales Order, the company wants to block the order if the customer has overdue invoices.


Solution with Enhancement (Recommended)

  • Use a User Exit or BAdI (e.g., USEREXIT_SAVE_DOCUMENT in program MV45AFZZ).

  • In the exit, add custom logic to check customer overdue status from tables BSID/BSAD.

  • If overdue invoices are found → issue an error message and stop the save.

Result: Standard SAP program stays intact. Upgrade-safe.

IF lv_overdue = ‘X’.
MESSAGE e001(zmsg) WITH ‘Customer has overdue invoices. Sales Order cannot be saved.’.
ENDIF.

Solution with Modification (Not Recommended)

  • Directly change the standard SAP program SAPMV45A.

  • Insert custom code inside the SAVE_DOCUMENT routine itself to check overdue invoices.

  • This alters SAP’s original code.

Risk:

  • After a system upgrade, SAP may overwrite your changes.

  • You’ll need to re-implement modifications manually, increasing maintenance cost.

Key Difference in This Example
  • Enhancement: Code added in a user exit (safe extension point) → future upgrades won’t break it.

  • Modification: Code inserted directly into SAP standard program → risky during upgrades.

Related Questions

Leave an answer

Leave an answer