¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solução para erros de validação de materiais em Ordens de Compra com saída do usuário MM06E005

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

Olá,

Eu escrevi um programa de saída de usuário para validação de materiais. Ou seja, mantemos uma tabela "z" separada, onde a tabela 'z' contém campos como código de material, elemento WBS e preço do material. Quando eu crio uma Ordem de Compra, devo verificar se esse material existe na tabela. Se o material existir, a Ordem de Compra deve ser salva; caso contrário, deve exibir uma mensagem indicando que o material não está mantido na tabela.

Nosso cenário é o seguinte:

A tabela "z" será como a seguir:

Elemento WBS Preço do Material

cbb.009 ABC 11

cbb.009 DEF 12

Agora, se eu criar uma Ordem de Compra com o material ABC e o elemento WBS cbb.009, a Ordem de Compra deve ser salva. E quando eu crio uma Ordem de Compra com o WBS cbb.009 e o material GHI (que não está na tabela para o WBS cbb.009), deve aparecer uma mensagem de erro indicando 'material não mantido'.

Para isso, eu utilizei uma saída de usuário MM06E005 e uma saída de função EXIT_SAPMM06E_017.

E agora o problema é que quando eu crio uma Ordem de Compra com um material que existe na tabela, ele me permite salvar a Ordem de Compra. E quando eu removo o código do material e insiro um código de material que não está na tabela 'z', não exibe a mensagem de erro, mas quando eu altero qualquer outro campo que não seja o código do material, exibe a mensagem de erro. Quando eu coloco um breakpoint no programa e verifico o campo do material, ele não está sendo modificado quando eu troco o material na Ordem de Compra, mas quando eu altero a quantidade, a planta ou o preço, ele é atualizado.

Mas para mim, quando eu altero o código do material em si, ele deveria ser alterado no campo do código do material.

MESMO TENTEI COM COMANDOS CLEAR, REFRESH. MAS AINDA NÃO RESOLVE MEU PROBLEMA.

E com relação a esse problema, eu publiquei muitos tópicos no SDN, mas não obtive nenhuma solução correta.

Por favor, me guie nesse problema e me ajude.

Obrigado

Saudações

Dinesh

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

4 Respuestas

0
Cargando...

°Olá!

Obrigado pelo seu apoio.

Encontrei o nome do campo: EMATN, Elemento de dados: EMATNR, ID do parâmetro: MAT, Campo de tela MEP01211-Ematn. Poderia me dizer como limpar o ID do parâmetro? E também em que tabela o ID do parâmetro é armazenado.

Abaixo está o meu código, então por favor me explique onde e como atualizar o ID do 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 'O projeto não existe na tabela' 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 'O material não existe na tabela' TYPE 'E'.

endif.

refresh :tekpo,tekkn.

Saudações

Dinesh

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

Olá,

Obrigado pelo seu apoio.

Encontrei o nome do campo: EMATN, Elemento de dados: EMATNR, ID do parâmetro: MAT, Campo de tela MEP01211-Ematn. Posso saber como limpar o ID do parâmetro? E também em que tabela o ID do parâmetro é armazenado.

Saudações

Dinesh

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

Aqui você pode experimentar 2 formas...

a) Tente limpar o parâmetro ID do campo de material

ou seja: na transação, na tela, clique em F1 e verifique o campo da tela e para esse campo de tela terá um elemento de dados, nesse elemento de dados você terá um ID de parâmetro... Então tente atualizar esse ID de parâmetro antes que a tela seja exibida....

b) verifique no formulário de depuração a que campo de estrutura está atribuindo os valores ao campo da tela de material...

tente limpar apenas isso para a sua condição.

Saudações

Kumar

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

Obrigado

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?