Skip to Content

Restricting/Unrestricting Fields for Substitutions and Validations

Restricting/Unrestricting Fields for Substitutions and Validations


This document explains the situations for FI Substitutions/Validations exclusively. The situations may or may not apply for substitutions and validations in other application areas


Validation consists of perquisite, check and message. If the prerequisite is met and the check is not fulfilled, the message is displayed. The validation rules are activated at company code level. They are used to examine settings, say, postings from company code to business area are made or not.

Substitutions are used to substitute a document field value and consist of a prerequisite and substitution. A substitution is enforced if the prerequisite is met. Substitutions are also activated at the company code level and can be a constant value, a user exit or field-field assignment

Call-up Points and Boolean Class

There are 5 call-up points which can be used for Substitution or Validation.

  1. Document Header
  2. Line Item
  3. Complete Document
  4. Cost of Sales Accounting
  5. Cost of Sales Accounting (New)

The set up for the call-up points and which Boolean classes are used for FI Validations/Substitutions details can be found in table GB31 in the system.

As seen above, the table has entries for other application areas also like Asset Management (AM), Controlling (CO) etc, but we will be only looking at the 5 entries for FI.

The 5 call-up points mentioned a little while earlier, can be found in the table for the 5 FI entries highlighted. The VALEVENTTXT gives the call-up point details corresponding to the number in the field VALEVENT.

The RCLASS or WCLASS field can be referred to know the Boolean Class for an application area and call-up point. For example, for application area FR and call-up point 2 (Line Item), Boolean class is 009. Knowing the Boolean class for an application area and call-up point combination will be necessary for reading the table GB01, explained later.

The fields GBVALUSE and GBSBSTUSE are used to define which call-up points will be used for Validations and Substitutions respectively. If the field value is blank, the call-up point does not appear in the screen to define Validations or Substitutions. The fields can have the following values:

Generally, only the values blank and X are used.

The GB31 data entries for FI look as below:

As seen, GBVALUSE has selection only for 3 call-up points with X. The value is blank for Cost of Sales Accounting and Cost of Sales Accounting (New) call-up points. Hence, when defining validations, only 3 call-up points will be available. For FI Substitutions, all 5 call-up points will be available, since, all the 5 entries have X in the GBSUBSTUSE field. This can be observed in the screen shots below:

Table GB01

Situation faced: We were trying to create a substitution that modifies the payment block field at the document line item level based on certain criteria. The development and unit testing went fine in the development system. When we transported to the test system, the pre-requisite part was displaying correctly, but, the substitution part was appearing as blank.

The above situation was because, somehow, the entries in GB01 in the development and test system were different.

The Boolean class which was read from table GB31 will be used here. For application area FI and call-up point line item, the Boolean class is 09.

The class type refers to RCLASS or WCLASS or both from GB31. The class type in GB01 is ‘B’ for Validation, ‘S’ for Substitution and ‘A’ for both Validation and Substitution.

BCLTAB, for FI application area, generally refers to tables BKPF or BSEG, the standard SAP document header and line item details tables or system fields like client, transaction code, user ID etc. The BCLFIELD has the table fields for each of the tables in BCLTAB.

BEXCLUDE determines whether the table field in BCLFIELD of BCLTAB can be used in substitutions and validations or not. The value can be blank or ‘X’. If the value is ‘X’, the field BCLFIELD of table BCLTABLE is not allowed for that particular CLASSTYPE and BOOLCLASS. If the value is blank, it is allowed.

The above screen shot shows which table and fields of the table that will be allowed for Validation and Substitution definition for the call-up point Document Header (Since the BOOLCLASS = 09). As seen, all fields (BCLFIELD = *) of table BKPF (BCLTAB = BKPF) are available (BEXCLUDE = blank) to be used in FI Validations (CLASSTYPE = B). For Substitutions (CLASSTYPE = S), in table BKPF (BCLTAB = BKPF), field BUDAT (BCLFIELD = BUDAT) is excluded (BEXCLUDE = X), whereas, field BKTXT (BCLFIELD = BTXT) is available (BEXCLUDE = blank). So, from BKPF table, field BTXT can be used for substitutions, but, BUDAT cannot be used.

In our case, the field ZLSPR (Payment Block) had BEXCLUDE = X in test system and BEXCLUDE = blank in development system for BOOLCLASS = 09 (FI application area and line item call-up point). So, the substitution worked fine in development system. But, when the transport moved to test system, since, the payment black field was not allowed in substitutions, the substitution data in the step became blank.

Modification of GB01

In order to make BUDAT field of BKPF table available for substitutions, the BEXCLUDE = X needs to be modified to BEXCLUDE = blank for that particular entry.

In standard SAP system, direct modification of GB01 is not allowed through SM30. For modifying entries of GB01, a maintenance view exists in standard SAP. The view is VWTYGB01.

The view entries are the same as GB01 and can be modified in SM30. Whatever modification is done for VWTYGB01, reflects in GB01 table.

Both GB01 and VWTYGB01 are cross client. Also, when modification is done and VWTYGB01 transported, only those entries are picked up in the TR which are changed during modification. The TR does not transport the whole table. In the system where the TR gets imported, the changes in VWTYGB01 directly reflect in the GB01 table.

So, to restrict fields or remove restriction on fields or add new tables and fields to be included in Substitutions and Validations, VWTYGB01 should be used.

You must be Logged on to comment or reply to a post.
  • Dear Sowmyadeepthi

    This is one the the most important aspect in FI implementation.

    I have seen that in practical life very negligible number of installation has make use this function effectively.

    This function of SAP is capable of driving entire implementation in absolutely correct direction without any diversion. AS this will validate the data at  entry level itself. So no GIGO principle will apply if this functions are used effectively.

    Very few consultants understand and make use of this functions effectively.

    I will admit that even I myself is not one of those few experts 🙁 .

    I really appreciate your efforts and learning this is in my wish list.

    And your Notes will be of great use in my learning process

    I rate it 5*****


    Chirag Shah

  • Having worked on one of complex engagements in Retail where Validations and Substitutions have been very very widely used, I guess this Document is very useful. Most of our colleagues need to be aware of the way validations and substitutions can be used.


    Sanil Bhandari

  • Hi Sowmya

    Clear and concise document on FI validations and substitutions.  Gives practical understanding.  Thanks for sharing your knowledge.


    Ram Vusirikala

  • Hi Sowmya,

    Good doc on FI Substitutions & Validations. I got a great opportunity to learn a new thing which is very useful. Keeep Sharing your knowledge.

    Thanks & Regards,

    Lakshmi S

  • Good explanation, but I’m stuck.  Perhaps you can help.

    I need to add BSEC to FI validation. I currently have only BKPF and BSEG.

    I have reviewed notes and other sources and maintained tables as instructed.

    Relevant Tables contain:

    Table GB01 contains:


















    Table GB02 contains:







    Document Header and Line Items (FI)

    When I try to maintain V_GB01C to add an entry with:










    I get this error message:

    Table BSEC is not available in class 15

    What other tables (resources) do I need to maintain to complete my objective.

    A step by step would be appreciated.



    • Thanks for the challenge Gunter, but, I have never tried adding a new table. I would try and let you know if I am able to resolve.

      By the way, I am sorry for the delay in response. If you have already found the solution, as well may post here.

  • Best Explanation, nowhere I found such an answer about this topic. Excellent Sowmya, it helped me alot. Thanks for your contribution.

  • Hi Sowmya,

    Really appreciate the work done  here.

    V_GB01C is a view table of GB01C – can be used

    by using SM30 transacton for enabling for substitution and


    Similar to VWTYGB01 changes getting reflected in GB01

    any changes done in V_GB01C will reflect in GB01C table.

    Please let me know of any other views.

    Best Regards


  • Hi Sowmya,

    You have explained the critical topic in a very simple way. You people are really helping us in learning new topics where we didn’t get the opportunity to work. Thanks for sharing your knowledge !!



  • Hi Sowmya,

    This is a great topic, one of the method to enable hidden fields of substitution is to go to SM30 and access view VWTYGB01. It helped in one my substitution rules.


    Thank you!

  • Hi Wowmya,


    Thank you very much for sharing the documentation. I was looking for on how to remove the ‘X’ in GB01 table until I found your post, it helped me.

    but I have another question: I want to add BSEG-ZLSPR block function for some type of MIRO PO (PO’s account assignment category). I was trying to add substituction rule:  BKPF-BUKRS = ‘XXX’ AND  BSEG-KONTP = ‘X’, then  BSEG-ZLSPR = ‘A’. but it doens’t work, and I found in MIRO screen PO’s account assignment category is DRSEG-KNTTP, is not BSEG-KONTP. how can make this happen?