MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Field exit para transacción FB60 (foro/showthread.php?t=9274)

poketina 22/11/07 08:08:25

Field exit para transacción FB60
 
Hola, me creé hace tiempo un field exit para la transacción FB60, en concreto para el campo BKTXT (Texto de cabecera). Lo que yo pretendía hacer es lo siguiente: si meto un valor en el campo XREF3 (Clv.Ref 3), busco en la tabla KONA y saco el texto para el número de acuerdo que han metido. Si el campo XREF3 está a blanco el campo BKTXT también. y de esta manera el usuario no puede modificar el texto BKTXT. El código de esto es el sigueinte:

FUNCTION field_exit_bktxt.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(INPUT)
*" EXPORTING
*" REFERENCE(OUTPUT) TYPE INVFO-BKTXT
*"----------------------------------------------------------------------
"----------------------------------------------------------------------
"*"Interfase local
" IMPORTING
" REFERENCE(INPUT)
" EXPORTING
" REFERENCE(OUTPUT) TYPE INVFO-BKTXT
"----------------------------------------------------------------------

DATA: l_valor(10),
l_knuma LIKE kona-knuma,
l_texto LIKE kona-botext,
l_bktxt(25).

* Campo clave referencia 3
CALL FUNCTION 'GET_DYNP_VALUE'
EXPORTING
i_field = 'INVFO-XREF3'
i_repid = 'SAPLFDCB'
i_dynnr = '0050'
CHANGING
o_value = l_valor.

IF l_valor IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_valor
IMPORTING
output = l_knuma.

SELECT SINGLE botext
FROM kona
INTO l_texto
WHERE knuma = l_knuma.
IF sy-subrc = 0.
output = l_texto.
ELSE.
CLEAR output.
MESSAGE e023(zgr0) WITH 'El acuerdo introducido no existe'.
ENDIF.
ELSEIF l_valor IS INITIAL.
CLEAR output.
ENDIF.
ENDFUNCTION.

Bien, pues ahora el usuario quiere que si meten un número de acuerdo en el campo Clv.Ref 3 entonces busco en las tablas, si existe un texto asociado lo meto en el campo BKTXT (texto cabecera) pero aun asi, si ellos quieren cambiar manualmente este texto de cabecera, quieren poder hacerlo. y si el número de acuerdo esta vacío pues también quieren poder meter ellos el texto que quieran en el BKTXT.
Vale, pues aqui es donde estoy perdida, no sé si me hace falta un nuevo field exit o que.. Espero haberme explicado !!!
Gracias de antemano !!!!!1
Maria

robert_milan 22/11/07 09:46:27

Hola lo que podrias probar es comentar el siguiente codigo del field exit, para que veas el resultado, que requieres.

*ELSEIF l_valor IS INITIAL.
*CLEAR output.

Despues debes hacer otra validacion en donde buscaras el texto que ellos introduzcan en el campo para verificar si existe o no.
Saludos!!!!


Husos Horarios son GMT. La hora en este momento es 11:12:26.

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