Validación de Campos ME52N

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Rodolfo SAP
    Member
    • jun
    • 89

    #1

    Validación de Campos ME52N

    Buenas Tardes,

    Compañeros SAP necesito me puedan ayudar con un tema con el cual estoy teniendo problemitas, tengo un requerimiento para la validación de dos campos en la Transaccion ME51N pestaña IMPUTACION.

    Cuenta Mayor < saknr >

    Centro Costo < kostl >

    Lo que necesito es validar el valor de estos campos, hasta ahora he utilizado 2 alternativas

    El PROBLEMA es que cuando no estan en la pestaña IMPUTACION donde estan estos valores/campos el field-exit no trae ningun valor y en la alternativa 2 la función manda error DUMP por que la dynpro no esta activa

    Alternativa 1 / Resultado no trae los valores si la pestaña no esta como sobre todas en los tapstrip.

    *************************
    * Por Field-Exit
    ************************
    * Cuenta Mayor
    field-symbols <fs_sakto> type meacct1100-sakto.

    * Utilizo el truco de asignar el programa de control y el campo al field
    assign ('(SAPLMEACCTVI)MEACCT1100-SAKTO') to <fs_sakto>.

    if <fs_sakto> ne ebkn-sakto.

    endif.

    Alternativa 2 / Resultado ejecuta un DUMP si la pestaña no esta seleccionada y activa en la dynpro

    **************************************
    * Y la otra alternativa por la funcion GET VALUES
    **************************************

    DATA: t_dynpread LIKE dynpread occurs 0 WITH HEADER LINE.

    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    dyname = 'SAPLMEGUI'
    dynumb = '0014'
    * translate_to_upper = 'X'
    * request = 'A'
    determine_loop_index = 'X'
    TABLES
    dynpfields = t_dynpread
    EXCEPTIONS
    invalid_abapworkarea = 1
    invalid_dynprofield = 2
    invalid_dynproname = 3
    invalid_dynpronummer = 4
    invalid_request = 5
    no_fielddescription = 6
    invalid_parameter = 7
    undefind_error = 8
    double_conversion = 9
    stepl_not_found = 10
    OTHERS = 11.

    READ TABLE t_dynpread
    WITH KEY fieldname = '
    MEACCT1100-SAKTO'.

    PD: La estructura mereq_item y mereq_header tampoco tienen estos valores

    Bueno seria todo pido su ayuda para alguna opinión o posible solucion para yo poder tener el valor de estos 2 campos en la ME21N saber que valor ingreso el usuario.

    Saludos y desde ya muchas gracias por su apoyo.
    Editado por última vez por Rodolfo SAP; 17/03/2011, 18:11:48.
  • crounly
    Senior Member
    • nov
    • 227

    #2
    Imagino que llego tarde...los siento pero hay va una solución.

    BADI: ME_PROCESS_REQ_CUST / metodo: PROCESS_ITEM

    Código:
     CHECK IM_COUNT EQ 1.
     check: sy-tcode eq 'ME51N' or sy-tcode eq 'ME52N' or sy-tcode eq 'ME53N'.
     DATA: LT_ACCOUNT  TYPE MMPUR_ACCOUNTING_LIST,
             LS_ACCOUNT  TYPE LINE OF MMPUR_ACCOUNTING_LIST.
     data: wl_data_account    type  EXKN,
             wl_data_exknx      type mepoaccounting_datax.
    
     LT_ACCOUNT    = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).
    
    
    
     LOOP AT LT_ACCOUNT INTO LS_ACCOUNT.
    
       wl_data_account = LS_ACCOUNT-MODEL->get_exkn( ).
       wl_DATA_exknx   = LS_ACCOUNT-MODEL->get_exknx( ).
    
       IF ( wl_data_account-sakto IS NOT INITIAL ).
            
    
         wl_data_account-kostl  ='MLM62002'.
         wl_DATA_exknx-kostl = 'X'.
    
        call METHOD LS_ACCOUNT-MODEL->set_EXKN
          exporting
            IM_EXKN = wl_data_account.
    
        call method LS_ACCOUNT-MODEL->set_exknx
          exporting
            im_exknx = wl_DATA_exknx.
       ENDIF.
    
    ENDLOOP
    http://codigoderetorno.blogspot.com.es/

    Comentario

    Trabajando...