PDA

Ver la Versión Completa : user exits ¿ como funcionan ?


javibest
16/01/07, 14:46:08
Hola . Estoy intentando aprender como funcionan las user-exits para hacerme una , pero no las entiendo muy bien . He leido que tan solo tienes que crearte el include que te propone SAP , pero me surgen muchas dudas .

Cuando se ejecuta una determinada user exit ?
De todas las user exit que tiene asociada una transaccion ... como sabes cual de ellas tienes que utilizar ?
¿Se ejecutan todas a la vez o cada una se ejecuta en momentos diferentes?

Gracias

ToniP
16/01/07, 16:31:00
Hola JaviBest,

El tema es muy amplio para explicar en unas cuantas líneas.
Las user-exits son partes de código que SAP permite que el cliente introduzca entre su código estándar.
Ej: cuando pulsas intro en alguna pantalla de pedidos o de facturación o de entrada de materiales, se puede disparar una user-exit de validación, que te permite validar cosas que tal vez el estándar no tiene en cuenta.

Para activar una user-exit, has de buscar la ampliación a la que pertence e incluirla en un proyecto. De esta forma se activa la user-exit, de otra manera, aunque crees el include y le metas código, si no está activa, no hará nada de nada.

Si quieres saber la user-exit que necesitas, normalmente lleban una descripción de la utilidad de dicha user-exit, aunque tu puedes hacer lo quieras dentro (siempre bajo tu responsabilidad). Si buscas por la web encontrarás páginas con información de sobra.

Espero te sirva el breve resumen.

Salú!

javibest
17/01/07, 06:35:01
ok . Pero el caso es que si las user exits es codigo que se ejecuta a parte , en algun sitio tiene que haber una llamada a ese codigo nuevo no ? Cuando dices que se ejecutan despues de pulsar intro en una pantalla , no lo entiendo , que se ejecutan todas las user exits que existen ? Lo logico es que se ejecuten solo algunas . Y si se ejecutan , deberia haber una llamada o algo que le diga al codigo que se ejecute .. no se .. sigo casi como estaba ... Si sabes de algun manual o una page o algo donde mirar , te lo agradeceria . Gracias

ToniP
17/01/07, 08:11:05
Una user-exit no deja de ser, normalmente, una función. Esta función está dentro del código estándar de la transacción que llames. Las userexits acostumbran a estar asociadas a eventos que se producen durante la ejecución de una transacción, como puede ser cuando se pulsa el botón de grabar, cuando se pulsa el intro, cuando se cambia a una pestaña específica dentro de la dynpro de la transacción,... Al desencadenar ese evento, se ejecuta un código estándar, y entre medio está la llamada a la user-exit (o sea, un CALL FUNCTION) que sólo se realiza si, como te dije, la user-exit está activa. Dentro de esa función es donde tu metes el código que te interesa y que se ejecutará cuando el estándar haga la llamada.
No se ejecutan todas a la vez, por ejemplo, si pulsas grabar, naturalmente no se ejecutará la user-exit de cambio de pestaña.
Si miras esta página, ahí tienes todas o casi todas las user-exits y cuando y porque se ejecutan:
http://sapass.metro.client.jp/UserExit/index.htm
Como ejemplo:
IWO10009 - PM Order: Customer Check for 'Save' Event: Esta user-exit se ejecuta al pulsar el botón de grabar.

Siento no darte una página que explique mejor que yo este tema, pero la que te he indicado tal vez te ayude si ves que hacen algunas user-exits.

Salú!