Sap FS Template
Sap FS Template
Sap FS Template
FUNCTIONAL SPECIFICATION
ABAP custom development – Enhancements
(Transactions and Apps)
{WRICEF ID Description}
{Organisation / Project Name}
Note. Master copy of this document, with signatories, is held on Solution Manager
DATE: 14/06/2017
FS {WRICEF ID Description}
{Workstream}
{Organisation / Project Name}
Table of Content
1 Context 3
1.1 Business Background 3
1.2 Why is SAP standard not appropriate or sufficient? 3
1.3 Alternative Approaches Considered 3
1.4 Out of Scope 3
1.5 Assumptions 3
1.6 Dependencies 3
1.7 Links 3
2 Solution Design 4
2.1 Data Model 4
2.2 User Interface 4
2.3 Enhancement Logic 5
2.4 Application Logic 5
2.5 Flow Diagram 5
2.6 Validation and Error Handling 5
2.7 Authorizations 5
2.8 Extension of Associated Objects for Interfaces, Data Migration and Reporting 6
2.8.1 IDOC 6
2.8.2 APIs: e.g. BAPI, RFC or Web Service 6
2.8.3 LSMW 6
2.8.4 Analytics Data Model (HANA Live or CDS Views) 6
3 How to Test 7
1 Context
Generally we want to keep the system as standard as possible, so each custom development requires a
justification.
Sometimes a number of different approaches are possible to meet a requirement. If that is the case, outline
what the other options were, and why they were rejected in favour of this one.
If functionality has been considered and decided to be out of scope for the development, then please record it
here.
1.5 Assumptions
If the proposed design relies on any assumptions, please state them here.
1.6 Dependencies
If the proposed design has dependencies on other developments or configuration, please state them here.
1.7 Links
Provide any links here to further relevant information (e.g. from SAP Help, SCN, SAP Notes).
2 Solution Design
If new database tables are required, or extensions to standard tables, then specify the requirements here. You
may prefer to explain the requirements in high-level terms here, and then work directly with the developer or
development lead to agree the detail. But if going into detail…
• For each field a Data Element is required. This defines what the data actually means in business
terms, and carries the text descriptions and long text (F4 help). Existing, SAP standard data elements
should be used as the first choice. Where a new data element is required, then the descriptions, long
text, data type, length, fixed values or foreign keys need to be defined.
If changes to a SAP standard UI are required, then provide screenshots marked up with the changes required
- for example what fields are to be added and where. Also explain here, or as part of How to Test, how the
developer can access the screens in the standard application or transaction. If you know of a BAdI or other
enhancement point to facilitate the changes, then reference it here too.
• Web Dynpro and Floorplan Manager (FPM) applications. FPM is a framework built on top of Web
Dynpro.
Consider which technology will be most appropriate – the project/customer may have a policy to follow which
determines this, or check with the development lead.
Please provide a mock-up of the new application’s screens. As well as design of the screens, it is also important
to consider:
• Is any dynamic screen behaviour required? This typically sets the visibility, read-only or mandatory
properties of the UI elements. E.g. if field ‘a’ has a value ‘x’, then make fields ‘b’, ‘c’ and ‘d’ read-only,
and make field ‘e’ mandatory.
• For simple input fields, does the value need to be validated? Can a value-help be assigned?
• Can tooltips or input prompts be used to help and guide the user?
A prototyping tool such as SAP Build (for UI5) or iRise may be used to mock-up a design. The developers
should follow UI best practice to keep the screens user-friendly and consistent. So either involve a developer
in the prototyping; or provide the mock-up as guidance, and be aware that some of the design details may
change in implementation.
Changes to existing SAP applications may be made using enhancement techniques such as BAdIs or User
Exits. Specify here the enhancement points to be changed and the logic required. Create a new subsection
for each enhancement to be made, if one than one is required.
Enhancement Spot
BAdI Definition
Method
For new applications, specify the business logic here. The developer will then build and structure the required
ABAP following the development guidelines. There is no need to specify names or details of development
objects such as classes or transaction codes.
As far as possible the application should actively prevent the user from taking an invalid course of action, for
example by:
• Keeping buttons inactive unless their functions are relevant at that moment
However sometimes it will be necessary to provide error or warning messages. Please provide the text of any
such messages (short and long), and details of when the message should be raised.
2.7 Authorizations
Authorizations are used to restrict what data and actions a user has access to.
If your application logic involves reading from database tables, then please consider if the data selection should
be restricted by authorization objects - for example by an org unit.
If this is a new Application that maintains a business object, then there may be different options to create,
change, display or delete the object. Such actions should be governed by authorizations – for example it should
be possible to provide display access without any ability to make changes. If the data object is standard, then
an existing authorization object may exist for it; otherwise a new custom object may be required.
2.8 Extension of Associated Objects for Interfaces, Data Migration and Reporting
If a standard business object has been extended with custom fields, then there may be related objects for
Interfaces, Data Migration or Reporting, which also should be extended. Consider if that’s true for each of the
following, and if so state the object the extend.
2.8.1 IDOC
2.8.3 LSMW
3 How to Test
If this is an enhancement to a standard application, then please provide some guidance and/or test data to
help the developer unit test the development. This can be included here or in a separate document.
The developer will need to test repeatedly, so where appropriate provide instructions to reverse the actions
performed so the test may be run again, or explain how to create new input data to the test.