User exit code required for manadatory variable
we have vendor in rows and sales in columns, the requirement is there is a mandatory variable for retrieving the sales between months, that is if
customer gives calmonth january as <b>from</b> and march as<b> to</b> the sales should be from Jan to March, if the customer only gives <b>from</b> month and nothing for<b> to</b> month, only <b>from</b> month should be calculated, if the customer gives only<b> to</b> month and no <b>from</b> month, the <b>to</b> month should be calculated. Remember the variable is mandatory.
Hi,
Let s say
var1 is from varaible
var2 is to variable
var3 is user exit variable
USe the code like this:
DATA:
l_s_range TYPE rsr_s_rangesid,
l_s_var TYPE rrs0_s_var_range.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
DATA: LOC_VAR_RANGE2 LIKE RRRANGEEXIT.
WHEN 'VAR3'.
IF I_STEP = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR1'.
LOOP AT I_T_VAR_RANGE2 INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR2'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
L_S_RANGE-HIGH = LOC_VAR_RANGE2-LOW(8).
IF LOC_VAR_RANGE2(8) = '00000000'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW(8).
ENDIF.
IF LOC_VAR_RANGE(8) = '00000000'.
L_S_RANGE-LOW = LOC_VAR_RANGE2-LOW(8).
ENDIF.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
EXIT.
ENDLOOP.
ENDIF.
With rgds,
Anil Kumar Sharma .P
Similar Messages
-
hi all,
i have one requirement i.e when ever we give tcode xd06 or xd02 if customerno is there it wont accept the same customer again if customer is not there it has to insert the customer into the table. i require code for this requirement i need to write this in include called ZXF04U01and function module name is EXIT_SAPMF02D_001.
Write below custom code inside the user exit to capture CRSID information in reverse mapping input table ZW2CTREV_MAP to trigger reverse mapping.
Declare a work area WA_ZW2CTREVMAP of type ZW2CTREV_MAP.
Assign values from I_KNA1 to work area WA_ZW2CTREVMAP.
MODIFY TABLE ZW2CTREV_MAP FROM WA_ZW2CTREVMAP.
above i have shown procedure for code. send me the actual code what i have to write in include to check customer and insert customer pls reply as early as possible.
regards
sagarHi,
Let s say
var1 is from varaible
var2 is to variable
var3 is user exit variable
USe the code like this:
DATA:
l_s_range TYPE rsr_s_rangesid,
l_s_var TYPE rrs0_s_var_range.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
DATA: LOC_VAR_RANGE2 LIKE RRRANGEEXIT.
WHEN 'VAR3'.
IF I_STEP = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR1'.
LOOP AT I_T_VAR_RANGE2 INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR2'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
L_S_RANGE-HIGH = LOC_VAR_RANGE2-LOW(8).
IF LOC_VAR_RANGE2(8) = '00000000'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW(8).
ENDIF.
IF LOC_VAR_RANGE(8) = '00000000'.
L_S_RANGE-LOW = LOC_VAR_RANGE2-LOW(8).
ENDIF.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
EXIT.
ENDLOOP.
ENDIF.
With rgds,
Anil Kumar Sharma .P -
User exit/BADI required for coding for the selection custom fields in RSA3
Hi,
I have a requirement in the Datasource extractor. I need to add custom Z fields in the Data souce of the 2LIS_02_SCL and need to include in the selection part. So I have added the custom filed in the append structure and include the check in the selection checkbox in the transaction LBWE under the datasource specified above. For the corresponding custom fields, to be populated in the ALV list, I have written the code in corresponding user exit ZXRSAU01.
Now I can view my custom Z fields in the list as well as on the selection fileds while executing the transaction RSA3. But I need to write code for the selection criteria part. On entering value in the selection criteria of my custom z field, no values are selected to the corresponding query. Please let me know where should i write the coding part for the selection criteria of the Z fields for the Datasource.
On debugging, to my understanding only the standard fields are alone getting filtered by providnig the values in the selection part of the RSA3 tcode. It is called in Macros : Sel < Datasorce> .... and the fetch cursor is included inside the macros.
Please let me know any user exits or Badi;s available for it.
Thanks in advanceHi shivu,
you might try the BAdI RSU5_SAPI_BADI. A good introduction can be found in the following document:
[Enhancing DataSources with BAdI RSU5_SAPI_BADI|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/3001894b-b1fb-2910-77ba-e80b6f2053b7]
The BAdI is called at the time of extraction, so this would be the right place to populate your additional fields.
Best,
Chris -
BADI/USER EXIT information required for CLWF
hi
i want to badi/user exit for CLWF,to change its rcords through the BAPI:BAPI_CLASS_CHANGE,i found one badi CACL_CHANGENO_NEEDED for my requiremnet,its working as desired only in TCODE,but when i want to change the record through the BAPI,its not executing.
Can any one please help me ,how to process in this?
regds
vipinHi,
Let s say
var1 is from varaible
var2 is to variable
var3 is user exit variable
USe the code like this:
DATA:
l_s_range TYPE rsr_s_rangesid,
l_s_var TYPE rrs0_s_var_range.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
DATA: LOC_VAR_RANGE2 LIKE RRRANGEEXIT.
WHEN 'VAR3'.
IF I_STEP = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR1'.
LOOP AT I_T_VAR_RANGE2 INTO LOC_VAR_RANGE
WHERE VNAM = 'VAR2'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
L_S_RANGE-HIGH = LOC_VAR_RANGE2-LOW(8).
IF LOC_VAR_RANGE2(8) = '00000000'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW(8).
ENDIF.
IF LOC_VAR_RANGE(8) = '00000000'.
L_S_RANGE-LOW = LOC_VAR_RANGE2-LOW(8).
ENDIF.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
EXIT.
ENDLOOP.
ENDIF.
With rgds,
Anil Kumar Sharma .P -
Code help for formula variable with processing type customer exit
Hi Gurus,
I need help in user exit code. I am calculating a formula variable ( demand variability) in the user exit for a range of values given in the selection screen ( i.e processing based on the values given I_STEP = 2).
i am able to populate the E_T_RANGE table but the output is sending a single value output.
Expected Output
Plant ( sel screen Input) I Material ( Sel screen Input) I Demand Var(calculated O/P)
1800 I 12345 I 0.609
1700 I 21355 I 1.234
Actual Result
Plant ( sel screen Input) I Material ( Sel screen Input) I Demand Var(calculated O/P)
1800 I 12345 I 0.609
1700 I 21355 I 0.609(WRONG )
Here you can see that its sending the same values for all the plant and material combination.
I found in debugging that it populates 2 values into E_T_RANGE table in loop. But it is giving out only one value to all.
I tried to refresh and clear that but its giving the same output. Can we use E_T_RANGE in loop to give out range of values?. how to out put this throught user exit?
did anyone face this kind of issue and solved it?. Help is needed urgently. any help or guidance is greatly appreciated.
Regards
satish.Hi Oliver,
Thanks for the reply. Dont get confused here please. It was an example . For example
I give one plant as input and 2 materials as input .
You see the sample code :
WHEN 'ZPRDEMVA'. ( formula variable name)
IF i_step = 2.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZPRPLTSV'. ( plant variable input)
CLEAR L_S_RANGE.
v_werks = LOC_VAR_RANGE-LOW.
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'ZPRMATSV'.
CLEAR L_S_RANGE.
v_matnr = LOC_VAR_RANGE-LOW.
CALCULATES THE FORMULA VARIABLE (DEMAND VARIABILITY)
WE TAKE DATA FROM ANOTHER ODS AND DOES CALCULATION.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = sum2.
DOES ALL CALCULATIONS PERFECTLY AND SINCE THERE ARE 2 MATERIALS AS INPUT, PUTS 2 VALUES IN E_T_RANGE. BUT IN THE OUPUT IT DUPLICATES SAME VALUE TO 2 RECORDS AS I POSTED IN THE FIRST
Append l_s_range to E_T_RANGE.
ENDLOOP.
ENDLOOP.
ENDIF. -
User exit or BADI for recruitment
Hi,
I am new to HCM, can you give me user exit or badi for recruitment.
Requirement - i have developed an infotype which i am updating through BSP, while the custom infotype is updated it should simultaneously update some of my Z tables. Hoping for positve replies earliest.
Thanks in advance:-
SantoshHi,
<b>Infotype</b>The data fields of HR master data, time management and recruitment are grouped logically into information types or infotypes for short.
Examples of infotypes are "Family/Related Person", "Organizational Assignment, "Basic Pay".
The following naming conventions apply to infotypes:
Infotypes 0000 to 0999 are used for HR master data
and sometimes for applicant data
Infotypes 1000 - 1999 for organizational management
Infotypes 2000 - 2999 for time data
Infotypes 4000 - 4999 for applicant data
Infotypes 9000 - 9999 for customers
<b>Function character of step</b>
This controls for which types of processing (create, change and/or delete a data record) a dynamic action should be carried out.
The processing type is indicated by a two-digit numeric value. These values can be added up; in other words, you can enter several processing types for each infotype, subtype or field. A dynamic action can also be carried out independent of the current processing type.
00 for Independent of the current function carried out
02 for Change
04 for Create
06 for Change and create
08 for Delete
10 for Change and delete
12 for Create and delete
Examples
If you enter 06, an action is carried out if the specified infotype was created or changed.
If you enter 00, an action is carried out irrespective of whether the specified infotype was created, changed or deleted.
<b>Variable function part</b>
The variable function part, which depends on the indicator for step, can have the following meaning:
<b>P - Plausibility checks</b>
You can enter values for specific infotype fields. Field names must be entered in full. Literals and constants can serve as comparison values. These must be enclosed by inverted commas. Variables can also be used.
The old value of a field can be used for comparison; the field name must be preceded by PSAVE-.
If fields of other infotypes are used for comparison, these must be stored in the module pool of the current infotype.
The following comparison operators are supported:
= equal to,
< less than,
<= less than or equal to,
> greater than
>= greater than or equal to and
<> not equal to.
Consecutive checks must be linked by a logical AND. Logical OR links must also be indicated by a /X.
Note:
Note that all checks with OR links must have a /X.
If the result of the comparison operation is not "true", then the following commands (I, F, W etc.) are skipped over until a field is reached or a new comparison operation takes place.
Examples
Infotype Field ..... Ind. Variable function part
0007 STAT3 P P0007-STAT3='0'
0007 STAT3 P PSAVE-STAT3='1'
The step is taken if the value in the P0007-STAT3 field changes from 1 to 0.
0007 P P0013-KLKZ1<>'0'/X
0007 P P0013-ALVKZ<>'0'/X
0007 P P0013-RVKZ1<>'0'/X
0007 P P0013-RVNUM=SPACE
The first three conditions are linked by an OR; at least one of these conditions must be met. Condition 4 must always be met.
The step is taken if the following holds true:
P0013-KVKZ1 not equal to 0 or P0013-ALVKZ not equal to 0 or P0013-RVKZ1 not equal to 0, and P0013-RVNUM empty.
<b>I - Maintain infotype record</b>
Enter the step, infotype, subtype, object ID, start and end dates of the record and an indicator which defines whether the step is to be run in the background. The possible actions are INS, COP, MOD, and DEL.
Use commas to separate selection criteria just like the separator in the matchcode. If an entry is missing, the system inserts a comma.
Separate the indicator for suppressing dialog from other entries by a slash D (/D).
Constants, such as those for subtypes, are not enclosed in inverted commas.
Variable entries are also permitted. Fields containing such values must be put in brackets.
Examples:
Infotype Field .... Ind. Variable function part
.... I INS,19,01/D
Step: Create a Dates record, subtype 01, run in the background
.... I DEL,14,M559
Step: Delete Rec. Payments/Deds. record with subtype (wage type) M559.
0007 .... I INS,8,,,(P0007-BEGDA),(P0007-ENDDA)
Step: Create a Basic Pay record (0008) without subtype and object ID. The start and end dates are the same as those in the current Planned Working Time record (0007); specify these two fields only if they are filled because the dynamic action was triggered by this infotype.
<b>W - Default values for new record</b>
Literals or variables are used as default values.
Set the defaults for the infotype, subtype, object ID, start and end dates using an I step and not a W step.
Do not set defaults for Q fields of an infotype because the values for these fields are derived from the corresponding P fields.
Examples
Infotype Subtype ..... FC Ind. Variable function part
0021 2 04 I INS,0015,M430
0021 2 04 W P0015-BETRG='10000'
When a Family/Related Person record (0021) record with subtype 2 (child) is created, an Additional Payments record (0015) with a default amount of 100.00 is created.
<b>V - Cross-reference to another step</b>
Here, you can combine fields to groups. The variable function part contains the value in the field which follows the "field" column. Steps which are specified only for the following field are also triggered for each of the other fields.
Examples
Infotype Field ..... FC Ind. Variable function part
0016 PRBZH 06 V PRBZT
0016 PRBZT 06 I DEL,0019,01/D
Infotype 0019, subtype 01 is deleted in the background when the field PRBZT or PRBZH in infotype 0016 is changed or created (function code 06).
The following entries are equivalent:
0016 PRBZH 06 I DEL,0019,01/D
0016 PRBZT 06 I DEL,0019,01/D
<b>F - Call a routine</b>
You can call internal (module pool) as well as external routines.
If you call external routines, type the program name in brackets after the routine name. Do not specify 'using' parameters. When calling an external routine, all data must be declared in a common part. You can use the fields of structure RP50D to return values from the routine. These are not used in the standard system and can only be populated via the routine and then can be used for defaults (W-Commands).
This allows customer-specific routines to be formulated with all the above steps.
Example 1:
Infotype Field ..... Ind. Var.function part
0016 PRBZT F PROBATION
0016 PRBZT I INS,19,01
0016 PRBZT W P0019-VTRMN=PRBEND
Module pool MP001600 contains the PROBATION routine. This routine uses the entries in the fields P0016-PRBZT and P0016-PRBEH to determine the end of the probation period which it stores in the field PRBEND.
The system creates a new 'Dates' record with the reminder date = PRBEND.
Example 2:
Infotyp ..... Ind. Var. function part
0001 F GET_DATE(ZPUDYN01)
0001 I INS,19,01
0001 W P0019-VTRMN=RP50D-DATE1
The GET_DATE routine in program ZPUDYN01 calculates a date and enters this date in the RP50D-DATE1 field via "TABLES RP50D" in ZPUDYN01. This date can be user-defined in GET_DATE: if necessary, user-defined infotypes can be read afterwards.
<b>M - Send a mail</b>
Enter the name of the feature which defines the characteristics of the mail.
Example
Infotype Field ..... Ind. Var.function part
0001 SACHP M M0001
A mail is sent when the field SACHP is changed. The characteristics of the mail are defined in feature M0001.
In the standard system, feature M0001 is provided as a model. The documentation on feature M0001 explains how to define the characteristics of a mail.
<b>ADDITIONAL HINTS</b>
If you use a date as a constant, enter it as YYYYMMDD (YYYY=year, MM=month, DD=day).
The table strings T001P, T503 and PSPAR are filled with the values which are valid on the record start date.
The old values of the infotype are stored in the field string PSAVE. The structure of this string is the same as the Pnnnn structure (nnnn=infotype). The structure is filled with (valid) values only when the delete, change and create functions are used.
Please read Create dynamic actions in the Implementation Guide.
Regards
Bernd -
User Exit/ Badi/ FM for Tcode IW32
Hi Experts,
I have a requirement which i need to update the next line with the same part number concatenate with u201CNVu201D and in the quantity enter u201C-1u201D and enter the item category as u201CLu201D.
The scenario is this,
In the service order (IW32) when ever a component is entered on a new line item, example below:
RESBD-MATNR= spare part(Ex: 0614-2331) compponent
System should update the next line with the same spare part number concatenate with u201CNVu201D
Ex: 0614-2331NV
and
Required quantity (RESBD-MENGE) =-1
Item Category(RESBD-POSTP) = L
Plant(RESBD-WERKS)= US40
has anyone done this before? Can you lend a hand? I just need the exit/ badi where the coding can be done.
Thanks.
Regards,
Min DeeHi,
try this User Exit..
Exit name Short text
IWO10012 Maintenance order: Priority handling on central header
to find the user exits & Badi's for the T-code..
go to table TSTC>enter T-code and execute> get the Program for the t-code..
and go to-se38-->get the package attached to the t-code..
next go to t-code Se15>expand the enhacement tab>enter package under userexit and
execute you will get the list of exits
available...
-->enter package under Badi's tab and
execute you will get the list of Badi's
available...
All the User exits are stored in Table MODSAP..
Prabhudas -
User Exits or BADI for Tcode ME51N
Hi All,
My requirement is i need to check available quantity at the time of Purchase req creation. If PR quantity is available in stock then it should not allow to create new PR.
Is there any user exit or Badi for this requirement. Kindly send me.
Regards,
ParasHi Paras,
Copy this program and execute. Will get all list of existin g Exits and Badis.
very useful program
Below code will give a list of BADIs for particular transaction.
*& Report ZNEGI16 *
REPORT ZNEGI16 .
TABLES : TSTC,
TADIR,
MODSAPT,
MODACT,
TRDIR,
TFDIR,
ENLFDIR,
SXS_ATTRT ,
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,
P_PGMNA LIKE TSTC-PGMNA .
DATA wa_tadir type tadir.
START-OF-SELECTION.
IF NOT P_TCODE IS INITIAL.
SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
ELSEIF NOT P_PGMNA IS INITIAL.
TSTC-PGMNA = P_PGMNA.
ENDIF.
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 in ('SMOD', 'SXSD')
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:/(105) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
Sorting the internal Table
sort jtab by OBJECT.
data : wf_txt(60) type c,
wf_smod type i ,
wf_badi type i ,
wf_object2(30) type C.
clear : wf_smod, wf_badi , wf_object2.
Get the total SMOD.
LOOP AT JTAB into wa_tadir.
at first.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Enhancement/ Business Add-in',
41 SY-VLINE ,
42 'Description',
105 SY-VLINE.
WRITE:/(105) SY-ULINE.
endat.
clear wf_txt.
at new object.
if wa_tadir-object = 'SMOD'.
wf_object2 = 'Enhancement' .
elseif wa_tadir-object = 'SXSD'.
wf_object2 = ' Business Add-in'.
endif.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 wf_object2,
105 SY-VLINE.
endat.
case wa_tadir-object.
when 'SMOD'.
wf_smod = wf_smod + 1.
SELECT SINGLE MODTEXT into wf_txt
FROM MODSAPT
WHERE SPRSL = SY-LANGU
AND NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
when 'SXSD'.
For BADis
wf_badi = wf_badi + 1 .
select single TEXT into wf_txt
from SXS_ATTRT
where sprsl = sy-langu
and EXIT_NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
endcase.
WRITE:/1 SY-VLINE,
2 wa_tadir-OBJ_NAME hotspot on,
41 SY-VLINE ,
42 wf_txt,
105 SY-VLINE.
AT END OF object.
write : /(105) sy-ULINE.
ENDAT.
ENDLOOP.
WRITE:/(105) SY-ULINE.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No.of Exits:' , wf_smod.
WRITE:/ 'No.of BADis:' , wf_badi.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'No userexits or BADis exist'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'Transaction does not exist'.
ENDIF.
AT LINE-SELECTION.
data : wf_object type tadir-object.
clear wf_object.
GET CURSOR FIELD FIELD1.
CHECK FIELD1(8) EQ 'WA_TADIR'.
read table jtab with key obj_name = sy-lisel+1(20).
move jtab-object to wf_object.
case wf_object.
when 'SMOD'.
SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
when 'SXSD'.
SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
endcase.
Reward points if this helps.
hema. -
BW User Exit - Code in function of the query name
Hi,
I would like to create an user exit code which execute a algorithm different in function of the query executed. do you know in which variable is store the technical name of the query.
CASE query
WHEN 'Z_ZAPO_001'.
V1 = 1
WHEN 'Z_ZAPO_002'.
V1 = 2 WHEN '10' OR '11' OR '12'.
ENDCASE.Yaroslav,
I_S_RKB1D-COMPID will never be filled for authorization user-exits (I_STEP = 0). Don't ask my why, I once raised this question to OSS and they replied it was never foreseen to work with authorization user-exits. God knows why, it's very unlogical and it wouldn't cost them a lot of work to get it working...
I could solve this problem by applying a little trick. In our queries we included a user-exit keydate variable. This will push the user-exit first in I_STEP = 1 mode where I_S_RKB1D-COMPID is filled. Then save the query name by exporting it to the ABAP-memory. Afterwards, the user exit with code for I_STEP = 0 will be processed and then you can import the query name from the ABAP memory.
I agree it sounds a little bit tricky but there is no better option I'm affraid. -
User exit or badi for XK05 or MK05
Hello,
We need to create an scenario in which the vendor is blocked on purchasing organization and company code, but in 2 cases we need to jump the blocking . Is there any badi or user exit to create for this requirements??
ThanksHi,
If I understood properly, you want to ensure that a user cannot block a vendor of a wrong company code or purchasing area.
Maybe you can setup the proper authority check
F_LFA1_BUK & 'M_LFM1_EKO' with activity 05
and for the global block, F_LFA1_GEN with activity 05
Otherwise, the usual user exit EXIT_SAPMF02K_001 or the BAdI VENDOR_ADD_DATA-Check_all_data to avoid saving
BR
Alain -
Hi,
Is there any user-exit at save for transaction KL01.
Here is my requirement.
Where ever am employee is hired in HR ( transaction PA40; Action = Hire) i have to automatically create an Activity Type ( t.code : KL01 ). I am doing this in user-exit PBAS0001, component EXIT_SAPFP50M_002 on HR side.
The next this is, once activity type is created using transaction KL01, i have to automatically trigger a activity type planning, transaction KP26.
So, i need a user exit at Save in transaction KL01, so that i can trigger KP26 from there. I found one exit COOMKS02, but i its not triggeting from KL01.
Does any one know any user-exit in KL01 which trigger at save. Please let me know
Thanks,
PratikHi Sharad,
Thanks for your reply.
I always have an option for executing both KL01 and KP26 fron PBAS0001, but what i was thinking that if there is any exit available at save in KL01, i can trigger KP26 from there.
If i could not find any exit, i will call both KL01 and KP26 from PBAS0001 itself.
Thanks,
Pratik -
Hello Experts,
I want to put a check on material code while forming the composition for recipe in transaction RMWB. I am entering the material uner the input and output tab. Can anyone please tell the available user exits or BADI for this. I checked few, however, the material no. is not getting captured.
Thanks in advance.
Regards,
SonalHello Sonal,
You can make use of field symbol to read the value of a variable in BADI.Press F1 on field and read the program name and screen field name of a variable and the use below things in the BADI code.
Field-symbol <fs> type any.
ASSIGN ('(program name)variable name') TO <fs>.
IF sy-subrc EQ 0 AND <fs> IS ASSIGNED.
..you will get the variable value here in <fs>
ENDIF.
Thanks,
Pawan -
User exit or badi for transaction IW32
Hi all,
I am searching for user exit or badi for Transaction IW32 but not finding as per my requirement.here in transaction IW32 if field system status(STTXT) key value is 'Released', all line item components should get displayed in display mode.it should not allow to edit or change line item components.can anyone give user exit or BADI to achieve this.
Thanks in advance.
Regards,
HarshadaHi,
Try to use this exit:
Enhancement EXIT_SAPLBSVA_001 STATTEXT Modification exit for formatting status text lines
Sample code:
IF ( sy-tcode = 'IW32') .
DATA: lv_str1 TYPE string.
FIELD-SYMBOLS : <fs_qmart> TYPE ANY.
lv_str1 = '(SAPLIQS0)VIQMEL-objnr'.
ASSIGN (lv_str1) TO <fs_objnr>.
SELECT SINGLE inact INTO lv_inact FROM jest WHERE objnr = viqmel-objnr
AND stat = c_stat
AND inact = space.
IF sy-subrc = 0.
LOOP AT SCREEN.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
Alternativ badi:
BADI SAPLIQS0 IQS0_STATUS_MAINTAIN Control of Changeability of User Status
I hope this may helpfull.
Thanks,
AMS -
How can we identify what are all user exits are there for sales orders,deli
Dear All,
How can we identify what are all user exits are there for sales orders,deliverys and invoices
thanks
nitchel vHi Nitchel
There are many ways to find out the user exits..
For example for VA01.
Goto Transaction ie VA01:
goto System-- Status
doubleclick on the program name ie SAPMV45A
SE38 -> Enter the program name and in the program( SAPMV45A) goto -- attributes
get the package name from here ie VA
note the package(VA) and get back to main screen
goto SMOD tcode and click on find button in the package spec giv the package name ie VA and execute it
you will find list of exits available
check out the exit that suits ur requirement
goto cmod and create a new project and implement in that user exit.
You will get the following exits in SMOD..
SDTRM001 Reschedule schedule lines without a new ATP check
V45A0001 Determine alternative materials for product selection
V45A0002 Predefine sold-to party in sales document
V45A0003 Collector for customer function modulpool MV45A
V45A0004 Copy packing proposal
V45E0001 Update the purchase order from the sales order
V45E0002 Data transfer in procurement elements (PRreq., assembly
V45L0001 SD component supplier processing (customer enhancements
V45P0001 SD customer function for cross-company code sales
V45S0001 Update sales document from configuration
V45S0003 MRP-relevance for incomplete configuration
V45S0004 Effectivity type in sales order
V45W0001 SD Service Management: Forward Contract Data to Item
V46H0001 SD Customer functions for resource-related billing
V60F0001 SD Billing plan (customer enhancement) diff. to billing
For Delivery you will get .. here the package name will be VL.
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)
For Billing VF01..Package is VF..
SDVFX007 User exit: Billing plan during transfer to Accounting
SDVFX008 User exit: Processing of transfer structures SD-FI
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
Or another way is ..
- Get the program name for that T-Code
- Go to that program
- In that program, search for word 'EXIT' or 'CUSTOMER-FUNCTION' by using where-used list which will give u the list of user exits for that program
And also you can check in the tables in SE16 for user exits..
MODSAP - Stores SAP Enhancements
MODSAPT - Stores SAP Enhancements - Short Texts
MODACT - Stores Modifications
And there are other ways as well , pls check the forum for this ,
Regards,
Vvieks
Note : If you have any specific requirement then pls let us know , we will guide you -
Hi All,
My requirement is in ME59N if Document Type is ZCD or ZSD it should not consider the Rounding Value (MARC-BSTRF) which is coming from Materrial Master (MRP1 View) and Purchase Info Record (EINE-RDPRF) which is coming from Purchase Info Record(ME12 or ME13), Can any one suggest me the right User Exit or BADI for this, Please go through the requirement.
Regards,
Sudhakar .A
Edited by: Sudhakar Allam on Feb 5, 2010 4:31 AMHI Sudhakar ,
These are the list of enhancements and Badi's available for ME59N ,
MEVME001 WE default quantity calc. and over/ underdelivery tolerance
MM06E001 User exits for EDI inbound and outbound purchasing documents
MM06E003 Number range and document number
MM06E004 Control import data screens in purchase order
MM06E005 Customer fields in purchasing document
MM06E007 Change document for requisitions upon conversion into PO
MM06E008 Monitoring of contr. target value in case of release orders
MM06E009 Relevant texts for "Texts exist" indicator
MM06E010 Field selection for vendor address
MM06E011 Activate PReq Block
MMAL0001 ALE source list distribution: Outbound processing
MMAL0002 ALE source list distribution: Inbound processing
MMAL0003 ALE purcasing info record distribution: Outbound processing
MMAL0004 ALE purchasing info record distribution: Inbound processing
MMDA0001 Default delivery addresses
MMFAB001 User exit for generation of release order
AMPL0001 User subscreen for additional data on AMPL
MRFLB001 Control Items for Contract Release Order
LMEDR001 Enhancements to print program
LMELA002 Adopt batch no. from shipping notification when posting a GR
LMELA010 Inbound shipping notification: Transfer item data from IDOC
LMEQR001 User exit for source determination
LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt
LWSUS001 Customer-Specific Source Determination in Retail
M06B0001 Role determination for purchase requisition release
M06B0002 Changes to comm. structure for purchase requisition release
M06B0003 Number range and document number
MEQUERY1 Enhancement to Document Overview ME21N/ME51N
MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
MEETA001 Define schedule line type (backlog, immed. req., preview)
ME590001 Grouping of requsitions for PO split in ME59
M06E0005 Role determination for release of purchasing documents
M06E0004 Changes to communication structure for release purch. doc.
M06B0005 Changes to comm. structure for overall release of requisn.
M06B0004 Number range and document number
The list of Badi are
ME_PROCESS_REQ_CUST Enhancements for Processing Enjoy PReqs: Customer
ME_PROCESS_REQ Enhancements for Processing Enjoy PReqs: Internal
ME_PROCESS_PO_CUST Enhancements for Processing Enjoy Purchase Order: Customer
ME_PROCESS_PO Enhancements for Processing Enjoy Purchase Order: Intern.
ME_PROCESS_COMP Processing of Component Default Data at Time of GR: Customer
ME_PO_SC_SRV BAdI: Service Tab Page for Subcontracting
ME_PO_PRICING_CUST Enhancements to Price Determination: Customer
ME_PO_PRICING Enhancements to Price Determination: Internal
ME_INFOREC_SEND Capture/Send Purchase Info Record Changes - Internal Use
ME_HOLD_PO Hold Enjoy Purchase Orders: Activation/Deactivation
ME_GUI_PO_CUST Customer's Own Screens in Enjoy Purchase Order
ME_FIELDSTATUS_STOCK FM Account Assignment Behavior for Stock PR/PO
ME_DP_CLEARING Clearing (Offsetting) of Down Payments and Payment Requests
ME_PURCHDOC_POSTED Purchasing Document Posted
SMOD_MRFLB001 Control Items for Contract Release Order
EXTENSION_US_TAXES Extended Tax Calculation with Additional Data
ARC_MM_EKKO_WRITE BAdI: Enhancement of Scope of Archiving (MM_EKKO)
ARC_MM_EKKO_CHECK BAdI: Enhancement of Archivability Check (MM_EKKO)
MM_EDI_DESADV_IN Supplementation of Delivery Interface from Purchase Order
MM_DELIVERY_ADDR_SAP Determination of Delivery Address
ME_WRF_STD_DNG PO Controlling Reminder: Extension to Standard Reminder
ME_TRIGGER_ATP Triggers New ATP for Changes in EKKO, EKPO, EKPV
ME_TRF_RULE_CUST_OFF BADI for Deactivation of Field T161V-REVFE
ME_TAX_FROM_ADDRESS Tax jurisdiction code taken from address
ME_REQ_POSTED Purchase Requisition Posted
ME_REQ_OI_EXT Commitment Update in the Case of External Requisitions
ME_RELEASE_CREATE BAdI: Release Creation for Sched.Agrmts with Release Docu.
ME_DEFINE_CALCTYPE Control of Pricing Type: Additional Fields
ME_CHANGE_OUTTAB Enrich ALV Output Table in Purchasing
ME_CHANGE_CHARACTER Customer-Specific Characteristics for Product Allocation
ME_CCP_DEL_DURATION Calc. of Delivery Duration in CCP Process (Not in Standard)
ME_CCP_BESWK_AUTH_CH BAdI for authorization checks for procuring plant
ME_CCP_ACTIVE_CHECK BAdI to check whether CCP process is active
ME_BSART_DET Change document type for automatically generated POs
ME_BADI_DISPLAY_DOC BAdI for Internal Control of Transaction to be Invoked
ME_ACTV_CANCEL_PO BAdI for Activating the Cancel Function at Header Leve
MEGUI_LAYOUT BAdI for Enjoy Purchasing GUI
ME_CHECK_ALL_ITEMS Run Through Items Again in the Event of Changes in EKK
ME_COMMTMNT_REQ_RE_C Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_REQ_RELE Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_PO_REL_C Check for Commitment-Relevance of Purchase Orders
ME_COMMTMNT_PO_RELEV Check for Commitment-Relevance of Purchase Orders
ME_COMMITMENT_STO_CH BadI for checking if commitments for STOs are active
ME_COMMITMENT_RETURN Commitment for return item
ME_CIP_REF_CHAR Enables Reference Characteristics in Purchasing
ME_CIP_ALLOW_CHANGE Configuration in Purchasing: Changeability Control
ME_CIN_MM06EFKO Copy PO data for use by Country version India
ME_CIN_LEINRF2V BADI for LEINRF03 excise_invoice_details
ME_CIN_LEINRF2R BADI for CIN India - Delivery charges
ME_CHECK_SOURCES Additional Checks in Source Determination/Checking
ME_CHECK_OA Check BAdI for Contracts
regards.
Maybe you are looking for
-
Need to know xml cross references in figures, tables and references or bibliography
I need to know xml workflow automation for figures tables references anchored box help me its very urgent Message was edited by: keyan81b
-
I am needing to recreate a logo urgently. What is the best method to do this?
I have a low res image and I need to create it again. Please help.
-
Business Objects Design Studio
I am working on a report on Business Objects Design Studio, Please help me out with the below two issues, 1. I want to display user name after Welcome message. The user name should be of the person who is logged into the SAP warehouse currently. 2. T
-
Declaring a Variable in Script Logic
Hi Folks, Following is my Allocation Scenario: Source : Cost Elements A1, A2,A3,A4 Cost Center = STORE1 Destination: Cost Elements Same Cost Center = STORE11,STORE12,STORE13 But in the Destination Cost Elements, we have some values which are overwrit
-
Cannot import all photos onto PC
When I connect my phone to my laptop it is not showing all the photos on my phone to allow me to import them all. I have approx. 2000 photos on my phone, but when I connect and browse my phone on my PC I can only see approximately 50 photos. I can se