Register Login

Substitution in FI


A substitution has been defined but nothing is substituted when posting.

If you use a substitution exit, make sure that only fields are replaced and that no side effects occur. For example, you must not trigger any error message, since this would interfere with the SAP program control. You have to issue your error messages in validation. In substitution and validation, error messages of category W, I are always only generated for the manual entry in FI and for the invoice verification MR01. For postings from other application components (for example, from SD (VF01) or from the logistics invoice verification (MR1M)), error messages of category W, I are ignored.

Possible causes are:

    1. The requirement specified as a prerequisite has not been met for the posting.

    2. The substitution was not activated in Customizing (Transaction OBBH) or it is not activated for batch input.

    3. Not all the values are available yet for callup point 1 and 2 for the substitution or validation in Transactions MR01, MRHR, MRHG, MR21, etc. (all with program SAPFMM08R). You should therefore use callup point 3 for the validation in these transactions. The values for callup point 1 and 2 are already available in the logisitics invoice verification (MR1M).

    4. A substitution for reversal postings (FB08, F.80) was defined. No substitution for callup point 1 - 3 takes place in FI for reversals, because the reversal document must resemble the document to be posted (except the exchanged debits and credits).

    5. An attempt was made to use a substitution exit to substitute a field which has not been released for substitution. When defining a substitution, you will find the fields that can be substituted under the "Extras -> Fields for substitution" menu option.

    6. A customer-defined field ZFELD was included in table BSEG. Such fields are not substituted during postings (from other modules) via the FI/CO interface. You must enhance the coding block so that ZFELD is substituted.

The substitution callup points available with Release 3.0 are primarily intended not as an input help, but above all to allow costumer-specific fields to be supplied with values without program modifications. So that, if possible, all values for standard fields are available here, the substitution callup point is only after the checks in the standard system. After the substitution no further check is carried out. Only those standard fields are released for substitution which meet the following requirements:

    1. Values are not critical for further processing and are not validated against other tables.

    2. Substitution is carried out for all documents that are posted.

Therefore only relatively few fields can be substituted for callup points 1 (document header) and 2 (line item). At callup point 3 (complete document), no field has currently been released since substitution is not possible for all transactions by which documents are posted (for example MR1M, VF01, MB01 or all postings via the FI/CO interface).
Fields of the coding block can be set at callup point 1 via the substitution in CO (Transaction OKC9).

You can carry out a substitution for some fields. If invalid values are substituted in this case, you may receive the wrong function or error messages in standard programs. However, these errors are not particularly critical. You can currently release the following fields for substitution:

Formally, this is a modification. Therefore, you can also change entries in the table via SAP transports with a release upgrade (refer to Note 0391309).
If you release fields other than the ones listed for substitution, then you must take responsibility for all the consequences!
Important: At callup point 2 (BOOLCLASS = 009) NO fields must be released for substitution from the document header. Otherwise, the system generates a short dump (PERFORM_PARAMETER_TOO_SHORT).

In addition to accounts and amounts, the following fields, for example, are critical and must not be substituted:
           GSBER: this could lead to inconsistencies with modules AM, CO and MM, since the business area is also used in these modules.

To make, for example, the BSEG-MABER field substitutable for callup point 2, proceed as follows:

    1. Table entry in GB01

              With an ABAP/4 program, change the entry: BOOLCLASS CLASSTYPE BCLTAB     BCLFIELD   BEXCLUDE
009       S         BSEG       MABER      X

              in table GB01 to the entry: BOOLCLASS CLASSTYPE BCLTAB     BCLFIELD   BEXCLUDE
009       S         BSEG       MABER

              That is, the BEXCLUDE field must be set to space. There is no view for maintaining GB01.


              BOOLCLASS = 008 at callup point 1. At callup point 3, a corresponding entry with BOOLCLASS = 015 must be inserted. In addition, the entry BOOLCLASS CLASSTYPE BCLTAB     BCLFIELD   BEXCLUDE
015       S         BSEG       *          X

              must be deleted for the BSEG fields (the same applies to BKPF fields). For callup point 3, you can of course also release all fields for substitution which have already been released for callup point 1 or 2. At callup point 3, substitution is only carried out if the document is posted in FI (with program SAPMF05A or SAPF110S) or in MM invoice verification (with program SAPMM08R). When posting via the FI/CO interface, for example, with direct input (RFBIBL00 Mode 'D' or transfer billing document with Transaction VF01) no substitution is carried out.

    2. Generation

              Using program RGUGBR00, regenerate the programs for the substitution in the current client. Parameter: "FI" application area, select the "Generate substitution export routines" checkbox (next to last checkbox).