Understanding Program Enhancements

Objective

After completing this lesson, you will be able to explain the program enhancements.

Technology of Program Enhancement

Flowchart showing pathways for customer or industry-specific SAP utilities programs, emphasizing flexibility without modifying SAP programs.

Transaction FQEVENTS is used to show the standard programs, the industry-specific programs and the customer-specific ones.

Diagram depicting program enhancement through event categorization into standard, industry, and customer functionalities, demonstrating modular configurations.

Program Enhancements: Billing

Program Enhancements – Billing I

  • EBIA0001 IS-U: Maintain customer-specific fields in billing document

  • EBIA0002 IS-U: Proration according to customer-specific schedules

  • EBIA0003 IS-U: Customer-specific checks in billing and overall check

  • EBIA0004 IS-U: User exit external calculation of compressibility

  • EBIA0005 IS-U: Termination of mass runs

  • EBIA0006 IS-U: Period control: Determine time portions in billing

  • EBIA0007 IS-U: Customer-specific actions in billing reversal

  • EBIA0008 IS-U: Customer-specific actions in the update of billing reversal

  • EBIA0009 IS-U: Move-in/move-out adjustment to the day/to the month

  • EBIA0011 IS-U: Billing update

  • EBIA0012 IS-U: Maintain customer data in the billing obj. OBJ

  • EBIA0013 IS-U: Customer checks in the billing selection

  • EBIA0014 IS-U: Maintain customer-specific fields in manual billing

  • EBIA0015 IS-U: Backbilling user exit

  • EBIA0016 IS-U: Determination of billing calorific value

Program Enhancements – Billing II

  • EBIA0017 IS-U: Individual document display

  • EBIA0018 IS-U: Customer requirements during line item combination

  • EBIA0019 IS-U: Customer-specific bill comparison

  • EBIA0020 IS-U: Change current period during dynamic period control

  • EBIA0021 IS-U: Change current billing period during dynamic period control

  • EBIA0022 IS-U: Change contract sequence for billing

  • EBIA0023 IS-U: Fact checks

  • EBIA0024 IS-U: Enhancement for determining special operand value

  • EBIA0025 IS-U: Determine different weighting for measured quantities

  • EBIA0026 IS-U: Post processing of gas factors

  • EBIA0027 IS-U: Authority check for facts (enhancement)

  • EBIA0028 IS-U: Maintain/save customer facts in billing object

    EBIA0029 IS-U: Permit repeated adjustment reversal

Program Enhancements – Billing III

  • EBIA0030 User exit for customer overview reports in the BRE

  • EBIC0001 IS-U: Determine evaluation group for consumption history

  • EBIS0001 IS-U: User exit for external prices (EBL)

  • EBIS0002 IS-U: Enhancement for rate type and rate fact group

  • EBIS0003 IS-U: Reference value – Integration of customer-specific fields

  • EBIS0004 IS-U: Front office output of historical consumption values

  • EBIS0005 User exit for transferring installation facts

    EBIS0006 IS-U: Rate category – subscreen integration and field checks

  • EBIS0007 IS-U: User exit for price checks

  • EBIS0008 IS-U: User exit for checking calorific value

  • EBIS0009 IS-U: Enhancement for displaying currency in facts

  • EBIS0010 IS-U: Enhancement for customer-specific transport control

Using SE18, you can find appropriate BaDI for use:

  • ISU_BI_ADV_PERIOD: billing in advance

  • ISU_BI_BBP_EXT_PER: Extrapolation period for budget billing

  • ISU_BI_BICO_ACTIONS: Customer actions in bill correction

  • ISU_BI_BICO_DOC_SELECTION: Customer-specific document selection

  • ISU_BI_BLOCK_BILLING: Treatment of billing blocks

  • ISU_BI_EASIM: simulation scenarios

  • ISU_BI_EBF_HEAD: EBF document header

  • ISU_BI_INSTGR: Installation groups

  • ISU_BI_MASS_SIMUL: mass simulation of contracts

Many more, search ISU_BI*

Program Enhancements: Invoicing

Program Enhancements – Invoicing I

  • R400: Determination of clearing type / change to document type

  • R401: Selection of items for account maintenance

  • R402: Enhancement of invoicing contract accounting documents

    • For creating business partner and general ledger items

    • Prevents the posting of documents with zero amounts

    • For creating new posting documents

  • R403: Customer-specific definition of invoicing units – what billing documents are invoiced together

  • R404: Transfer of dunning information

  • R405: Addition of customer-specific information from billing documents to posting items

  • R408: Data on revenue recognition (delayed revenue posting)

  • R409: Enhancement of rounding items, in which bill amount rounding has taken place

  • R410: Selection of items that are to be printed in the bill, or to be included in the final bill amount

  • Overrides the Customizing settings in "Item Selection for Bill Display (TE529)

For further information on the program enhancements, see the documentation on each sample module.

The sample modules must have the naming convention ISU_SAMPLE_<Event>

Sample modules are stored in the function group E21U.

Create your customer-specific modules in a copy of the function group E21U.

You must save the customer-specific modules in the table TFKFBC. You maintain this in Customizing for Financial Accounting, under Contract Accounts Receivable and PayableProgram EnhancementsDefine Customer-Specific Function Modules.

Program Enhancements – Invoicing II

  • R411: Document selection for due date adjustment

  • R412: Set permanent or temporary print blocks

  • R413: Tax determination for billing (change tax code)

  • R417: Override due date

  • R428: Maintain customer-specific fields in the invoicing order (EITR)

  • R430: Determine payment method for business partner items and set clearing restrictions

    • When used in connection with the 'due date adjustment', you can make the appropriate settings so that items from the current bill are requested with the next bill.

  • R431: Invoicing unit is finished

    R433: Print document number is assigned – update customer-specific tables etc.

    R434: Rollback of customer-specific enhancements for processing errors (see events R431 and R433)

    R436: Maintain customer-specific fields in the print document

    • Is connected to the Customizing include "CI_ERDZ" in the print document line items

Program Enhancements – Invoicing III

  • R437: Set parameter for each invoicing unit

  • R469: Invoice reversal: Set print block

  • R470: Invoice reversal: Check permissibility

  • R471: Reversal document number is assigned – update customer-specific tables etc.

  • R472: Rollback customer-specific enhancements for processing errors

  • R501: Determine posting date and document type

  • R979: Customer-specific definition of LPC amount

  • R983: Set payment lock for items

Program Enhancements: Budget Billing Plan

Program Enhancements: Budget Billing Plan I

  • R923: Amount transfer in portion change

  • R925: Change date when adding a budget billing plan

  • R974: Create ABP: Amount limits per contract

  • R976: Amount change of budget billing amount items

  • R977: Amount change for several due dates

  • R978: Budget billing request, adjust due dates

  • R984: Determine extrapolation period

  • R985: Add contract to existing budget billing plan, change budget billing amounts

  • R987: Change printed or migrated items

  • R988: Use general ledger account as key

  • R989: Change creation date

  • R990: YAP documents when creating budget billing plan

  • R991: Post YAP bonus in invoicing

Program Enhancements: Budget Billing Plan II

  • R950: IS-U BBP: Calculation of Payment Plan Amount
  • R951: IS-U BBP: Check New Payment Plan Amount
  • R953: IS-U BBP: Define whether Payment Plan Check Is Necessary
  • R954: IS-U BBP: Adjustment Payment Plan Automatically
  • R955: IS-U BBP: Payment Plan Check
  • R992: Change due date when creating budget billing plan
  • R469: Invoice reversal: Set print block
  • R994: Change budget billing amount (when creating and adjusting)
  • R995: Manipulate budget billing / adjust standard budget billing amount
  • EA610002: Correct items in a budget billing plan
  • EINA0001: Dynamic budget billing cycle determination

S/4 HANA Enhancement and Extensibility

S-U Billing Enhancement and Extensibility: Transition to Clean Core

The move to SAP S/4HANA necessitates the adoption of the "Clean Core" principle for custom development and enhancements. This strategy is critical for minimizing technical debt, simplifying future upgrades, and ensuring long-term sustainability, regardless of the deployment model.

Deployment Context: S/4HANA Utilities Private Cloud

It is confirmed that the system runs on S/4HANA Utilities Private Cloud. This environment provides more flexibility than Public Cloud, meaning certain enhancement options (Level B) are technically feasible and generally more stable for upgrades. However, the goal remains to follow Clean Core guidelines to ensure solutions are upgrade-stable and align with SAP's strategic direction.

Existing Enhancement Options on S/4HANA

It is important to note that all previous enhancement options (e.g., classic BAdIs, user exits, modifications) that were available in the ECC/Business Suite environments still exist on the S/4HANA system.

However, to align with the Clean Core strategy and ensure future-proof, stable solutions, new extensibility options must be considered and prioritized.

Prioritizing New Extensibility Options (Clean Core)

When planning enhancements for IS-U Billing and Invoicing, developers must evaluate and adopt the new, recommended extensibility options. The primary goal is achieving high Upgrade Stability (a key factor for Clean Core in Private Cloud) and migrating toward SAP’s strategic Level A solutions.

According to SAP Note 3406389 (Clean Core for IS-U) and 3578329 (Frameworks, Technologies and Development Patterns in Context of Clean Core Extensibility), the following considerations must be made:

Extensibility Options and Clean Core Levels

Extensibility Options and Clean Core Levels

CategoryNameApplication ComponentClean Core LevelUpgrade StablePublic Cloud ReadyPublic Cloud Ready Alternatives
Enhancement relatedBAdI (Kernel based) - TechnologyBC-DWB-CEXAyesyesnot applicable
Enhancement relatedBAdI (classic) - TechnologyBC-DWB-CEXByesnoBAdI (Kernel based)
Enhancement relatedFI-CA Events / FQEVENTSFI-CAByesnoSpecific BAdIs

Key Considerations for Private Cloud

  1. Prioritize "Clean Core Level A" Options:
    • The highest priority must be given to extensibility options classified as Clean Core Level A (for example, BAdI (Kernel based) - Technology). This option is universally recommended as it is Upgrade Stable and represents the future-proof standard, even in a Private Cloud deployment. Always prioritize Level A.

  2. Handling "Clean Core Level B" Options:
    • Traditional methods like BAdI (classic) and FI-CA Events / FQEVENTS are classified as Level B. Crucially, they are still marked as Upgrade Stable in the table, which is an acceptable state for custom code in the Private Cloud environment.

    • Guidance: While Level B options are currently supported in Private Cloud, they are not the strategic path. Developers should consider the Level A alternatives (Kernel BAdIs, Specific BAdIs) for all new development as a best practice to maximize long-term technical health and ensure code is ready for any potential future transition.

  3. Mandatory Alternative Adoption (Strategic View):
    • To truly achieve a "Clean Core" and reduce future refactoring efforts, follow SAP's guidance:

      • Instead of: BAdI (classic), Best Practice is to Use: BAdI (Kernel based).

      • Instead of: FI-CA Events / FQEVENTS, Best Practice is to Use: Specific BAdIs (SAP will provide specific BAdIs to replace the FQEVENT framework).