User exit for display of first day in report
Hello friens,
I have to design a query in which my user want to see following way
Billed Packs----
Week1 Week 2...................week 52
packA
packB
Now user want to see the aggregated bill packs for each week.
And user does not want to see Week numbers , for e.g.
Billed Packs----
01/20xx 02/20xx 03/20xx ....................
packA
packB
User want to see the Start date of that week which means Date of Monday for each week instead.
Now it is not defined, for how much weeks user want to see , so i created a interval range variable for Week selection.
Now from previous posts i learnt that to display Start date of Monday for each week I HAVE TO CREATE A USER EXIT.
And also create text variable which then i will be using in Description to do the same.
Can you please send me STEP BY STEP for same.
Can all of you please send me Code for creating user exit
Can you please send me some sample codes and sample documents for the same.
My email id is [email protected]
Points will be awarded.
As you said "<i>Now it is not defined, for how much weeks user want to see , so i created a interval range variable for Week selection</i>.", how can you decide about the number of KFs in the structures?? (Because u'll have to create as many text variables as the no. of weeks)
<b>But if that is not the case, following are the steps -
1. Go to cmod to create customize project.
2. Click on Enhancement Assignment & key in 'RSR00001'
3. Click on Components & double click on the function exit EXIT_SAPLRRS0_001.
4. Here you write the above code before the "Endcase" statement.
5. Repeat the above code for rest of the text variables with slight modification as follows...
insert modification between function module call & filling l_s_range9 --</b>i.e.
<i>CALL FUNCTION 'WEEK_GET_FIRST_DAY'
EXPORTING
WEEK = wa9-low
IMPORTING
DATE = l_fst_day
EXCEPTIONS
WEEK_INVALID = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.</i>
<b>data: n_fst_day type sy-datum.
clear n_fst_day.
n_fst_day = l_fst_day + 8.
l_s_range9-low = n_fst_day.</b>
<i>l_s_range9-sign = 'I'.</i>
Please assign the points if this is useful.
Similar Messages
-
User Exit for display User fields in MM03
Peace to All,
I was able to place user fields in Purchase View of MM03.
Question , how do I pull data from ZMARA table of my master data so that I can display it on MM03.
I will appreciate your help on this. Does anyone has a sample program to do so.
Thanks in advance,
ShilpaHi Shilpa,
Check the following user exit for MM03:
MGA00001 Material Master (Industry): Checks and Enhancements
MGA00002 Material Master (Industry): Number Assignment
MGA00003 Material Master (Industry and Retail): Number Display.
Hope this will help you.... -
Urgent: USER exit for W2 Box 13 of Tax reporter 4.7
Hi,
I am working on tax reporter version 4.7 and while printing the W2 forms saw that the Box 13 (selection of Statutory employee or Retirment plan or third party sick pay ) is not ticked. I worked in one of the clients on ECC 6.0 last year whom had a custom user exit for this same box 13 of W2 which used to get ticked on W2 form depending on the logic in that user exit.
I suggested to this present client that an user exit needs to be written, they asked me to write functional specs for the user exit, can someone help me in writing the functional specs for this W2 form Box 13 selection of Tax reporter on 4.7. what do I need to specify and how do i need to write the functional specs reflecting the logic of this Box 13 of W2 form in tax reporter. Please help me guys, its very urgent.
I apprecite your answers.
Thank you so much
TonyHi Oscar Romero,
Sorry its an typo error. second range should be 001.2006 to 007.2006.
1. I want to know how to create Multiple Interval(Range) value variable? - I have used selection option and created variable. Is it correct?
2. Pls find my coding.
when 'ZFISCYAC'.
IF I_STEP = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZFYPEROP'. ---> Value entered is 001.2005 - 012.2006
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4).
L_S_RANGE-LOW4(3) = LOC_VAR_RANGE-LOW4(3).
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZSCENAR'. -
> Value entered 20060804, 20060705.
*concatenate LOC_VAR_RANGE-LOW(4) '0' LOC_VAR_RANGE-LOW+4(2)
*into L_S_RANGE-high.
L_S_RANGE-high = LOC_VAR_RANGE-LOW(4).
L_S_RANGE-high+4(1) = '0'.
L_S_RANGE-high5(2) = LOC_VAR_RANGE-LOW4(2).
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDLOOP.
ENDIF.
Final range should be for 20060804, "ZFISCAY" should be from 001.2005 to 008.2006
For 20060705 range should be 001.2005 to 007.2006.
*Coding for Filling variable "Fiscal year/Period Plan Multiple values
when 'ZFISCYPL'.
IF I_STEP = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZSCENAR'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4).
L_S_RANGE-LOW+4(2) = '00'.
L_S_RANGE-LOW6(1) = LOC_VAR_RANGE-LOW4(2) + 01.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZFYPEROP'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-high(4).
L_S_RANGE-HIGH4(3) = LOC_VAR_RANGE-high4(3).
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDLOOP.
ENDIF.
With same variable values entered as above plan value for variable "ZFISCPL" should be of range 009.2006 to 012.2006 for 20060804
Range should be 008.2006 to 012.2006 for 20060705.
Hope this is clear.
Pls answer very urgent.
Thanks.
Bhuvana. -
User-exit for displaying message in LT15
Hi,
I am looking for a user-exit (or another way?) for displaying a warning message when the user tries to cancel a TO via LT15 (under certain conditions). But the only user-exit that I found that would do the thing here is ZXLTOU02, but it's performed only in Update task - no message display possible.
Any ideas?
Cheers!Thanks for your input Chidanand,
But I've already tried by setting a breakpoint in all available exits concerning TO confirmation/cancellation - none of them is reached when LT15 is executed. The only one is the one I mentionned, and it is being performed in update task - so no message issuing possible.....
Any other ideas? -
Hi All
I know this is classic question
I need user exit for LT15 after TO has been canceled (Must be exactly after TO canceled)
since I need to call my zfunction after TO canceled
Find the solution in these link but nothing hit
Note : I have assigned in CMOD.
User exit after cancel of TO (LT15)
User Exit for Transaction LT15
User-exit for displaying message in LT15
Thanks
VickySorry my bad
Find it in MWMTO02
Close this thread, please
Thanks -
Abap code of user EXIT for my first post on FISCPER_CALC_MONTH or year
*ZSIGFISCPER Exercice cumulé jusqu'à la période selectionnée par utilisateur
TABLES: TVARVC.
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA : LOC_VAR_RANGE LIKE RRRANGEEXIT,
v_year like T009B-BDATJ,
v_per3 like T009B-POPER,
v_month(3) type c,
v_initial(7) type c,
v_date type d,
w_progcod like tvarvc-low.
BREAK-POINT.
CASE I_VNAM.
WHEN 'ZSIGFISCPER'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
v_year = LOC_VAR_RANGE-LOW(4).
concatenate v_year '001' into v_initial.
L_S_RANGE-LOW = v_initial.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
WHEN 'ZSIGVFISCYEAR'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
L_S_RANGE-LOW = v_year.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
*Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZP_FIL_FISCPER'
WHEN 'ZVUEPER1'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
concatenate v_year '001' into v_initial.
L_S_RANGE-LOW = v_initial.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
*Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZSIGFISC'
WHEN 'ZVUEPER2'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZSIGFISC'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
concatenate v_year '001' into v_initial.
L_S_RANGE-LOW = v_initial.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
Variables pour la requête ZSIGRQ_ZSIGMCM1_01 (Suivi des investissements)
WHEN 'ZSIGCDR2'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
CONCATENATE v_year '01' '01' INTO v_date.
L_S_RANGE-LOW = v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
WHEN 'ZSIGCDMS'. " Date de mise en service
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
CONCATENATE v_year '01' '01' INTO v_date.
L_S_RANGE-LOW = v_date.
CONCATENATE v_year '12' '31' into v_date.
L_S_RANGE-HIGH = v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
WHEN 'ZSIGHIM'. " Hierarchie
IF I_STEP = 1. "before the popup
Clear v_year.
SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIG_REF_0APPR_YEAR'.
IF sy-subrc EQ 0.
v_year = TVARVC-low.
ENDIF.
CLEAR w_progcod.
SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
IF sy-subrc EQ 0.
w_progcod = TVARVC-low.
ELSE.
MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
ENDIF.
CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
CLEAR w_progcod.
SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
IF sy-subrc EQ 0.
w_progcod = TVARVC-low.
ELSE.
MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
ENDIF.
CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
WHEN 'ZSIGCAC'. " version
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_month.
v_month = LOC_VAR_RANGE-LOW+4(3).
IF v_month LE '003'.
L_S_RANGE-LOW = 'PLA'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
ELSEIF v_month LE '008'.
L_S_RANGE-LOW = 'AC1'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
ELSE.
L_S_RANGE-LOW = 'AC2'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
ENDIF.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
WHEN 'ZSIGDDP'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
CLEAR L_S_RANGE.
CLEAR v_year.
v_year = LOC_VAR_RANGE-LOW(4).
v_per3 = LOC_VAR_RANGE-LOW+4(3).
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = v_year
I_MONMIT = 00
I_PERIV = 'K4'
I_POPER = v_per3
IMPORTING
E_DATE = v_date
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_S_RANGE-LOW = '20101231'."v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
Intervalle
WHEN 'Z_DATE_REF_INF_FOUR'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'Z_DATE_REF_SUP_FOUR'.
CLEAR L_S_RANGE.
CLEAR v_date.
v_date = LOC_VAR_RANGE-low.
break-point.
CALL FUNCTION 'SALP_CALC_DATE'
EXPORTING
IN_RECTYPE = 'M'
IN_NBR_DWXMQY = '6'
IN_DATE = v_date
IMPORTING
OUT_DATE = v_date
EXCEPTIONS
OTHER_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'SALP_CALC_DATE'
EXPORTING
IN_RECTYPE = 'Y'
IN_NBR_DWXMQY = '-2'
IN_DATE = v_date
IMPORTING
OUT_DATE = v_date
EXCEPTIONS
OTHER_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_S_RANGE-LOW = v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDLOOP.
ENDIF.
Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
Intervalle
Variables pour Production interne
Intervalle
Debut - FDUPEYROUX - 11/01/2010
WHEN 'ZSIGPEROI'.
IF I_STEP = 2. "after the popup
CLEAR L_S_RANGE.
CLEAR v_date.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
L_S_RANGE-LOW = LOC_VAR_RANGE-HIGH.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
WHEN 'ZSIGPEROI_ENT'.
IF I_STEP = 2. "after the popup
CLEAR L_S_RANGE.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
L_S_RANGE-LOW = '1000001'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
WHEN 'ZSIGPEROI_P1'.
IF I_STEP = 2. "after the popup
CLEAR: L_S_RANGE, v_per3.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
IF LOC_VAR_RANGE-LOW+4(3) = '001'.
LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
LOC_VAR_RANGE-LOW+4(3) = '012'.
ELSE.
v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
LOC_VAR_RANGE-LOW+4(3) = v_per3.
ENDIF.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
WHEN 'ZSIGPEROI_PINF'.
IF I_STEP = 2. "after the popup
CLEAR: L_S_RANGE, v_per3.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
IF LOC_VAR_RANGE-LOW+4(3) = '001'.
LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
LOC_VAR_RANGE-LOW+4(3) = '012'.
ELSE.
v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
LOC_VAR_RANGE-LOW+4(3) = v_per3.
ENDIF.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
L_S_RANGE-LOW = '1000001'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
WHEN 'ZSIGPERAN'.
IF I_STEP = 2. "after the popup
CLEAR L_S_RANGE.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
L_S_RANGE-LOW = '1000001'.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
WHEN 'ZSIGVDRPI'.
IF I_STEP = 2. "after the popup
CLEAR: L_S_RANGE,v_date,v_year,v_per3.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
v_year = LOC_VAR_RANGE-HIGH(4).
v_per3 = LOC_VAR_RANGE-HIGH+4(3).
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = v_year
I_MONMIT = 00
I_PERIV = 'K4'
I_POPER = v_per3
IMPORTING
E_DATE = v_date
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4.
L_S_RANGE-LOW = v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
Variables pour Production interne
Intervalle
Variables pour Production interne
Intervalle
WHEN 'ZSIGVDRPIM1'.
IF I_STEP = 2. "after the popup
CLEAR: L_S_RANGE,v_date,v_year,v_per3.
READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
WITH KEY VNAM = 'ZSIGPERPI'.
IF LOC_VAR_RANGE-LOW+4(3) = '001'.
LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
LOC_VAR_RANGE-LOW+4(3) = '012'.
ELSE.
v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
LOC_VAR_RANGE-LOW+4(3) = v_per3.
ENDIF.
v_year = LOC_VAR_RANGE-LOW(4).
v_per3 = LOC_VAR_RANGE-LOW+4(3).
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = v_year
I_MONMIT = 00
I_PERIV = 'K4'
I_POPER = v_per3
IMPORTING
E_DATE = v_date
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4.
L_S_RANGE-LOW = v_date.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
Variables pour Production interne
Intervalle
Edited by: Yass79 on Jan 9, 2012 8:55 PMHi ricx,
hmm, Finally I got you...
What you are asking is;
Is it possible to have User exit for Custom Developed ABAP Programs?
Am i right?
If this is your question, i can say it is not needed as we can edit Zprograms whenever we need.
If you have more doubts, revert back....
Regards
Karthik D -
What are the User Exits for Sales Order creation process?
Hi,
what are the User Exits for Sales Order creation process? how can I find them?
thanks in advance,
will reward,
MindaugasPlease check this info:
User Exits In Sales Document Processing
This IMG step describes additional installation-specific processing in sales document processing. In particular, the required INCLUDES and user exits are described.
Involved program components
System modifications for sales document processing affect different areas. Depending on the modification, you make the changes in the program components provided:
MV45ATZZ
For entering metadata for sales document processing. User-specific metadata must start with "ZZ".
MV45AOZZ
For entering additional installation-specific modules for sales document processing which are called up by the screen and run under PBO (Process Before Output) prior to output of the screen. The modules must start with "ZZ".
MV45AIZZ
For entering additional installation-specific modules for sales document processing. These are called up by the screen and run under PAI (Process After Input) after data input (for example, data validation). The modules must start with "ZZ".
MV45AFZZ and MV45EFZ1
For entering installation-specific FORM routines and for using user exits, which may be required and can be used if necessary. These program components are called up by the modules in MV45AOZZ or MV45AIZZ.
User exits in the program MV45AFZZ
The user exits which you can use for modifications in sales document processing are listed below.
USEREXIT_DELETE_DOCUMENT
This user exit can be used for deleting data which was stored in a separate table during sales document creation, for example, if the sales document is deleted.
For example, if an additional table is filled with the name of the person in charge (ERNAM) during order entry, this data can also be deleted after the sales order has been deleted.
The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the routine BELEG_SICHERN.
USEREXIT_FIELD_MODIFICATION
This user exit can be used to modify the attributes of the screen fields.
To do this, the screen fields are allocated to so-called modification groups 1 - 4 and can be edited together during a modification in ABAP. If a field has no field name, it cannot be allocated to a group.
The usage of the field groups (modification group 1-4) is as follows:
Modification group 1: Automatic modification with transaction MFAW
Modification group 2: It contains 'LOO' for step loop fields
Modification group 3: For modifications which depend on check tables or on other fixed information
Modification group 4: is not used
The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit.
This FORM routine is called up by the module FELDAUSWAHL.
See the Screen Painter manual for further information on structuring the interface.
USEREXIT_MOVE_FIELD_TO_VBAK
Use this user exit to assign values to new fields at sales document header level. It is described in the section "Transfer of the customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAK_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBAP
Use this user exit to assign values to new fields at sales document item level. It is described in the section "Copy customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAP_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBEP
Use this user exit to assign values to new fields at the level of the sales document schedule lines.
The user exit is called up at the end of the FORM routine VBEP_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBKD
Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer master fields into sales document".
The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
USEREXIT_NUMBER_RANGE
Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit.
The user exit is called up in the FORM routine BELEG_SICHERN.
USEREXIT_PRICING_PREPARE_TKOMK
Use this user exit if you want to include and assign a value to an additional header field in the communication structure KOMK taken as a basis for pricing.
USEREXIT_PRICING_PREPARE_TKOMP
Use this user exit if you want to include or assign a value to an additional item field in the communication structure KOMP taken as a basis for pricing.
USEREXIT_READ_DOCUMENT
You use this user exit if further additional tables are to be read when importing TA01 or TA02.
The user exit is called up at the end of the FORM routine BELEG_LESEN.
USEREXIT_SAVE_DOCUMENT
Use this user exit to fill user-specific statistics update tables.
The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
Note
If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.
USEREXIT_SAVE_DOCUMENT_PREPARE
Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.
User exits in the program MV45AFZA
USEREXIT_MOVE_FIELD_TO_KOMKD
Use this user exit to include or assign values to additional header fields in the communication structure KOMKD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
USEREXIT_MOVE_FIELD_TO_KOMPD
Use this user exit to include or assign values to additional item fields in the communication structure KOMPD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
USEREXIT_MOVE_FIELD_TO_KOMKG
Use this user exit to include or assign values to additional fields in the communication structure KOMKG taken as a basis for material determination and material listing. This is described in detail in the section "New fields for listing/exclusion".
USEREXIT_MOVE_FIELD_TO_KOMPG
Use this user exit to include or assign values to additional fields in the communication structure KOMPG taken as a basis for material determination and material listung. This is described in detail in the section "New fields for listing/exclusion".
USEREXIT_REFRESH_DOCUMENT
With this user exit, you can reset certain customer-specific fields as soon as processing of a sales document is finished and before the following document is edited.
For example, if the credit limit of the sold-to party is read during document processing, in each case it must be reset again before processing the next document so that the credit limit is not used for the sold-to party of the following document.
The user exit is executed when a document is saved if you leave the processing of a document with F3 or F15.
The user exit is called up at the end of the FORM routine BELEG_INITIALISIEREN.
User-Exits in program MV45AFZB
USEREXIT_CHECK_XVBAP_FOR_DELET
In this user exit, you can enter additional data for deletion of an item. If the criteria are met, the item is not deleted (unlike in the standard system).
USEREXIT_CHECK_XVBEP_FOR_DELET
In this user exit, you can enter additional data for deletion of a schedule line. If the criteria are met, the schedule line is not deleted (unlike in the standard system).
USEREXIT_CHECK_VBAK
This user exit can be used to carry out additional checks (e.g. for completion) in the document header. The system could, for example, check whether certain shipping conditions are allowed for a particular customer group.
USEREXIT_CHECK_VBAP
This user exit can be used to carry out additional checks (e.g. for completion) at item level.
USEREXIT_CHECK_VBKD
The user exit can be used to carry out additional checks (e.g. for completion) on the business data in the order.
USEREXIT_CHECK_VBEP
This user exit can be use to carry out additional checks (e.g. for completion) on the schedule line. During BOM explosion, for example, you may want certain fields to be copied from the main item to the sub-items (as for billing block in the standard system).
USEREXIT_CHECK_VBSN
You can use this user exit to carry out additional checks (e.g. for completion) on the serial number.
USEREXIT_CHECK_XVBSN_FOR_DELET In this user exit, you can enter additional criteria for deletion of the serial number. If the criteria are met, the serial number is not deleted (unlike in the standard system).
USEREXIT_FILL_VBAP_FROM_HVBAP
You can use this user exit to fill additional fields in the sub-item with data from the main item.
USEREXIT_MOVE_FIELD_TO_TVCOM_H
You can use this user exit to influence text determination for header texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
USEREXIT_MOVE_FIELD_TO_TVCOM_I
You can use this user exit to influence text determination for item texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
User-Exits for product allocation:
The following user exits all apply to structure COBL, in which the data for account determination is copied to item level.
USEREXIT_MOVE_FIELD_TO_COBL
Option to include new fields in structure COBL.
USEREXIT_COBL_RECEIVE_VBAK
Option to assign values from the document header to the new fields.
USEREXIT_COBL_RECEIVE_VBAP
Option to supply values from the item to the new fields.
USEREXIT_COBL_SEND_ITEM
A changed field can be copied from the structure into the item. You could use the user exit to display a certain field in the account assignment block (see also MV45AFZB).
USEREXIT_COBL_SEND_HEADER
A changed field can be copied from the structure to the header (see source text MV45AFZB)
USEREXIT_SOURCE_DETERMINATION
You can use this user exit to determine which plant will be used for the delivery. In the standard system, the delivering plant is copied from the customer master or the customer-material info record. If you want to use a different rule, then you must enter it in this user exit.
USEREXIT_MOVE_FIELD_TO_ME_REQ
With this user exit you can include additional fields for the following fields:
EBAN (purchase requisition)
EBKN (purchase requisition-account assignment)
USEREXIT_GET_FIELD_FROM_SDCOM
Option to include new fields for the variant configuration. Fields that are included in structure SDCOM can be processed and then returned to the order.
USEREXIT_MOVE_WORKAREA_TO_SDWA
You can use this user exit to format additional work areas for the variant configuration. You will find notes on the user exit in MV45AFZB.
User-Exits for first data transfer:
The following user exits can only be used for the first data transfer.
Note
Only use the user exits if the names/fields do NOT have the same name.
USEREXIT_MOVE_FIELD_TO_VBAKKOM
Option to include additional fields in structure VBAKKOM (communiction fields for maintaining the sales document header)
USEREXIT_MOVE_FIELD_TO_VBAPKOM
Option to include additional fields in structure VBAPKOM (communication fields for maintaining a sales item)
USEREXIT_MOVE_FIELD_TO_VBEPKOM
Option to include additional fields in structure VBEPKOM (communication fields for maintaining a sales document schedule line)
USEREXIT_MOVE_FIELD_TO_VBSN
You can use this user exit to include fields in structure VBSN (scheduling agreement-related change status).
USEREXIT_MOVE_FIELD_TO_KOMKH
You can use this user exit to include new fields for batch determination (document header).
USEREXIT_MOVE_FIELD_TO_KOMPH
You can use this user exit to include new fields for batch determination (document item).
USEREXIT_CUST_MATERIAL_READ
You can use this user exit to set another customer number in the customer material info record (e.g. with a customer hierarchy)
USEREXIT_NEW_PRICING_VBAP
Option for entry of preconditions for carrying out pricing again (e.g. changes made to a certain item field could be used as the precondition for pricing to be carried out again). Further information in MV45AFZB.
USEREXIT_NEW_PRICING_VBKD
Option for entry of preconditions for carrying out pricing again (e.g. changes to the customer group or price group could be set as the preconditions for the system to carry out pricing again). Further information in MV45AFZB.
User-Exits in Program MV45AFZD
USEREXIT_CONFIG_DATE_EXPLOSION
The BOM is exploded in the order with the entry date. You can use this user exit to determine which data should be used to explode the BOM (explosion with required delivery date, for example).
User exits in the program FV45EFZ1
USEREXIT_CHANGE_SALES_ORDER
In the standard SAP R/3 System, the quantity and confirmed date of the sales document schedule line is changed automatically if a purchase requisition is allocated, and it or the sales document is changed (for example, quantity, date).
If you want to change this configuration in the standard system, you can define certain requirements in order to protect your sales orders from being changed automatically. Use this user exit for this purpose. Decide at this point whether the schedule lines are to be changed.
User-Exits in Program RV45PFZA
USEREXIT_SET_STATUS_VBUK
In this user exit you can you can store a specification for the reserve fields in VBUK (header status). Reserve field UVK01 could, for example, be used for an additional order status (as for rejections status, etc.).
The following workareas are available for this user exit:
VBUK (header status)
FXVBUP (item status)
FXVBUV (Incompletion)
USEREXIT_SET_STATUS_VBUP
In this user exit you can you can store a specification for the reserve fields for VBUP (item status).
The following workareas are available for this user exit:
FXVBAP (Item data)
FXVBAPF (Dynamic part of order item flow)
FXVBUV (Incompletion)
USEREXIT_STATUS_VBUK_INVOICE
You can use this user exit to influence billing status at header level.
User exits in the screens
Additional header data is on screen SAPMV45A 0309, additional item data on screen SAPMV45A 0459. These screens contain the Include screens SAPMV45A 8309 or SAPMV45A 8459 as user exits.
Fields which are also to be included in the sales document for a specific installation should be included on the Include screens for maintaining. If an application-specific check module is needed for the fields, this can be included in the Include MV45AIZZ. The module is called up in the processing logic of the Include screens.
For field transports, you do not have to make changes or adjustments.
Example
A new field, VBAK-ZZKUN, should be included in table VBAK.
If the check is defined via the Dictionary (fixed values or check table) the field must be included with the fullscreen editor in the Include screen SAPMV45A 8309. In this case, no change has to be made to the processing logic.
User Exits in Program MV45AFZ4
USEREXIT_MOVE_FIELD_TO_KOMK
You can use this user exit to add or edit additional header fields in the communication structure - KOMK- for free goods determination. For more information, see the New Fields for Free Goods Determination IMG activity.
USEREXIT_MOVE_FIELD_TO_KOMP
You can use this user exit to add or edit additional item fields in the communication structure KOMP for free goods determination. For more information see the New Fields for Free Goods Determination IMG activity.
User Exits in the SAPFV45PF0E and SAPFV45PF0C Programs
EXIT_SAPFV45P_001
You can use this user exit to decide whether intercompany billing data is used in the profitability segment for cross-company code sales, or whether the data comes from external billing (external customer, sales data from the selling company code.
Regards
Eswar -
User Exits for Invoice creation ,cancellation and sales return
Hi Gurus,
Pl help me it's very urgent.
I did not find any user exit invoice creation so i wrote the following code in include program
MV60AF0B_BELEG_SICHERN.
This code is to update the Z*table while saving invoice ,cancellation and sales return.
The code modification is like below
FORM BELEG_SICHERN *
Buchen Fakturabelege *
FORM BELEG_SICHERN.
READ TABLE XVBRK INDEX 1.
IF SY-SUBRC NE 0.
CALL FUNCTION 'DEQUEUE_ALL'.
MESSAGE S032.
EXIT.
ENDIF.
IF SAMH_MOD = ON.
EXPORT XKOMFK TO MEMORY ID 'SDBILLDL'.
ENDIF.
DATA: CALC_TYPE.
IF REBATE_DETERMINED = 'Y'.
CALC_TYPE = 'A'.
ELSE.
CALC_TYPE = 'I'.
ENDIF.
*{ INSERT RD1K903017 1
Work Area*********************
data : wa_xvbrk type VBRKVB.
data : wa_xvbrp type vbrpvb.
data : wa_zmigo type zmigo.
data : wa_vbrp type vbrp.
Internal table Creation*******
DATA: BEGIN OF tab_XVBRP OCCURS 100.
INCLUDE STRUCTURE VBRPVB.
DATA: END OF tab_XVBRP.
data : begin of tab_vbeln occurs 10,
vbeln type vbrk-vbeln,
knumv type vbrk-knumv,
end of tab_vbeln.
data : tab_zmigo type table of zmigo.
data : tab_vbrp type table of vbrp.
*****Data declaration*************
data : v_no_of_inv type i.
data : v_vbeln_no(10) type n.
data : v_last_inv_no(10) type n.
data : v_first_inv_no(10) type c.
data : v_tot_qty type i.
data : v_frbnr type mkpf-frbnr.
*******Ranges*********************
ranges : r_vbeln for vbrk-vbeln.
*****Populating IT****************
tab_xvbrp[] = xvbrp[].
describe table xvbrk lines v_no_of_inv.
*} INSERT
CALL FUNCTION 'RV_INVOICE_DOCUMENT_ADD'
EXPORTING
VBSK_I = VBSK
WITH_POSTING = 'A'
PREISFINDUNGSART = CALC_TYPE
IMPORTING
VBSK_E = VBSK
TABLES
XKOMFK = XKOMFK
XTHEAD = XTHEAD
XVBFS = XVBFS
XVBSS = XVBSS
XVBRK = XVBRK
XVBRP = XVBRP
XVBPA = XVBPA
XKOMV = XKOMV.
*{ INSERT RD1K903017 2
data : v_count type i,v_fkimg type i .
data : v_no_of_records(10) type n.
wa_xvbrk = xvbrk.
********Selecting the last rec no from ZMIGO
select max( sr_no ) from zmigo into v_no_of_records.
*****If Distribution channel is not ZB*********
if wa_xvbrk-vtweg ne 'ZB' and ( wa_xvbrk-fkart = 'ZRIN' or wa_xvbrk-fkart = 'ZRTE' ).
if v_no_of_inv = 1. " Process only when there is one invoice
loop at tab_xvbrp into wa_xvbrp where ( matnr ne 'CDGSTP0001' and
matnr ne 'CD-RW' and
matnr ne 'CD-RW65OHS' and
matnr ne 'CABLE' and
matnr ne 'CD-R' and
matnr ne 'CDQ80N4' and
matnr ne 'GENERAL' and
matnr ne 'NERO' and
matnr ne 'OTHERS' and
matnr ne 'SPARE PARTS' and
matnr ne 'PROMO ITEM' and
matnr ne 'PROMO-1' and
matnr ne 'PROMO-2' and
matnr ne 'PROMO-3' and
matnr ne 'PROMO-4' and
matnr ne 'PROMO-5' and
matnr ne 'PROMO-6' and
matnr ne 'PROMO-7' and
matnr ne 'PROMO-8' and
matnr ne 'PROMO-9' and
matnr ne 'PROMO-10' ).
v_fkimg = wa_xvbrp-fkimg .
v_fkimg = v_fkimg / 1000.
do v_fkimg times.
v_no_of_records = v_no_of_records + 1.
wa_zmigo-sr_no = v_no_of_records.
wa_zmigo-po_no = wa_xvbrk-vbeln.
wa_zmigo-item_no = wa_xvbrp-posnr.
wa_zmigo-mblnr = wa_xmkpf-mblnr.
wa_zmigo-doc_type = wa_xvbrk-fkart.
wa_zmigo-posting_date = wa_xvbrk-fkdat.
wa_zmigo-created_on = sy-datum.
wa_zmigo-created_time = sy-uzeit.
wa_zmigo-bill_lno = v_frbnr.
wa_zmigo-material = wa_xvbrp-matnr.
wa_zmigo-inv_no = wa_xvbrk-vbeln.
wa_zmigo-inv_item_no = wa_xvbrp-posnr.
wa_zmigo-plant = wa_xvbrp-werks.
wa_zmigo-inv_date = wa_xvbrk-fkdat.
wa_zmigo-customer = wa_xvbrk-kunag.
wa_zmigo-unit = 1.
wa_zmigo-mtype = '601'.
insert into zmigo values wa_zmigo.
enddo.
clear : wa_zmigo.
endloop.
clear : v_count,v_fkimg,wa_zmigo.
refresh tab_zmigo[].
clear v_no_of_inv.
else. "When there are Split Invoices
v_last_inv_no = wa_xvbrk-vbeln.
v_vbeln_no = v_last_inv_no - v_no_of_inv + 1.
v_first_inv_no = v_vbeln_no.
sort tab_xvbrp by vbeln.
loop at tab_xvbrp into wa_xvbrp where ( matnr ne 'CDGSTP0001' and
matnr ne 'CD-RW' and
matnr ne 'CD-RW65OHS' and
matnr ne 'CABLE' and
matnr ne 'CD-R' and
matnr ne 'CDQ80N4' and
matnr ne 'GENERAL' and
matnr ne 'NERO' and
matnr ne 'OTHERS' and
matnr ne 'SPARE PARTS' and
matnr ne 'PROMO ITEM' and
matnr ne 'PROMO-1' and
matnr ne 'PROMO-2' and
matnr ne 'PROMO-3' and
matnr ne 'PROMO-4' and
matnr ne 'PROMO-5' and
matnr ne 'PROMO-6' and
matnr ne 'PROMO-7' and
matnr ne 'PROMO-8' and
matnr ne 'PROMO-9' and
matnr ne 'PROMO-10' ).
v_fkimg = wa_xvbrp-fkimg .
v_fkimg = v_fkimg / 1000.
do v_fkimg times.
v_no_of_records = v_no_of_records + 1.
wa_zmigo-sr_no = v_no_of_records.
wa_zmigo-po_no = v_vbeln_no. "wa_vbrp-vbeln.
wa_zmigo-item_no = wa_xvbrp-posnr.
wa_zmigo-mblnr = wa_xmkpf-mblnr.
wa_zmigo-doc_type = wa_xvbrk-fkart.
wa_zmigo-posting_date = wa_xvbrk-fkdat.
wa_zmigo-created_on = sy-datum.
wa_zmigo-created_time = sy-uzeit.
wa_zmigo-bill_lno = v_frbnr.
wa_zmigo-material = wa_xvbrp-matnr.
wa_zmigo-inv_no = v_vbeln_no.
wa_zmigo-inv_item_no = wa_xvbrp-posnr.
wa_zmigo-plant = wa_xvbrp-werks.
wa_zmigo-inv_date = wa_xvbrk-fkdat.
wa_zmigo-customer = wa_xvbrk-kunag.
wa_zmigo-unit = 1.
wa_zmigo-mtype = '601'.
insert into zmigo values wa_zmigo.
enddo.
clear : wa_zmigo.
at end of vbeln.
v_vbeln_no = v_vbeln_no + 1.
endat.
clear : v_count,v_fkimg,wa_zmigo.
refresh tab_zmigo[].
endloop.
endif. "End of first 2nd IF.
clear : v_no_of_inv, v_vbeln_no.
endif.
****************Sales return************************************
if wa_xvbrk-fkart = 'ZRRE' and wa_xvbrk-vtweg ne 'ZB'.
loop at tab_xvbrp into wa_xvbrp where ( matnr ne 'CDGSTP0001' and
matnr ne 'CD-RW' and
matnr ne 'CD-RW65OHS' and
matnr ne 'CABLE' and
matnr ne 'CD-R' and
matnr ne 'CDQ80N4' and
matnr ne 'GENERAL' and
matnr ne 'NERO' and
matnr ne 'OTHERS' and
matnr ne 'SPARE PARTS' and
matnr ne 'PROMO ITEM' and
matnr ne 'PROMO-1' and
matnr ne 'PROMO-2' and
matnr ne 'PROMO-3' and
matnr ne 'PROMO-4' and
matnr ne 'PROMO-5' and
matnr ne 'PROMO-6' and
matnr ne 'PROMO-7' and
matnr ne 'PROMO-8' and
matnr ne 'PROMO-9' and
matnr ne 'PROMO-10' ).
v_fkimg = wa_xvbrp-fkimg.
v_fkimg = v_fkimg / 1000.
v_tot_qty = v_tot_qty + v_fkimg.
do v_fkimg times.
v_no_of_records = v_no_of_records + 1.
wa_zmigo-sr_no = v_no_of_records.
wa_zmigo-po_no = wa_xvbrk-vbeln.
wa_zmigo-item_no = wa_xvbrp-posnr.
wa_zmigo-doc_type = wa_xvbrk-fkart.
wa_zmigo-posting_date = wa_xvbrk-fkdat.
wa_zmigo-created_on = sy-datum.
wa_zmigo-created_time = sy-uzeit.
wa_zmigo-material = wa_xvbrp-matnr.
wa_zmigo-inv_no = wa_xvbrk-vbeln.
wa_zmigo-inv_item_no = wa_xvbrp-posnr.
wa_zmigo-plant = wa_xvbrp-werks.
wa_zmigo-inv_date = wa_xvbrk-fkdat.
wa_zmigo-customer = wa_xvbrk-kunag.
wa_zmigo-unit = 1.
wa_zmigo-mtype = '651'.
condense wa_xvbrk-xblnr.
wa_zmigo-reference = wa_xvbrk-xblnr.
********Bill of lading no**
select single bill_lno from zmigo_final into v_frbnr where inv_no = wa_xvbrk-xblnr and material = wa_xvbrp-matnr.
if sy-subrc eq 0.
wa_zmigo-bill_lno = v_frbnr.
endif.
insert into zmigo values wa_zmigo.
enddo.
clear : wa_zmigo,wa_xvbrp , v_fkimg, v_frbnr.
endloop.
endif.
*******Invoice Cancellation*****************************
if wa_xvbrk-fkart = 'ZRS1' and wa_xvbrk-vtweg ne 'ZB'.
delete tab_xvbrp[] where shkzg eq 'X'.
loop at tab_xvbrp into wa_xvbrp where ( matnr ne 'CDGSTP0001' and
matnr ne 'CD-RW' and
matnr ne 'CD-RW65OHS' and
matnr ne 'CABLE' and
matnr ne 'CD-R' and
matnr ne 'CDQ80N4' and
matnr ne 'GENERAL' and
matnr ne 'NERO' and
matnr ne 'OTHERS' and
matnr ne 'SPARE PARTS' and
matnr ne 'PROMO ITEM' and
matnr ne 'PROMO-1' and
matnr ne 'PROMO-2' and
matnr ne 'PROMO-3' and
matnr ne 'PROMO-4' and
matnr ne 'PROMO-5' and
matnr ne 'PROMO-6' and
matnr ne 'PROMO-7' and
matnr ne 'PROMO-8' and
matnr ne 'PROMO-9' and
matnr ne 'PROMO-10' ).
v_fkimg = wa_xvbrp-fkimg.
v_fkimg = v_fkimg / 1000.
v_tot_qty = v_tot_qty + v_fkimg.
do v_fkimg times.
v_no_of_records = v_no_of_records + 1.
wa_zmigo-sr_no = v_no_of_records.
wa_zmigo-po_no = wa_xvbrk-vbeln.
wa_zmigo-item_no = wa_xvbrp-posnr.
wa_zmigo-doc_type = wa_xvbrk-fkart.
wa_zmigo-posting_date = wa_xvbrk-fkdat.
wa_zmigo-created_on = sy-datum.
wa_zmigo-created_time = sy-uzeit.
wa_zmigo-material = wa_xvbrp-matnr.
wa_zmigo-inv_no = wa_xvbrk-vbeln.
wa_zmigo-inv_item_no = wa_xvbrp-posnr.
wa_zmigo-plant = wa_xvbrp-werks.
wa_zmigo-inv_date = wa_xvbrk-fkdat.
wa_zmigo-customer = wa_xvbrk-kunag.
wa_zmigo-unit = 1.
condense wa_xvbrk-zuonr.
wa_zmigo-reference = wa_xvbrk-zuonr.
wa_zmigo-mtype = '602'.
********Bill of lading no**
select single bill_lno from zmigo_final into v_frbnr where inv_no = wa_xvbrk-xblnr and material = wa_xvbrp-matnr.
if sy-subrc eq 0.
wa_zmigo-bill_lno = v_frbnr.
endif.
insert into zmigo values wa_zmigo.
enddo.
clear : wa_zmigo,wa_xvbrp , v_fkimg.
endloop.
endif.
clear : v_no_of_records.
*} INSERT
CALL FUNCTION 'STACK_RESET'.
R185D-DATALOSS = SPACE.
FOLGEAUFRUF102 = SPACE.
PERFORM SETPAR_INIT.
*{ INSERT RD1K903017 3
*} INSERT
LEAVE.
ENDFORM.
This program is working fine for single user but in production where no of people are creating the invoices from different places the data is not getting updated in table ZMIGO.
sometime populating with wrong data , partial data and sometimes no updation at all.
I have used the table locking system enqueue and dequeue FM's before n after updation but still the same
thing is happening.
What could be the reason.
Looking for help very urgent any other alternate option.Hi,
Go thru these..
Enhancement
SDVFX009 Billing doc. processing KIDONO (payment reference numbe
SDVFX010 User exit item table for the customer lines
SDVFX011 Userexit for the komkcv- and kompcv-structures
V05I0001 User exits for billing index
V05N0001 User Exits for Printing Billing Docs. using POR Procedu
V60A0001 Customer functions in the billing document
V60P0001 Data provision for additional fields for display in lis
V61A0001 Customer enhancement: Pricing
SDVFX001 User exit header line in delivery to accounting
SDVFX002 User exit for A/R line (transfer to accounting)
SDVFX003 User exit: Cash clearing (transfer to accounting)
SDVFX004 User exit: G/L line (transfer to accounting)
SDVFX008 User exit: Processing of transfer structures SD-FI
SDVFX007 User exit: Billing plan during transfer to Accounting
SDVFX006 User exit: Tax line (transfer to accounting)
SDVFX005 User exit: Reserves (transfer to accounting)
Business Add-in
SD_CIN_LV60AU02 BADI for billing
If it is helpful rewards points
Regards
Pratap.M -
How to find user exits for a specific field
hi,
How can we find a user exit for a specific fields .
as i know Three ways to search user-exits
1. SE80 look includes in a packages with name user-exits
2. by zreport which will fetch user-exit in a T-CODE
3. SMOD
but what if we have to find a user-exit for particular field for e.g bupla(bussiness place) in MIRO.
Please suggest me.
Thanks and Regards ,
Rahul Singh.Hi Rahul,
Here is the procedure to create field exits.
Step by step procedure for creating Field Exits
There are eight steps to creating a field exit:
Step 1: Determine Data Element
Step 2: Go To Field Exit Transaction
Step 3: Create Field Exit
Step 4: Create Function Module
Step 5: Code Function Module
Step 6: Activate Function Module
Step 7: Assign Program/Screen
Step 8: Activate Field Exit
Step 1: Determine Data Element
u2022 Before you can begin adding the functionality for a field exit, you must know the corresponding data element.
Step 2: Go To Field Exit Transaction
u2022 The transaction to create field exits is CMOD.
u2022 You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.
u2022 From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.
u2022 After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.
NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.
Step 3: Create Field Exit
u2022 From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.
u2022 After choosing this menu path, a dialog box will prompt you for the appropriate data element .
u2022 Enter the data element name and click the u2018Continueu2019 pushbutton.
u2022 Now, you will be able to create the function module associated to the data elementu2019s field exit.
Step 4: Create Function Module
u2022 You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the u2018Continueu2019 pushbutton.
u2022 In the u2018Function moduleu2019 field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:
FIELD_EXIT_<data element>
u2022 You can add an identifier (an underscore followed by a single character ).
u2022 The first function module for a data elementu2019s field exit must be created without an identifier.
u2022 To create the function module, click on the u2018Createu2019 pushbutton, choose menu path Function module -> Create, or press u2018F5u2019.
u2022 After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing u2018Enteru2019, you will be able to go ahead and create the function module.
u2022 Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.
Step 5: Code Function Module
u2022 From the function moduleu2019s attributes screen, click on the u2018Source codeu2019 pushbutton or choose the Goto -> Function module menu path to the code of the function module.
u2022 Here you will add your desired functionality for the field exit.
u2022 Remember that field exitu2019s function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.
u2022 You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.
Step 6: Activate Function Module
u2022 After coding the function module, you must remember to activate it.
u2022 Use the Function module -> Activate menu path to activate the function module.
u2022 At this point, you can return to the field exit transaction.
u2022 You should be able to 'green arrow' back to this transaction.
u2022 When you return to the field exit transaction, you will see an entry for the newly created field exit.
u2022 At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.
u2022 Also, the field exit will not be triggered yet because it is inactive.
Step 7: Assign Program/Screen
u2022 This step is only needed if you want to make a field exit local.
u2022 To make a field exit local, select the field exit and click on the u2018Assign prog./screenu2019 pushbutton.
u2022 In the dialog box , indicate the appropriate program name and screen number.
This information indicates that the field exit is local to the specified screen in the specified program.
u2022 In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the u2018Fld. Exitu2019 field.
u2022 If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.
u2022 If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.
Step 8: Activate Field Exit
u2022 The field exit must be active for it to be triggered by the system.
u2022 Activate the field exit by choosing the Field exit -> Activate menu path.
u2022 After assigning the field exit to a change request, its status will change to u2018Activeu2019 and it will be triggered automatically on the appropriate screen(s).
NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers
Execute the transaction SE38 with PROGRAM NAME - RSMODPRF
Then give the Data Element Name for which field you want to create the exit(Just cross check with your field data element) and execute.
then it takes you to SE37 with the function module name FIELD_EXIT_<DATA ELEMENT NAME> and then create the same function module.
and in the coding part, You can write your logic to display the output of that field. and activate it.
once you complete the above,
Again execute SE38 transaction with program RSMODPRF and again click on Execute button without any Data Element Name. Now you select the data element which you have created and click on Assign prog/ Screen button and assign the program name and screen number of the filed and click on the menu Field Exit and Activate.
Hope it helps.
Regards
Radhika
Edited by: Radhika Pande on Nov 26, 2009 7:58 AM -
Hi Experts,
For transaction VA01, is it possible to know list of user-exits available.
Thank youHi Peter,
You can have the User Exits for sales order processing not for the VA01 transaction.
User Exits In Sales Document Processing
This IMG step describes additional installation-specific processing in sales document processing. In particular, the required INCLUDES and user exits are described.
Involved program components
System modifications for sales document processing affect different areas. Depending on the modification, you make the changes in the program components provided:
MV45ATZZ
For entering metadata for sales document processing. User-specific metadata must start with "ZZ".
MV45AOZZ
For entering additional installation-specific modules for sales document processing which are called up by the screen and run under PBO (Process Before Output) prior to output of the screen. The modules must start with "ZZ".
MV45AIZZ
For entering additional installation-specific modules for sales document processing. These are called up by the screen and run under PAI (Process After Input) after data input (for example, data validation). The modules must start with "ZZ".
MV45AFZZ and MV45EFZ1
For entering installation-specific FORM routines and for using user exits, which may be required and can be used if necessary. These program components are called up by the modules in MV45AOZZ or MV45AIZZ.
User exits in the program MV45AFZZ
The user exits which you can use for modifications in sales document processing are listed below.
USEREXIT_DELETE_DOCUMENT
This user exit can be used for deleting data which was stored in a separate table during sales document creation, for example, if the sales document is deleted.
For example, if an additional table is filled with the name of the person in charge (ERNAM) during order entry, this data can also be deleted after the sales order has been deleted.
The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the routine BELEG_SICHERN.
USEREXIT_FIELD_MODIFICATION
This user exit can be used to modify the attributes of the screen fields.
To do this, the screen fields are allocated to so-called modification groups 1 - 4 and can be edited together during a modification in ABAP. If a field has no field name, it cannot be allocated to a group.
The usage of the field groups (modification group 1-4) is as follows:
Modification group 1: Automatic modification with transaction MFAW
Modification group 2: It contains 'LOO' for step loop fields
Modification group 3: For modifications which depend on check tables or on other fixed information
Modification group 4: is not used
The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit.
This FORM routine is called up by the module FELDAUSWAHL.
See the Screen Painter manual for further information on structuring the interface.
USEREXIT_MOVE_FIELD_TO_VBAK
Use this user exit to assign values to new fields at sales document header level. It is described in the section "Transfer of the customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAK_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBAP
Use this user exit to assign values to new fields at sales document item level. It is described in the section "Copy customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAP_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBEP
Use this user exit to assign values to new fields at the level of the sales document schedule lines.
The user exit is called up at the end of the FORM routine VBEP_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBKD
Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer master fields into sales document".
The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
USEREXIT_NUMBER_RANGE
Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit.
The user exit is called up in the FORM routine BELEG_SICHERN.
USEREXIT_PRICING_PREPARE_TKOMK
Use this user exit if you want to include and assign a value to an additional header field in the communication structure KOMK taken as a basis for pricing.
USEREXIT_PRICING_PREPARE_TKOMP
Use this user exit if you want to include or assign a value to an additional item field in the communication structure KOMP taken as a basis for pricing.
USEREXIT_READ_DOCUMENT
You use this user exit if further additional tables are to be read when importing TA01 or TA02.
The user exit is called up at the end of the FORM routine BELEG_LESEN.
USEREXIT_SAVE_DOCUMENT
Use this user exit to fill user-specific statistics update tables.
The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
Note
If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.
USEREXIT_SAVE_DOCUMENT_PREPARE
Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.
User exits in the program MV45AFZA
USEREXIT_MOVE_FIELD_TO_KOMKD
Use this user exit to include or assign values to additional header fields in the communication structure KOMKD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
USEREXIT_MOVE_FIELD_TO_KOMPD
Use this user exit to include or assign values to additional item fields in the communication structure KOMPD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
USEREXIT_MOVE_FIELD_TO_KOMKG
Use this user exit to include or assign values to additional fields in the communication structure KOMKG taken as a basis for material determination and material listing. This is described in detail in the section "New fields for listing/exclusion".
USEREXIT_MOVE_FIELD_TO_KOMPG
Use this user exit to include or assign values to additional fields in the communication structure KOMPG taken as a basis for material determination and material listung. This is described in detail in the section "New fields for listing/exclusion".
USEREXIT_REFRESH_DOCUMENT
With this user exit, you can reset certain customer-specific fields as soon as processing of a sales document is finished and before the following document is edited.
For example, if the credit limit of the sold-to party is read during document processing, in each case it must be reset again before processing the next document so that the credit limit is not used for the sold-to party of the following document.
The user exit is executed when a document is saved if you leave the processing of a document with F3 or F15.
The user exit is called up at the end of the FORM routine BELEG_INITIALISIEREN.
User-Exits in program MV45AFZB
USEREXIT_CHECK_XVBAP_FOR_DELET
In this user exit, you can enter additional data for deletion of an item. If the criteria are met, the item is not deleted (unlike in the standard system).
USEREXIT_CHECK_XVBEP_FOR_DELET
In this user exit, you can enter additional data for deletion of a schedule line. If the criteria are met, the schedule line is not deleted (unlike in the standard system).
USEREXIT_CHECK_VBAK
This user exit can be used to carry out additional checks (e.g. for completion) in the document header. The system could, for example, check whether certain shipping conditions are allowed for a particular customer group.
USEREXIT_CHECK_VBAP
This user exit can be used to carry out additional checks (e.g. for completion) at item level.
USEREXIT_CHECK_VBKD
The user exit can be used to carry out additional checks (e.g. for completion) on the business data in the order.
USEREXIT_CHECK_VBEP
This user exit can be use to carry out additional checks (e.g. for completion) on the schedule line. During BOM explosion, for example, you may want certain fields to be copied from the main item to the sub-items (as for billing block in the standard system).
USEREXIT_CHECK_VBSN
You can use this user exit to carry out additional checks (e.g. for completion) on the serial number.
USEREXIT_CHECK_XVBSN_FOR_DELET In this user exit, you can enter additional criteria for deletion of the serial number. If the criteria are met, the serial number is not deleted (unlike in the standard system).
USEREXIT_FILL_VBAP_FROM_HVBAP
You can use this user exit to fill additional fields in the sub-item with data from the main item.
USEREXIT_MOVE_FIELD_TO_TVCOM_H
You can use this user exit to influence text determination for header texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
USEREXIT_MOVE_FIELD_TO_TVCOM_I
You can use this user exit to influence text determination for item texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
User-Exits for product allocation:
The following user exits all apply to structure COBL, in which the data for account determination is copied to item level.
USEREXIT_MOVE_FIELD_TO_COBL
Option to include new fields in structure COBL.
USEREXIT_COBL_RECEIVE_VBAK
Option to assign values from the document header to the new fields.
USEREXIT_COBL_RECEIVE_VBAP
Option to supply values from the item to the new fields.
USEREXIT_COBL_SEND_ITEM
A changed field can be copied from the structure into the item. You could use the user exit to display a certain field in the account assignment block (see also MV45AFZB).
USEREXIT_COBL_SEND_HEADER
A changed field can be copied from the structure to the header (see source text MV45AFZB)
USEREXIT_SOURCE_DETERMINATION
You can use this user exit to determine which plant will be used for the delivery. In the standard system, the delivering plant is copied from the customer master or the customer-material info record. If you want to use a different rule, then you must enter it in this user exit.
USEREXIT_MOVE_FIELD_TO_ME_REQ
With this user exit you can include additional fields for the following fields:
EBAN (purchase requisition)
EBKN (purchase requisition-account assignment)
USEREXIT_GET_FIELD_FROM_SDCOM
Option to include new fields for the variant configuration. Fields that are included in structure SDCOM can be processed and then returned to the order.
USEREXIT_MOVE_WORKAREA_TO_SDWA
You can use this user exit to format additional work areas for the variant configuration. You will find notes on the user exit in MV45AFZB.
User-Exits for first data transfer:
The following user exits can only be used for the first data transfer.
Note
Only use the user exits if the names/fields do NOT have the same name.
USEREXIT_MOVE_FIELD_TO_VBAKKOM
Option to include additional fields in structure VBAKKOM (communiction fields for maintaining the sales document header)
USEREXIT_MOVE_FIELD_TO_VBAPKOM
Option to include additional fields in structure VBAPKOM (communication fields for maintaining a sales item)
USEREXIT_MOVE_FIELD_TO_VBEPKOM
Option to include additional fields in structure VBEPKOM (communication fields for maintaining a sales document schedule line)
USEREXIT_MOVE_FIELD_TO_VBSN
You can use this user exit to include fields in structure VBSN (scheduling agreement-related change status).
USEREXIT_MOVE_FIELD_TO_KOMKH
You can use this user exit to include new fields for batch determination (document header).
USEREXIT_MOVE_FIELD_TO_KOMPH
You can use this user exit to include new fields for batch determination (document item).
USEREXIT_CUST_MATERIAL_READ
You can use this user exit to set another customer number in the customer material info record (e.g. with a customer hierarchy)
USEREXIT_NEW_PRICING_VBAP
Option for entry of preconditions for carrying out pricing again (e.g. changes made to a certain item field could be used as the precondition for pricing to be carried out again). Further information in MV45AFZB.
USEREXIT_NEW_PRICING_VBKD
Option for entry of preconditions for carrying out pricing again (e.g. changes to the customer group or price group could be set as the preconditions for the system to carry out pricing again). Further information in MV45AFZB.
User-Exits in Program MV45AFZD
USEREXIT_CONFIG_DATE_EXPLOSION
The BOM is exploded in the order with the entry date. You can use this user exit to determine which data should be used to explode the BOM (explosion with required delivery date, for example).
User exits in the program FV45EFZ1
USEREXIT_CHANGE_SALES_ORDER
In the standard SAP R/3 System, the quantity and confirmed date of the sales document schedule line is changed automatically if a purchase requisition is allocated, and it or the sales document is changed (for example, quantity, date).
If you want to change this configuration in the standard system, you can define certain requirements in order to protect your sales orders from being changed automatically. Use this user exit for this purpose. Decide at this point whether the schedule lines are to be changed.
User-Exits in Program RV45PFZA
USEREXIT_SET_STATUS_VBUK
In this user exit you can you can store a specification for the reserve fields in VBUK (header status). Reserve field UVK01 could, for example, be used for an additional order status (as for rejections status, etc.).
The following workareas are available for this user exit:
VBUK (header status)
FXVBUP (item status)
FXVBUV (Incompletion)
USEREXIT_SET_STATUS_VBUP
In this user exit you can you can store a specification for the reserve fields for VBUP (item status).
The following workareas are available for this user exit:
FXVBAP (Item data)
FXVBAPF (Dynamic part of order item flow)
FXVBUV (Incompletion)
USEREXIT_STATUS_VBUK_INVOICE
You can use this user exit to influence billing status at header level.
User exits in the screens
Additional header data is on screen SAPMV45A 0309, additional item data on screen SAPMV45A 0459. These screens contain the Include screens SAPMV45A 8309 or SAPMV45A 8459 as user exits.
Fields which are also to be included in the sales document for a specific installation should be included on the Include screens for maintaining. If an application-specific check module is needed for the fields, this can be included in the Include MV45AIZZ. The module is called up in the processing logic of the Include screens.
For field transports, you do not have to make changes or adjustments.
Example
A new field, VBAK-ZZKUN, should be included in table VBAK.
If the check is defined via the Dictionary (fixed values or check table) the field must be included with the fullscreen editor in the Include screen SAPMV45A 8309. In this case, no change has to be made to the processing logic.
User Exits in Program MV45AFZ4
USEREXIT_MOVE_FIELD_TO_KOMK
You can use this user exit to add or edit additional header fields in the communication structure - KOMK- for free goods determination. For more information, see the New Fields for Free Goods Determination IMG activity.
USEREXIT_MOVE_FIELD_TO_KOMP
You can use this user exit to add or edit additional item fields in the communication structure KOMP for free goods determination. For more information see the New Fields for Free Goods Determination IMG activity.
I hope it will help you,
Regards,
Murali. -
Hi All,
Please let me know user exit for Pick Quantity.
We are doing picking without ware house management. while creating the delivery, pick quantity should be same as delivery quantity.
while creating the delivery on the first screen it self picking quantity should be displayed.
Please also let me know in which table pick quantity gets stored if the picking is without warehouse management.
Thanks and Regards,
Shravan GHi.
I believe the standard way to do this would not be by coding a user-exit, but insead working with Delivery Groups and Output Messages. Your SD consultant should know how to do this.
Delivery group:
A delivery group is created when you work with batch creation of deliveries (transaction VL10A etc). You can also create a delivery group on transaction VG01 and manually enter the deliveries that make up the group.
Output Message:
There is a standard output message called SK00 which will do what you want - copy the delivery quantity to the picking quantity on non-WM controlled storage locations. You have to create the condition records for this message on transaction VVG1. However, this is a Group-related message (see transaction NACO to see it), so you can't put this directly on the delivery (which would be easier I think) and that's why you have to work with Groups.
As far as my SD knowledge goes, this is the right way to do this. If you can't work with groups, you should try working with the standard delivery exit MV50AFZ1, form move_field_to_lips.
Regards,
Sergio -
Hi All,
I need a user exit for FI document posting.
My purpose is based on types of G/L accounts i need to add line item data to FI document.(i.e.,inserting into BSEG table )
Can you please suggest me the user exir.
Thanks and regards
PraveenTransaction Code - FB01 Post Document
Exit Name Description
F050S001 FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
F050S002 FIDCC1: Change IDoc/do not send
F050S003 FIDCC2: Change IDoc/do not send
F050S004 FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send
F050S005 FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document
F050S006 FI Outgoing IDoc: Reset Clearing in FI Document
F050S007 FIDCCH Outbound: Influence on IDoc for Document Change
F180A001 Balance Sheet Adjustment
FARC0002 Additional Checks for Archiving MM Vendor Master Data
RFAVIS01 Customer Exit for Changing Payment Advice Segment Text
RFEPOS00 Line item display: Checking of selection conditions
RFKORIEX Automatic correspondence
SAPLF051 Workflow for FI (pre-capture, release for payment)
If you know tcode then you can find out user exits associated with the same with the following code:
*& Report ZUSEREXIT *
*& Finding the user-exits of a SAP transaction code *
*& Enter the transaction code in which you are looking for the *
*& user-exit and it will list you the list of user-exits in the *
*& transaction code. Also a drill down is possible which will help you *
*& to branch to SMOD. *
REPORT zuserexit NO STANDARD PAGE HEADING.
TABLES : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
TABLES : tstct.
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
MOVE : tadir-devclass TO v_devclass.
IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir WHERE pname = tstc-pgmna.
SELECT SINGLE * FROM enlfdir WHERE funcname = tfdir-funcname.
SELECT SINGLE * FROM tadir WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name EQ enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.
SELECT * FROM tadir INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = v_devclass.
SELECT SINGLE * FROM tstct WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.
IF NOT jtab[] IS INITIAL.
WRITE:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
WRITE:/(95) sy-uline.
LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu AND
name = jtab-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.
WRITE:/(95) sy-uline.
DESCRIBE TABLE jtab.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
*---End of Program.
I hope it helps.
Best Regards,
Vibha
*Please mark all the helpful answers -
User exit for Tcode F-22.
Hi guys.
is there any user exit fot T-code F-22 to avoid duplicate invoice?available use exits are
F050S001 FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
F050S002 FIDCC1: Change IDoc/do not send
F050S003 FIDCC2: Change IDoc/do not send
F050S004 FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not se
F050S005 FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI documen
F050S006 FI Outgoing IDoc: Reset Clearing in FI Document
F050S007 FIDCCH Outbound: Influence on IDoc for Document Change
F180A001 Balance Sheet Adjustment
FARC0002 Additional Checks for Archiving MM Vendor Master Data
RFAVIS01 Customer Exit for Changing Payment Advice Segment Text
RFEPOS00 Line item display: Checking of selection conditions
RFKORIEX Automatic correspondence
SAPLF051 Workflow for FI (pre-capture, release for payment)
and you can find user exits for any transaction with the help of this code
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : tstct.
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
parameters : p_tcode like tstc-tcode obligatory.
select single * from tstc where tcode eq p_tcode.
if sy-subrc eq 0.
select single * from tadir where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir where name = tstc-pgmna.
if trdir-subc eq 'F'.
select single * from tfdir where pname = tstc-pgmna.
select single * from enlfdir where funcname =
tfdir-funcname.
select single * from tadir where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name eq enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
select * from tadir into table jtab
where pgmid = 'R3TR'
and object = 'SMOD'
and devclass = v_devclass.
select single * from tstct where sprsl eq sy-langu and
tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name hotspot on,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ 'No of Exits:' , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'.
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'.
endif.
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen.
Message was edited by: Vijay Kumar Reddy -
Hi,
My requirement is that the user who has parked the document should not be able to post the parked document through tcode FBV0.
Is there any user exit where in I can validate the current system user and the user who has parked the document?
I have tried the user-exit SAPLF040,but this does not suffice my requirement.
Also is it possible to define our own exits in tcode OB28?
Regards,
RajeevInfo on user exits can be found here http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
Transaction Code - FBV0 Post Parked Document
|Exit Name |Description |
|F050S001 |FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment |
|F050S002 |FIDCC1: Change IDoc/do not send |
|F050S003 |FIDCC2: Change IDoc/do not send |
|F050S004 |FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send |
|F050S005 |FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document |
|F050S006 |FI Outgoing IDoc: Reset Clearing in FI Document |
|F050S007 |FIDCCH Outbound: Influence on IDoc for Document Change |
|F180A001 |Balance Sheet Adjustment |
|FARC0002 |Additional Checks for Archiving MM Vendor Master Data |
|RFAVIS01 |Customer Exit for Changing Payment Advice Segment Text |
|RFEPOS00 |Line item display: Checking of selection conditions |
|RFKORIEX |Automatic correspondence |
|SAPLF051 |Workflow for FI (pre-capture, release for payment) |
No of Exits: 13
These are the user exits possible for FBV0
<b>we can find user exit for any transaction, copy and run the following code in SE38</b>
report z_find_userexit no standard page heading.
*& Enter the transaction code that you want to search through in order
*& to find which Standard SAP User Exits exists.
*& Tables
tables : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
*& Variables
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
*& Selection Screen Parameters
selection-screen begin of block a01 with frame title text-001.
selection-screen skip.
parameters : p_tcode like tstc-tcode obligatory.
selection-screen skip.
selection-screen end of block a01.
*& Start of main program
start-of-selection.
* Validate Transaction Code
select single * from tstc
where tcode eq p_tcode.
* Find Repository Objects for transaction code
if sy-subrc eq 0.
select single * from tadir
where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir
where name = tstc-pgmna.
if trdir-subc eq 'F'.
select single * from tfdir
where pname = tstc-pgmna.
select single * from enlfdir
where funcname = tfdir-funcname.
select single * from tadir
where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name = enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
* Find SAP Modifactions
select * from tadir
into table jtab
where pgmid = 'R3TR'
and object = 'SMOD'
and devclass = v_devclass.
select single * from tstct
where sprsl eq sy-langu
and tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ 'No of Exits:' , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'.
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'.
endif.
* Take the user to SMOD for the Exit that was selected.
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen. -
i want to block the delivery aftercycle closing in VL01N for shipping point 1103
selection date not more that 3 days after closing.
For Order Type Is 2873 1901 2902
A popup Message Will Apper If Delivery Is After Day's .
So How Can I Solve This Issue Plz Help Me.
I Have No Idea About User Exits.hi anilkumar,
go through these exits.
V02V0001 Sales area determination for stock transport order
V02V0002 User exit for storage location determination
V02V0003 User exit for gate + matl staging area determination (h
V02V0004 User Exit for Staging Area Determination (Item)
V50PSTAT Delivery: Item Status Calculation
V50Q0001 Delivery Monitor: User Exits for Filling Display Fields
V50R0001 Collective processing for delivery creation
V50R0002 Collective processing for delivery creation
V50R0004 Calculation of Stock for POs for Shipping Due Date List
V50S0001 User Exits for Delivery Processing
V53C0001 Rough workload calculation in time per item
V53C0002 W&S: RWE enhancement - shipping material type/time slot
V53W0001 User exits for creating picking waves
VMDE0001 Shipping Interface: Error Handling - Inbound IDoc
VMDE0002 Shipping Interface: Message PICKSD (Picking, Outbound)
VMDE0003 Shipping Interface: Message SDPICK (Picking, Inbound)
VMDE0004 Shipping Interface: Message SDPACK (Packing, Inbound)
and use pop_up_to_confirm function module to get pop up window..
<b><i>Reawrd points if useful</i></b>
chandra
Maybe you are looking for
-
Lost all my music on iTunes and printer no longer works
What is going on with my comp? Lost all music on itunes. it says can't locate music. Docked my ipod and it wiped that as well. Tried to print but nothing. In preferences it knows it's the Epson C64 but it just won't print. When I take it out of Airpo
-
Error "602" System error: AK Datapart too short
Hi all, Ok, I have looked just about everywhere for an answer to this but to no avail...I even tried under a few rocks we have laying around. Anyway here it is: While running a compression in BW we get Error "602" System error: AK Datapart too short
-
Problems updating iPOD with iTunes.
My library has 4800 songs and iTune starts the update process normally. At some point through the process, the ststus bar will say "Ok to disconnect iPod" and nothing has been transfered. I also noticed that bottom of of the screen indicated the disk
-
Rsync Copy Job Best Practices for SAN to SAN - px12-450r
When setting up an rsycn copy job from one px12-450r to another which protocal is preferred for sending and receiving sides? In other words, I have configured the copy jobs and it will not allow rsync as protocal on both sides. Currently I have rs
-
Hi everyone I would like to export the xml from my first version of the form I developed and import it to the latest version. The user has completed the old version, so I would like to transfer her information to the new form without her having to fi