System Error in User exit.
Hi Guys,
I am working on a PO exit(Enhancement: MM06E005 and Component: EXIT_SAPMM06E_013), the problem I am facing is if i throw an error message, it gets displayed as information message and then pop ups a system error message (error in method PO_CHECK).
I tried using BADI and got the same message.
If I use a different component EXIT_SAPMM06E_013, I am getting the error message.
Any thoughts on this.
Regards,
Madhu C
I'm doing two-step picking.
First step is creating wave pick (delivery grouping) based on shipment (transaction VL35_S) and then transfer order for group (transaction LT0E).
In that moment, it is possible that I transfer on the bin less materials then needed (variable weight, etc.) .
When doing collective picking (VL06P) for the deliveries from the bin, it could happen shortage on the bin end I get the message 'System cannot find source storage bin' which is OK but I don't want to klick on the screen for every item shortage.
Hope you got the picture ...
Ante
Similar Messages
-
Message error on user-exit MV50AFZ1
Hi!
I need to send a message error on user-exit MV50AFZ1 (VL01N), but I can't, because when I use BAPI_DELIVERYPROCESSING_EXEC for create deliveries, it will abort my program.
My program try to create many deliveries together, when occurs a message error, I don't know what order is the problem!!
Thanks,
TatianaHello.
In the exit, use a condition like:
IF sy-tcode EQ 'VL01N'.
MESSAGE E000(...)
ENDIF.
This will avoid the error in BAPI execution.
Regards,
Valter Oliveira. -
Error in user exit for System menu
Hi,
I was working on the user exit for the System menu.
There was some error in the menu exit I added and then logged off.
Now when I am tryin to log in the system again and error is given without allowing me to login because the initial log on screen loads the system menu.
Can anyoone help me resolve this issue.
Edited by: Ashutosh Tripathi on Mar 26, 2008 11:16 AMMichael,
Thanks for the quick response,
I did check in IMG, an entry is already there, the 'primary field' is checked,
USD is assigned to the iso code USD.
Regards,
Disney. -
How can I get the No. of package and requesting system name in user exit?
Dear all,
Is there anybody knowing how to obtain the extracting package number and requesting system name in the user exit "EXIT_SAPLRSAP_002" ? here is detail on my questions as below:
For package number. If extracting 100,000 records of 0MATERIAL_TEXT , and the package size is 20,000, then there are 10 packages, when executing the user exit, how can I know which package I am extracting on?
For requesting name, when executing the user exit, how can I know the logical system name from which the extraction request is sent?
Thanks.
best regards
PatrickHi Mansi,
Thanks for your quick response.
The background of this requirement is, in the datasource 0material_Plant_Att, we added two fields in the extraction structure, one is variable price, another is previous year's variable price, which need to be obtained by searching data KEKO & CKIS in the user exit, these tables have the huge data volume, in each data package, the user exit needs to be executed once, so the heavy searching needs to be done once, consequently, the total running time of this request including several data packages is very long. In order to improve the performance, we design the following logic:
1. Create the temporary tables YCKIS & YKEKO in R/3.
2. Run BW request in BIW.
3. In R/3, If this is first data package of this request, delete all data in YCKIS & YKEKO, then search the data from CKIS & KEKO ( Average 20 million records), then insert these data into YCKIS & YKEKO ( Average 0.2 million records).
4. In R/3, if this is not first data package of this request, then search the data directly from YCKIS & YKEKO.
You can see in the above, in the step 4, the data searching performance can be improved significantly due to reading data from temporary table, this is why I need to know the No. of data package. In addition, apparently, it can not be done in BIW side since the performance issue is in the user exit rather than in BIW. Also it is very difficult to setup one counter to deliver this since we do not know when to reset the counter. For example,
- Assuming there are 3 data packages.
- 1st day, we schedule one request from BIW, in R/3,
-> At 1st package, counter = 0+1=1
-> At 2nd package, counter =1+1= 2.
-> At 3rd package, counter = 2+1= 3, then reset counter = 0 for next request.
Question 1: How can we know the 3rd package is last one?
Question 2: If during the 2nd package, the extraction job is cancelled exceptionally, the counter value is 2 not 0, then for the next request, the data searching is not correct, right.
Hope the above is clear, and apology this email is too long.
Thanks.
best regards
Patrick -
Error Message, user exits, and editing disabled problem.
HEllo I recently had an assignment where I have to create a user exit with an error message. I had no problems with the error message but after an error occurs, with this line:
<b> MESSAGE ID 'ZSD' TYPE 'W' NUMBER '002'.</b>
the fields have become disabled and there seems to be no way to enable the fields for changing. Is there a way to fix this. Thanks people and take care!Oh, TYPE E, when issuing an error message, all fields are disabled unless you tie it to a field or group of fields. This is commonly done by using the CHAIN...ENDCHAIN statements in the PAI of the screen. Do you have access to this? I assume that you are issueing the message from within a MODULE, right? You are probably calling this module in the PAI flow logic of the screen. You will need to do something like this.
Here P_BUKRS is the screen field and CHECK_BUKRS is the module where you are checking the value and issuing the error message. Using the CHAIN, you can tie other fields to the check so that they are also enabled when the error message is issued.
CHAIN.
field p_bukrs module check_bukrs.
ENDCHAIN.
Regards,
Rich Heilman -
ABAP program error for user EXIT
Hi, I wrote code in EXIT_SAPLRSAP_001
When check and active it there were no syntax errors but when go rsa3 and check it gives an error at the follwing line
it_mcekpo[] = c_t_data[].
Runtime error: The internal talbles are neither compitable nor convertable.
I have defined it_mcekpo as below:
DATA BEGIN OF IT_MCEKPO OCCURS 1.
include structure mcekpo.
DATA END OF IT_MCEKPO.
But when I double click on 'c_t_data[]' , I get a message "object not defined, do you want do define".
Can some one tell me how should I define this, what aption I should choose and what is the strcture.
I am trying to add afnam, banfn and bednr from ekpo table to MC02M_0ITM (2LIS_02_ITM).
And is there any naming convention for 'it_mcekpo' and 'c_t_data'?
Any help is appreciated.
(This is my first userexit)
data: begin of it_ekpo occurs 0,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
afnam like ekpo-afnam,
banfn like ekpo-banfn,
bednr like ekpo-bednr,
bukrs like ekpo-bukrs,
end of it_ekpo.
when '2LIS_02_ITM'.
it_mcekpo[] = c_t_data[].
select ebeln ebelp afnam banfn bednr bukrs
from ekpo into table it_ekpo
for all entries in it_mcekpo
where ebeln = it_mcekpo-ebeln and
ebelp = it_mcekpo-ebelp.
performance imprv.
if not it_ekpo is initial.
sort it_ekpo by ebeln ebelp.
endif.
loop at it_mcekpo.
read table it_ekpo with key ebeln = it_mcekpo-ebeln
ebelp = it_mcekpo-ebelp
binary search.
if sy-subrc = 0.
it_mcekpo-zzafnam = it_ekpo-afnam.
it_mcekpo-zzbanfn = it_ekpo-banfn.
it_mcekpo-zzbednr = it_ekpo-bednr.
it_mcekpo-zzabukrs = it_ekpo-bukrs.
endif.
modify it_mcekpo.
endloop.Hi,
TRY the below code :
TYPES BEGIN OF TYPE_02ITM.
INCLUDE STRUCTURE MC02M_0ITM.
TYPES END OF TYPE_02ITM.
TYPES: BEGIN OF TYPE__ekpo,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
afnam like ekpo-afnam,
banfn like ekpo-banfn,
bednr like ekpo-bednr,
bukrs like ekpo-bukrs,
end of type_ekpo.
CASE I_DATASOURCE.
when '2LIS_02_ITM'.
WHEN '2LIS_02_ITM'.
DATA:
ITAB_EKPO TYPE STANDARD TABLE OF TYPE_EKPO
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
DATA:
ITAB_02ITM TYPE STANDARD TABLE OF TYPE_02ITM
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
ITAB_02ITM[] = C_T_DATA[] .
select ebeln ebelp afnam banfn bednr bukrs
from ekpo into table itab_ekpo
for all entries in ITAB_02ITM
where ebeln = ITAB_02ITM-ebeln and
ebelp = ITAB_02ITM-ebelp.
performance imprv.
if not itab_ekpo is initial.
sort itab_ekpo by ebeln ebelp.
endif.
loop at ITAB_02ITM.
read table itab_ekpo with key ebeln = ITAB_02ITM-ebeln
ebelp = ITAB_02ITM-ebelp
binary search.
if sy-subrc = 0.
ITAB_02ITM-zzafnam = itab_ekpo-afnam.
ITAB_02ITM-zzbanfn = itab_ekpo-banfn.
ITAB_02ITM-zzbednr = itab_ekpo-bednr.
ITAB_02ITM-zzabukrs = itab_ekpo-bukrs.
endif.
modify ITAB_02ITM.
endloop.
c_t_data[] = ITAB_02ITM[].
With rgds,
Anil Kumar Sharma .P -
Incorrect nesting error in user exit include
Hi,
In one of my requirement I had to add an additional screen using EXIT_SAPMM06E_016, this Function module exists in XM06 Function group, this exit holds an include ZXM06U41.
This function group holds screens, so when I implement a screen and create the PBO module in this particular include, it by default includes
MODULE STATUS_XXX OUTPUT.
ENDMODULE.
When i check this include it says:
Incorrect nesting: Before the statement "MODULE", the structure introduced by "FUNCTION" must be concluded with "ENDFUNCTION".
I have no clue where the open function is?
Your help will be very much appreciated.
Please help.
Thanks,
-SandeepYou cannot define a screen module in a function module code.
Refer to available documentation how to properly implement enhancements of this kind. Enhancement name is MM06E005 (in SMOD). Screen definitions and the corresponding modules will happen in function group XM06, not in the exit function module.
Edit: To elaborate, your PBO module will go into include ZXM06ZZZ, or better yet, into new include ZXM06O01 which should be part of ZXM06ZZZ (just to keep the usual naming convention).
Edited by: Tamas Hoznek on Feb 28, 2012 2:51 PM -
User Exit PO MM06E005 - Screen does not exist
Hello All,
I created a new object for user exit 'EXIT_SAPMM06E_012' in Development System. This user exit is under the enhancement MM06E005. The user exit EXIT_SAPMM06E_012 will be used to produce an error message when saving a PO.
After Transported the Project into Quality System and I tried running transaction ME22->Select one line Item record in table control -> (Menu) ITEM -> Confirmations -> Overview to confirm the PO. I have been getting a dump telling me that SAPLXM06 Screen 0111 Screen does not exist." This is because the screen exit was also included in the activation.
When I have deactivated the Project its working fine. This problem occurs only the activation of user exit.
Thanks & Regards
Sudheerhi,
the problem when activating the exit you would have checked or activated the screen which currently is there in the development system , or you would have activated the screens and put them in a different request or in $tmp so when the request having the exit got transaported the screen code or activation was not taken along.
Deactivate the exit and then deactivate the screens also.
and then try to activate and put all in one request : deactivated and activations.
Narayani
Message was edited by:
Narayani -
User exits : How to build and use through our form application ?!
Hi ,
Im trying to build a user exit based on a C++ program , to be used within our application.
I installed from the Oracle 8 Client CD the Oracle Pro*C/C++ ver 8.0.5 , i have Developer 2000 rel 6.0 patch 7 installed also .
Can anyone please provide me with the steps to build a user exit from A-Z , i read many Documents regarding that but all seems to me complicated , since also im not a C programmer , what i did for the time bieng i searched for file that ends *.pc on my hard disk and i found some of these files , i opend the Pro* C/C++ and it generates for me a *.C file , i reached this stage , then what should i do then to complete the task , for me i went directly to Forms and added a Button that calls the USER_EXIT built-in function , but simply it gave me an error message : User exit doesn't exist .
So Please if you could list for me the steps one by one i would be so graetful to you .
Thanx all in advance for all your efforts .
IslamWhy not make a stored procedure or PL/SQL-procedure? What you have to do is, to build a new version of runform, where you including your user-exits.
But if you insist: Use the help system. They have a description of how to do it on windows. It's more or less the same on unix. -
User exit MB_CF001 in MIGO
Folks,
I am using the user exit MB_CF001 to get the data from XMSEG table and send it to an external system. I was asked to call an RFC function module in this user exit to send the XMSEG data to an external system but the user exit documentation clearly says not to use RFC function call in this user exit.
I also heard that I can do this by using the idocs that get posted after MIGO is done. Could anyone give me step by step procedure how to do this as I am new to IDOCS.
Points will be rewarded for best answers.
Thanks,
AlokDear Alok,
Below is a documentation about IDOCs. Hope it will be useful to you.
Data Creation in Idoc
IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed. Therefore an IDoc data exchange is always an
asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.
While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.
IDoc is a intermediate document to exchange data between two SAP Systems.
*IDocs are structured ASCII files (or a virtual equivalent).
*Electronic Interchange Document
*They are the file format used by SAP R/3 to exchange data with foreign systems.
*Data Is transmitted in ASCII format, i.e. human readable form
*IDocs exchange messages
*IDocs are used like classical interface files
IDOC types are templates for specific message types depending on what is the business document, you want to exchange.
WE30 - you can create a IDOC type.
An IDOC with data, will have to be triggered by the application that is trying to send out the data.
FOr testing you can use WE19.
For more information in details on the same along with the examples can be viewed on:
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm#_Toc8400404
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a6620507d11d18ee90000e8366fc2/frameset.htm
http://www.sappoint.com/presentation.html
http://www.allsaplinks.com/idoc_search.html
http://www.sapgenie.com/sapedi/idoc_abap.htm
http://www.erpgenie.com/sapedi/idoc_abap.htm
To Create Idoc we need to follow these steps:
Create Segment ( WE31)
Create Idoc Type ( WE30 )
Create Message Type ( WE81 )
Assign Idoc Type to Message Type ( WE82 )
Creating a Segment
Go to transaction code WE31
Enter the name for your segment type and click on the Create icon
Type the short text
Enter the variable names and data elements
Save it and go back
Go to Edit -> Set Release
Follow steps to create more number of segments
Create IDOC Type
Go to transaction code WE30
Enter the Object Name, select Basic type and click Create icon
Select the create new option and enter a description for your basic IDOC type and press enter
Select the IDOC Name and click Create icon
The system prompts us to enter a segment type and its attributes
Choose the appropriate values and press Enter
The system transfers the name of the segment type to the IDOC editor.
Follow these steps to add more number of segments to Parent or as Parent-child relation
Save it and go back
Go to Edit -> Set release
Create Message Type
Go to transaction code WE81
Change the details from Display mode to Change mode
After selection, the system will give this message The table is cross-client (see Help for further info). Press Enter
Click New Entries to create new Message Type
Fill details
Save it and go back
Assign Message Type to IDoc Type
Go to transaction code WE82
Change the details from Display mode to Change mode
After selection, the system will give this message The table is cross-client (see Help for further info). Press Enter.
Click New Entries to create new Message Type.
Fill details
Save it and go back
Check below link. It will give the step by step procedure for IDOC creation.
http://www.supinfo-projects.com/cn/2005/idocs_en/2/
ALE/ IDOC
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.sappoint.com/abap/ale.pdf
http://www.sappoint.com/abap/ale2.pdf
http://www.sapgenie.com/sapedi/idoc_abap.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
http://www.allsaplinks.com/idoc_sample.html
http://www.sappoint.com/abap.html
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.allsaplinks.com/idoc_sample.html
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.docs
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.sappoint.com/abap/ale.pdf
http://www.sappoint.com/abap/ale2.pdf
http://www.sapgenie.com/sapedi/idoc_abap.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
http://www.allsaplinks.com/idoc_sample.html
http://www.sappoint.com/abap.html
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.allsaplinks.com/idoc_sample.html
http://http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data...
1.IDOCs are stored in the database. In the SAP system, IDOCs are stored in database tables.
2.IDOCs are independent of the sending and receiving systems.
3.IDOCs are independent of the direction of data exchange.
The two available process for IDOCs are
Outbound Process
Inbound Process
AND There are basically two types of IDOCs.
Basic IDOCs
Basic IDOC type defines the structure and format of the business document that is to be exchanged between two systems.
Extended IDOCs
Extending the functionality by adding more segments to existing Basic IDOCs.
To Create Idoc we need to follow these steps:
Create Segment ( WE31)
Create Idoc Type ( WE30)
Create Message Type ( WE81)
Assign Idoc Type to Message Type ( WE82)
Important links
http://www.allsaplinks.com/idoc_sample.html
http://www.sapgenie.com/sapedi/idoc_abap.htm
www.sappoint.com
--here u can find the ppts and basic seetings for ALE
http://sappoint.com/presentation.html
www.sapgenie.com
http://www.sapgenie.com/ale/index.htm
WE30 - you can create a IDOC type.
An IDOC with data, will have to be triggered by the application that is trying to send out the data.
>SAP ALE & IDOC
Steps to configuration(Basis)
>>1. Create Logical System (LS) for each applicable ALE-enabled client
>>2. Link client to Logical System on the respective servers
>>3. Create background user, to be used by ALE(with authorizaton for ALE postings)
>>4. Create RFC Destinations(SM59)
>>5. Ports in Idoc processing(WE21)
>>6. Generate partner profiles for sending system
The functional configuration(Tcode: SALE)
Create a Customer Distribution Model (CDM);
Add appropriate message types and filters to the CDM;
Generate outbound partner profiles;
Distribute the CDM to the receiving systems; and
Generate inbound partner profiles on each of the clients.
>Steps to customize a new IDoc
>>1. Define IDoc Segment (WE31)
>>2. Convert Segments into an IDoc type (WE30)
>>3. Create a Message Type (WE81)
>>4. Create valid Combination of Message & IDoc type(WE82)
>>5. Define Processing Code(WE41 for OUT / WE42 for IN)
>>6. Define Partner Profile(WE20)
Important Transaction Codes:
SALE - IMG ALE Configuration root
WE20 - Manually maintain partner profiles
BD64 - Maintain customer distribution model
BD71 - Distribute customer distribution model
SM59 - Create RFC Destinations
BDM5 - Consistency check (Transaction scenarios)
BD82 - Generate Partner Profiles
BD61 - Activate Change Pointers - Globally
BD50 - Activate Change Pointer for Msg Type
BD52 - Activate change pointer per change.doc object
BD59 - Allocation object type -> IDOC type
BD56 - Maintain IDOC Segment Filters
BD53 - Reduction of Message Types
BD21 - Select Change Pointer
BD87 - Status Monitor for ALE Messages
BDM5 - Consistency check (Transaction scenarios)
BD62 - Define rules
BD79 - Maintain rules
BD55 - Defining settings for IDoc conversion
WEDI - ALE IDoc Administration
WE21 - Ports in Idoc processing
WE60 - IDoc documentation
SARA - IDoc archiving (Object type IDOC)
WE47 - IDoc status maintenance
WE07 - IDoc statistics
BALE - ALE Distribution Administration
WE05 - IDoc overview
BD87 - Inbound IDoc reprocessing
BD88 - Outbound IDoc reprocessing
BDM2 - IDoc Trace
BDM7 - IDoc Audit Analysis
BD21 - Create IDocs from change pointers
SM58 - Schedule RFC Failures
Basic config for Distributed data:
BD64: Maintain a Distributed Model
BD82: Generate Partner Profile
BD64: Distribute the distribution Model
Programs
RBDMIDOC Creating IDoc Type from Change Pointers
RSEOUT00 Process all selected IDocs (EDI)
RBDAPP01 - Inbound Processing of IDocs Ready for Transfer
RSARFCEX - Execute Calls Not Yet Executed
RBDMOIND - Status Conversion with Successful tRFC Execution
RBDMANIN - Start error handling for non-posted IDocs
RBDSTATE - Send Audit Confirmations
FOr testing you can use WE19.
Best Regards,
Rajesh.
Please reward points if found helpful. -
Difference b/w Customer exits and User Exits
Hi,
Can anybody explain diff b/w user exits and customer exits .
How to find out and Impement the coding ..
Thanks Advance
Rohan.AHi Rohan,
Check this matter , this may be helpful to you.
<b>CUSTOMER EXITS</b>
The enhancement concept allows you to add your own functionality to SAPs standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.
If you want to enhance the functionality of your SAP System, you should take advantage of the exits available in standard applications. There are two main reasons why you should use exits rather than modifying SAP software yourself. Add-ons attached to exits have the advantage that:
They do not affect standard SAP source code
When you add new functionality to your SAP System using SAPs exits, you do not alter the source code of standard SAP programs in any way. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but exist separately from SAPs standard software package.
They do not affect software updates
When you add new functionality to your SAP System using SAPs exits, your objects (called customer objects) must adhere to strict naming conventions. When it comes time to upgrade a to a new software release, customer objects names ensure that they will not be affected by any changes or new additions to the standard software package.
Customer exits are not available for all programs and screens found in the SAP System. You can only use customer exits if they already exist in the SAP System.
<b>User exits :</b>
1. Introduction
2. How to find user exits
3. Using Project management of SAP Enhancements
1. Introduction:
User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
The naming standard of function modules for functionmodule exits is:
EXIT_<program name><3 digit suffix>
The call to a functionmodule exit is implemented as:
CALL CUSTOMER.-FUNCTION <3 digit suffix>
Example:
The program for transaction VA01 Create salesorder is SAPMV45A
If you search for CALL CUSTOMER-FUNCTION i program
SAPMV45A you will find ( Among other user exits):
CALL CUSTOMER-FUNCTION '003'
exporting
xvbak = vbak
xvbuk = vbuk
xkomk = tkomk
importing
lvf_subrc = lvf_subrc
tables
xvbfa = xvbfa
xvbap = xvbap
xvbup = xvbup.
The exit calls function module EXIT_SAPMV45A_003
Hope this is helpful.
Reward all the helpful answers.
Regards -
if the field " plifz " in MARC table is initial or zero ,while creating a sales order ,
i shd stop saving sales order and give error message .
user exit is :::: USEREXIT_CHECK_VBAP
HOW TO CHECK IF A FIELD HAS NO INITIAL VALUE OR ZERO IN IT .Hello Vijay,
Please try field Exit as an alternative solution since you need only a mandatory field check.....
To create a field Exit
1)For field exits in R/3 4.6C, execute transaction CMOD. Then type PRFB in the command field.
2)on the top menu...click on Field exit-> create ->enter the name of data element
3)enter the data element required for screen field to be mandatory and Execute
4)another screen comes with a function module name FIELD_EXIT_name of data element
5)Click create and save it to corresponding function group
6)you will get a function module with
import parameter as : INPUT
export parameter as : OUTPUT
7) in the source code write the code :
if input is initial.
message 'SALES FIELD MADATORY' type 'E'.
endif.
8)again to activate execute transaction CMOD. Then type PRFB in the command field. on the top menu...click on Field exit->Activate
now wherever data element is used the mandatory check will come but you need it only for your program ,so in the same screen click on Assign prog./screen tab and write the name of the program and screen number where you want the particular check
I believe field exit are not possible if structure field is on the screen...please do the above and check..you can also run the report RSMODPRF to create a field exit
Hope the suggestions proved useful.
Reward points if it was of any help
Regards
Byju -
Custom error message in user exit is giving Short dump
Hi All,
We have a scenario where in if any user try to create/Change/Delete particular types of contract in SAP system we have to issue error message
saying ZIN/ZIR contract creation/Change/Deletion is blocked in SAP. This has to be done from the web application. So we are putting below code
in user exit MV45AFZZ in the form USEREXIT_SAVE_DOCUMENT_PREPARE.
CONSTANTS: lc_vbcpic01 TYPE sy-uname VALUE u2018VBCPIC01u2019, u201CWeb application user ID
lc_zin TYPE vbak-auart VALUE u2018ZINu2019,
lc_zir TYPE vbak-auart VALUE u2018ZIRu2019,
lc_text(32) TYPE c VALUE u2018Check long text for more detailsu2019.
DATA: l_uname TYPE sy-uname.
CLEAR: l_uname.
MOVE sy-uname TO l_uname.
*If user ID is not the Web application ID then block the creation/Change/Deletion
IF l_uname NE lc_vbcpic01
AND ( vbak-auart EQ lc_zin
OR vbak-auart EQ lc_zir ).
MESSAGE e830(zv) WITH lc_text.
ENDIF.
This code is working fine while creating/Changing the contract i.e. Giving us error message so that user wonu2019t be able to create/change the contract.
But when we delete the contract from VA42, Control is coming to this message statement and is giving Short dump. Below is the error analysis of the dump.
Error Analysis:
During "Exit Command" processing, the program tried to send a " " message.
This is not allowed at this point in processing.
The program had to be terminated.
Screen name.............. "SAPMV45A"
Screen number............ 4001
If any one has come across such scenario/any work around for this problem please let me know your inputs. Your inputs are highly appreciated.
I am working on 4.6C version of SAP.
Note: When i issue information/Warning message contract is getting deleted after displaying the message.
Thanks,
Vinod.I exactly replicated the same in DELETE_DOCUMENT also
I am getting the Dump. I tried with exit also , but it continued and deleted. To avoid deletion we have to use Leave program or LEAVE TO CURRENT TRANSACTION.
Delete Function is Defined as EXIT command. so it is not possible to give error message. To convice you i just copied demo program and raised the error message.
it is also giving the dump.
copy the demo program DEMO_DYNPRO_AT_EXIT_COMMAND and make this change , information to error .
MODULE cancel INPUT.
MESSAGE e888(sabapdocu) WITH text-001 ok_code input1 input2.
IF ok_code = 'CANCEL'.
CLEAR ok_code.
LEAVE PROGRAM.
ENDIF.
ENDMODULE.
and see... -
Error message from user exit - current screen becomes grayed(non-editable)
I am working on a Sales Order (VA01/VA02) user exit(USEREXIT_SAVE_DOCUMENT_PREPARE) in MV45AFZZ program. I am validating certain values entered by user in this exit. Based on a condition, I issue a error message e.g. "message e001(ZV) with .....". I expect the processing to interrupt and the system control returns to the current screen. When there is an error, error message shows up on the status bar, but the current screen is completely grayed out(non-editable), not able to modify the incorrect entries. I keep hitting ENTER but no change to the grayed screen. Is there anything wrong in the way I issue error message?
I am on ECC6.
Thanks.could you please help me if possible in my senario :-
I am validating a field(serial number while creating delivery) in standard exit ZXQSMU04 and written a code to display an error message. The functionality is working correctly on validation and displaying the error message. But once the error is getting trigger the serial number field is becoming in gray mode i.e non editable.
I tried a lot to overcome this issue but not getting success could anyone help me to make the field editable while triggering the error message.
Please note : Its an exit and not having any message field in export or return table. Also tried with warning and information message.
Thanks in advance.
Regards,
Gautam Kumar -
Display error message in user-exit EXIT_SAPMP56T_002
Hi,
I'm doing a validation in user-exit EXIT_SAPMP56T_002 (include ZXTRVU03), and I want to display a error message. So, I'm using the instructions:
continue_with_update = 'N'.
MESSAGE ID xxx TYPE 'E' NUMBER yyy.
What happens is that in SAP GUI it works fine, but in SAP Portal it gives a lot of java exceptions.
Is there other way to display the error message that it works fine in the portal?
Thanks.
SóniaHi,
I tried with that but it doesn't work.
With the instruction "Message ID..." the portal shows an RFC ERROR SYSTEM FAILURE with all that java exceptions.
With your suggestion it does not retrieve my message, and instead it retrieves a customized message "Trip cannot be saved in this status, check mileage start and end location", that refers to the expense report and does not make any sense when I'm only creating the trip.
Any idea for this?
Thanks.
Sónia
Maybe you are looking for
-
Is it possible to get the update status of a PDF form through automation
Hi All, I'm working on adding the ability to load PDF files in a panel control inside a Tab control. Each new load of a PDF file I add a new tabpage and load the file into the new tabpage. When closing one of the tabs I'd like to see if I could check
-
Problems with Document Connect
I have a problem with Document Connect. I am unable access office live workspace. I have been on the help line with microsoft but they were unable to help. Then I went to an apple store and was informed by one of the sales assistance that Document Co
-
How to schedule an abap report program to run every day, weekend etc..
Hi, I want to schedule an abap report program to run every day, week, fortnight or month and the output to be redirected to the printer. How to achieve this ? thanks
-
Multiple Selection in Search Result List in PCUI
Hi, Our requirement is to allow creation of new records in list view of the PCUI application CRMM_ACCOUNT. I'm using old floor plan CRM 4.0 to meet this requirement. But this is causing a problem. It's not allowing multi select in the search result l
-
Hello, I am trying to generate my WSDL from the source2wsdd ant task. All goes well except the location attribute in the WSDL. I continously get this value - <soap:address location="http://pls.set.the.end.point.address/"> </soap:address> <source2wsdd