|
|

楼主 |
发表于 2008/12/21 20:35:01
|
显示全部楼层
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! |
|