Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Problem while Creating Validation user exit in GGB0

deepak_dhamat
Active Contributor
0 Likes
19,332

Dear All ,

i have created one Validation user-exit  in GGB0 for FI followed all steps  1

1)  Copied RGGBR000 to ZRGGBR000  .

2)  added exit-name  , title ,parameter none  .

  exits-name  = 'ZORD'.
  exits-param = c_exit_param_none.        "Complete data used in exit.
  exits-title = text-105.                "Posting date check
  APPEND exits.

3)  also  form . endform 

  FORM zord USING b_result.
tables : coas .
if sy-tcode ='MB1A' .


endif.


ENDFORM

4) done changes  in table t80d  using GCX2

modified zprogram name  for application area gblr

5)  there is also entry  in ob28 for validation rule 

6) executed report  RGUGBR00  .

7) when i go in GGB0  and put cursor  on exit  and click on ABAP editor  it show that code  ...

😎 when i called that exit  through GGB0 it does not gives call to that exit NAME "ZORD" ?

Could you please guide us for the same  .

I have attached the screen shot of exit created  by name zord  .

Regards

Deepak.

1 ACCEPTED SOLUTION
Read only

RaymondGiuseppi
Active Contributor
10,484

5)  there is also entry  in ob28 for validation rule  

- Did you activate the rules (value 1 in OB28) ?

8) when i called that exit  through GGB0 it does not gives call to that exit NAME "ZORD" ?

- What do you mean by "when i called that exit  through GGB0" ?

- If you try to debug, where did you put break-point (ZRGGBR000 will never been executed, but includes type GBT**FI**, check Note 842318 - Frequently asked questions about validations + substitutions for key word debug)

Regards,

Raymond

14 REPLIES 14
Read only

RaymondGiuseppi
Active Contributor
10,485

5)  there is also entry  in ob28 for validation rule  

- Did you activate the rules (value 1 in OB28) ?

8) when i called that exit  through GGB0 it does not gives call to that exit NAME "ZORD" ?

- What do you mean by "when i called that exit  through GGB0" ?

- If you try to debug, where did you put break-point (ZRGGBR000 will never been executed, but includes type GBT**FI**, check Note 842318 - Frequently asked questions about validations + substitutions for key word debug)

Regards,

Raymond

Read only

0 Likes
10,484

Thank you for reply  .

yes  i have put break point  in ZRGGBR000  . But it did'nt get call  .

i have activated the rules (value 1 in OB28) .

i will refer  Note : 842318 .

But Raymond Can you tell me  :

when i execute  report  RGUGBR00 what exactly code is generated  i.e

all related include are generated again  or only specific  code is generated  .

regards

Deepak.

Read only

0 Likes
10,484

Actually read the note I provided, RGUGBR00 will generate many includes that interpret your rules, as I already wrote, ZRGGBR000 will never been executed

Regards,

Raymond

Read only

0 Likes
10,484

Not very sure about that but I remember that the naming convention for exits was UXXX where U9xx stands for customer. Can you please try to change ZORD to U901 let's say and try again ?

Once again, I'm not very sure about that.

Read only

0 Likes
10,484

In the generated includes (Look for an include name like GBT*FI*) the routines are converted with names like valcond_1z001###001 (condition 1 or group Z001) or valchck_2z001###001 (check 1 of group Z001)

Reading the note is not an option but an obligation for debugging...

(As the break-point in the customer include will only be reached if everything is correctly customized, so only if we don't need to debug...)

Alternative : perform a where-used on the form name, if not found, then check message in GBB0 transaction. (Is there another FORM routine in the programs involved ?)

> Once you find the include, you could set a break-point at start of form FORM VAL_ZXXX where ZXXX is the name of the validation in GBB, which executes the steps of validation.

Regards,

Raymond

Read only

0 Likes
10,484

No , you are right, it is written in the documentaiton of GBB0 transaction

User exits have the following format:

  • U  (for a user-defined user exit) or   S  (for a standard user exit) 
  • The user exit number (three digits)

  So ZORM is not allowed (should have raised an error message ?) Name should be U + 3 digits

Regards,

Raymond

Read only

0 Likes
10,484

And to be totally clear, Uxxx as mentioned stands for Customer. So what I said about U9xx it's not valid.

Thanks for the info Raymond. I wasn't very sure about it.

So, Deepak, change the name of the form and it will probably work as designed.

Regards.

Read only

0 Likes
10,484

Raymond,

Thanks for the update.  But I am having few exits which starts with Z (Zxxx) which is working properly in a production system (I never noticed this part of documentation related to GGB0 while creating these exits)

So, I feel there is something other than naming convention which is creating the problem.

Regards, Vinod

P.S : Setting the break point through expert trace in GGB0 (Extras -> Expert Trace -> set break point) & Activating the total trace (Extras->Activate total trace) may help to identify the problem.


Read only

0 Likes
10,484

Hi Raymond  ,

Sorry for Late Reply ... was on leave  ..

i found the  Include generated  by executing program  RGUGBR00  .

i.e GBTQYFIE  ..

it does gets call  ... and satisfies Prequisite condition  .

after that it goes to include  GBTQYFID ,GBTQYFIF for checking  validation exit 

83 *       Exit evaluation :RES000                                       *

84   RES000     = B_TRUE.

85   PERFORM ZORD(ZRGGBR000)

86                 IF FOUND

87               CHANGING

88                 RES000.

Then  it gets call to actual program ZRGGBR000 => ZORD form 

265 FORM ZORD USING b_result.

266 tables : coas ,csks ,mseg .

267 if sy-tcode ='MB1A' .

268

269

270 endif.

271

272

273

274

275 ENDFORM.                    "ZKTSLORD

276

But now  my problem is  when i am executing MB1A   i am entering KOSTL and AUFNR i.e internal order   ... i am not getting those values  in  Any of the structure  i.e BSEG ,BKPF  or COAS ,cobl  ... where can i get that  internal order and costcentre  entered  in MB1A screen  .

i need to validate those internal order   from table COAS  .

regards

Deepak.

Read only

0 Likes
10,484

SAP standard delivered validation exits in my system is called U100, US001 and UM001, so if some documentation says that U... is customer names space, then I can only say that this is not true according to SAP standard code in RGGBR000.

I have for many years used z... for my own substitution and validation exits, and so far I have seen no problems with that.

Read only

0 Likes
10,484

For reference to documentation -> User Exits in Validations/Substitutions/Rules.

With actual versions (there were "some" changes in generation of program for the last 10+ years) you should not get into trouble with such name as the generated program now uses some

PERFORM <form name>(<zinclude_of _forms>) IF FOUND .

Also don't  forget that RGGBS000 and RGGBR000 are only samples provided by SAP so they display some samples of User forms.


Regards,

Raymond

Read only

0 Likes
10,484

Hello Raymond ,

Thanks so much for that Exit pointer . Setting my Exit to start with U worked like a charm for me

Aham .

Read only

0 Likes
10,484

Hello Raymond,

Thanks for the Note.

I was facing the same error and it got solved by processing manual steps suggested in this note.

Regards.

Read only

Former Member
0 Likes
10,484

This message was moderated.