PDA

Ver la Versión Completa : TRX MM41 - Validación campo EAN


jm.gonzalezconosciuto
18/02/16, 12:28:04
Buenos días :) Como están?

Me asignaron un requerimiento relacionado con la validación del campo EAN dentro de la trx MM41.

"Al crear un artículo en la transacción MM41, cuando previamente a ir al botón de 'Datos Adicionales' el foco se encuentra en las pestañas 'Catalogación', 'Compras', 'Ventas', 'Logística: CD', 'Logística: Tienda' ó 'TPV', no se realiza la validación de EANs del field exit: FIELD_EXIT_EAN11_2.

Sin embargo, si se presiona el botón 'Datos Adicionales' desde la pestaña de 'Datos Básicos' las validaciones del field exit FIELD_EXIT_EAN11_2 funcionan correctamente."

Destaco que el campo a validar se encuentra en la pestaña "Datos Básicos".

Alguna sugerencia/solución al respecto? :confused:

Desde ya, muchas gracias.

Saludos,


Edit 26.02.2016


field-symbols: <fs_okcode> type cua_code.
data: lv_okcode(22) type c value '(SAPLMGD2)RMMZU-OKCODE',
lv_okcode2(17) type c value '(SAPLMGD2)OK-CODE',
lv_stepl type sy-stepl.

get cursor line lv_stepl.
if lv_stepl eq sy-stepl.
assign (lv_okcode) to <fs_okcode>.
if <fs_okcode> is assigned and sy-tcode eq 'MM41'.
if <fs_okcode> eq 'EADE'
or input is initial
or sy-ucomm eq 'EADE'.

assign (lv_field) to <lf_table_control>.
if <lf_table_control> is assigned.
lt_control[] = <lf_table_control>[].
sort lt_control
by kzbme.
unassign <lf_table_control>.
endif.

assign (lv_field2) to <lf_table_control2>.
if <lf_table_control2> is assigned.
lt_control2[] = <lf_table_control2>[].
if sy-subrc is initial.
clear ls_control.
read table lt_control
into ls_control
with key kzbme = 'X'
binary search.

if sy-subrc is initial.
clear ls_control2.
read table lt_control2
into ls_control2
index lv_stepl.

if sy-subrc is initial.

if ls_control-kzbme eq ls_control2-hpean
and ls_control-ean11 eq ls_control2-ean11
and ls_control-numtp eq ls_control2-numtp.

clear sy-ucomm.
assign (lv_okcode) to <fs_okcode>.
if <fs_okcode> is assigned.
clear <fs_okcode>.
endif.

assign (lv_okcode2) to <fs_okcode>.
if <fs_okcode> is assigned.
clear <fs_okcode>.
endif.

output = input.

message e208(00) with text-e04.
endif.
endif.
endif.
endif.
unassign <lf_table_control2>.
endif.
endif.
endif.
endif.


Este es el código que coloqué en la field exit, al momento de la fecha cumple con lo requerido por el usuario, cualquier cambio lo plasmo en el mensje.

Saludos,