Exit of VF01 for field modification
Dear All,
I need to enable field for "Billed Quantity" in line item while doing VF01 so that user can change Quantity. what exit/enhancement will be used?. please help.
Radsamm
Hi Sasidhar,
First of all I wrote my code in the user exit you told me but when I go to VF01 and try to cancel a document, this user exit doesn't work. I'm using the same code, i put a break point and it doesn't stop there...
data l_kunnr like vbpa-kunnr.
clear l_kunnr.
select single kunnr
from vbpa
into l_kunnr
where VBELN = vbak-vbeln
and POSNR = '000000'
and PARVW = 'RG'.
SELECT SINGLE KLIMK
INTO VBRK-ZKLIMK
FROM KNKK
WHERE KUNNR = l_kunnr.
vbrk-zcarga = 'X'.
Thanks,
Maria
Similar Messages
-
User Exit in VF01 for Tax Conditions
Hello,
Please inform if any user exit is available for processing Conditions (Tax) in a Sales Order.
I'm facing a problem that while Invoicing, a certain Tax condition is not being executed.
Thanks,
Shalabh JainHI Colleague,
I will list the available user-exit to be used for Billing Document:
User Exits For Billing
USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)
The internal number range used in the standard system is specified in the billing type table and can be changed in this user exit. This user exit is only called when the billing documents is created.
USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMKCV (header fields).
USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)
In this user exit additional fields for account determination that are not provided in the standard system are copied into communication structure KOMPCV (item fields).
USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
Depending on the number range, table TVFKD is used to set the billing date (country-specific requirments in Italy). USEREXIT_NUMBER_RANGE is automatically deactivated when this user exit is being applied.
USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)
This user exit is only called when the billing document is created. It is used to provide the header and the item of the new billing document with deviating or additional data.
USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)
Printing the item line of a billing document can be supplemented or changed.
USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
Printing the header line of a billing document can be supplemented or changed.
User exits in program RV60AFZD
Short descriptions of the user exits are contained in the program:
USEREXIT_RELI_XVBPAK_AVBPAK
USEREXIT_NEWROLE_XVBPAK_AVBPAK
USEREXIT_NEWROLE_XVBPAP_AVBPAK
The following user exits are available in report SAPLV60B for transfer to accounting (function group V60B):
EXIT_SAPLV60B_001: Change the header data in the structure acchd
You can use this exit to influence the header information of the accounting document. For example, you can change the business transaction, "created on" date and time, the name of the person who created it or the transaction with which the document was created.
EXIT_SAPLV60B_002: Change the customer line ACCIT
You can use this exit to change the customer line in the accounting document. This exit is processed once the ACCIT structure is filled in with data from document header VBRK.
EXIT_SAPLV60B_003: Change the customer line in costing
The customer line is filled in differently for costing. You can use exit 003 to influence the ACCIT structure.
EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add information to a GL account item (such as quantity specifications) with this exit.
EXIT_SAPLV60B_005: User exit for accruals
Once all relevant data for accruals was entered in the GL account item, you can add to this data with this exit.
EXIT_SAPLV60B_006: Change the control line ACCIT
You can use exit 006 to add information to the control line.
EXIT_SAPLV60B_007: Change the installment plan
You can use exit 007 to add information to the installment plan
parameters in the GL account item.
EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and ACCHD
After the accounting document is filled in with data, you can use exit 008 to change the document once again.
EXIT_SAPLV60B_010: Item table for customer lines
You can use exit 10 to influence the contents of customer lines before they are created.
EXIT_SAPLV60B_0011: Change the parameter for cash account determination or reconciliation account determination
You can use this exit to change inbound parameters in order to influence account determination.
I hope that one of them could be helpful.
Regards
Ruy Castro -
User exit or BAdi for field update in ECC system for SUS supplier
Dear Guru's,
I am configuring MM-SUS scenario in our srm 7.01 scenario. Not all vendors of our client are going to be SUS vendors. For SUS vendors, the client will be using Purchase Order Acknowledgement and Advanced Shipping Notification key. I am thinking of configuring a confirmation control key which will incoporate requirement of PO acknowledgement and Inbound delivery document. The assignment of confirmation control key and PO Acknowledgement Required checkbox in the vendor master record will default it in the purchase order.
Now, the question is how to update the existing vendor master data record which will be SUS vendor. I am looking at a solution like user exit or BAdi which updates the confirmation control key and purchase order acknowledgement required check box when the client manually assigns the class 'Z_CRED_SUSMM' to the ERMS vendor master.
Could you please help me to find the required exit or BAdi?
Thanks and regards,
Ranjan
Ranjan SutradharEXIT_SAPMF02K_001 definitely wont work as this is for custom checks. this does not update data in vendor master.
you can try using below method of VENDOR_ADD_DATA badi.
IF_EX_VENDOR_ADD_DATA~PRESET_VALUES_PORG
but you need to read the screen field for classification and then according to that i think you can change the LFM1 data inside this badi -
User exit in VF01 for plant validation while taking the output smartform
Hi Gurus,
I am in a typical situation..
We ahve a scenario where for one specific plant we need to trigger a different output type(smartform) where the billing type is being common for all plants...
example: billing type : A00 ( same for all plants)
outout type (billing) : B00 ( one smartform)
C00 (another smartform)
For all the plants, Boo triggers as the layout is same for all Except for One specific plant where it should trigger C00 i.e., different smartform i.e., layout...
Any user exit for validating Plant at the time of saving the billing document to trigger a different outout type as above for the same billing type ???
Please help me..
regards
RavikumarDear Ravikumar,
You can do like this with out using User exit.
-->Take field Plant in to the output condition table
-->Put that condition table in to access sequence
-->Define two condition type as you mentioned B00 and C00
-->Assign access sequence to that condition types.
-->Put those output condition types in the output determination procedure.
-->Assign that output determination procedure to the billing type.
-->Main the condition records for that conditon types with one of the key combination PLANT
I hope it will help you
Regards,
Murali. -
Need User exit or BAdi for VF01
Hi.
I need User exit or Badi for VF01.
Condtion: After Successful Save of document number in database.
Please help me.
To be reward all helpfull answers.
Regards.
JayHi
The follwing user exits and badis available:
Enhancement
V05N0001
User Exits for Printing Billing Docs. using POR Procedure
V05I0001
User exits for billing index
SDVFX011
Userexit for the komkcv- and kompcv-structures
SDVFX010
User exit item table for the customer lines
SDVFX009
Billing doc. processing KIDONO (payment reference number)
SDVFX008
User exit: Processing of transfer structures SD-FI
SDVFX007
User exit: Billing plan during transfer to Accounting
V61A0001
Customer enhancement: Pricing
V60P0001
Data provision for additional fields for display in lists
V60A0001
Customer functions in the billing document
Business Add-in SD_CIN_LV60AU02
BADI for billing
VOR_WA_FAKTURA
Billing before Goods Issue
If it is helpful rewards points.
Regards
Pratap.M -
Need a document for field exit....urgent
Can any one please send a document for field exit or have a simple document on how to work on a field exit with screen shots. pls send it ...its urgent
Thanks and regards
Nandha kumar RHi,
A field exit is a type of user exit.
A user exit is a hook where you can inject your own add-on functionality or behavior to SAPs standard business applications without having to modify the original applications.
Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field.
Field Exits
Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field. Example: The data element BBBNR identifies a companys international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100.
The field exit concept lets you create a special function module that contains this logic.
You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.
In 4.6c, you can use "RSMODPRF" program to create field exits.
An example of a user exits :-
MODULE user_exit_0001 INPUT
CASE okcode.
WHEN 'BACK OR EXIT'.
CASE sy-dynnr.
WHEN '100'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN '200'.
Note that you can write any code that satisfy your needs. ****
But in this case, this was wrote as a sample code for reference sake. ****
And you can test it. ****
SET SCREEN 100.
LEAVE SCREEN.
ENDCASE.
ENDCASE.
Field exits (SMOD/CMOD) Questions and Answers
1. Field exit was created with CMOD, but is not processed when calling the screen.
- Since the field exit is not processed until PAI, an action must be triggered on the screen (Return, Save, ...).
- Set profile parameter abap/fieldexit to YES and restart the system.
- After activating the function module FIELD_EXIT... and the field exit, leave the transaction on whose screen the field exit is to be executed. The screen is not generated until the transaction is started.
- Do not work on different application servers since there may be some delay before the field exit is activated.
- The profile parameter must be set on all or none of the application servers.
- If the field exit is to only be active on specific screens, check whether you chose the correct program and the correct screen
number (take care with subscreens).
- Using SE51 -> Field list, check that the screen field does have a reference to a data element. In the name of the field exit use the name of the data element and not the field name.
- After transport, field exits are marked as active but will not be processed.
Tip: First try deactivating the field exit once more and then afterwards, activate it again.
2. How is performance affected by setting abap/fieldexit?
- If a screen is generated and the profile parameter is set, a check is run on 2 tables (TDDIR, TDDIRS) to see whether a field exit must be generated for the respective field. In practice, the screen load is not generated until the screen is selected after an
update. The user should not notice any difference because screen generation is very fast.
3. Can you read the contents of other screen fields in the field exit?
- In principle, every field exit can store its value in the global variables of the function group (TOP) and hence make them
available to other field exits. Note here that field exits are always called and not only if an entry is made in the field or if the field is empty. In addition, it is not possible to make any assumptions about the order in which the field exits will be called in the future.
4. How does the field exit behave on step loop fields ?
- After the user has entered data, the field exit is called in PAI as often as there are visible fields in the step loop. The system
variable SY-STEPL is incremented each time. If a new value is assigned to the field, it is displayed in the module between LOOP and ENDLOOP. This module is also called once for each visible step loop line.
5. Can field exits be debugged ?
- No. Field exits must be tested separately in the ABAP/4 Development Workbench. For errors which only occur in the screen environment, it is helpful to write interesting variable to the file system using TRANSFER... . These can then be analysed there.
6. What can you do if the field contents are no longer transported to to ABAP/4.
- Check whether a value is assigned to the field OUTPUT.
7. When is the field exit called if a conversion exit is attached to the
data element ?
- The field exit is called after the conversion exit. This means that the INPUT field receives the data in the same format as the
ABAP/4 program also receives it.
8. Although a global field exit is inactive, a function module is called which does not exist (for example FIELD_EXIT_PROGRAMM_@)
- This is an error in the kernel which no longer occurs as of 3.0C. As a temporary measure, it is useful to assign a program and a screen which do not exist to the field exit and then activate the field exit.
9. Field exit is not visible in CMOD, although created.
- If you want to create a field exit for a data element, a function module is proposed with the name FIELD_EXIT_. This
function module must exist for the field exit to work. If you do not create this function module, but do create one with a suffix,
the data element is not displayed in CMOD.
10. Field exit is not executed although it is active.
- Fields which do not have the 'Input field' attribute usually do not trigger a field exit. The field exit is designed to allow an
extended input check. It is therefore only called for input fields - even if they are not ready for input at runtime of the application by LOOP AT SCREEN.
This rule does not apply, however, if the field is located within a steploop. Here the field will be always activated, even if it is
invisible.
- Field exits can only be executed for fields that are directly related tothe dictionary. If the relation is indirect, i.e. via an ABAP declaration ( LIKE ), no field exit can be executed.
11. Field exits on check buttons do not work
- Field exits are only intended for input fields. As check buttons count as graphical elements, you cannot install field exits on
them.
12. Field exits do not work on selection screens
SAP Field Exits
From 4.6c onwards, Field exits will no more be supported by SAP. They removed the function of field exit but they had given lot of flexibility through userexit.
However, if you still required it, here is how to activate it :-
First called up transaction CMOD.
Then called up transaction PRFB.
or
Activation of the field exits and assignment of the dynpros can also be carried out using program RSMODPRF. For this purpose, the program must be started without parameters (input fields remain blank). If required, new field exits can be created using program RSMODPRF (see the program documentation).
REFER THIS LINK ALSO.
defining screen fields using FIELD-SYMBOL
Thanks,
Shankar -
Function Module for REBDBU0012-BU Field Modification Criteria - Sample reqd
We are using three distinct type of Business Entities to look after three types of business of client. For this we have defined three number ranges for each such BE. Now, we wish to use Transaction code "REBDBU0012-BU Field Modification Criteria " and wish to define the field status of based in BE number range criteria.
I have discussed this in detail with my developer but he is unable to find any help/functional module. Is there any sample object available with in SAP library or if any member from SAP community could help us in it.
Regards
Rohit GoelHi Rohit,
function module that gets field status für BU in standard is REBU_REBU_EVENT_FMOD2.
There is no such function module that fulfills your requirement available yet.
For your requirement you have to develop your own function module with the same parameters and in the function module you have to insert the logic to determine the field status as you require it.
You may use REBU_GET_BUSOBJ to get the data of the object and so you should have all necessary information. As I already mentioned you can use RERO_RERO_EVENT_FMOD2_USAGE as an example.
Hope that helps.
Regards, Franz -
Exit or Badi for FB01 to update KMNAM filed value to BKPF free field
Hi Experts,
Please provide me the correct Exits or Badi for to update KMKPF-KMNAM value to BKPF reference field while posting FB01.
I tired with substitution but it was not solved my requirement.
I have to update the KMNAM value into BKPF-XREF2 field as the user selects account assignment model while posting FB01.
Please advise and share me, is there any other solution you have.
Thanks & Regards
Sankar.Hi ,
These is not exits or badis or BTE are not available eith import paremeters KMKPF.
So you need to get this value using Assign statement in any user exit which contains export parmeter as BKPF .
ASSIGN ('(SAPLSPO4)KMKPF-KMNAM) TO <fs_KMNAM>.
I hope this may helpfull..
Thank you,
Thanks,
AMS -
Alternate solution for Field Exit
Hi All,
Is there any other way to get the functionality of Field Exit?
According to my requirement, I have to populate some values in a table control based on the value entered in a field.
Please tell me a solution for this.
Thanks,
Nandhu.Hi,
As per your requirement you want to populate some values based on the value of some other field.
You can try for EXITS or if the field from which you want to use the value and the other fields which you want to populate are input fields then you can as well use field exits.
Variables declared globally for storing values in the top include of the function group for field exits can be accessed in other field exits. So you can make use of this functionality.
Thanks. -
Any USER EXIT or BADI for modification in ME21N Asset Creation
Hi Guyz,
We have a requiremnt where we need to put some validaion/check in Asset Creation of ME21N,
Any possible BADIs or USER EXIT available for this modification.
Pease help.
Thanks
JaifHi Jaif,
For BADIs please go to SE24 put cl_exithandler diplay it and put the break-point execute the transaction for which you want to find out badi you will get the badi name in exit name parameter.
Regards
Sagar -
Hi there!.
My customer is asking me to upgrade from 4.6c to ECC 6.0 their field-exits. But I've reading about Enhancement Framework, and for validations made for Field Exits, I would need a SAP Source Key Code to modify the SAP Object and implement the online validations in the screen SAPLCOMD Dynpro 3170.
Has someone tried to work with this new technology ? what could I do for Upgrade this Field Exits?..
Thank you very much for any help!.
AntonioHello,
There was a recent discussion onthis topic. Here's the link.
How to reduce input field length
Apart from the name of the Standard Report, I hope you'll find something else of use , too.
Regards,
Anand Mandalika. -
EXIT NAME OR BADI FOR FIELD IN MIGO TRANSACTION (full poins will be given)
Hai all,
VERY URGENT REQ.
In MIGO transaction, I want to know the BADI or EXIT NAME in which the following fields are avilable .
Fields name: exgrp, EXCISE_ACTION
exact screen field name is : J_1IEXHEAD-EXGRP
J_1IEXHEAD-EXCISE_ACTION
Full Points will be given for correct answer.
Thanks in advance.
s.senthil kumarHi,
Try this code .We can get the User exits and Badis for the Tcode.
Code:
& Report ZPJA_PM002 (Ver4) &
& PJA Consultancy Services (www.pjas.com) &
& This report attmpts to find Enhancements, Program-Exits, BADIs &
& and Business Transaction Events in a particular program/tcode. &
& Other search options: &
& Program: RPR_ABAP_SOURCE_SCAN &
& FModule: &
& Text Elements: &
& P_DEVC Show user-exits from development class &
& P_LIMIT Limit submit program selection &
& P_FUNC Show function modules &
& P_SUBM Show submit programs &
& S01 Selection data (TCode takes precedence over program name) &
report zpja_pm002
no standard page heading
line-size 221.
data: tabix like sy-tabix,
w_linnum type i,
w_off type i,
w_index like sy-tabix,
w_include like trdir-name,
w_prog like trdir-name,
w_incl like trdir-name,
w_area like rs38l-area,
w_level,
w_fsel like sy-ucomm, " Determination of screen field
w_str(50) type c,
w_funcname like tfdir-funcname.
constants: c_fmod(40) type c value 'Function modules selected: ',
c_subm(40) type c value 'Submit programs selected: ',
c_col1(12) type c value 'Enhanmt Type',
c_col2(40) type c value 'Enhancement',
c_col3(30) type c value 'Program/Include',
c_col4(20) type c value 'Enhancement Name',
c_col5(40) type c value 'Enhancement Description',
c_col6(8) type c value 'Project',
c_col7(1) type c value 'S',
c_col8(12) type c value 'ChangeName',
c_col9(10) type c value 'ChangeDate'.
Work Areas: ABAP Workbench
data: begin of wa_d010inc.
data: master type d010inc-master.
data: end of wa_d010inc.
data: begin of wa_tfdir.
data: funcname type tfdir-funcname,
pname type tfdir-pname,
include type tfdir-include.
data: end of wa_tfdir.
data: begin of wa_tadir.
data: devclass type tadir-devclass.
data: end of wa_tadir.
data: begin of wa_tstc.
data: pgmna type tstc-pgmna.
data: end of wa_tstc.
data: begin of wa_tstcp.
data: param type tstcp-param.
data: end of wa_tstcp.
data: begin of wa_enlfdir.
data: area type enlfdir-area.
data: end of wa_enlfdir.
Work Areas: BADIs
data: begin of wa_sxs_attr.
data: exit_name type sxs_attr-exit_name.
data: end of wa_sxs_attr.
data: begin of wa_sxs_attrt.
data: text type sxs_attrt-text.
data: end of wa_sxs_attrt.
Work Areas: Enhancements
data: begin of wa_modsap.
data: member type modsap-member.
data: end of wa_modsap.
data: begin of wa_modsapa.
data: name type modsapa-name.
data: end of wa_modsapa.
data: begin of wa_modsapt.
data: modtext type modsapt-modtext.
data: end of wa_modsapt.
Work Areas: Business Transaction Events
data: begin of wa_tbe01t.
data: text1 type tbe01t-text1.
data: end of wa_tbe01t.
data: begin of wa_tps01t.
data: text1 type tps01t-text1.
data: end of wa_tps01t.
user-exits
types: begin of ty_mod,
member like modact-member,
name like modact-name,
status like modattr-status,
anam like modattr-anam,
adat like modattr-adat,
end of ty_mod.
data: w_mod type ty_mod.
types: begin of t_userexit,
type(12) type c,
pname like trdir-name,
txt(300),
level type c,
modname(30) type c,
modtext(60) type c,
modattr type ty_mod,
end of t_userexit.
data: i_userexit type standard table of t_userexit with header line.
Function module developmnet classes
types: begin of t_devclass,
clas like trdir-clas,
end of t_devclass.
data: i_devclass type standard table of t_devclass with header line.
types: begin of t_enlfdir,
area type enlfdir-area,
end of t_enlfdir.
data: i_enlfdir type standard table of t_enlfdir with header line.
Submit programs
types: begin of t_submit,
pname like trdir-name,
level,
done,
end of t_submit.
data: i_submit type standard table of t_submit with header line.
Source code
types: begin of t_sourcetab, "#EC * (SLIN lügt!)
line(200), "#EC * (SLIN lügt!)
end of t_sourcetab. "#EC * (SLIN lügt!)
data: sourcetab type standard table of t_sourcetab with header line.
data c_overflow(30000) type c.
Description of an ABAP/4 source analysis token
data: i_stoken type standard table of stokex with header line.
data wa_stoken like i_stoken.
Description of an ABAP/4 source analysis statement
data: i_sstmnt type standard table of sstmnt with header line."#EC NEEDED
keywords for searching ABAP code
types: begin of t_keywords,
word(30),
end of t_keywords.
data: keywords type standard table of t_keywords with header line.
function modules within program
types: begin of t_fmodule,
name like rs38l-name,
pname like trdir-name,
pname2 like trdir-name,
level,
bapi,
done,
end of t_fmodule.
data: i_fmodule type standard table of t_fmodule with header line.
& Selection Options &
selection-screen begin of block selscr1 with frame title text-s01.
parameter: p_pname like trdir-name memory id rid,
p_tcode like syst-tcode,
p_limit(4) type n default 100,
p_devc like rihea-dy_ofn default ' ',
p_func like rihea-dy_ofn default ' ',
p_subm like rihea-dy_ofn default ' '.
selection-screen end of block selscr1.
& START-OF-SELECTION &
start-of-selection.
if p_pname is initial and p_tcode is initial.
message e008(hrfpm). "Make entry on the selection screen
stop.
endif.
ensure P_LIMIT is not zero.
if p_limit = 0.
p_limit = 1.
endif.
perform data_select.
perform get_submit_data.
perform get_fm_data.
perform get_additional_data.
perform data_display.
& Form DATA_SELECT &
form data_select.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get programs/includes' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
determine search words
keywords-word = 'CALL'.
append keywords.
keywords-word = 'FORM'.
append keywords.
keywords-word = 'PERFORM'.
append keywords.
keywords-word = 'SUBMIT'.
append keywords.
keywords-word = 'INCLUDE'.
append keywords.
if not p_tcode is initial.
get program name from TCode
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
if not wa_tstc-pgmna is initial.
p_pname = wa_tstc-pgmna.
TCode does not include program name, but does have refereve TCode
else.
select single param from tstcp into wa_tstcp-param
where tcode eq p_tcode.
if sy-subrc = 0.
check wa_tstcp-param(1) = '/'.
check wa_tstcp-param+1(1) = '*'.
if wa_tstcp-param ca ' '.
endif.
w_off = sy-fdpos + 1.
subtract 2 from sy-fdpos.
if sy-fdpos gt 0.
p_tcode = wa_tstcp-param+2(sy-fdpos).
endif.
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
p_pname = wa_tstc-pgmna.
if sy-subrc 0.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
else.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
endif.
endif.
Call customer-function aus Program coding
read report p_pname into sourcetab.
if sy-subrc > 0.
message e017(enhancement) with p_pname raising no_program."#EC *
endif.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
overflow into c_overflow
with includes.
if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
message e130(enhancement) raising syntax_error. "#EC *
endif.
check I_STOKEN for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '0'.
w_prog = ''.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endform. "DATA_SELECT
& Form GET_FM_DATA &
form get_fm_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get function module data' "#EC NOTEXT
exceptions
system_failure
communication_failure. "#EC *
Function module data
sort i_fmodule by name.
delete adjacent duplicates from i_fmodule comparing name.
loop at i_fmodule where done ne 'X'.
clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
refresh: i_stoken, i_sstmnt, sourcetab.
store function groups
select single area from enlfdir into wa_enlfdir-area
where funcname = i_fmodule-name.
i_enlfdir-area = wa_enlfdir-area.
append i_enlfdir.
Store development classes
if not wa_enlfdir-area is initial.
select single devclass into wa_tadir-devclass
from tadir where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name = wa_enlfdir-area.
check not wa_tadir-devclass is initial.
move wa_tadir-devclass to i_devclass-clas.
append i_devclass.
endif.
clear wa_tfdir.
select single funcname pname include from tfdir into wa_tfdir
where funcname = i_fmodule-name.
check sy-subrc = 0.
call function 'FUNCTION_INCLUDE_SPLIT'
exporting
program = wa_tfdir-pname
importing
group = w_area.
concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
i_fmodule-pname = w_include.
i_fmodule-pname2 = wa_tfdir-pname.
modify i_fmodule.
read report i_fmodule-pname into sourcetab.
if sy-subrc = 0.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
message e130(enhancement) raising syntax_error.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '1'.
w_prog = i_fmodule-pname2.
w_incl = i_fmodule-pname.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
endloop.
sort funtion groups
sort i_devclass.
delete adjacent duplicates from i_devclass.
sort i_enlfdir.
delete adjacent duplicates from i_enlfdir.
endform. "GET_FM_DATA
& Form GET_SUBMIT_DATA &
form get_submit_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get submit data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
w_level = '0'.
loop at i_submit where done ne 'X'.
check i_submit-pname ne p_pname. " ensure not the same as origianl program
clear: i_stoken, i_sstmnt, sourcetab.
refresh: i_stoken, i_sstmnt, sourcetab.
read report i_submit-pname into sourcetab.
if sy-subrc 0.
delete i_submit.
continue.
else.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
continue.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_prog = i_submit-pname.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
restrict number of submit program selected for processing
describe table i_submit lines w_linnum.
if w_linnum ge p_limit.
w_level = '1'.
endif.
i_submit-done = 'X'.
modify i_submit.
endloop.
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
endform. "GET_SUBMIT_DATA
& Form DATA_SEARCH &
form data_search tables p_stoken structure stoken
using p_level p_prog p_incl.
loop at p_stoken.
clear i_userexit.
tabix = sy-tabix + 1.
i_userexit-level = p_level.
if i_userexit-level = '0'.
if p_incl is initial.
i_userexit-pname = p_pname.
else.
concatenate p_pname '/' p_incl into i_userexit-pname.
endif.
else.
if p_incl is initial.
i_userexit-pname = p_prog.
else.
concatenate p_prog '/' p_incl into i_userexit-pname.
endif.
endif.
Include
if p_stoken-str eq 'INCLUDE'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs 'STRUCTURE'.
check not wa_stoken-str cs 'SYMBOL'.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Enhancements
if p_stoken-str eq 'CUSTOMER-FUNCTION'.
clear w_funcname.
read table p_stoken index tabix.
translate p_stoken-str using ''' '.
condense p_stoken-str.
if p_prog is initial.
concatenate 'EXIT' p_pname p_stoken-str into w_funcname
separated by '_'.
else.
concatenate 'EXIT' p_prog p_stoken-str into w_funcname
separated by '_'.
endif.
select single member from modsap into wa_modsap-member
where member = w_funcname.
if sy-subrc = 0. " check for valid enhancement
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
append i_userexit.
else.
clear wa_d010inc.
select single master into wa_d010inc-master
from d010inc
where include = p_prog.
concatenate 'EXIT' wa_d010inc-master p_stoken-str into w_funcname
separated by '_'.
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
endif.
endif.
BADIs
if p_stoken-str cs 'cl_exithandler='.
w_index = sy-tabix + 4.
read table p_stoken index w_index into wa_stoken.
i_userexit-txt = wa_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-type = 'BADI'.
append i_userexit.
endif.
Business transaction events
if p_stoken-str cs 'OPEN_FI_PERFORM'.
i_userexit-type = 'BusTrEvent'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-modname = i_userexit-txt+16(8).
case i_userexit-txt+25(1).
when 'E'.
clear wa_tbe01t.
select single text1 into wa_tbe01t-text1 from tbe01t
where event = i_userexit-txt+16(8)
and spras = sy-langu.
if wa_tbe01t-text1 is initial.
i_userexit-modtext = ''. "#EC NOTEXT
else.
i_userexit-modtext = wa_tbe01t-text1.
endif.
i_userexit-modname+8 = '/P&S'. "#EC NOTEXT
when 'P'.
clear wa_tps01t.
select single text1 into wa_tps01t-text1 from tps01t
where procs = i_userexit-txt+16(8)
and spras = sy-langu.
i_userexit-modtext = wa_tps01t-text1.
i_userexit-modname+8 = '/Process'.
endcase.
append i_userexit.
endif.
Program exits
if p_stoken-str cs 'USEREXIT_'.
i_userexit-type = 'Program Exit'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
append i_userexit.
endif.
Submit programs
if p_stoken-str cs 'SUBMIT'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
check not p_stoken-str cs '_'. " ensure not SUBMIT_XXX
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs '_'. " ensure not SUBMIT_XXX
replace all occurrences of '''' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Perform routines (which reference external programs)
if p_stoken-str cs 'PERFORM'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if not wa_stoken-ovfl is initial.
w_off = wa_stoken-off1 + 10.
w_str = c_overflow+w_off(30).
find ')' in w_str match offset w_off.
w_off = w_off + 1.
wa_stoken-str = w_str(w_off).
endif.
check wa_stoken-str cs '('.
w_off = 0.
while sy-subrc = 0.
if wa_stoken-str+w_off(1) eq '('.
replace section offset w_off length 1 of wa_stoken-str with ''.
replace all occurrences of ')' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
append i_submit.
endif.
exit.
else.
replace section offset w_off length 1 of wa_stoken-str with ''.
shift wa_stoken-str left deleting leading space.
endif.
endwhile.
endif.
Function modules
if p_stoken-str cs 'FUNCTION'.
clear i_fmodule.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if wa_stoken-str cs 'WF_'.
if wa_stoken-str cs 'IDOC'.
break-point.
endif.
if wa_stoken-str cs 'BAPI'.
i_fmodule-bapi = 'X'.
endif.
replace first occurrence of '''' in wa_stoken-str with space.
replace first occurrence of '''' in wa_stoken-str with space.
if sy-subrc = 4. " didn't find 2nd quote (ie name truncated)
clear wa_tfdir.
concatenate wa_stoken-str '%' into wa_stoken-str.
select single funcname into wa_tfdir-funcname from tfdir
where funcname like wa_stoken-str.
if sy-subrc = 0.
i_fmodule-name = wa_tfdir-funcname.
else.
continue.
endif.
else.
i_fmodule-name = wa_stoken-str.
endif.
read table i_fmodule with key name = i_fmodule-name.
if sy-subrc 0.
i_fmodule-level = p_level.
append i_fmodule.
endif.
endif.
endloop.
endform. "DATA_SEARCH
& Form GET_ADDITIONAL_DATA &
form get_additional_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get additional data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
loop at i_userexit.
Enhancement data
if i_userexit-type cs 'Enh'.
clear: wa_modsapa.
select single name into wa_modsapa-name from modsap
where member = i_userexit-txt.
check sy-subrc = 0.
i_userexit-modname = wa_modsapa-name.
clear wa_modsapt.
select single modtext into wa_modsapt-modtext from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
i_userexit-modtext = wa_modsapt-modtext.
MOH - enhancement to get the project name
clear w_mod.
select single modactmember modactname modattr~status
modattranam modattradat
into w_mod
from modact
inner join modattr
on modattrname = modactname
where modact~member = wa_modsapa-name
and modact~typ = space.
i_userexit-modattr = w_mod.
MOH - eoe
endif.
BADI data
if i_userexit-type eq 'BADI'.
clear wa_sxs_attr.
select single exit_name into wa_sxs_attr-exit_name from sxs_attr
where exit_name = i_userexit-txt.
if sy-subrc = 0.
i_userexit-modname = i_userexit-txt.
else.
i_userexit-modname = 'Dynamic call'. "#EC NOTEXT
endif.
clear wa_sxs_attrt.
select single text into wa_sxs_attrt-text from sxs_attrt
where exit_name = wa_sxs_attr-exit_name
and sprsl = sy-langu.
i_userexit-modtext = wa_sxs_attrt-text.
endif.
modify i_userexit.
endloop.
get enhancements via program package
clear wa_tadir.
select single devclass into wa_tadir-devclass from tadir
where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = p_pname.
if sy-subrc = 0.
clear: wa_modsapa, wa_modsapt.
select name from modsapa into wa_modsapa-name
where devclass = wa_tadir-devclass.
select single modtext from modsapt into wa_modsapt-modtext
where name = wa_modsapa-name
and sprsl = sy-langu.
read table i_userexit with key modname = wa_modsapa-name.
if sy-subrc 0.
i_userexit-modtext = wa_modsapt-modtext.
i_userexit-type = 'Enhancement'. "#EC NOTEXT
i_userexit-modname = wa_modsapa-name.
i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
i_userexit-pname = 'Unknown'. "#EC NOTEXT
append i_userexit.
endif.
endselect.
endif.
Get IDOCs
loop at i_devclass.
endloop.
endform. "GET_ADDITIONAL_DATA
& Form DATA_DISPLAY &
form data_display.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Prepare screen for display' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_userexit by type txt modname.
delete adjacent duplicates from i_userexit comparing txt modname.
format headings
write: 'Enhancements from main program'. "#EC NOTEXT
write: /.
uline.
format color col_heading.
write: / sy-vline,
(12) c_col1, "Enhanmt Type
sy-vline,
(40) c_col2, "Enhancement
sy-vline,
(30) c_col3, "Program/Include
sy-vline,
(20) c_col4, "Enhancement name
sy-vline,
(60) c_col5, "Enhancement description
sy-vline,
(8) c_col6, "Project
sy-vline,
(1) c_col7, "S
sy-vline,
(12) c_col8, "ChangeName
sy-vline,
(10) c_col9, "ChangeDate
sy-vline.
format reset.
uline.
format lines
loop at i_userexit.
set line colour
case i_userexit-type.
when 'Enhancement'.
format color 3 intensified off.
when 'BADI'.
format color 4 intensified off.
when 'BusTrEvent'.
format color 5 intensified off.
when 'Program Exit'.
format color 6 intensified off.
when others.
format reset.
endcase.
write: / sy-vline,
i_userexit-type,
sy-vline,
i_userexit-txt(40),
sy-vline,
i_userexit-pname(30),
sy-vline,
i_userexit-modname(20),
sy-vline,
i_userexit-modtext(60),
sy-vline,
i_userexit-modattr-name,
sy-vline,
i_userexit-modattr-status,
sy-vline,
i_userexit-modattr-anam,
sy-vline,
i_userexit-modattr-adat no-zero,
sy-vline.
hide: i_userexit-type,
i_userexit-txt,
i_userexit-pname,
i_userexit-modname,
i_userexit-modtext.
endloop.
format reset.
uline.
user-exits from development class of function modules
if p_devc = 'X'.
write: /.
write: / 'User-exits from function module development class'."#EC NOTEXT
write: 157''.
uline (90).
write: 157''.
loop at i_devclass.
clear wa_modsapa.
select name from modsapa into wa_modsapa
where devclass = i_devclass-clas.
select single name modtext into corresponding fields of wa_modsapt
from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
format color 3 intensified off.
write: / sy-vline,
(12) 'Enhancement',
sy-vline,
wa_modsapa-name,
sy-vline,
wa_modsapt-modtext,
sy-vline.
endselect.
endloop.
uline (90).
format reset.
endif.
describe table i_fmodule lines w_linnum.
write: / c_fmod , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_func = 'X'.
display fuction modules used in program
uline (38).
write: 157''.
loop at i_fmodule.
write: sy-vline,
i_fmodule-name,
sy-vline,
i_fmodule-bapi,
sy-vline.
write: 157''.
endloop.
uline (38).
write: 157''.
endif.
describe table i_submit lines w_linnum.
write: / c_subm , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_subm = 'X'.
display submit programs used in program
uline (44).
write: 157''.
loop at i_submit.
write: sy-vline,
i_submit-pname,
sy-vline.
write: 157''.
endloop.
uline (44).
endif.
issue message with number of user-exits displayed
describe table i_userexit lines w_linnum.
message s697(56) with w_linnum.
endform. "DATA_DISPLAY
& User Selection Processing &
at line-selection.
get cursor field w_fsel.
case w_fsel.
when 'I_USEREXIT-MODNAME'.
case i_userexit-type.
when 'Enhancement'.
set parameter id 'MON' field i_userexit-modname.
call transaction 'SMOD' and skip first screen.
when 'BADI'.
check i_userexit-modname ne 'Dynamic call'.
set parameter id 'EXN' field i_userexit-modname.
call transaction 'SE18' and skip first screen.
when 'BusTrEvent'.
submit rfopfi00 with attr_typey_selm = 'A'
with event = i_userexit-modname(8)
via selection-screen
and return.
when others.
endcase.
when 'I_USEREXIT-PNAME'.
check i_userexit-modname ne 'Unknown'.
w_off = 0.
find '/' in i_userexit-pname match offset w_off.
if w_off = 0.
set parameter id 'RID' field i_userexit-pname.
call transaction 'SE38' and skip first screen.
else.
w_off = w_off + 1.
w_prog = i_userexit-pname+w_off.
set parameter id 'RID' field w_prog.
call transaction 'SE38' and skip first screen.
endif.
when others.
endcase.
Thank You,
Saritha -
User Exit for FCH5 for field PAYR-NNME1
Hi,
Please provide some user exits for Tcode FCH5 for field PAYR-ZNME1 so that user cannot modify
customer information in existing checks.
Thks & Regds
ShaileshHi,
check below userexists for Tcode FCH5.
Exit Name Description
FDTAX001 Enhancement to Transaction FDTA (event after the download)
FEDI0002 Function exits for EDI DOCS in FI - Incoming pyt adv.notes
FEDI0003 Function exits for EDI docs in FI - Save PEXR segments
FEDI0004 Function exits for EDI docs in FI - particular events
FEDI0006 Function Exits for EDI-docs in FI: Save IDCR Segments
RFFOX003 Frame for user exit RFFOX003 (in program RFFOM100)
RFFOX041 Framework for user exit RFFOX041 (in program RFFOBE_I)
RFFOX042 Framework for user exit RFFOX042 (in program RFFOBE_E)
RFFOX043 Framework for user exit RFFOX043 (in program RFFOBE_D)
RFFOX061 Frame for user exit RFFOX061 (in program RFFOCH_P)
RFFOX062 Frame for user exit RFFOX062 (in program RFFOCH_P)
RFFOX063 Frame for user exit RFFOX063 (in program RFFOCH_P)
RFFOX064 Frame for user exit RFFOX064 (in program RFFOCH_P)
RFFOX065 Frame for user exit RFFOX065 (in program RFFOCH_P)
RFFOX066 Frame for user exit RFFOX066 (in program RFFOCH_P)
RFFOX071 Frame for user exit RFFOX071 (in program RFFOCH_U)
RFFOX072 Frame for user exit RFFOX072 (in program RFFOCH_U)
RFFOX073 Frame for user exit RFFOX073 (in program RFFOCH_U)
RFFOX074 Frame for user exit RFFOX074 (in program RFFOCH_U)
RFFOX075 Frame for user exit RFFOX075 (in program RFFOCH_U)
RFFOX081 Frame for user exit RFFOX081 (in program RFFOF__T)
RFFOX082 Frame for user exit RFFOX082 (in program RFFOF__T)
RFFOX100 Frame for user exit RFFOX100 (in program RFFOUS_T)
RFFOX101 Frame for user exit RFFOX101 (in program RFFOUS_T)
RFFOX102 Frame for user exit RFFOX102 (in program RFFOUS_T)
RFFOX103 Frame for user exit RFFOX103 (in program RFFOUS_T)
RFFOX104 user exit
RFFOX105 Frame for user exit RFFOX105 (in program RFFOUS_T)
RFFOX200 Frame for user exit RFFOX200 (in program RFFONZ_T)
RFFOX210 Frame for user exit RFFOX210 (in program RFFOAU_T)
RFFOX211 Frame for user exit RFFOX211 (in program RFFONZ_T)
RFFOX230 General program for user exit RFFOX230 (in program RFF
RFFOX240 Enhancement for User Exit 240 (RFFOAT_P)
RFFOX250 Enhancement for User Exit 250 (RFFODK_E)
RFFOX901 Framework for user exit RFFOX901 (in program RFFOM100)
RFFOX902 Framework for user exit RFFOX902 (in program RFFOM100)
Thanks -
Hi friends,
For my requirement, I have to use Field Exit.
Can u please provide me steps/ notes for field exit.
Regards.Hi,
Follow this:
- check data element of your field
- go to SE37 and create a function group of your choice
- run the program RSMODPRF
- type your data element and run it
- the system has to create FM for the field exit. It already suggests the name. Do not change it, just create that one.
- assign your previously created Function Group
- don't change the interface of the FM: input and output must be handled here in order to transport data to/from screen. Here you can check it the field fullfills your requirement
IF input = ...
MESSAGE 'Wrong input' TYPE 'E'. "message type E will restart PAI and field will be input ready again
ENDIF.
"at the end you must use this
output = input. "to transport data
- now using menu BACK function go back to program RSMODPRF and activate your field exit (Fieldexit -> Activate).
- Don't forget to activate your FG and FM too.
This procedure will activate Global field exit, if you want to create a local one, use the same program but Assing a screen and program to that data element.
Regards
Marcin -
User exit for vf01 for delivery date should be a current date
Hi Experts,
I won t allow to save vf01 delivery date mismatch with system date. Delivery date must equal with system date. kindly give any userexit for this issue.
regards
G.VendhanHi Vendhan,
Probably we are waiting for your Reply.......
You didn't replied to MxG question.....that whether writing VF01 for delivery was a typing mistake or you actually mean it.
Your reply will help us to answer your thread.......in case you already solved the problem by yourself.....I suggest you to close the Thread......and you may share the solution implemented/used ...so as to avoid a redundant thread creation in the future.
Maybe you are looking for
-
Getting error while importing Topology
Gurus, I am trying to import topology from DEV to Test. DEV: MAster Rep, Work Rep Internal ID's are different. Source is Excel, oracle table Target: is Oracle table; Even in TEST Both Rep Internal ID's are different. Still i am getting below error: c
-
So for whatever reason, whenever i text other iphone users, and one of us uses IMessage, my phone will only recieve their texts when i'm connected to wifi, even if we both stop using it. For example, i'll text a friend while temporarily using wifi or
-
My illustrator files are showing as pdf files. how do i fix this?
all the pdf files of my computer are showing as illustrator file. and its not just the icon the extention has also changed into .aif. i have tried to change it thorough property>browse. but as soon as i change it to pdf all other the illustrator file
-
"Multiple Tempo Events Detected" -- Propblem with Logic and Reason
I have just migrated from a MacBookProp to a MacPro. All seems well except for the rewiring of Reason. When I rewire, I get the error message in Logic "Multiple Tempo Events Selected" asking if I want to review the list. Since no song is open in Reas
-
Final Cut Pro Sequence Trouble
I transfered some projects to an external hard drive today, and when I opened them, some of the sequences are out of sync, they're fine when exported, but in FCP they run out of sync...Can anyone suggest what the problem might be? System Information: