Preparing for an SAP interview at a Big 4?

Don’t just revise your module concepts. Prepare for these 21 technical questions too.Here are the questions listed:

  1. How do you gather requirements from business users?
  2. What is a Functional Specification document? What are its key components?
  3. Explain the difference between WRICEF and RICEFW
  4. What is the difference between Technical and Functional Specifications?
  5. How do you handle functional testing of custom developments?
  6. What are the different types of SAP Enhancement techniques?
  7. Explain the difference between a User Exit, BADI, and Enhancement Point
  8. What are IDocs? How do they work in SAP?
  9. What is the use of LSMW in SAP?
  10. What is the purpose of the TCode SE16N in SAP?
  11. What are the common status codes in IDoc processing, and what do they mean?
  12. What is the difference between BAPI and BADI in SAP?
  13. What is the use of transaction code SE11 in SAP?
  14. What is the use of transaction code SE18 and SE19 in SAP?
  15. What is the difference between Classical BAdI and New BAdI (Enhancement Spot)?
  16. What is a Transport Request in SAP and how does it work?
  17. What are Smart Forms and how are they different from SAP Scripts?
  18. Explain how you debug an issue that spans across FI and MM modules
  19. What is the role of the functional spec and technical spec in custom development?
  20. How do you handle missing data in IDoc processing?
  21. What is the difference between implicit and explicit enhancements in SAP?

Answers:

1. How do you gather requirements from business users?

Gathering requirements from business users is one of the most critical responsibilities of a techno-functional consultant. This process ensures that the SAP solution meets the actual business needs rather than just theoretical best practices.

Step-by-Step Process:

1. Prepare for the Requirement Session

Understand the current business process (As-Is process).

Review any existing documentation or reports.

Identify the stakeholders (business heads, process owners, end-users).

2. Conduct Requirement Workshops or Interviews

Organize workshops or one-on-one meetings with relevant business users.

Use open-ended questions to uncover pain points and expectations.

“What challenges are you currently facing in the procurement process?”

“How do you track your financial entries today?”

3. Document the As-Is and To-Be Processes

Create process flowcharts or process maps to visualize the current (As-Is) and proposed (To-Be) scenarios.

Highlight areas where SAP standard processes can be used and where enhancements are needed.

4. Capture Functional Requirements

Clearly document what the user wants the system to do.

Specify business rules, required fields, validation logic, and calculations.

5. Analyze for Gaps

Compare business needs with SAP standard capabilities.

Identify gaps that need custom development (e.g., Z-reports, custom workflows).

6. Create Business Blueprint / Requirement Specification

Consolidate findings in a Business Blueprint or Requirement Specification document.

Get sign-off from business users to avoid misunderstandings later.

7. Validate Through Prototyping

Where possible, build quick prototypes in the SAP system to validate understanding.

Get feedback from users before moving to full development or configuration.

 Best Practices:

Always involve both end-users and process owners.

Use visual tools like process diagrams and mock screens.

Validate assumptions before documenting.

Maintain version control and sign-offs.

2. What is a Functional Specification document? What are its key components?

A Functional Specification (FS) document in SAP is a detailed blueprint prepared by functional consultants that translates business requirements into a format understandable by technical teams (typically ABAP developers).

It defines what needs to be built — not how to build it.

Purpose of a Functional Specification

Acts as a communication bridge between functional and technical teams.

Ensures the ABAP team develops exactly what the business needs.

Provides a single point of reference during development, testing, and support.

Key Components of a Functional Specification Document

SectionDescription
1. Document Title and VersionName of the development, version number, date, author.
2. Objective/PurposeA short summary of the business requirement. Why is the development needed?
3. Background/Business ContextDetailed explanation of the current business process and the problem or gap that needs to be addressed.
4. ScopeWhat is included and excluded in this requirement? Clearly defines the boundaries.
5. Trigger/SourceWhat will trigger this development? (e.g., a transaction code, event, schedule, or user action).
6. Input DataData the development will receive (e.g., fields, selection criteria, tables).
7. Processing LogicBusiness rules, calculations, validations, and logic that must be applied.
8. Output FormatDescription of expected output — report layout, screen format, file structure, etc.
9. Error HandlingHow should the system behave in case of missing data, failed validation, etc.
10. Security/AuthorizationsAny specific roles or authorizations needed to access or execute.
11. Dependencies/AssumptionsOther developments or processes this relies on. Assumptions made while writing FS.
12. Testing CriteriaHow will this be tested? Include test cases, data, and expected outcomes.
13. AppendixSupporting screenshots, mockups, sample output files, etc.

3. Explain the difference between WRICEF and RICEFW

Both WRICEF and RICEFW are acronyms used to classify custom objects in SAP projects. Although the terms contain the same letters, the order may vary depending on company or consultant preference — but they refer to the same types of developments.

What Does RICEFW/WRICEF Stand For?

LetterComponentDescription
RReportsCustom-developed reports (classical, ALV, interactive) not available in standard SAP.
IInterfacesConnections to external systems (e.g., SAP to third-party using IDOCs, BAPIs, APIs).
CConversionsOne-time data migration (e.g., legacy vendor/customer data to SAP).
EEnhancementsModifications or extensions to standard SAP functionality (e.g., user exits, BADIs, enhancement points).
FFormsOutput documents such as invoices, purchase orders (using SmartForms, Adobe Forms, or SAPScript).
WWorkflowsAutomated approval processes (e.g., PO approval, leave request approval).

Key Differences between Each Component

ComponentExample
ReportsCustom report to display overdue GRs per plant.
InterfacesIntegration between SAP and a bank for payment confirmation.
ConversionsMigrating open sales orders from legacy system to SAP using LSMW or BAPIs.
EnhancementsAdding custom logic during MIRO using user exit.
FormsSmartForm to print delivery note in a custom layout.
WorkflowsManager receives approval request for a new vendor creation.

 Why It Matters:

WRICEF/RICEFW classification helps project teams categorize all custom developments.

Ensures proper planning, testing, and documentation for each development type.

4. What is the difference between Technical and Functional Specifications?

Both Functional Specification (FS) and Technical Specification (TS) documents are crucial in SAP projects, especially for custom developments. They serve different purposes and are written by different types of consultants, but they complement each other.

Functional Specification (FS)

AspectDetails
Prepared ByFunctional Consultant
PurposeDescribes what the system should do, based on business requirements.
AudienceBusiness users and technical team
Contents– Business process description- Input fields and validation rules- Processing logic (in business terms)- Output layout- Test scenarios
FocusBusiness logic and functional requirements
Example“Create a report that shows all overdue POs by vendor and plant with totals per vendor.”

Technical Specification (TS)

AspectDetails
Prepared ByABAP Developer / Technical Consultant
PurposeDescribes how the requirement from the FS will be implemented in the system.
AudienceTechnical team, peer developers, QA team
Contents– Table names and fields- Data fetch logic (joins, select statements)- Enhancement framework used (user exit, BADI, etc.)- Performance considerations- Program architecture
FocusSystem-level implementation details
Example“Fetch data from EKKO and EKPO tables where delivery date < SY-DATUM, sort by vendor, and display using ALV Grid.”

 Key Differences at a Glance

FeatureFunctional SpecTechnical Spec
LanguageBusiness-friendlyDeveloper-friendly
Created ByFunctional ConsultantTechnical Consultant
GoalDescribe what is neededDescribe how it will be built
VisibilityShared with businessInternal to technical team

5. How do you handle functional testing of custom developments?

Functional testing ensures that a custom development — whether it’s a report, form, enhancement, interface, or workflow — meets the business requirement as described in the Functional Specification (FS). As a techno-functional consultant, you’re responsible for validating that the logic works correctly from a business process perspective.

Step-by-Step Approach to Functional Testing

1. Understand the Requirement Thoroughly

Revisit the Functional Specification document.

Understand the input parameters, expected outputs, and business logic involved.

2. Create Functional Test Cases

Define test cases that cover all possible scenarios:

Positive cases (correct data)

Negative cases (missing/wrong data)

Boundary cases (edge values or dates)

Example: For a custom PO report, test for:

Vendor A in Plant X

Vendor B with no POs

POs with future delivery dates

3. Prepare Test Data

Use real or close-to-real test data (e.g., POs, invoices, cost centers).

Coordinate with the BASIS team if data refresh or client copy is needed.

4. Execute the Development

Run the custom program/form/interface/workflow in the test environment (QAS or Sandbox).

Use various inputs and selection parameters.

5. Validate the Output

Compare the system’s output with expected results from the test case.

Check:

Field values

Calculations

Data filters

Authorization restrictions

Format and alignment (especially for forms)

6. Log Defects (if any)

If issues are found, report them to the technical team with:

Screenshot

Steps to reproduce

Test data used

Expected vs actual result

7. Re-test After Fixes

Once corrected, re-run the test to ensure the issue is resolved.

Repeat for all test cases until the development is functionally sound.

 Additional Functional Testing Tips:

Always test with end-to-end scenarios (e.g., from PR to payment).

Include edge cases (e.g., zero values, blank fields).

Ensure user roles and authorizations are respected.

Involve end-users for UAT (User Acceptance Testing) where required.

6. What are the different types of SAP Enhancement techniques?

Enhancement techniques in SAP allow us to modify or extend standard SAP functionality without changing the core code. As a techno-functional consultant, knowing the right enhancement method ensures that business requirements are fulfilled safely and upgrade-compliantly.

Types of SAP Enhancement Techniques

CategoryEnhancement TypeDescription
ClassicUser ExitsPredefined FORM routines in standard programs (procedural). Only one implementation allowed.
Customer ExitsFunction module-based exits (CALL CUSTOMER-FUNCTION) provided by SAP.
ModernBADIs (Business Add-Ins)Object-oriented exits. Allow multiple implementations and are reusable.
Enhancement Points (Explicit & Implicit)Points defined in ABAP code where custom logic can be added without modification.
OtherBTE (Business Transaction Events)Used mainly in FI module for event-based enhancements.
Customer Fields / Append StructuresAdd custom fields to standard tables and screens (using APPEND or screen exits).
VOFM RoutinesCustom routines in SD for pricing, copying controls, and requirements.

1. User Exit

Found in programs as FORM USEREXIT_….

Used for modifying standard logic in specific TCodes (e.g., VA01, MIRO).

Example: Validate shipping condition in USEREXIT_SAVE_DOCUMENT_PREPARE.

2. Customer Exit

Function module-based enhancement (e.g., EXIT_SAPLV60B_001).

Grouped under Enhancement Project (TCode: CMOD).

Tied to standard SAP program points via SMOD.

3. BADI (Business Add-In)

Object-oriented and flexible.

Located via SE18/SE19.

Example: Implement ME_PROCESS_PO_CUST to validate PO fields at item level.

4. Enhancement Points

Found in code as:

Explicit: Defined by SAP developers

Implicit: Automatically available at start/end of programs, functions, includes

Implemented using TCode: SE18 or enhancement implementation tools.

5. BTE (Business Transaction Events)

Mostly used in Finance (FI) module.

Registered in TCode: FIBF.

Example: Add logic during vendor open item clearing.

6. Customer Fields & Screen Exits

Add custom fields to standard tables via append structures.

Add those fields to standard screens via screen exits (SE51 or CMOD).

Example: Add “Region Code” to Customer Master (XD01).

7. VOFM Routines

Used in SD module.

Custom logic for pricing, output determination, copy controls.

Accessed via SPRO → SD → VOFM routines.

7. Explain the difference between a User Exit, BADI, and Enhancement Point

In SAP, when the standard functionality doesn’t meet business needs, we enhance the system using tools provided by SAP — without modifying the core code. These tools include User Exits, BADIs, and Enhancement Points, commonly used by techno-functional consultants and developers.

1. User Exit

FeatureDescription
TypeClassic enhancement technique (procedural ABAP)
Available inSAP ECC and earlier systems
UsagePredefined empty subroutines (e.g., FORM USEREXIT_…) where you can write custom code
ExampleAdd validation during sales order saving (VA01) using USEREXIT_SAVE_DOCUMENT_PREPARE
LimitationOnly one implementation possible; not object-oriented

2. BADI (Business Add-In)

FeatureDescription
TypeObject-oriented enhancement technique
Available inSAP ECC and S/4HANA
UsageSAP-defined enhancement points that allow developers to add custom logic via implementing classes
ExampleImplement BADI ME_PROCESS_PO_CUST to add checks during PO creation
FlexibilityMultiple implementations possible (especially in filter-based BADIs)
AdvantagesCleaner, reusable, object-oriented code structure

3. Enhancement Point / Enhancement Framework

FeatureDescription
TypeModern enhancement technique in SAP
Available inSAP ECC (later versions) and S/4HANA
UsageEnhancement points are predefined hooks in the standard code where you can inject custom logic using Enhancement Spots
ExampleAdd a custom check in standard function module using an explicit enhancement point
TypesExplicit (defined by SAP) and Implicit (automatically available at start/end of programs)
AdvantagesMultiple enhancements allowed, clean separation of custom code

 Key Differences at a Glance

FeatureUser ExitBADIEnhancement Point
ABAP StyleProceduralObject-OrientedProcedural or OO
Multiple UsesNoYesYes
FlexibilityLimitedHighVery High
Best forLegacy EnhancementsModern EnhancementsCustom Insertions in Standard

8. What are IDocs? How do they work in SAP?

IDoc (Intermediate Document) is a standard data structure used in SAP to exchange information between SAP systems or between SAP and external systems. IDocs are at the heart of EDI (Electronic Data Interchange) and system integration in SAP.

What is an IDoc?

FeatureDescription
Full FormIntermediate Document
TypeASCII text-based data container
Use CaseData exchange between systems (e.g., create a Sales Order from external CRM)
ComponentsControl record, Data records, Status records
ExampleSend PO from SAP to a vendor → ORDERS05 IDoc

Structure of an IDoc

Control Record (EDIDC)

Contains sender/receiver info, IDoc type, message type.

Data Records (EDID4)

Actual transactional data in segments (e.g., vendor, PO header/item).

Status Records (EDIDS)

Logs status of processing (e.g., 03 – data passed to port, 12 – IDoc successfully posted).

Common IDoc Types and Message Types

ProcessMessage TypeIDoc Type
Sales OrderORDERSORDERS05
Purchase OrderORDERSORDERS05
Inbound DeliveryDESADVDESADV01
Goods ReceiptWMMBIDWMMBID02
InvoiceINVOICINVOIC02
Material MasterMATMASMATMAS05

How IDocs Work: Inbound & Outbound

1. Outbound IDoc (SAP → External System)

Triggered by an event (e.g., PO creation).

Data is formatted into an IDoc and sent via Port (RFC, file, EDI).

Status codes show successful sending (e.g., 03).

2. Inbound IDoc (External → SAP)

External system sends IDoc to SAP via port.

SAP interprets data using Function Module (in Process Code).

Triggers creation of object (e.g., sales order).

Key TCodes for IDoc Monitoring & Processing

TCodePurpose
WE02 / WE05Display IDoc
BD87Reprocess IDoc
WE19Test IDoc (IDoc simulator)
WE20Partner profiles
WE21Port definitions
WE30IDoc type editor
WE60IDoc documentation

Real-Time Example

A 3rd party logistics provider sends delivery status to SAP.

SAP receives DESADV IDoc.

SAP updates delivery document automatically via inbound IDoc.

Status 53 indicates successful posting.

9. What is the use of LSMW in SAP?

LSMW (Legacy System Migration Workbench) is a tool provided by SAP to facilitate the data migration process from legacy systems to SAP. It helps functional and technical consultants upload master data and transactional data without extensive ABAP development.

Key Use Cases of LSMW

ScenarioExample
Master Data UploadCustomer, Vendor, Material Master
Transactional Data UploadPurchase Orders, Invoices, Sales Orders
One-time Historical Data MigrationAsset balances, open items
Mass Data MaintenanceChanging payment terms for many vendors

Methods Available in LSMW

MethodDescription
Direct InputData is loaded directly using standard SAP programs.
Batch Input Recording (BDC)Simulates screen input using a recording (like BDC).
Standard Batch/IDocUses standard SAP IDocs to post data.
BAPIsCalls SAP BAPIs for posting data (advanced but cleaner integration).

LSMW Process Flow (Step-by-Step)

TCode: LSMW

Step 1: Define Object Attributes

Here, define how you want to upload the data.
Choose the method of data transfer:

  • Standard Batch/ Direct Input
  • Direct Input Recording
  • BAPI Method
  • IDoc Method

For most practical cases, “Batch Input Recording” is commonly used.

Step 2: Define Source Structures

Define the structure of your input (legacy) data file.
Example:
For Material Master upload – you may define one structure with fields like:
MATNR, MATKL, MEINS, MTART, MAKTX, etc.

Step 3: Define Source Fields

Specify all fields that exist in the source file (Excel/Text).

Step 4: Define Structure Relations

Link your source structure to the corresponding target SAP structure.

Step 5: Define Field Mapping and Conversion Rules

Map source fields (legacy data) to target SAP fields.
Here you can define default values, translation rules, or fixed values.

Step 6: Maintain Fixed Values, Translations, User-Defined Routines

Optional step to handle data transformations – for example, converting date formats, or mapping legacy plant codes to SAP plant codes.

Step 7: Specify Files

Upload your legacy data file (usually a .txt or .csv file) from your PC or server.

Step 8: Assign Files

Assign your uploaded file to the source structure defined earlier.

Step 9: Read Data

System reads the file and checks for format correctness.

Step 10: Display Read Data

Verify if all rows and columns were read properly by the system.

Step 11: Convert Data

System applies the mapping and conversion rules to transform legacy data into SAP format.

Step 12: Display Converted Data

Validate that converted data looks correct and ready for upload.

Step 13: Create Batch Input Session

Creates a Batch Input Session.

Step 14: Execute this session to post data into SAP.

Here, SAP will simulate user entries (like manually entering data in MM01, FS00, etc.)

Example Scenario

Upload 1,000 new vendors using LSMW:

Prepare Excel file with vendor details

Use a BDC recording of MM01

Map fields in LSMW

Upload, convert, and post

Advantages of LSMW

No coding required

Fast and repeatable process

Useful for both initial migration and mass updates

Supports multiple upload methods

10. What is the purpose of the TCode SE16N in SAP?

SE16N is the enhanced version of SE16, and it’s used to view table contents in SAP. It’s an essential tool for both functional and technical consultants for data analysis, validation, and troubleshooting.

Key Uses of SE16N

Use CaseExample
Check master dataView material data from MARA or vendor data from LFA1
View transactional dataSee PO history from EKBE, accounting docs from BSEG
Debug data issuesLook at open vs cleared items in BSID/BSAD
Download to ExcelExport query results for reporting or validation
Perform quick filteringApply WHERE conditions like document date, company code

SE16N vs SE16

FeatureSE16SE16N (New)
UI ExperienceOlder formatUser-friendly layout
Field SearchManualAuto-suggest enabled
Download optionsLimitedEnhanced with ALV grid
Change modeXPossible (if activated with /H)

Example: Find Vendor Invoices

Open SE16N

Enter table: BSEG

Enter filters:

BUDAT (Posting Date) = >= 01.07.2025

BUKRS (Company Code) = 1000

LIFNR (Vendor) = 200001

Click Execute (F8) to view the line items.

Commonly Accessed Tables via SE16N

TableDescription
MARAMaterial Master (general)
BKPFFI Document Header
BSEGFI Document Line Items
EKKOPurchasing Document Header
EKPOPurchasing Document Item
LFA1Vendor Master
KNA1Customer Master

Advanced Features

Technical field names view

Multiple field filters

Use wildcards (* and +)

Download results as Excel / Spreadsheet

Sort and layout customization

Note on Table Editing:

You can technically enable change mode with /H debugging, but it’s strongly discouraged unless under supervision, as it can corrupt data. SE16N is mainly for display purposes.

11. What are the common status codes in IDoc processing, and what do they mean?

Each IDoc in SAP carries status codes that indicate its processing stage or outcome. These codes are stored in the status record of the IDoc (EDIDS table) and are visible in WE02, WE05, or BD87.

Common Outbound IDoc Status Codes (Direction = 1)

StatusMeaning
01IDoc generated
03Data passed to port (successfully sent to middleware or partner)
06Error during transmission
12IDoc successfully processed (if looped back to SAP)

Common Inbound IDoc Status Codes (Direction = 2)

StatusMeaning
64IDoc ready to be processed (not yet started)
51Error during application processing (e.g., missing material, customer master)
53Successfully posted in the application layer
56IDoc could not be assigned to a process code
68IDoc with errors, no further processing

Important IDoc Lifecycle Status Flow (Inbound)

IDoc Created (Status 64)

        ↓

IDoc Processed Successfully → Status 53

        ↓

Error During Processing → Status 51

Important IDoc Lifecycle Status Flow (Outbound)

Application triggers IDoc → Status 01

        ↓

IDoc Sent to Port → Status 03

        ↓

Transmission Failure → Status 06

How to Use Status Codes in Troubleshooting

ActionBased on Status
Reprocess stuck IDocIf status = 64, use TCode BD87
Check for business errorsIf status = 51, go to WE02 or WE05 and read error message
Confirm successful transmissionIf status = 03 or 53, no issues exist
Resolve partner profile issuesIf status = 56, check WE20 settings

TCodes to Monitor and Fix IDoc Statuses

TCodePurpose
WE02 / WE05View IDoc structure and status
BD87Reprocess IDocs with status 64 or 51
WE19Test IDoc manually (simulate)
WE20Maintain partner profiles
WE09Search IDocs by content

12. What is the difference between BAPI and BADI in SAP?

BAPI and BADI are both powerful tools in SAP, but they serve different purposes and are used in different contexts. Understanding the difference is essential for any techno-functional consultant.

What is BAPI (Business Application Programming Interface)?

BAPI is a standardized function module provided by SAP.

Used for data exchange between SAP and external systems, or for programmatic access to SAP functions.

Remote-enabled: Can be called from non-SAP systems (e.g., Java, .NET).

Ensures data integrity by using SAP’s business logic.

 Think of BAPIs as “official entry points” to SAP business processes.

Example of BAPI:

BAPI_PO_CREATE1 – Used to create Purchase Orders

BAPI_CUSTOMER_CREATEFROMDATA1 – Create a customer master

BAPI_GOODSMVT_CREATE – Post goods movement

What is BADI (Business Add-In)?

BADI is an object-oriented enhancement technique.

Allows developers to inject custom logic into SAP standard processes.

Used within SAP, not for communication with external systems.

Supports multiple implementations (flexible and reusable).

Think of BADI as a “plug-in point” to enhance or modify standard SAP behavior without changing the code.

Example of BADI:

BADI_MATERIAL_CHECK – Add validation when material is saved

BADI_SD_CUST_HEAD – Enhance sales document header logic

Key Differences Between BAPI and BADI

FeatureBAPIBADI
PurposeAccess SAP business functionsEnhance SAP standard logic
TypeFunction Module (RFC-enabled)Object-Oriented (interface-based)
Used ByExternal systems, ABAP programsABAP developers inside SAP
Custom LogicNo Yes (custom implementation)
Multiple UsageOne BAPI, one use Multiple BADI implementations
Remote Enabled YesNo

When to Use What?

SituationUse
Create PO from a mobile appBAPI_PO_CREATE1
Add a custom check before saving a materialBADI_MATERIAL_CHECK
Automate sales order creation via middlewareBAPI_SALESORDER_CREATEFROMDAT2
Add a custom field calculation in invoice logicBADI_SD_CUST_ITEM

13. What is the use of transaction code SE11 in SAP?

SE11 is the Data Dictionary (DDIC) transaction in SAP. It’s one of the most powerful tools in SAP for both technical and functional consultants. It allows you to create, view, and manage SAP’s data definitions such as tables, views, data elements, domains, and search helps.

Key Uses of SE11

TaskPurpose
Display or create a tableStandard or custom transparent/pool/cluster tables
View table contentsDisplay table structure, fields, technical settings
Create/modify data typesDomains and data elements
Build views and joinsDatabase views, projection views, help views
Create search helpsValue help for input fields (F4 help)
Analyze technical relationshipsSee foreign keys, indexes, and dependencies

SE11 Components

ComponentDescription
TableDefines a database table structure (e.g., BKPF, BSEG, MARA)
Data ElementSemantic layer (e.g., EBELN – PO number)
DomainTechnical properties like data type and length
ViewLogical view of data from one or more tables
Search HelpF4 Help (input help) for user inputs
Lock ObjectManages locking mechanism to avoid parallel updates

Example Use Cases

Functional Consultant:

Want to find the field and table where Payment Terms are stored?

→ Use SE11 to explore LFA1 or BSEG.

Techno-Functional Consultant:

Need to add a new field in a custom Z-table?

→ Use SE11 to enhance structure or create new table.

Workflow Triggering:

Want to check if a field exists to be used in a workflow condition?

→ Use SE11 to validate field types and domains.

Real-Life Scenario

Suppose you want to find out where the Document Type for vendor invoices is stored.

Go to SE11

Open table BKPF

Look for field BLART (Document Type)

Click on Data Element → See Field Label

Click on Domain → Understand its value range or domain fixed values

14. What is the use of transaction code SE18 and SE19 in SAP?

These two TCodes are key tools for implementing Business Add-Ins (BAdIs) — SAP’s modern enhancement framework.

SE18 – BAdI Definition

Used to display or explore the BAdI definition

Lets you see:

Interface name

Methods available

Filters (if any)

Multiple-use options

You do not implement anything here

Think of it as the “blueprint” or “design” of an enhancement spot

Example:

Go to SE18

Enter BAdI name: ME_PROCESS_PO_CUST

You’ll see:

Interface: IF_EX_ME_PROCESS_PO_CUST

Methods like PROCESS_HEADER, PROCESS_ITEM

SE19 – BAdI Implementation

Used to create and manage your own implementations of a BAdI

You write custom code inside the method of a BAdI implementation

You can create:

Single implementation

Multiple implementations (if allowed)

You activate the logic here

Example:

Go to SE19

Create Implementation: ZPO_CUSTOM_LOGIC

Choose ME_PROCESS_PO_CUST

Implement method PROCESS_ITEM

Add code to send email or perform validation

METHOD if_ex_me_process_po_cust~process_item.

  DATA: lv_matnr TYPE ekpo-matnr.

  lv_matnr = im_item->get_data( )->matnr.

  IF lv_matnr IS INITIAL.

    MESSAGE ‘Material number cannot be blank’ TYPE ‘E’.

  ENDIF.

ENDMETHOD.

Relationship Between SE18 & SE19

TCodePurpose
SE18View/Analyze BAdI definition
SE19Create/Implement the logic

Think:

SE18 = Blueprint

SE19 = Builder

Where Used in Projects?

PO/PR validations (ME_PROCESS_PO_CUST)

FI Document posting enhancements (FAGL_DOCUMENT_SPLIT)

Vendor master custom validations (VENDOR_ADD_DATA)

HR Infotype enhancements (HRPAD00INFTY)

BAdI Types You Might See

TypeDescription
Classical BAdIOlder enhancement type (single implementation)
New BAdI (Enhancement Spot)Modern object-oriented BAdI (multiple implementations, filter-based)
Filter-Dependent BAdIYou can restrict logic based on a filter like company code or country

15. What is the difference between Classical BAdI and New BAdI (Enhancement Spot)?

SAP provides two main types of BAdIs:

Classical BAdI – older version, limited functionality

New BAdI (Enhancement Spot Framework) – modern, flexible, object-oriented

Both are used to enhance SAP standard behavior without modifying original code.

Key Differences

FeatureClassical BAdINew BAdI (Enhancement Spot)
Introduced inSAP 4.6cSAP NetWeaver 7.0 and higher (ECC 6.0, S/4HANA)
Implementation CountUsually single-useAllows multiple implementations
Filter OptionNot available Yes (filter-dependent BAdIs)
TechnologyUses SE18/SE19, interface-basedUses Enhancement Spot, class-based
InterfaceImplemented via custom classUses IF_BADI_INTERFACE & enhancement spot
PerformanceSlightly less optimizedMore efficient (SAP kernel-supported dispatching)
Multiple-use / Conflict HandlingNo conflict resolution Supports fallback, priority, filters
TCode for DefinitionSE18SE18
TCode for ImplementationSE19SE19 (or Enhancement Implementation menu)

How to Identify a BAdI Type

In SE18, when you open the BAdI:

If you see Interface-based definition → it’s Classical

If you see Enhancement Spot, Implementing Class, Filters → it’s New BAdI

Example Comparison

TaskClassical BAdINew BAdI
Add custom check to POME_PROCESS_PO_CUSTME_PROCESS_PO_CUST (converted as new BAdI in S/4HANA)
Country-specific logic in invoiceNot possible directly Use filters for country key (e.g., LAND1)

Real-Life Use Case for New BAdI

You want to apply different validation rules per company code when a Purchase Order is created.

Use New BAdI ME_PROCESS_PO_CUST

Add filter parameter: BUKRS (company code)

Create separate implementations per company

Each company can now have its own logic, all within the same enhancement spot.

Summary Table

AspectClassical BAdINew BAdI
Multiple ImplementationNoYes
Filters SupportedNoYes
Performance OptimizedLessMore
Object-Oriented DesignPartialFully

16. What is a Transport Request in SAP and how does it work?

A Transport Request (TR) in SAP is a package that collects all the changes (customizations or developments) made in the system and transports them from one SAP system to another, usually from Development → Quality → Production.

Why Is It Important?

SAP systems usually follow a 3-system landscape:

Development (DEV) → Quality/Testing (QAS) → Production (PRD)

Changes made in DEV must be transported safely and consistently to other systems without manual rework. This is what Transport Requests are for.

Components of a Transport Request

FieldDescription
TR NumberUnique ID like DEVK900123
OwnerUser who created the TR
DescriptionExplains the change or object
TypeWorkbench / Customizing
ObjectsWhat’s being transported (e.g., program, table, config, etc.)

Types of Transport Requests

TypeDescription
Workbench RequestFor ABAP developments (programs, tables, views)
Customizing RequestFor configuration settings (SPRO changes)
Relocation RequestFor transferring objects between packages

How Does It Work?

Change is made (e.g., Z-report, table config)

System prompts for a transport request (or you create one manually)

Changes are recorded inside the TR

TR is released in DEV using SE09 or SE10

The Basis team imports the TR into QAS → then PRD

How to Create and Manage TRs?

SE09 → Workbench requests

SE10 → Both Workbench & Customizing

SE01 → Transport Organizer (Advanced)

TR Number Format

ExampleMeaning
DEVK900123DEV = system ID, K = Workbench, 900123 = number
DEVC900456C = Customizing request

Release Process (Very Important)

A transport has:

Main Request

One or more Tasks under it

First, you release the tasks

Then you release the main request

The release creates cofiles and data files for migration

Real-Life Example

You created a custom table ZSALES_DATA and a report ZSALES_REPORT.

Both were captured in a Workbench Request.

Once development is complete:

Release it in SE09

Basis imports it to Quality system

After testing, it goes to Production

17. What are Smart Forms and how are they different from SAP Scripts?

Both Smart Forms and SAPScripts are SAP tools used for designing and printing forms (invoices, purchase orders, delivery notes, etc.), but Smart Forms is the more modern and flexible approach.

What is a Smart Form?

Smart Forms:

Are graphical-based tools used to design forms

Allow drag-and-drop elements (text, tables, windows, graphics)

Use Smart Styles for formatting

Generate function modules automatically (which are then called in ABAP)

Key Differences: Smart Forms vs SAP Scripts

FeatureSmart FormsSAP Scripts
DesignerGraphical (drag-drop)Script-based (SE71 layout editor)
Output ControlLogic & layout in one placeLogic in print program, layout in SE71
MaintenanceEasier (no scripting knowledge needed)Complex (older interface)
ReusabilityUses Smart StylesUses Styles & Standard Texts
DebuggingPossible using function moduleDifficult
PerformanceBetter (generated function modules)Comparatively slower
Print Program Required?Yes (calls generated FM)Yes (calls SAPScript form)
TranslationIntegrated in transaction SMARTFORMSIn transaction SE63

How Smart Forms Work

Use SMARTFORMS to design the form (layout + logic)

SAP generates a function module for that form

You call that FM from your print program

Output is generated (PDF/Print)

 Example ABAP Call:

DATA: fm_name TYPE rs38l_fnam.

CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’

  EXPORTING

    formname           = ‘ZSMART_INVOICE’

  IMPORTING

    fm_name            = fm_name.

CALL FUNCTION fm_name

  EXPORTING

    control_parameters = ls_ctrl

    output_options     = ls_out

    user_settings      = ‘X’

  EXCEPTIONS

    others             = 1.

Real-Life Usage

DocumentTool Recommended
Customer InvoiceSmart Form
Purchase Order PrintSmart Form
Legacy formSAPScript (older implementations)
Label/Sticker PrintingSmart Form

TCodes to Remember

TCodePurpose
SMARTFORMSCreate/Change Smart Form
SE71Create SAPScript
SE78Upload Logos
SMARTSTYLESDefine Fonts & Styles
SE63Translations

18. Explain how you debug an issue that spans across FI and MM modules

In SAP, issues that span across modules like FI (Financial Accounting) and MM (Materials Management) often occur during goods movements, invoice postings, or account determinations. Debugging such cross-functional issues requires a structured approach involving functional flow understanding and technical tools.

Common Scenarios Where FI-MM Overlap

ScenarioProcess Involved
Goods Receipt (MIGO)Triggers accounting document (FI)
Invoice Verification (MIRO)FI document created for vendor liability
Price difference or GR/IR clearingFI adjustments triggered by MM events

Step-by-Step Debugging Approach

Step 1: 

Understand the Business Process

Ask the user: What is the TCode? What is the error message?

Clarify: Is it a posting error? Wrong amount? Missing GL?

Example: “When I post a GR in MIGO, no FI document is created.”

Step 2: 

Reproduce the Issue

Try the same transaction in QA/test system using same data (material, vendor, plant, etc.).

Note any error messages, short dumps (ST22), or update terminations (SM13).

Step 3: 

Check Configuration First

OBYC settings (TCode: OBYC) – is the correct GL account mapped?

Master data – is the material extended to plant? Valuated? Costed?

 Step 4: 

Debug the Standard Program

Use /h before executing the action (e.g., in MIGO or MIRO).

Set breakpoints in key function modules or user exits:

Common FM / IncludesPurpose
MB_DOCUMENT_BADICustom logic during MM posting
MRM_HEADER_CHECK, MRM_ITEM_CHECKInvoice Verification
BAPI_GOODSMVT_CREATEUsed in custom GR BAPI scenarios
AC_DOCUMENT_CREATETriggering accounting document

 Step 5: 

Check IDocs or BAPIs (if interface involved)

If this is via interface/API, check IDoc status in WE02/WE05.

Analyze status 51 messages (e.g., “Account key WRX not maintained”).

Step 6: 

Trace Table Updates

Check related tables:

MM side: MKPF, MSEG

FI side: BKPF, BSEG

GR/IR: RBKP, RSEG, BSIM

Compare if MM document is created but FI is missing or inconsistent.

Step 7: 

Use Transaction-Specific Logs

MIGO: Go to “Display FI Document” link.

MIRO: Check simulation view before posting.

Use MB5T, MB5S, MB5L for inventory inconsistencies.

Real Example:

A user posts MIRO for a PO, but FI document shows wrong tax.

Debug:

Check condition type in PO (e.g., MWST)

Validate tax code mapping in OB40

Put a breakpoint in MRM_CALCULATE_TAX to see how tax is derived

Check if any custom logic in MRM_ITEM_CHECK modifies tax line

19. What is the role of the functional spec and technical spec in custom development?

In SAP custom development, Functional Specifications (FS) and Technical Specifications (TS) are two critical documents that ensure smooth communication and execution between functional consultants, technical developers, and business users.

They act as a blueprint for building the solution exactly as per the requirement — functionally and technically.

1. What is a Functional Specification (FS)?

Prepared by: Functional Consultant

Purpose: Translates the business requirement into SAP terms with detailed rules and logic (but not code).

Audience: Technical developer, tester, and business approver.

Key Sections in FS:

SectionDescription
Business RequirementWhat the user wants to achieve
BackgroundExisting process or pain point
Input FieldsData input and sources (e.g., selection screen)
Business LogicRules to be applied (e.g., totals, filters)
Output RequirementsWhat should be displayed or printed
Impacted TransactionsRelated TCodes or process flows
Validations & ControlsAny mandatory checks or restrictions
Test Cases (Optional)Sample scenarios with data

Example: FS for Custom Vendor Aging Report

SectionDetails
RequirementShow vendor balances as per aging buckets
InputVendor No., Company Code, Date Range
LogicSplit balances into 30/60/90 days
OutputALV with totals, drilldown to FBL1N
Related TCodesFBL1N, ZVEND_AGING
TablesBSIK, BSAK, LFA1

2. What is a Technical Specification (TS)?

Prepared by: Technical (ABAP) Consultant

Purpose: Converts the FS into actual technical steps/code design.

Audience: Developers, reviewers, and testers.

Key Sections in TS:

SectionDescription
Program TypeReport, BDC, BAPI, Smartform, Enhancement
Table/Field MappingTable names, field logic, joins
Pseudocode/LogicModular logic steps in plain language
Error HandlingHow errors will be captured
Performance TuningUse of indexes, select optimizations
Security ConsiderationAuth checks, data access level
Transport DetailsPackage name, request ID
Test InstructionsHow to run/test the program

Example: TS for ZVEND_AGING Report

SectionDetails
Tables UsedBSIK, BSAK, LFA1
ALV TypeCL_GUI_ALV_GRID
Logic Flow1. Fetch open items → 2. Calculate due date → 3. Bucket into 30/60/90
EventsTOP-OF-PAGE, USER_COMMAND for FBL1N drilldown
Auth ChecksCompany Code & Vendor Number restrictions

FS vs. TS – Summary Comparison

CriteriaFunctional Spec (FS)Technical Spec (TS)
Written ByFunctional ConsultantTechnical Consultant (ABAP)
FocusWhat the system should doHow the system will do it
LevelProcess-level understandingCode-level understanding
AudienceBusiness + DeveloperDeveloper + Reviewer
Approval Needed ByBusiness & Dev LeadDev Lead & QA

Best Practice:

Always review FS and get sign-off from the business user before writing TS.

TS must include all technical edge cases, performance handling, and security checks.

Both FS and TS should be stored in a project repository (e.g., Solution Manager, SharePoint).

20. How do you handle missing data in IDoc processing?

In SAP, IDocs (Intermediate Documents) are used for data exchange between systems (SAP ↔ SAP or SAP ↔ non-SAP). Missing data in IDoc processing can lead to failed documents, status 51 errors, and broken integrations. Handling this effectively is key for a techno-functional consultant.

 Common Causes of Missing Data in IDocs

Type of DataExamples
Master DataMissing customer, vendor, material
ConfigurationMissing output type, partner profile
Transactional DataMissing delivery number, PO item
Mapping ErrorsIncorrect segment-field assignment
EnhancementsCustom code not populating fields

 Step-by-Step Approach to Handle Missing Data

1️ Monitor the IDoc

Use the following TCodes:

WE02 / WE05 – IDoc list with statuses

BD87 – Reprocess failed IDocs

WE19 – Test tool to simulate/resend IDocs

Check Status Code:

StatusMeaning
03Successfully processed
51Error in processing
64Ready for processing

 In Status 51, double-click the error message for root cause.

2️ Analyze the Error Message

Common examples:

“Material XXX does not exist” → Missing MM master

“GL account not found in company code” → OBYC/OB41 issue

“Plant XXX not defined” → Org data issue

3️ Compare with a Successful IDoc

Open a working IDoc (WE02) and compare:

Segment structure

Data in segments

Message type and partner profile

Look for:

Empty mandatory fields

Incorrect qualifiers (e.g., in E1EDK01)

Wrong data format (e.g., date YYYYMMDD vs. DD.MM.YYYY)

4️ Check Partner Profile (WE20)

Make sure:

Correct partner type (LS, KU, LI) is used

Message types and processing code are properly defined

Output mode is set (immediate/manual)

5️ Debug the IDoc Processing FM

Use WE19 to simulate the IDoc and /h to set a breakpoint in function module like:

IDOC_INPUT_INVOIC_MRM – Incoming vendor invoice

IDOC_INPUT_DELVRY – Inbound delivery

IDOC_INPUT_ORDERS – Sales Order creation

You can analyze why certain fields are not being filled or processed.

6️ Check Enhancements and User Exits

IDoc processing often includes custom logic in:

User exits (e.g., EXIT_SAPLVEDI_001)

BAdIs (e.g., EDI_DATA_MAPPER)

Z logic in IDoc_INPUT_xxx function modules

If custom logic forgets to populate key fields (e.g., plant, tax code), data will be missing.

7️ Fix and Reprocess

 Fixes may include:

Extending missing master data (material/vendor)

Correcting mapping logic

Updating the source system if it’s sending invalid data

Then reprocess via:

BD87 – Restart failed IDoc

WE19 – Resend with corrected data (for testing)

Real Example:

Inbound Order IDoc fails with “Sales Org missing”

Steps:

Open IDoc in WE02 → Check E1EDK14 segment for Sales Org

Found empty field → Mapping missed this value

Update source system mapping → Resend IDoc via WE19

Now, order created successfully (status 03)

21. What is the difference between implicit and explicit enhancements in SAP?

In SAP, enhancements allow developers to inject custom code into standard SAP programs without modifying the original source. Enhancements are classified as Implicit or Explicit based on how and where they are provided.

 What is an Explicit Enhancement?

Explicit Enhancements are manually created and explicitly defined in the SAP standard code by SAP itself using special statements like:

ENHANCEMENT-POINT

ENHANCEMENT-SECTION

These act as predefined “hooks” where developers can insert their logic.

 Key Features of Explicit Enhancements

FeatureDetails
Defined bySAP (in standard code)
VisibilityClearly marked in code with ENHANCEMENT keywords
Tool UsedSE18 / SE80
FlexibilityHigh – you can either append code or replace entire section
Upgrade-Safe? Yes

Example:

ENHANCEMENT-POINT Z_MY_ENH_POINT SPOTS ES_SALES_ORDER.

  ” Custom logic can be implemented here

END-ENHANCEMENT-POINT.

You can implement this enhancement via SE80 or directly in the program editor.

 What is an Implicit Enhancement?

Implicit Enhancements are automatically available at certain locations in all ABAP programs, even if SAP didn’t explicitly define them.

They are not marked in the code, but are known system rules that allow enhancements at:

Start and end of every FORM routine

Start and end of every Function Module

Start and end of every Method

Start and end of includes

 Key Features of Implicit Enhancements

FeatureDetails
Defined bySAP (system rules, not manually)
VisibilityNot shown unless you open “Enhancement Mode”
Tool UsedRight-click in SE80 or SE38 (Enhancement Implementation)
FlexibilityLimited (only certain positions allowed)
Upgrade-Safe? Yes

Example:

You open a method in a standard class.

You right-click at the end of the method and choose “Enhancement Implementation → Create Implicit Enhancement”

Your logic runs after the standard method logic

Implicit vs. Explicit Enhancement – Comparison

FeatureImplicit EnhancementExplicit Enhancement
Defined BySAP automatically (system-defined points)SAP developers (with ENHANCEMENT-POINT keyword)
Visibility in CodeNot visible unless in enhancement modeClearly visible with statements
Location FlexibilityOnly at start/end of forms, functions, methodsAnywhere SAP defines them
Activation ToolSE80 / Right-click method areaSE80 / Enhancement spot
Custom Code IsolationYes (separate enhancement implementation)Yes
Risk in UpgradesSafeSafe

Real Use Case:

You want to log additional data whenever a Sales Order is saved.

 Use explicit enhancement if there is a ENHANCEMENT-POINT in the SAPMV45A program.

If not available, check for implicit enhancement at the end of method SAVE_DOCUMENT_PREPARE.

Leave a Reply

error: Content is protected !!

Discover more from Bhagwat Bhokare

Subscribe now to keep reading and get access to the full archive.

Continue reading