SAP SD Enhancement Functional Specification Template
A good SD functional specification stops a developer from guessing. This template gives the sections that matter for a sales and distribution enhancement: requirement, trigger point, logic, data objects, error handling and test cases.
Fill in
SAP SD Enhancement Functional Specification Template
Document Control
| Item | Value |
|---|---|
| Spec ID | SD-ENH-014 |
| Title | Default delivery block on first order for new customers |
| Functional consultant | A. Consultant |
| Developer | B. Developer |
| Date | 2026-10-20 |
| SD process step | Sales order creation |
1. Business Requirement
When a sales order is saved for a customer with no previous billing documents, the header delivery block must be set to 01 so that credit control can review the first order before shipment.
2. Enhancement Point
BAdI or user exit on sales document save (for example USEREXIT_SAVE_DOCUMENT_PREPARE in MV45AFZZ)
3. Processing Logic
1. Read sold-to from VBAK-KUNNR. 2. Check for any billing document for this sold-to in VBRK. 3. If none exists and order type is OR, set header delivery block. 4. Write a message to the application log.
4. Data Objects
VBAK (KUNNR, AUART, LIFSK), VBRK (KUNAG), TVLS (block reasons)
5. Error Handling
If the check fails technically, do not block the order. Log the error and let the order save normally.
6. Test Cases
| No. | Scenario | Expected result | Pass/Fail |
|---|---|---|---|
| 1 | Existing customer with billing history | No block set | |
| 2 | New customer, standard order type | Delivery block set | |
| 3 | New customer, order type not in scope | No block set | |
| 4 | Order changed in VA02 after block released | Block not set again |
7. Authorisation and Transport
Transport request: ____________ Authorisation objects affected: ____________ Systems in landscape: DEV / QA / PRD
Sign-off
A working starting point. Adapt headings to your project methodology and keep the spec free of code so the developer owns the technical design.
Want specs drafted from your own configuration?
Optional: ask how Netray assists consultants with first-draft specifications, reviewed by your team.
Optional. The tool and every export work without this. No spam.
How to use the template
Fill in the fields on the left and the document builds on the right. Start with the business requirement written as one observable behaviour, then name the enhancement point. Keep logic as numbered steps in plain language and let the ABAP developer choose the technical implementation. Export to PDF or Word, attach it to the change request and replace the example test cases with your own scenarios before sending it to the developer.
- Write one requirement per spec
- Name tables and fields, not screens
- State what happens when the check fails
- List at least one negative test case
Choosing the enhancement point
In SD you will usually pick between a user exit include in MV45AFZZ, a BAdI such as BADI_SD_SALES, a pricing routine maintained in VOFM, or a copy control routine. Prefer BAdIs and configuration over modification. If the requirement can be met with a requirement routine, a condition type, an output condition or a user parameter, say so in the spec before asking for custom code.
What a developer needs from you
Developers repeatedly ask the same questions: which document types, which sales areas, which plants, create or change mode, and what happens in mass processing such as batch input or IDoc inbound. Put those answers in the logic section. Also state the data volume and whether the logic runs on every save, because a database read on VBRK without a proper key can slow order entry on busy systems.
Common mistakes
The usual faults are mixing several requirements in one spec, leaving error handling blank, forgetting that VA02 changes also trigger the exit, and not testing interfaces such as EDI orders that bypass the screen. Another is specifying a hard-coded customer or plant list instead of a configurable table, which forces a transport for every change in the business.
Frequently Asked Questions
Does this template replace my project's own format?
No. If your programme mandates a format, copy the content across. The sections here cover what developers need for an SD enhancement, so it also works as a checklist to confirm your own format is complete.
Should the spec include ABAP code?
Generally not. The functional consultant describes behaviour, inputs and expected results. The developer writes the technical design. Short pseudo logic is fine, but code in a functional spec is hard to review and tends to go stale quickly.
Which SD enhancement points are most common?
User exits in MV45AFZZ and RV60AFZZ, pricing and requirement routines in VOFM, copy control routines, output routines, and BAdIs for sales document processing. The right choice depends on whether the logic needs order, item or schedule line context.
How many test cases should be listed?
At least one positive, one negative and one change-mode case per rule, plus an interface case if orders arrive by EDI or API. Four to eight cases suit most small SD enhancements.
If your team writes many specs like this, Netray can help draft first versions from your existing ERP documentation and configuration, with your consultants reviewing every line.
Related Tools
SAP SD Partner Determination Design Template
Document your partner functions, partner determination procedures and sources per document level, then export a design page for review.
SAPSAP SD Copy Control Design Worksheet
Plan every copy control path in your order to cash flow: source document, target document, item category, copy requirements and pricing type.
SAPSAP SD Transaction Codes Reference
A searchable list of common SAP sales and distribution transaction codes, grouped by process area, for daily use and onboarding.
SAPSAP SD Condition Record Load Worksheet
Prepare price and discount condition records row by row, check the per-unit value and export to Excel for LSMW, migration cockpit or manual VK11 entry.