MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
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 05/03/09, 00:37:45
acha3318 acha3318 is offline
Senior Member
 
Fecha de Ingreso: abr 2008
Localización: Cali - Colombia
Mensajes: 182
USER_EXIT Transacciones ME21N - ME22N

Saludos a todos,

Esta vez necesito una user_exit que tenga efecto sobre las transacciones ME21N y ME22N, precisamente al momento de guardar.

He cacharreado con la BADI ME_PROCESS_PO_CUST, al cual le coloqué un BREAK POINT en la interfaz IF_EX_ME_PROCESS_PO_CUST~POST. y no para al momento de guardar.

La idea es leer la tabla EKKO para hacer unas validaciones sobre los campos FRGKE y FRGZU. Luego tomar sus valores para informar que el pedido está pendiente de liberar, o en su defecto informar que ha sido liberado.

Espero me ayuden con esto. Gracias.
Responder Con Cita
  #2  
Viejo 05/03/09, 01:13:57
Pletorico Pletorico is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 10
UserExits

Hola acha3318. Como te va?

Pues mira, no sé si ya probaste esto pero, hay un programa que circula en la red
que te sirve para detectar todas las user exit de una transacción.
Te puedo decir que solo una vez supe de un caso en el que al amigo de un primo de un conocido (como luego se dice xD) no encontró un user exit adecuado para una transacción con ese programa y un funcional experto encontro uno que era el adecuado pero que no salia en el reporte.
Fuera de eso, te aseguro que a mi siempre me ha dado excelentes resultados.
Tan sencillo como que precisamente hace una semana, implemente un userexit que encontré por medio de este porgramita para la FB60 y otro para la MIRO.
Te agrego el código por aqui mismo, solo le haces copy/paste y espero que no pierda el formato en la maroma. En todo caso si lo necesitas y me lo pides te mando el archivo por correo:

Saludos y espero que te sirva.

REPORT ZBUSCA_USER_EXIT .
*
* Finding the user-exits of a SAP transaction code
*
* Enter the transaction code in which you are looking for the user-exit
* and it will list you the list of user-exits in the transaction code.
* Also a drill down is possible which will help you to branch to SMOD.
*
* Written by : SAP Basis, ABAP Programming and Other IMG Stuff
*
*

*report zuserexit no standard page heading.
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : 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 obligatory.

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.

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.

*---End of Program=
Responder Con Cita
  #3  
Viejo 05/03/09, 12:08:55
acha3318 acha3318 is offline
Senior Member
 
Fecha de Ingreso: abr 2008
Localización: Cali - Colombia
Mensajes: 182
Gracias Pletorico, yo tengo implementado el programa lo que pasa es que la ME21N y ME22N tiene muchos user_exit y no estoy seguro cual usar al momento preciso de guardar.

Lo que pasa es que debo hacer lo que ya implementé para las SOLPED, y es el envio de correo (outlook) avisandole al liberador que debe liberar la solped, y esto lo hice por medio de una USER_EXIT de las solped, lo mismo hice cuando el liberador libera, enviá un correo (outlook) al solicitante avisando que ya fue liberada la solped. Y funciona perfecto.

Debo encontrar la USER adecuada en los PEDIDOS, para enviar un correo (outlook) al liberador del pedido avisando que debe liberar tal pedido, y de regreso al comprador avisando que el pedido fué liberado.

En esas ando si alguien me puede dar un empujoncito al menos diciendome cual user, y en ese caso me pongo a poner BREAK para determinar en que evento disparo el correo.

Espero sus comentarios.

Gracias.... ACHA
Responder Con Cita
  #4  
Viejo 05/03/09, 16:47:08
Pletorico Pletorico is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 10
UserExits

Hola acha3318.

Mira, yo lo que hago cuando estoy en esas, es implementar todos los user exit
y ponerles break a cada uno, cuando tengo detectado el user que se detiene
en la parte que me interesa, me lo quedo y los demás los borro.

Sé que esto te puede resultar bastante molesto y "talachero", porque de hecho lo es, pero pues algunas veces no nos queda de otra que entrarle a la prueba y error.

Me avisas si lograste detectar el user exit que necesitas.

Saludos y pues, te deseo suerte.
Responder Con Cita
  #5  
Viejo 06/03/09, 15:43:18
Truco Truco is offline
Junior Member
 
Fecha de Ingreso: feb 2009
Mensajes: 12
Hola... otra vez yo molestando....

necesito que al momento que se crea una orden de compra en la transaccion me21n necesito que un user exit evalúe si el rut del acreedor existe como "contratado", es decir si es trabajador de al empresa, de ser asi, no deberia dejar emitir la orden de compra.

encontré el user exit EXIT_SAPMM06E_006

pero como saben soy muuuy principiante, entonces, alguien me podria explicar donde debo crear el código para la evaluación??

es posible comprar un campo de mm con uno de hr???, como?... tendré ke hacer un select a la tabla del infotipo 1???

por fa ayuda... otra vez.
Responder Con Cita
  #6  
Viejo 06/03/09, 17:42:48
Pletorico Pletorico is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 10
UserExits

Hola, que tal.
Mira, de hecho yo también creo que para validad si alguien esta contratado por la empresa, habría que ir a los infotipos. Me parece, si mal no recuerdo, que los datos básicos del empleado están en una de dos: hrp1000 o PA0001.
Pero no estoy seguro, necesitarás revisarlo directamente en las tablas.
Ahora bien, la otra cuestión es que el número que tengas en memoria al momento de pasar por el userexit, sea el mismo con el que está registrado en las tablas de rh, no sé si tengas que buscar alguna equivalencia, pero te voy
a dar una recomendación. Si no estás seguro de ese dato, mejor investigalo con el funcional, porque si tú tomas esa decisión y resulta estar equivocada,
vas a tener que cargar al muerto.
Pero basicamente sí es como tú te lo estas imaginando, según me parece.
Tienes que validarlo contra rh para saber si esta dentro del organigrama de la empresa.
Espero haberte ayudado aunque sea un poco.
Ahí me platicas después como te fue.
Suerte y Saludos.
Responder Con Cita
  #7  
Viejo 09/03/09, 10:18:32
vickxo vickxo is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Madrid, España
Mensajes: 118
user exit

Bueno, inetntando ayudar a acha3318 yo lo que hago para saber que exit activar es entrar a la transaccion, y poner los datos que necesite para el proceso a evaluar y para tu caso justo antes de darle al boton guardar en el campo de comandos escribo /h para empezar el debuggin, le doy ahora si al boton guardar y empezare en el modo debuggin pero en lugar de dar F6,F8 u F5 lo que hago es irme al menu BREAKPOINTS -> BREAKPOINT AT-> BRAKPOINT AT STATEMENT y en ABAP Cmsnd pongo CALL CUSTOMER-FUNCTION y con eso me pondra un break point en todas las llamadas que haga a las user exits que esten en el evento de guardar y con eso te ahorrar activar "TODAS" las user exit por solo aquellas que te interesan e incluso ahi puedes ir viendo que datos son los que manda para irte moviendo ahora si le das F8 para que pare en el siguiente breakpint, espero te ayude
__________________
el tema esta en hacer la pregunta correcta...
Responder Con Cita
  #8  
Viejo 31/03/09, 15:24:44
blankiverde blankiverde is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 21
Yo necesito una badi o exit con la que poder acceder, además de a los datos de EKPO y EKKO, a los de ESLL. Ya sea al momento de validar un campo, o de grabar el documento.

A ver si alguien ha estado en alguna tesitura parecida y sabe de alguna.

Gracias.
Responder Con Cita
  #9  
Viejo 02/06/09, 21:45:49
braschilester
 
Mensajes: n/a
Unhappy Orden de compra (ME21N)

Amigos Necesito Ayuda para este tema:

Cuando uno hace una Orden de compra (ME21N) para un pedido de importación.

Necesito que el pedido: traiga por defecto el esquema de cálculo de la importación Esto es el valor neto: de la que estoy comprando+ costo aduanero+consolidación+flete


cualquier ayuda pls
Responder Con Cita
  #10  
Viejo 03/09/09, 03:07:44
braschilester
 
Mensajes: n/a
Talking Hola Otro Problema Pls

Se busca modificar la actual lógica de proceso correspondiente al proceso de liberación de un pedido de compra a través de las transacciones ME28 y ME29N, permitiendo que dicho proceso no bloquee la

posterior modificación a través de la transacción ME22N. Por otro lado, se busca que los cambios asociados a los campos mencionados a continuación dentro de la transacción ME22N de un pedido ya liberado, gatille nuevamente

el bloqueo de este para que nuevamente deba generarse la liberación de este.

· Condición de pago

· Material

· Cantidad pedido

· Precio Neto
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 06:19:42.


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