Posting GR against IB, user-exit to calcluate exchange rate
Hi guys, this is my requirement.
When we do a goods receipts in VL32N (Click on post goods receipts), this will create a material document, the amounts calculated in the material document (Amount in Local Currency, mseg-DMBTR) are calculated against the posting date of the material document from the table V_TCURR (transaction OB08). We want these amounts to be calculated against another date that we will provide, not the posting date from the material document. The business don't want to change the posting date of the material document.
How can I do that, is there a BAdi, user-exit, enhancement spot/options?
alex
Hi A ,
can u check whether this BADI LE_SHP_GOODSMOVEMENT - can influence price of the Mat.Doc ?
check --> at this point ,whether is already calculated the price of the Doc ? if yes then based on the new logic u can re-calc the Xchange rate.
regards
Prabhu
Similar Messages
-
User exit for calculating exchange rate in MRER,MRKO,MRNB,MIRO
Hi All,
For the transactions MRER,MRKO,MRNB,MIRO I want to change the exchange rate type(tcurv-kurst) which is used to calculate exchange rate .
For example, exchange rate type 'M' is used to calculate the exchange rate but now i want to use the type 'ITAD' to calculate the exchange rate.Could you suggest some user exit or BADI for achieving this.Hi Subasree,
The user exits for respective tcodes are mentioned below,
MRER
Exit Name Description
MRER0001 Automotive Evaluated Receipt Settlement (ERS)
MRKO
Exit Name Description
RMVKON00 Enhancements to report "Settle consignment liabilities"
MM08R001 User exits for ERS
MM08R002 User exit for tolerance checks
MRNB
Exit Name Description
LMR1M001 User exits in Logistics Invoice Verification
LMR1M002 Account grouping for GR/IR account maintenance
LMR1M003 Number assignment in Logistics Invoice Verification
LMR1M004 Logistics Invoice Verification: item text for follow-on docs
LMR1M005 Logistics Inv. Verification: Release Parked Doc. for Posting
LMR1M006 Logistics Invoice Verification: Process XML Invoice
MRMH0001 Logistics Invoice Verification: ERS procedure
MRMH0002 Logistics Invoice Verification: EDI inbound
MRMH0003 Logistics Invoice Verification: Revaluation/RAP
MRMN0001 Message output and creation: Logistics Invoice Verification
MIRO
Exit Name Description
LMR1M001 User exits in Logistics Invoice Verification
LMR1M002 Account grouping for GR/IR account maintenance
LMR1M003 Number assignment in Logistics Invoice Verification
LMR1M004 Logistics Invoice Verification: item text for follow-on docs
LMR1M005 Logistics Inv. Verification: Release Parked Doc. for Posting
LMR1M006 Logistics Invoice Verification: Process XML Invoice
MRMH0001 Logistics Invoice Verification: ERS procedure
MRMH0002 Logistics Invoice Verification: EDI inbound
MRMH0003 Logistics Invoice Verification: Revaluation/RAP
MRMN0001 Message output and creation: Logistics Invoice Verification
Hope you will find the required amongst this,
Regards,
Soundarya. -
User-Exit to modify exchange rate type for Accouting document
Hi,
My requirement is as follows.
I am creating an incoming invoices which in turn creates an accounting document.
The document currency for the accouting document is different from the Company code currency. In such a case, the "Exchange rate type" provided in the customization of the "Accouting doc type" is picked up and the exchange rate is determined for the conversion.
I need some user-exit/badi/bte where I can override default "Exchange rate type" for my accouting document.
Regards,
AbhishekProvide the exchange rate in the BAPI to create the incoming invoice document.
-
User Specified date for Exchange Rate in Goods Receipt
Hi All,
Exchange rate in Goods receipt will be picked up on the Posting date. Our requirement is that the exchange rate should be picked up on user specified date but not the posting date.
Is there any possibility to achieve this functionality either by
1) Customization change
2) User Exits or BAdI's
3) FM to control the exchange rate date while posting the GR?
Any pointers regarding this will be appreciated.
Regards
BaradaHi
Did you find any solution to your problem? We have similar situation. Here is OSS note 619330 not sure if it will work withut material ledder. Let me know if you have found any alternate -
Ceartion of User Defined Field in EXCHANGE RATE AND INDEXES
Hi Experts,
I want to create User Defined Field in EXCHANGE RATE AND INDEXES.But while creating the UDF from User Defined Field-Management unable to find the table for it.Write now My Client are using SAP B1 2007 Ptach-08.Is there any way out to create user defined field in EXCHANGE RATE AND INDEXES.
Plz help me out on this issue.
with regards,
Pankaj K and Kamlesh NPankaj,
When you do the Manage User Fields area to define a UDF, all the possible areas where UDF's can be created in B1 is listed. You would be able to create UDF's only on these.
Suda -
Exit for checking Exchange Rate in ME21N(Only for Import PO)
Hi,
Could you pls tel me User Exit/BADI for transaction ME21N to check the Exch Rate Fixed In Delivery/Invoice tab for Import Document Type.
Thanks in Advance..
NithyHi,
This is the list of exits for ME21N.
AMPL0001 User subscreen for additional data on AMPL
LMEDR001 Enhancements to print program
LMELA002 Adopt batch no. from shipping notification when posting a
LMELA010 Inbound shipping notification: Transfer item data from ID
LMEQR001 User exit for source determination
LMEXF001 Conditions in Purchasing Documents Without Invoice Receip
LWSUS001 Customer-Specific Source Determination in Retail
M06B0001 Role determination for purchase requisition release
M06B0002 Changes to comm. structure for purchase requisition relea
M06B0003 Number range and document number
M06B0004 Number range and document number
M06B0005 Changes to comm. structure for overall release of requisn
M06E0004 Changes to communication structure for release purch. doc
M06E0005 Role determination for release of purchasing documents
ME590001 Grouping of requsitions for PO split in ME59
MEETA001 Define schedule line type (backlog, immed. req., preview)
MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
MELAB001 Gen. forecast delivery schedules: Transfer schedule imple
MEQUERY1 Enhancement to Document Overview ME21N/ME51N
MEVME001 WE default quantity calc. and over/ underdelivery toleran
MM06E001 User exits for EDI inbound and outbound purchasing docume
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 orde
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 processi
MMAL0004 ALE purchasing info record distribution: Inbound processi
MMDA0001 Default delivery addresses
MMFAB001 User exit for generation of release order
MRFLB001 Control Items for Contract Release Order
Regards
Rajesh Kumar -
Stop user to change predefined exchange rate
Dear all,
I want to restrict all the to change exchange rate while I am dealing with foreign customer/vendor.
When I choose a foreign customer in sale order, it shows Doc Rate in editable format, so user
can make change. But I want restriction, what can i do for this?
Thanks & Regards
AnnuHello Annu,
Try this...on Sales order
IF (@object_type = '17' AND (@transaction_type = 'A' Or @transaction_type = 'U'))
BEGIN
Declare @DateRateMaster as Nvarchar(20)
Declare @RateOnDocument as Nvarchar(20)
Set @DateRateMaster = (Select Rate from ORTT where RateDate =(Select DocDate from ORDR where DocEntry = @list_of_cols_val_tab_del And Currency =(Select DocCur from ORDR where DocEntry = @list_of_cols_val_tab_del) ))
Set @RateOnDocument = (Select DocRate from ORDR where DocEntry = @list_of_cols_val_tab_del)
if @DateRateMaster <> @RateOnDocument
Begin
set @error =1
set @error_message = 'You can not Change Rate, Rate is :- ' + @DateRateMaster
End
END
Thanks
Manvendra Singh Niranjan -
Dumb question about E messages generated in user exits called from dialogs
After a user enters goods receipt info in MIGO and hits POST, there is a user exit (EXIT_SAPLIE01_007) which receives a copy of the goods receipt table (xmseg) from MIGO and lets you do whatever you want before the MIGO update task is called. In other words, you're still in the MIGO dialog process.
I have successfully used this exit before to pop an editable ALV that lets the user enter custom data per line item, and then store this data in memory so it can be accessed in MB_DOCUMENT_BADI or in the equivalent XMBC exit (enhancement MB_CF001).
But here's my question.
Suppose I generate an "E" message in EXIT_SAPLIE01_007.
Will this stop the MIGO "POST" so that the update task isn't called?
And will the text of the "E" message be displayed at the bottom of the main MIGO screen (the one you hit "POST" from) ????
Edited by: David Halitsky on Feb 21, 2008 9:03 PM
Edited by: David Halitsky on Feb 21, 2008 9:04 PMHi David,
it seems that you will get it:
E in Status bar
+behaviour: +
PAI processing is terminated, and control returns to the current screen. All of the screen fields for which there is a FIELD or CHAIN statement are ready for input. The user must enter a new value. The system then restarts PAI processing for the screen using the new values. Error messages are not possible in POH or POV processing. Instead, a runtime error occurs.
according to help [http://help.sap.com/saphelp_nw70/helpdata/en/9f/dbaabc35c111d1829f0000e829fbfe/frameset.htm|http://help.sap.com/saphelp_nw70/helpdata/en/9f/dbaabc35c111d1829f0000e829fbfe/frameset.htm]
best regards,
Wojciech -
Hi,
We have a User Exit for SO, MV45AFZB.
We want to insert a condition in it that when we change the plant, new pricing should be carried out..
Please let me know where i should check the condition, in Form USEREXIT_CHECK_VBAP or Form USEREXIT_NEW_PRICING_VBKD... because plant shows in VBAP table and pricing table have another...
what should be code for this...
Regards...Duplicated post?
[Problem in User Exit MV45AFZB - USEREXIT_NEW_PRICING_VBKD;
Regards,
Andrea -
hi all ,
i want to learn user exits , how to use them and what are the uses of user exit ... can any one tell me the best link or documentation to learn user exits from the basics..
it will be great favour and person will be rewarded with points
Thanks and regards
nikesh kumarcheck the foll link,
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
also refer
http://www.sap-img.com/abap/what-is-user-exits.htm
Creating menu exits
http://help.sap.com/saphelp_nw04/helpdata/en/c8/19762743b111d1896f0000e8322d00/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/83/7a18cbde6e11d195460000e82de14a/frameset.htm
For screen exits.
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
chech these links for user exists its usefull
http://www.allsaplinks.com/user_exit.html
http://help.sap.com/saphelp_47x200/helpdata/en/dd/561602545a11d1a7020000e829fd11/frameset.htm
http://www.sap-basis-abap.com/sapab013.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
refer
just refer to the link below for step by step procedure with screen shots
http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
Check this link:
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975e643b111d1896f0000e8322d00/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/52/670ba2439b11d1896f0000e8322d00/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2d40358411d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/10/e7dbde82ba11d295a40000e8353423/content.htm
http://fuller.mit.edu/tech/dialog_programming.html
http://sap.mis.cmich.edu/sap-abap/abap09/index.htm
http://sap.mis.cmich.edu/sap-abap/abap09/sld011.htm
Also, refer this:
Overview
R/3 provides three "customization spots" that allow you to enhance FI/CO features without modifying the standard code. Although often collectively referred to as "user exits," two of the three have different names. SAP Enhancements are used to expand the standard functionality within SAP. Enhancements use function modules and are called from the standard SAP code. Each module in the system has a set of delivered enhancements that help companies expand the standard functionality where they need it. Enhancements were new in release 3.0.
The Open FI Interfaces or Business Transaction Events are also used to expand the standard functionality within SAP. These events are defined in the IMG. Business Transaction Events were new in release 4.0. They are not available for all modules and are not called on all integrated transactions into FI as of release 4.5B. This will change with each release and should be retested.
The older User Exits in FI/CO are "Z" programs that are defined in table T80D for client-dependent user exits, and in table T80I for client-independent user exits. These are also used to expand the standard functionality within the FI/CO modules. These User Exits have been available since the early releases of SAP. All of these FI/CO User Exits are listed in this document in the Configuring User Exits (Older). The list is included because these User Exits are not a part of the Enhancements or Business Transaction Events and do not have an Info System for searching.
Benefits Standard SAP functionality can be enhanced without modification to the standard code.
Upgrades do not erase the functionality and it does not have to be re-transported or re-entered into the system. The enhancements should be thoroughly tested when upgrading to ensure the system will still work as implemented.
Configuring SAP Enhancements
Basic Steps in Configuring an Enhancement
Find the appropriate Enhancement.
Enter the ABAP code in the "Z" program within the function module.
Create a project.
Add the Enhancement to the project.
Activate the project.
Example Business Scenario for Enhancements
Company A has a requirement to validate all customer master records created with a U.S. address. The U.S. entity reports on the industry field on the customer master. This is only a U.S. requirement and should not be required for the other countries, so the field status would not work. To accomplish this requirement, Company A will need to set up an Enhancement for the customer master transaction. The necessary steps are detailed below with screenprints. This example was configured in a 4.6C system.
Detailed Steps
1. Tools ABAP Workbench Utilities Enhancements Definition Utilities List Enhancements
2. Do not execute this without any parameters! There are too many Enhancements and it will probably time out. Youre searching for a customer master exit. Enter mast in the short text (see Figure 1). Youll start there. Searching for an exit can be tricky, so make sure you try several things before giving up.
3. Execute the search.
Start Your Search for a Master Exit Here
4. Look through the list until you find the Enhancement for User exits: Customer Master Data.
5. Double-click on the enhancement SAPMF02D. This will take you to the details of the Enhancement and list the function modules included in the Enhancement.
6. To continue, double-click on the function module EXIT_SAPMF02D_001
7. This will take you to the source code for the function module. Click on the Import tab to review the tables/fields that are available for the Enhancement
The Tables That Are Available for the Enhancement
8. To view the tables/fields that can be changed in the function module, click on the Export and Changing tabs. For this function module, these tabs are empty because you can only validate data. You cannot change any fields in this enhancement.
9. Return to the Source Code tab.
10. Scroll down until you see the Include statement in the program. The "Z" program listed after the Include is where your code will be written
Your Program Will Begin After the Include Statement
11. Double-click on the Include. You will be prompted to create the include. Click on Yes to create.
12. At this point you will be prompted to enter a development class and to create a transport request. If you do not know which development class to use, please contact your technical team.
13. Enter the following ABAP code into the program
User exit to ensure that all US customers have a group key
entered on the customer master.
if i_kna1-land1 = 'US' and
i_kna1-brsch = ' '.
message e001(F2).
endif.
The ABAP Code You Need to Enter
14. Note that the table name matches the table name in the import tab tables.
15. In this example you are using the standard message class F2 with message number 001. Normally, you will create your own message within your own message class. All customer message classes must begin with a "Z" and are created in transaction SE91.
16. Save the program.
17. The next step is to create the project. Go to transaction code CMOD or follow menu path: Tools ABAP Workbench Utilities Enhancements Project Management.
18. Enter the project name; begin the name with a "Z."
19. Click on the Create button.
Click on Create After You Type in the Project Name
20. Enter in a description for the project.
21. Click on the Enhancement Assignments button.
22. You will be prompted to save the enhancement. Click on Yes.
23. At this point you will be asked for a development class and to create a transport for the project. You may use the same one created when adding the ABAP code to the function module.
24. Enter the name of the enhancement SAPMF02D (see Figure 6).
Enter the Name of the Enhancement Here
25. Save the project.
26. Back out of the enhancement assignment.
27. Activate the project by hitting the Activate button.
The SAP Enhancement is ready to be tested! Try creating a customer with U.S. as the country and a blank group key. Be sure to test one with a group key to make sure the message is not displayed in error as well.
Configuring Business Transaction Events
Basic Steps in Configuring an Event
Make sure the application is active for Business Transaction Events.
Copy the sample interface function module into a "Z" function module.
Enter the ABAP code into the source code section of the new "Z" function module. You may choose to create a "Z" program to enter the code into and then insert the "Z" program into your function module source code.
Activate the function module.
Assign the function module to the event, country and application.
Example Business Scenario for Business Transaction Events
Company A would like to copy the group key field from the vendor master into the allocation field on all the line items within a vendor invoice and payments, including the vendor lines. This requirement assumes only one vendor is posted to in a document.
To accomplish this requirement, Company A will use the Business Transaction Event 1130, Post Document: SAP Internal Field Substitution.
1. IMG Menu Path: Financial Accounting Financial Accounting Global Settings Use Business Transaction Events Environment Infosystem (Processes).
2. Find the correct Business Event. You are updating a field, so you select the Processes Info System instead of the Publish and Subscribe Info System.
3. Execute the search with the defaults.
4. Find the correct interface for updating a document: Post Document: SAP- Internal Field Substitution
Find the Correct Interface for the Business Event
5. Put your cursor on the event and click on the Sample Function Module button.
6. You are now in transaction SE37 Function Builder. This is the function module (sample_process_00001130) you will need to copy into a "Z" name function module for your coding
Figure 8. This Is the Function Module You Need to Copy Your "Z" Name Function Module
7. Click on the Copy button.
8. Enter the "Z" function module name in the To Function Module field
9. Enter a Function Group. If you need to create a "Z" function group, go to transaction code SE37 and follow menu path: Go to Function Groups Create Group. A function group is a logical grouping of function modules, and the ABAP code is generated for function groups. You will be prompted for a development class and transport when creating the function group.
Enter Your "Z" Function Module Name Here
10. In Function Builder (transaction SE37), enter the new "Z" function module. Click on the Change button.
11. The system will default into the source code screen where you may enter your ABAP code.
12. Notice the tables available for the code. Additional tables may be declared if necessary.
13. Enter the following source code
tables: lfa1.
data: z_groupkey like lfa1-konzs.
z_groupkey = ' '.
loop at t_bseg.
check for vendor lines. If one is found, read the vendor master and
retrieve the group key field.
if t_bseg-koart eq 'K'.
select single konzs from lfa1 into z_groupkey
where lifnr = t_bseg-lifnr.
endif.
Move the group key field into all line items allocation field.
loop at t_bsegsub.
t_bsegsub-zuonr = z_groupkey.
modify t_bsegsub index sy-tabix.
endloop. "t_bsegsub
endloop. "t_bseg
The Screen Where You Enter Your Source Code
14. Save the function module.
15. Back out to the main Function Builder screen by clicking on the green arrow button.
16. Activate the function module by clicking on the Activate button
. Activate the Function Module from This Screen
17. Assign the function module to the event in the IMG: Financial Accounting Financial Accounting Global Settings Business Transaction Events Settings Process Function Modules of an SAP Appl.
18. Hit enter past the warning messages that this is SAP data.
19. Click on the New Entries button.
20. Enter the process for your interface. In your example it is 00001130.
21. Enter the country the interface is valid for. If it is valid for all countries, leave this field blank.
22. Enter the application the interface should be called for. If it should be called for all applications, leave this field blank. Please note that not all integrated transactions are programmed to go through these interfaces! You will need to test to find out!
23. Enter the new "Z" function module
Enter Your New "Z" Function Module Here
24. Save the settings. At this point you will be prompted for a CTS number for the configuration change.
25. The Business Transaction Event is complete! You are ready for testing.
Configuring User Exits (Older)
Basic Steps in Configuring an User Exit
Create a "Z" program for the User Exits and enter the necessary ABAP code.
Enter the new program name into table T80D.
Configure the application to call the User Exit.
List of User Exits
Variable Field Movements
Substitutions in FI, CO, PCA
Validations in FI, CO, PCA
Rollups in SPL
Fixed Field Movements in SPL
Cost Center Summarization on Detail Screen
Sets Formula Variables
Example Business Scenario for User Exits
Company A would like to add a "Z" field in the Special Purpose Ledger to capture a Business Unit field for reporting. They have used all the standard SAP fields such as Business Area and Profit Center. The field will only be used for reporting and is only needed in the Special Purpose Ledger. You created a special ledger table (ZZSPL1) with field Z_BUNIT and need to populate this field based on a combination of G/L account, fund and functional area.
To accomplish this requirement, Company A will use the Variable Field Movement User Exit. To make maintenance easier, table ZZBUSUNIT was created with the G/L account, fund and functional area fields as key fields, and the business unit field as a non-key field. You generated the table maintenance so the table could be updated using transaction SM30. SAP users update the business unit determination rules in table ZZBUSUNIT by entering the G/L account, fund and functional area, and then the business unit that combination should be posting to. The User Exit will read table ZZBUSUNIT using the G/L account, fund and functional area from the posting transaction and determine the business unit. The steps for using the user exit are detailed below. This example was created on a 4.6C system.
1. Copy the delivered template User Exit program RGIVU000_TEMPLATE into a "Z" program. Follow menu path Tools ABAP Workbench Development ABAP Editor (transaction code SE38). In early releases, the delivered program was RGIVU000.
2. You will be prompted for a development class and a transport. Please check with the technical team for the correct development class.
3. At the initial ABAP Editor screen, enter your new "Z" program name, select the Source Code button and click on Change
To Enter Your New Code, Select Source Code and Click on the Change Button
4. Enter the following code in the User Exit (Figure 14):
FORM E01_MVC USING FROM_FIELD TO_FIELD.
to_field = 'CORP'. "Set a default business unit.
read table zzbusunit to determine the business unit field.
select single z_bunit from zzbusunit into to_field
where hkont = accit_glx-hkont and
geber = accit_glx-geber and
fkber = accit_glx-fkber.
ENDFORM.
Figure 14. Enter Your New Code at This Screen.
5. Activate the program by clicking on the Activate button.
6. Change the configuration in the User Exit table to point to your new "Z" program.
7. Follow the IMG menu path: Financial Accounting Special Purpose Ledger Basic Settings User Exits Maintain Client Specific User Exits.
8. The entry to maintain is application area GIMV: Variable Field Movement. Enter your "Z" program
Enter Your "Z" Program in the Application Area GIMV: Variable Field Movement
9. Save the changes.
10. The final configuration step is to assign the User Exit in the variable field movement for your special ledger table. In the IMG: Financial Accounting  Special Purpose Ledger  Basic Settings  Master Data  Maintain Field Movements. Field movements control how the fields in a special ledger table are populated. They can be populated straight from other fields in a posting or through User Exits.
After You Assign the Business Unit Field and the G/L Account, the Exit Field Should Contain U01.
11. Assign the business unit field as a receiver and the G/L account as the sender. The Exit field should contain U01 (see Figure 16).
12. The User Exit number U01 calls User Exit E01_MVC form in the "Z" program.
13. Save the field movement.
14. You are ready to test your User Exit!
Reward points if useful. -
hi
i want to know conceptually what are User Exits and varients , what is the purpose of using these .
iAftr learing that i want to a practical example on both topics then , if any one have some good material on these plz send me on [email protected]
thanxHi
User Exits in FI/CO
R/3 provides three "customization spots" that allow you to enhance FI/CO features without modifying the standard code. Although often collectively referred to as "user exits," two of the three have different names. SAP Enhancements are used to expand the standard functionality within SAP. Enhancements use function modules and are called from the standard SAP code. Each module in the system has a set of delivered enhancements that help companies expand the standard functionality where they need it. Enhancements were new in release 3.0.
The Open FI Interfaces or Business Transaction Events are also used to expand the standard functionality within SAP. These events are defined in the IMG. Business Transaction Events were new in release 4.0. They are not available for all modules and are not called on all integrated transactions into FI as of release 4.5B. This will change with each release and should be retested.
The older User Exits in FI/CO are "Z" programs that are defined in table T80D for client-dependent user exits, and in table T80I for client-independent user exits. These are also used to expand the standard functionality within the FI/CO modules. These User Exits have been available since the early releases of SAP. All of these FI/CO User Exits are listed in this document in the Configuring User Exits (Older). The list is included because these User Exits are not a part of the Enhancements or Business Transaction Events and do not have an Info System for searching.
Benefits
Standard SAP functionality can be enhanced without modification to the standard code.
Upgrades do not erase the functionality and it does not have to be re-transported or re-entered into the system. The enhancements should be thoroughly tested when upgrading to ensure the system will still work as implemented.
Configuring SAP Enhancements
Basic Steps in Configuring an Enhancement
Find the appropriate Enhancement.
Enter the ABAP code in the "Z" program within the function module.
Create a project.
Add the Enhancement to the project.
Activate the project.
Example Business Scenario for Enhancements
Company A has a requirement to validate all customer master records created with a U.S. address. The U.S. entity reports on the industry field on the customer master. This is only a U.S. requirement and should not be required for the other countries, so the field status would not work. To accomplish this requirement, Company A will need to set up an Enhancement for the customer master transaction. The necessary steps are detailed below with screenprints. This example was configured in a 4.6C system.
Detailed Steps
1. Tools ABAP Workbench Utilities Enhancements Definition Utilities List Enhancements
2. Do not execute this without any parameters! There are too many Enhancements and it will probably time out. Youre searching for a customer master exit. Enter mast in the short text (see Figure 1). Youll start there. Searching for an exit can be tricky, so make sure you try several things before giving up.
3. Execute the search.
Figure 1. Start Your Search for a Master Exit Here
4. Look through the list until you find the Enhancement for User exits: Customer Master Data.
5. Double-click on the enhancement SAPMF02D. This will take you to the details of the Enhancement and list the function modules included in the Enhancement.
6. To continue, double-click on the function module EXIT_SAPMF02D_001
7. This will take you to the source code for the function module. Click on the Import tab to review the tables/fields that are available for the Enhancement (see Figure 2).
Figure 2. The Tables That Are Available for the Enhancement
8. To view the tables/fields that can be changed in the function module, click on the Export and Changing tabs. For this function module, these tabs are empty because you can only validate data. You cannot change any fields in this enhancement.
9. Return to the Source Code tab.
10. Scroll down until you see the Include statement in the program. The "Z" program listed after the Include is where your code will be written (see Figure 3).
Figure 3. Your Program Will Begin After the Include Statement
11. Double-click on the Include. You will be prompted to create the include. Click on Yes to create.
12. At this point you will be prompted to enter a development class and to create a transport request. If you do not know which development class to use, please contact your technical team.
13. Enter the following ABAP code into the program (Figure 4):
User exit to ensure that all US customers have a group key
entered on the customer master.
if i_kna1-land1 = 'US' and
i_kna1-brsch = ' '.
message e001(F2).
endif.
Figure 4. The ABAP Code You Need to Enter
14. Note that the table name matches the table name in the import tab tables.
15. In this example you are using the standard message class F2 with message number 001. Normally, you will create your own message within your own message class. All customer message classes must begin with a "Z" and are created in transaction SE91.
16. Save the program.
17. The next step is to create the project. Go to transaction code CMOD or follow menu path: Tools ABAP Workbench Utilities Enhancements Project Management.
18. Enter the project name; begin the name with a "Z."
19. Click on the Create button.
Figure 5. Click on Create After You Type in the Project Name
20. Enter in a description for the project.
21. Click on the Enhancement Assignments button.
22. You will be prompted to save the enhancement. Click on Yes.
23. At this point you will be asked for a development class and to create a transport for the project. You may use the same one created when adding the ABAP code to the function module.
24. Enter the name of the enhancement SAPMF02D (see Figure 6).
Figure 6. Enter the Name of the Enhancement Here
25. Save the project.
26. Back out of the enhancement assignment.
27. Activate the project by hitting the Activate button.
The SAP Enhancement is ready to be tested! Try creating a customer with U.S. as the country and a blank group key. Be sure to test one with a group key to make sure the message is not displayed in error as well.
Configuring Business Transaction Events
Basic Steps in Configuring an Event
Make sure the application is active for Business Transaction Events.
Copy the sample interface function module into a "Z" function module.
Enter the ABAP code into the source code section of the new "Z" function module. You may choose to create a "Z" program to enter the code into and then insert the "Z" program into your function module source code.
Activate the function module.
Assign the function module to the event, country and application.
Example Business Scenario for Business Transaction Events
Company A would like to copy the group key field from the vendor master into the allocation field on all the line items within a vendor invoice and payments, including the vendor lines. This requirement assumes only one vendor is posted to in a document.
To accomplish this requirement, Company A will use the Business Transaction Event 1130, Post Document: SAP Internal Field Substitution.
1. IMG Menu Path: Financial Accounting Financial Accounting Global Settings Use Business Transaction Events Environment Infosystem (Processes).
2. Find the correct Business Event. You are updating a field, so you select the Processes Info System instead of the Publish and Subscribe Info System.
3. Execute the search with the defaults.
4. Find the correct interface for updating a document: Post Document: SAP- Internal Field Substitution (see Figure 7).
Figure 7. Find the Correct Interface for the Business Event
5. Put your cursor on the event and click on the Sample Function Module button.
6. You are now in transaction SE37 Function Builder. This is the function module (sample_process_00001130) you will need to copy into a "Z" name function module for your coding (see Figure 8).
Figure 8. This Is the Function Module You Need to Copy Your "Z" Name Function Module
7. Click on the Copy button.
8. Enter the "Z" function module name in the To Function Module field (see Figure 9).
9. Enter a Function Group. If you need to create a "Z" function group, go to transaction code SE37 and follow menu path: Go to Function Groups Create Group. A function group is a logical grouping of function modules, and the ABAP code is generated for function groups. You will be prompted for a development class and transport when creating the function group.
Figure 9. Enter Your "Z" Function Module Name Here
10. In Function Builder (transaction SE37), enter the new "Z" function module. Click on the Change button.
11. The system will default into the source code screen where you may enter your ABAP code.
12. Notice the tables available for the code. Additional tables may be declared if necessary.
13. Enter the following source code (see Figure 10):
tables: lfa1.
data: z_groupkey like lfa1-konzs.
z_groupkey = ' '.
loop at t_bseg.
check for vendor lines. If one is found, read the vendor master and
retrieve the group key field.
if t_bseg-koart eq 'K'.
select single konzs from lfa1 into z_groupkey
where lifnr = t_bseg-lifnr.
endif.
Move the group key field into all line items allocation field.
loop at t_bsegsub.
t_bsegsub-zuonr = z_groupkey.
modify t_bsegsub index sy-tabix.
endloop. "t_bsegsub
endloop. "t_bseg
Figure 10. The Screen Where You Enter Your Source Code
14. Save the function module.
15. Back out to the main Function Builder screen by clicking on the green arrow button.
16. Activate the function module by clicking on the Activate button (see Figure 11).
Figure 11. Activate the Function Module from This Screen
17. Assign the function module to the event in the IMG: Financial Accounting Financial Accounting Global Settings Business Transaction Events Settings Process Function Modules of an SAP Appl.
18. Hit enter past the warning messages that this is SAP data.
19. Click on the New Entries button.
20. Enter the process for your interface. In your example it is 00001130.
21. Enter the country the interface is valid for. If it is valid for all countries, leave this field blank.
22. Enter the application the interface should be called for. If it should be called for all applications, leave this field blank. Please note that not all integrated transactions are programmed to go through these interfaces! You will need to test to find out!
23. Enter the new "Z" function module (see Figure 12).
Figure 12. Enter Your New "Z" Function Module Here
24. Save the settings. At this point you will be prompted for a CTS number for the configuration change.
25. The Business Transaction Event is complete! You are ready for testing.
Configuring User Exits (Older)
Basic Steps in Configuring an User Exit
Create a "Z" program for the User Exits and enter the necessary ABAP code.
Enter the new program name into table T80D.
Configure the application to call the User Exit.
List of User Exits
Variable Field Movements
Substitutions in FI, CO, PCA
Validations in FI, CO, PCA
Rollups in SPL
Fixed Field Movements in SPL
Cost Center Summarization on Detail Screen
Sets Formula Variables
Example Business Scenario for User Exits
Company A would like to add a "Z" field in the Special Purpose Ledger to capture a Business Unit field for reporting. They have used all the standard SAP fields such as Business Area and Profit Center. The field will only be used for reporting and is only needed in the Special Purpose Ledger. You created a special ledger table (ZZSPL1) with field Z_BUNIT and need to populate this field based on a combination of G/L account, fund and functional area.
To accomplish this requirement, Company A will use the Variable Field Movement User Exit. To make maintenance easier, table ZZBUSUNIT was created with the G/L account, fund and functional area fields as key fields, and the business unit field as a non-key field. You generated the table maintenance so the table could be updated using transaction SM30. SAP users update the business unit determination rules in table ZZBUSUNIT by entering the G/L account, fund and functional area, and then the business unit that combination should be posting to. The User Exit will read table ZZBUSUNIT using the G/L account, fund and functional area from the posting transaction and determine the business unit. The steps for using the user exit are detailed below. This example was created on a 4.6C system.
1. Copy the delivered template User Exit program RGIVU000_TEMPLATE into a "Z" program. Follow menu path Tools ABAP Workbench Development ABAP Editor (transaction code SE38). In early releases, the delivered program was RGIVU000.
2. You will be prompted for a development class and a transport. Please check with the technical team for the correct development class.
3. At the initial ABAP Editor screen, enter your new "Z" program name, select the Source Code button and click on Change (see Figure 13).
Figure 13. To Enter Your New Code, Select Source Code and Click on the Change Button
4. Enter the following code in the User Exit (Figure 14):
FORM E01_MVC USING FROM_FIELD TO_FIELD.
to_field = 'CORP'. "Set a default business unit.
read table zzbusunit to determine the business unit field.
select single z_bunit from zzbusunit into to_field
where hkont = accit_glx-hkont and
geber = accit_glx-geber and
fkber = accit_glx-fkber.
ENDFORM.
Figure 14. Enter Your New Code at This Screen.
5. Activate the program by clicking on the Activate button.
6. Change the configuration in the User Exit table to point to your new "Z" program.
7. Follow the IMG menu path: Financial Accounting Special Purpose Ledger Basic Settings User Exits Maintain Client Specific User Exits.
8. The entry to maintain is application area GIMV: Variable Field Movement. Enter your "Z" program (see Figure 15).
Figure 15. Enter Your "Z" Program in the Application Area GIMV: Variable Field Movement
9. Save the changes.
10. The final configuration step is to assign the User Exit in the variable field movement for your special ledger table. In the IMG: Financial Accounting  Special Purpose Ledger  Basic Settings  Master Data  Maintain Field Movements. Field movements control how the fields in a special ledger table are populated. They can be populated straight from other fields in a posting or through User Exits.
Figure 16. After You Assign the Business Unit Field and the G/L Account, the Exit Field Should Contain U01.
11. Assign the business unit field as a receiver and the G/L account as the sender. The Exit field should contain U01 (see Figure 16).
12. The User Exit number U01 calls User Exit E01_MVC form in the "Z" program.
13. Save the field movement.
14. You are ready to test your User Exit! -
User exit / badi for txn: FBCJ
Hi experts,
After posting FBCJ entry we are passing one more entry with FB01,
My requirement is to automate the entry from FBCJ.
Can we pass FB01 entry as soon as we post FBCJ by using user exit / badi.
I tried the badi "CJ_DOCUMENT" but it fails even after activating it.
Thanks
Ganesh
Edited by: Ganesh Modhave on Sep 4, 2008 9:06 AMhello,
just check out the BADI CJ_DOCUMENT for tcode FBCJ if this suits ur requirement.
Regards,
Sagar. -
User-exit to Update stock category in MB1B
I need to cross-check & then change the value of the stock category(MSEG-J_4KSCA) if needed, before doing the posting in MB1B.
User-exits/BADIs that i have tried do not allow to change this value in the material document before posting. The material document created in MB03 still retains the original value.
User-exits:
MBCF0002
MBCF0005
MBCF0006
MBCF0007
MBCF0009
MBCF0010
MBCF0011
MB_CF001
BADIs:
MB_DOCUMENT_BADI_SAP
MB_DOCUMENT_BADI
MB_DOCUMENT_UPDATE etc...
Can anyone please advise?I need to cross-check & then change the value of the stock category(MSEG-J_4KSCA) if needed, before doing the posting in MB1B.
User-exits/BADIs that i have tried do not allow to change this value in the material document before posting. The material document created in MB03 still retains the original value.
User-exits:
MBCF0002
MBCF0005
MBCF0006
MBCF0007
MBCF0009
MBCF0010
MBCF0011
MB_CF001
BADIs:
MB_DOCUMENT_BADI_SAP
MB_DOCUMENT_BADI
MB_DOCUMENT_UPDATE etc...
Can anyone please advise? -
Hi Abapers,
inthe MD01 window (Transaction Code),
<b>User exit select materials for planning</b> selection part,
I want to find out where saved user exit keys and where the user exit parameters against the user exit key.Hi Nelson,
Please check this user exits.
EXIT_SAPMM61X_001: MRP run normal (enhancementM61X0001)
EXIT_SAPLM61C_001: MRP run parallel (enhancement M61X0001)
Hope this will help.
Regards,
Ferry Lianto
Please reward points if helpful. -
Exchange rate gain /loss is not posted in the contract
Hi Sap People,
Exchange rate gain /loss is not posted in the contract(cashflows). This is w.r.t SAP Banking Module.
The open items are posted with a certain exchange rate in the contract at the time of disburesment,while clearing thru FF68(incoming payment) with a new exchange rate the items
are cleared with the same exchange rate and the Exchange gain/loss is posted as zero.
Regards
RaviHi,
Check the exchange rate type for the disbursement. It is M for FF68. Check in configuration the exchange rate type. Also check the exchange rates maintained in OB08 for this exchange rate type and confirm if there is any difference.
Is it Loans module?
Regards,
Ravishankar
Maybe you are looking for
-
Hi, when i open a report in unix by using rwbld60 , it is saying that you are using older version of report builder you might have lose the functionality, if i still click on continue the report is automatically closing off. so what is solution to ge
-
I bought special items for app "Talking Ben for iPad" and after update I have no more
How can I retrieve it?
-
Making a Quicktime movie a link
I have exported a Keynote presentation as a Quicktime movie to my webpage I have created in iWeb. Does anyone know how to make the Quicktime movie a link to another page? Thanks.
-
I forgot my ipad on charge after 100%,is this bad for ipad battery?
I forgot my ipad on charge after 100%,is this bad for ipad battery?
-
At the OVM console the login fails
Hi, I have created a virtual machine using paravirtualized Oracle Enterprise Linux 4. When I open the console and enter the login and password for the Virtual machine system username it fails to log in. It says log in incorrect. What can be the cause