Field exit para transacción FB60

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • poketina
    Senior Member
    • jul
    • 105

    #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
  • robert_milan
    Senior Member
    • jun
    • 315

    #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.

    Comentario

    Trabajando...