MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   User exit extrañas (foro/showthread.php?t=26881)

jtristan 16/12/08 12:56:37

User exit extrañas
 
Hola,
estoy depurando la transacción va01 y veo que hay uno include en donde hay un comentario que indica que lo siguiente es una llamada a un userexit, pero la llamada la hace con PERFORM: perform userexit_number_range using da_numki.
Y dentro del form si que hay código Z.
¿Son user exits?. Si lo son, no sé como ver si se ha creado el proyecto de ampliación o no.

Muchas gracias.
Saludos.

andyoscky 16/12/08 13:57:05

Apunte exit badi bte
 
Este es un apunte basico para exits de todo tipo
User Exits,Customer Exits,BAdI and BTE
: user exits, customer exits, badi

Basic Concepts:
1. User Exits: Form/Subroutine,Access keyForm.

2. Customer Exits :
a. FM Exits: 在FM中include Z
b. Menu Exits: 在GUI status+Fcode menu item,Handling FM Exits
c. Screen Exits: 在Screen Subscreen, transport data to subscreen & return / retrieve data from subscreen 的 FM Exits

3. Enhancement & Enhancement Project :
a. Enhancement: Customer ExitsEnhancement, , FM eixts一个enhancemnet, screen menu exits 一个enhancement. Enhancement-code: SMOD
b. Enhancement Project:Enhacement时, 要先建立一个Enhancement Project, Enhancement assignenhancement project去管理, 对应t-code: CMOD.

4. BADI (Business Add-in), 通过面向对象的方式来提供扩展点,它支持Customer Exits所有的enhancement 类型,因目前Class中不能包含subscreen所以在用BADI enhance screen时比用Customer Exits要复杂些.相关机制请参考我以前的blog.

这里要提下的是非Multiple Case的BADI同时只能有一个Active Implementation, 即要Active新生成的需先inactive旧的. 若是Multiple Case的BADI则可同时有多个Active Implementation,且所有的Implementation在没有Filter的情况下都会被遍历执行.

5. Other
User Exits与Customer Exits的区别在于User Exits的使用需要Access Key但Customer Exits不要.
FM exits在关联的Function Group中的命名规则为: EXIT_program name_nnn
Customer exits的调用方式为:
a. FM Exits: CALL CUSTOMER-FUNCTION 'xxx' EXPORTING ... IMPORTING ...
b. Subscreen: Call CUSTOMER-SUBSCREEN INCLUDING



How to find user exits?
Using t-code: SE93 and specify the transaction code. from here goto the main program and click on the FIND button. Specify USEREXIT and select find in main program radio button and click search... if any user exit is used, it will list all the places as in SAP if any user exit is used, a comment is been written above the user exit.



How to find customer exits?

2. Search string “call customer” in the main program source code;
3. SE80 -> Repository Infomation System -> Enhancements -> Customer Exits -> Input search condition -> Execute
4. SE11 -> Database table: MODSAPVIEW -> Display Contents -> Input "*program name*" into Enhancement field -> Execute -> SAP extension name Customer Exits Enhancement Name



How to find BADIs?

2. Search string “type ref to” in the main program source code, then check if there is BAdi used in the program;
3. Set break-point in the method CL_EXITHANDLER=>GET_INSTANCE.
4. SE80 -> Repository Infomation System -> Enhancements -> Business Add-ins



Customer Exits and BADI implementation.
1. Customer Exits: SMOD, CMOD
2. BADI: SE18, SE19.

jtristan 16/12/08 14:17:22

Muchas gracias.
Voy a buscar información de todos esos tipos de exit a ver en cuál me puede cuadrar la que tengo.


Husos Horarios son GMT. La hora en este momento es 22:47:45.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web