MUNDOSAP

Regresar   MUNDOSAP > CONSULTORIA > LO - MM - SD
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 08/05/09, 21:18:21
Avatar de Alfredo Garcia Tello
Alfredo Garcia Tello Alfredo Garcia Tello is offline
Senior Member
 
Fecha de Ingreso: dic 2007
Mensajes: 561
User Exit (Tx)

Una duda,

Sabrá alguno de ustedes como identificar si una Tx STD tiene un user exit en algunos de sus campos..

Necesito revisar si estoy operando dentro de los STD

Saludos...
__________________
Alfredo G. Tello
Consultor SAP/MM & SD
Tel. Of. +52(045) 722 2608 75 76
Responder Con Cita
  #2  
Viejo 09/05/09, 18:25:37
El Fari El Fari is offline
Member
 
Fecha de Ingreso: may 2007
Mensajes: 86
Hola Alfredo.

Existe un programa que lo he visto por allí rodando el cual recibe como entrada una TX (por supuesto SDT) y te devuelve los diversos User Exit que pueden gestionarse con la misma.

En referencia a user exit sobre campos creo que la definición de los exit que actuan sobre campos se llaman Field Exit y es otra cosa, los User son amplicaciones sobre transacciones y los field amplicaciones sobre campos.

Espermos la ayuda de un compañero para que nos preste el código, luego crear un programa con dicho código y listo a usarlo.

Saludos,

Fari.
Responder Con Cita
  #3  
Viejo 11/05/09, 04:32:52
Aldo G Aldo G is offline
Junior Member
 
Fecha de Ingreso: sep 2007
Mensajes: 17
Este código lo tome prestado de donde esta funcionando y puede servir:

TABLES : tstc, tstct, tadir,
modsapt, modact,
trdir, tfdir,
enlfdir.

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE,
field1(30),
v_devclass LIKE tadir-devclass.

SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b00.


START-OF-SELECTION.
AUTHORITY-CHECK OBJECT 'ZBC_PROGRA'
ID 'PROGRAM' FIELD sy-repid.
IF NOT sy-subrc IS INITIAL.
MESSAGE e706.
ENDIF.
PERFORM main_program.

AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

*---------------------------------------------------------------------*
* FORM main_program *
*---------------------------------------------------------------------*
FORM main_program.
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.

IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.

MOVE : tadir-devclass TO v_devclass.

IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir
WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir
WHERE pname = tstc-pgmna.
SELECT SINGLE * FROM enlfdir
WHERE funcname = tfdir-funcname.

SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name EQ enlfdir-area.

MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.

SELECT * FROM tadir INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = v_devclass.

SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.

FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

WRITE: /(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.

IF NOT jtab[] IS INITIAL.
WRITE:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
WRITE:/(95) sy-uline.

LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu
AND name = jtab-obj_name.

FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.

WRITE:/(95) sy-uline.

DESCRIBE TABLE jtab.
SKIP.

FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' ,
sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.

ENDFORM.
Responder Con Cita
  #4  
Viejo 11/05/09, 15:12:52
Avatar de Alfredo Garcia Tello
Alfredo Garcia Tello Alfredo Garcia Tello is offline
Senior Member
 
Fecha de Ingreso: dic 2007
Mensajes: 561
Que tal, de ante mano gracias, saben pegué este código para hacer la prueba en DES y me sale este error...

cómo ven?

Leo que tiene esta parte de código ya parece local,

AUTHORITY-CHECK OBJECT 'ZBC_PROGRA'
ID 'PROGRAM' FIELD sy-repid.
IF NOT sy-subrc IS INITIAL.
MESSAGE e706.
ENDIF.

Al compilar mana este error...

A message ID has not been entered You can specify this entry for the
whole program using the "MESSAGE-ID msgid" addition in the introductory
program statement or in parentheses after the error number. -
__________________
Alfredo G. Tello
Consultor SAP/MM & SD
Tel. Of. +52(045) 722 2608 75 76
Responder Con Cita
  #5  
Viejo 12/05/09, 12:50:11
MJFERNA MJFERNA is offline
Senior Member
 
Fecha de Ingreso: jul 2006
Mensajes: 113
Te adjunto otro código de un programa que nosotros tenemos para buscar exits y badis.

*&---------------------------------------------------------------------*
*& Report ZSEARCH_BADI_USER_EXIT
*&
*&---------------------------------------------------------------------*
*&
*& Wyszukiwanie User exit i Badi na podstawie numeru transakcji
*&
*&---------------------------------------------------------------------*

REPORT zsearch_badi_user_exit.

TABLES : tstc,
tadir,
modsapt,
modact,
trdir,
tfdir,
enlfdir,
sxs_attrt ,
tstct.

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.

PARAMETERS : p_tcode LIKE tstc-tcode,
p_pgmna LIKE tstc-pgmna .




DATA wa_tadir TYPE tadir.

START-OF-SELECTION.

IF NOT p_tcode IS INITIAL.
SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.

ELSEIF NOT p_pgmna IS INITIAL.
tstc-pgmna = p_pgmna.
ENDIF.

IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.

MOVE : tadir-devclass TO v_devclass.

IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir
WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir
WHERE pname = tstc-pgmna.

SELECT SINGLE * FROM enlfdir
WHERE funcname = tfdir-funcname.

SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name EQ enlfdir-area.

MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.

SELECT * FROM tadir INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object IN ('SMOD', 'SXSD')
AND devclass = v_devclass.


SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.

FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.
IF NOT jtab[] IS INITIAL.
WRITE:/(105) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.

* Sorting the internal Table
SORT jtab BY object.
DATA : wf_txt(60) TYPE c,
wf_smod TYPE i ,
wf_badi TYPE i ,
wf_object2(30) TYPE c.
CLEAR : wf_smod, wf_badi , wf_object2.
* Get the total SMOD.




LOOP AT jtab INTO wa_tadir.
AT FIRST.
FORMAT COLOR COL_HEADING INTENSIFIED ON.

WRITE:/1 sy-vline,
2 'Enhancement/ Business Add-in',
41 sy-vline ,
42 'Description',
105 sy-vline.
WRITE:/(105) sy-uline.
ENDAT.
CLEAR wf_txt.
AT NEW object.
IF wa_tadir-object = 'SMOD'.
wf_object2 = 'Enhancement' .
ELSEIF wa_tadir-object = 'SXSD'.
wf_object2 = ' Business Add-in'.

ENDIF.
FORMAT COLOR COL_GROUP INTENSIFIED ON.

WRITE:/1 sy-vline,

2 wf_object2,
105 sy-vline.
ENDAT.

CASE wa_tadir-object.
WHEN 'SMOD'.
wf_smod = wf_smod + 1.
SELECT SINGLE modtext INTO wf_txt
FROM modsapt
WHERE sprsl = sy-langu
AND name = wa_tadir-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

WHEN 'SXSD'.
* For BADis
wf_badi = wf_badi + 1 .
SELECT SINGLE text INTO wf_txt
FROM sxs_attrt
WHERE sprsl = sy-langu
AND exit_name = wa_tadir-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.

ENDCASE.



WRITE:/1 sy-vline,
2 wa_tadir-obj_name HOTSPOT ON,
41 sy-vline ,
42 wf_txt,
105 sy-vline.
AT END OF object.
WRITE : /(105) sy-uline.
ENDAT.


ENDLOOP.

WRITE:/(105) sy-uline.



SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No.of Exits:' , wf_smod.
WRITE:/ 'No.of BADis:' , wf_badi.

ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'No userexits or BADis exist'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'Transaction does not exist'.
ENDIF.

AT LINE-SELECTION.

DATA : wf_object TYPE tadir-object.
CLEAR wf_object.


GET CURSOR FIELD field1.
CHECK field1(8) EQ 'WA_TADIR'.
READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).
MOVE jtab-object TO wf_object.

CASE wf_object.
WHEN 'SMOD'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).

CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
WHEN 'SXSD'.
SET PARAMETER ID 'EXN' FIELD sy-lisel+1(20).
CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
ENDCASE.=
Responder Con Cita
  #6  
Viejo 12/05/09, 22:54:59
Avatar de Alfredo Garcia Tello
Alfredo Garcia Tello Alfredo Garcia Tello is offline
Senior Member
 
Fecha de Ingreso: dic 2007
Mensajes: 561
Gracias amigo...

me fueron de mucha utilidad

Saludos
__________________
Alfredo G. Tello
Consultor SAP/MM & SD
Tel. Of. +52(045) 722 2608 75 76
Responder Con Cita
  #7  
Viejo 12/05/09, 23:00:51
Avatar de Alfredo Garcia Tello
Alfredo Garcia Tello Alfredo Garcia Tello is offline
Senior Member
 
Fecha de Ingreso: dic 2007
Mensajes: 561
Gracias amigo...

me fueron de mucha utilidad

Saludos
__________________
Alfredo G. Tello
Consultor SAP/MM & SD
Tel. Of. +52(045) 722 2608 75 76
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 05:04:19.


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