¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solución a errores de validación de materiales en Ordenes de Compra con salida de usuario MM06E005

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hola,

He escrito un programa de salida de usuario para la validación de materiales. Es decir, mantenemos una tabla "z" separada, donde la tabla 'z' contiene campos como código de material, elemento WBS y precio del material. Cuando creo una Orden de Compra, debería verificar si ese material existe en la tabla. Si el material existe, la Orden de Compra debería guardarse; de lo contrario, debería mostrar un mensaje que indique que el material no está mantenido en la tabla.

Nuestro escenario es el siguiente:

La tabla "z" será como sigue:

Elemento WBS Precio del Material

cbb.009 ABC 11

cbb.009 DEF 12

Ahora, si creo una Orden de Compra con el material ABC y el elemento WBS cbb.009, la Orden de Compra debería guardarse. Y cuando creo una Orden de Compra con el WBS cbb.009 y el material GHI (que no está en la tabla para el WBS cbb.009), debería aparecer un mensaje de error que indique 'material no mantenido'.

Para esto, he utilizado una salida de usuario MM06E005 y una salida de función EXIT_SAPMM06E_017.

Y ahora el problema es que cuando creo una Orden de Compra con un material que existe en la tabla, me permite guardar la Orden de Compra. Y cuando elimino el código de material e ingreso un código de material que no está en la tabla 'z', no muestra el mensaje de error, pero cuando cambio cualquier otro campo que no sea el código de material, muestra el mensaje de error. Cuando establezco el punto de interrupción en el programa y verifico el campo de material, no se está modificando cuando cambio el material en la Orden de Compra, pero cuando cambio la cantidad, la planta o el precio, se actualiza.

Pero para mí, cuando cambio el código de material en sí, debería cambiarse en el campo de código de material.

INCLUSO HE INTENTADO CON COMANDOS CLEAR, REFRESH. PERO AÚN NO RESUELVE MI PROBLEMA.

Y con respecto a este problema, he publicado muchos hilos en SDN, pero no he obtenido ninguna solución correcta.

Por favor, guíame en este problema y ayúdame.

Gracias

Saludos

Dinesh

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

¡Hola!

Gracias por tu apoyo.

He encontrado el nombre del campo: EMATN, Elemento de datos: EMATNR, ID de parámetro: MAT, Campo de pantalla MEP01211-Ematn. ¿Podrías decirme cómo limpiar el ID de parámetro? Y también en qué tabla se almacena el ID de parámetro.

A continuación se muestra mi código, así que por favor explícame dónde y cómo refrescar el ID de parámetro.

data : fin like line of TEKKN.

data : fin1 like line of TEKPO.

DATA : lv_matnr like ekpo-matnr.

data : lv_matnr1 like ztendprice-matnr.

data : lv_proj like prps-psphi.

Data : lv_pspid like ekkn-ps_psp_pnr.

Data : lv_pspid3 like prps-psphi.

loop at tekkn into fin.

endloop.

loop at TEKPO into fin1.

endloop.

lv_matnr = fin1-matnr.

lv_pspid = fin-ps_psp_pnr.

Select single psphi from prps into lv_pspid3 where pspnr = lv_pspid.

select single pspnr from ZTENDPRICE into lv_proj where pspnr = lv_pspid3.

if lv_pspid3 is initial.

MESSAGE 'El proyecto no existe en la tabla' TYPE 'E'.

endif.

select single matnr from ZTENDPRICE into lv_matnr1 where matnr = lv_matnr and pspnr = lv_PROJ.

if lv_matnr1 is initial.

MESSAGE 'El material no existe en la tabla' TYPE 'E'.

endif.

refresh :tekpo,tekkn.

Saludos

Dinesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Gracias por tu apoyo.

He encontrado el nombre del campo: EMATN, Elemento de datos: EMATNR, ID de parámetro: MAT, Campo de pantalla MEP01211-Ematn. ¿Puedo saber cómo limpiar el ID de parámetro? Y también en qué tabla se almacena el ID de parámetro.

Saludos

Dinesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Aquí puedes probar 2 formas..

a) Intenta limpiar el parámetro ID del campo de material

es decir: en la transacción, en la pantalla haz clic en F1 y verifica el campo de la pantalla y para ese campo de pantalla tendrá un elemento de datos en ese elemento de datos tendrás un ID de parámetro.. Así que intenta actualizar ese ID de parámetro antes de que se muestre la pantalla....

b) verifica en el formulario de depuración a qué campo de estructura está asignando los valores al campo de pantalla de material...

intenta limpiar solo eso para tu condición.

Saludos

Kumar

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?