Substitution in FI
A substitution has been defined but nothing is substituted when posting. Note: 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
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 logistics invoice verification
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 meets the following requirements:
6.1. Values are not critical for further processing and are not validated against other
6.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
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: BSEG-FIPOS, BSEG-
HBKID, BSEG-MSCHL, BSEG-MANSP, BSEG-MADAT, BSEG-MANST, BSEG-
MABER, BSEG-RSTGR, BSEG-ZLSPR 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
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
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
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.
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).