Sometimes during FI postings, we find the menu item’s status are disabled or enabled which differs from our expectation.
Below is an example, the item in menu “Document->Park” is disabled during FI posting.
1. First, we check the program screen and the GUI status via menu: System->Status.
In the SAP Data tab we’ll see the following information:Note: There’re 2 ways to get the GUI status value.
> from the system status screen.
> from the debugging (We’ll introduce it later)
- Program Name
- Screen Number
- GUI status
2. Then we have to go to the flow logic of the screen. Generally speaking there’re two ways we can see the flow logic of the related screen
> Double click the “Screen number” field as descripted in step1
> In SE51, we input the program name and screen name
3. Find the module which is used for setting up the status of the menu in the PBO (process before output) part. In our example the module name is “STATUS_SETZEN_U”
Usually, the module name starts with “STATUS_SETZEN”. It can be STATUS_SETZEN_U, STATUS_SETZEN_Z, STATUS_SETZEN_W and STATUS_SETZEN_1005, etc. It depends on different screens. Or you can just search for a module contains characteristics ‘STATUS’ ”. Like in FV50, FV60& FV70 the module is “status”. One principle we should remember is: a module in the screen which is used for collecting the menu item’s code into an internal table called “EXCTAB” which is to say: the module locates in PBO and its functionality is to deal with table “EXCTAB”, then this module is our target!
4. Drill into the module. Usually, there should be a FORM called “status_setzen” under the module “STATUS_SETZEN*”.
5. Drill into this form and we’ll see another FORM “EXCTAB_FUELLEN”, we can set a breakpoint here to see the run time vaule for variable “STATUS”.
The usage of this form is to get the menu items into table “EXCTAB” all the items in this table will have status Disabled in the screen.
Note: if you don’t know what the target FORM is, just search it in the program with string “EXCTAB” as there’s always a form which collects the menu items’ code into table EXCTAB. (like in FV50/60/70, under module “Status” there’s a form called “set_exctab”, when we drill into this form to see the code, it’s collecting menu items’ code into table “EXCTAB”
6. Find the value of “STATUS” in the debug mode. Here we get the value “ZBV”
7. After getting the value of “Status”. In SE80, we input the program name and search a folder called “GUI Status”, under this folder we’ll find the value we get during the debugging for “STATUS”： In our example it’s “SAPMF05A->GUI Status->ZBV”
8. The next step is to find the “Code” value for the menu, here we can see the Code value for menu “Park” is “BP”
9. Technically speaking, those menu item with disabled status are stored in table “EXCTAB”.Then, we can trace the code to see which part code add those menus into the table “EXCTAB”. In our example it’s ”PERFORM EXCTAB_FUELLEN”
Here we can see the “BP” code is added to the “EXCTAB” table by note.