#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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!!!!
__________________
Un Huevon No Inútil Solo di lo que piensas, a la mejor tienes la mejor respuesta.... Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo..... Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho..... Consultor FI jr/ABAP Sr. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|