Application Development 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: 

What triggers a user exit?

Former Member
0 Kudos

I have another question out here about VF11 and user exits but in general:

For billing documents (for example program RV60AFZC), what triggers a user exit to run? I see that there are 15 user exits.

What triggers these? I mean if you go into VF11 and you execute, does that cause every one of those user exists to be processed or is each one of those a different reaction to something in VF11? Like execute will cause one to run, clicking the save button will cause another etc.

All info welcomed!!

P.S. I am looking for an exit that will allow me to update the date and time when someone runs a VF11. The exit called USER_EXIT_FILL_VBRK_VBRP will do this but it only fires off on invoice creation, not for VF11 transactions.

Also if you run a VF11, does it create an additional VBRK record in addition to the original invoice?

Thank you.

7 REPLIES 7

FredericGirod
Active Contributor
0 Kudos

Hi,

for this kind of user-exit (doesn't work with a project CMOD/SMOD), you will impact a set of transactions. All the transactions link with the master program RV60AFxx.

So you need to filter the transaction code.

It's working like you said, each of the form inside this program are processed at a specific moment during the transaction : when you saved, when you change something, when you modify the price ... 

When I used this, I put break point in all the form that seams to feat my problem and I check in debug.

regards

Fred

former_member187748
Active Contributor
0 Kudos

Hi Richard,

yes, each user exit has its own processings, to know which user exits you are looking for,

just put a hard code BREAK point, by giving your user id as shown below.

BREAK abc.

where abc is my SAP login id, then just run your transaction, i.e. VF11.

You will see that, the different screen will gets displayed upon executing

(pressing F8). And it will simply show you how diffeent user exits have been configured

for different processings. Do yourself and see what user exit you needs.

Former Member
0 Kudos

Dear ,

        Every user exit have their own use according to our requirement we have to find which user exit is useful . If we are functional consultant having knowledge user exit then no issue , but if we dont know about it then you have to make break point on all user exit one by one and find which is full fill our requirement .

Sandeep 

Former Member
0 Kudos

User Exits For Billing

USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)

The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.

USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)

In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).

USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)

In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).

USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)

Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy). USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.

USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)

This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.

USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)

Printing the item line of a billing document can be supplemented or changed.

USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)

Printing the header line of a billing document can be supplemented or changed.

User exits in program RV60AFZD

Short descriptions of the user exits are contained in the program:

USEREXIT_RELI_XVBPAK_AVBPAK

USEREXIT_NEWROLE_XVBPAK_AVBPAK

USEREXIT_NEWROLE_XVBPAP_AVBPAK

The following user exits are available in report SAPLV60B for transfer to accounting (function group V60B):

EXIT_SAPLV60B_001: Change the header data in the structure acchd

You can use this exit to influence the header information of the accounting document. For example, you can change the business transaction, "created on" date and time, the name of the person who created it or the transaction with which the document was created.

EXIT_SAPLV60B_002: Change the customer line ACCIT

You can use this exit to change the customer line in the accounting document. This exit is processed once the ACCIT structure is filled in with data from document header VBRK.

EXIT_SAPLV60B_003: Change the customer line in costing

The customer line is filled in differently for costing. You can use exit 003 to influence the ACCIT structure.

EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add information to a GL account item (such as quantity specifications) with this exit.

EXIT_SAPLV60B_005: User exit for accruals

Once all relevant data for accruals was entered in the GL account item, you can add to this data with this exit.

EXIT_SAPLV60B_006: Change the control line ACCIT

You can use exit 006 to add information to the control line.

EXIT_SAPLV60B_007: Change the installment plan

You can use exit 007 to add information to the installment plan

parameters in the GL account item.

EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and ACCHD

After the accounting document is filled in with data, you can use exit 008 to change the document once again.

EXIT_SAPLV60B_010: Item table for customer lines

You can use exit 10 to influence the contents of customer lines before they are created.

EXIT_SAPLV60B_0011: Change the parameter for cash account determination or reconciliation account determination

You can use this exit to change inbound parameters in order to influence account determination.

regards

Sandeep

Former Member
0 Kudos

Hi Richard,

Please find the answer your question! Please find my comments based on the trails in my system!

RV60AFZC- USER_EXIT_FILL_VBRK_VBRP


-   The mentioned user exit will only work for VF01 and it will not work for VF11. You can modify the time only create of billing docs not for cancelling billings.

By the way if you want to modify the VF01 and VF11 in both cases, relevant user exit BELOW.

Include: RV60AFZC


FORM userexit_number_range_inv_date using us_range_intern.

*Modify the VBRK


ENDFORM.


Regards,

Kiran


0 Kudos

For some reason I cannot award the correct answer on this. Maybe I did not create it as a question? And I can't edit it either to change it as a question.

I apologize but all of you had fantastic information and I thank you.

Kiran Kumar, you were correct by the way in that only the second UserExit would work and in fact I made my coding there and it did work. My problem is solved.

@Sanjeev Kumar:

Excuse my lack of knowledge, but in the UserExit you simply put that line in there as you have it listed but with your username so BREAK USERNAME

What is the effect of this? This will cause SAP to look to see if the person running the code matches that username and if so it does what? How do you know which userexit you are in at the time of the break?

I see BREAK-PONT as a syntax option. Is that what you mean? Please elaborate if you don't mind.

Thank you all for your help. If I can change this thread I will reward points.

0 Kudos

Hi Richard,

when you don't know , which exact user exit you are looking for, or which user exit, is your requirement.

To know this, we do as what i told you earlier, because if you put a hard coded, breakpoint, and execute your standard transaction, then it will stops for each moment for which it has been specified

for, so what i told you earlier, is the method. when you don't  know about the behaviour of any user exit.

I hope it clarifies your query, if not you can feel free to ask me again, no problem at all.