Escolar Documentos
Profissional Documentos
Cultura Documentos
Título do Programa
Cód. da SS
Anal. Especificador Telefone
Anal. Técnico Telefone
Informações gerais
Informações do desenvolvimento
Descrição do programa
Grau de prioridade
Grau de complexidade
Características do programa
Especificação operacional
Tipo de processamento
Freqüência
Dependência
Variantes
Nome arquivo/localização
Tipo arquivo
Nome sessão BDC
Nome do job
Volume de dados
Parâmetros de seleção
Seqüência de telas
Observações de procedimentos
(português estruturado)
Foi desenvolvida uma solução em ABAP dentro da exit “EXIT_SAPMM06E_012” (Pedido de
compra) para verificar o status do fornecedor e o nível de classificação do material, informações essas
que serão cadastradas nas tabelas “Z” que foram criadas.
Foram criadas duas tabelas “Z” para esse desenvolvimento sendo a tabela ZPC_ITEMQUALI
(Material), com os seguintes campos:
Mandt - Mandante
Matnr – Material
Werks - Centro
Znivclass – Nível de classificação
Zcritma – Crítico ao meio ambiente
Zcritss - Crítico a saúde e segurança
Mandt - Mandante
Bukrs – Empresa
Lifnr - Fornecedor
Ekorg - Organização de compras
Zstatus – Nível de classificação
Zdataquali – Data de qualificação
Zdatavalid – Data de validade
Zcritma – Crítico ao meio ambiente
Zcritss - Crítico a saúde e segurança
Zamostra - Requer amostra
MANDT – Mandante;
EKORG – Organização de Compra;
MATKL – Grupo de Mercadorias;
ATIVO – Código, se atualização de Tabela;
Tabela Fornecedor
Tabela Material
As tabelas acima foram criadas com cópia na transação SM30, ou seja, o usuário pode visualizar o
conteúdo das tabelas, modificar o conteúdo das tabelas, inserir dados nas tabelas ou eliminar os dados
da tabela e gerar relatórios.
Foi criado um programa ZCHAMATABELA que o usuário pode acessar através da transação
ZYMM01. Esse programa serve para o usuário ter acesso as tabelas através de uma única transação e
poder visualizar, modificar, inserir ou eliminar dados.
Programa ZCHAMATABELA
O usuário escolhe se quer utilizar a tabela de fornecedor, material ou grupo de material/org. compra e
a seguir teremos a seguinte tela:
Na tela acima quando você acessa Alteração, temos os botões NOVAS ENTRADAS e LISTA DE
VARIANTES.
O botão NOVAS ENTRADAS serve para cadastrar novos registros. Se clicar duas vezes em cima de
um registro já inserido, o mesmo pode ser modificado.
Descrição Técnica
Segue a descrição técnica do programa desenvolvido para validação dos dados do fornecedor e do
material.
O Programa verifica se transação digitada pelo usuário foi a transação “ME21” ou “ME22”.
Após faz a seleção dos dados da tabela ZPC_ITEMQUALI (Material) comparando os dados
com os dados da tabela EKPO (Item do documento).
Após a seleção dos dados os registros são lidos e começam as consistências como veremos a
seguir:
Tabelas Utilizadas
Nome Descrição
ZPC_FORNECEQUALI Tabela de cadastro de fornecedores
ZPC_ITEMQUALI Tabela de cadastro de materiais
ZPC_MTAGRP Tabela de cadastro de Grupo de Materiais e Organização de Compras
IF SY-SUBRC IS INITIAL.
*--> Ler materiais preenchidos na tela
LOOP AT TEKPO.
*IA-FSPetersen-Ajuste norma NP27
* read table t_zpc_itemquali with key matnr = tekpo-matnr
* werks = tekpo-werks.
* if sy-subrc is initial.
* if zpc_fornecequali-zstatus = '8' or atnr
* zpc_fornecequali-zstatus = '9' or erks
* zpc_fornecequali-zstatus = '10'. arch.
READ TABLE T_ZPC_MTAGRP WITH KEY EKORG = I_EKKO-EKORG
MATKL = TEKPO-MATKL
BINARY SEARCH.
*--> Verifica Grupo de Material e se está ativo
IF SY-SUBRC = 0 AND T_ZPC_MTAGRP-ATIVO = 'X'.
* zpc_fornecequali-zcritma = 'S'.
* Exibir mensagem
* message e011(zc) with text-006 t_zpc_itemquali-matnr text-002.
ENDIF.
FIELD-SYMBOLS: <VALOR>,
<NETPR>,
<NETWR>,
<EFFWR>.
FIELD-SYMBOLS: <TAB> TYPE ANY TABLE,
<TAB2> TYPE ANY TABLE,
<TEKPO> TYPE ANY TABLE,
<POT> TYPE ANY TABLE.
LOOP AT TEKPO.
VL_TABIX = SY-TABIX.
CLEAR: VL_MATNR,
VL_NBM,
VL_REGIOF,
VL_REGIOC,
VL_MWSKZ,
VL_TXJCD,
VL_IPISP,
VL_IPI,
VL_ICMS,
VL_VLIPI,
VL_VLICM,
VL_VLLIQ,
VL_ALIQIPI,
VL_ALIQICM.
FROM T001W
INTO (VL_REGIOC)
WHERE WERKS = TEKPO-WERKS.
ENDIF.
SELECT SINGLE *
FROM ZMMPRICE
INTO WA_ZMMPRICE
WHERE MWSKZ = VL_MWSKZ
AND TXJCD = VL_TXJCD
AND IPISP = VL_IPISP.
IF SY-SUBRC = 0.
ENDIF.
ENDIF.
VL_VLLIQ = VL_CALC2.
VL_VLLIQ2 = VL_CALC.
ENDIF.
TEKPO-NETPR = VL_VLLIQ.
* tekpo-netwr = vl_vlliq * tekpo-menge.
TEKPO-NETWR = VL_VLLIQ2.
* tekpo-effwr = vl_vlliq * tekpo-menge.
TEKPO-EFFWR = VL_VLLIQ2.
MODIFY TEKPO INDEX VL_TABIX.
* ASSIGN ('(SAPMM06E)EKPO-NETPR') TO <NETPR>.
* <NETPR> = VL_VLLIQ.
*
* ASSIGN ('(SAPMM06E)EKPO-NETWR') TO <NETWR>.
* <NETWR> = VL_VLLIQ.
*
* ASSIGN ('(SAPMM06E)EKPO-EFFWR') TO <EFFWR>.
*
* ASSIGN ('(SAPMM06E)EKPO-EFFWR') TO <EFFWR>.
* <EFFWR> = VL_VLLIQ.
ENDIF.
IF WA_ZMMPRICE-CALCIPI = 'ZIPI'.
* Limpa ZIPC
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPC'.
IF SY-SUBRC = 0.
CLEAR: TKOMV-KBETR,
TKOMV-KWERT.
MODIFY TKOMV INDEX SY-TABIX.
ENDIF.
* Atribui ZIPI
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPI'.
IF SY-SUBRC = 0.
TKOMV-KBETR = VL_IPI * 10.
TKOMV-KWERT = ( VL_CALC * VL_IPI ) / 100.
* Limpa ZIPI
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPI'.
IF SY-SUBRC = 0.
CLEAR: TKOMV-KBETR,
TKOMV-KWERT.
* Atribui ZIPC
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPC'.
IF SY-SUBRC = 0.
TKOMV-KBETR = VL_IPI * 10.
TKOMV-KWERT = ( VL_CALC * VL_IPI ) / 100.
ENDIF.
ELSE.
* IF wa_zmmprice-ipisp = 'X'.
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPC'.
IF SY-SUBRC = 0.
CLEAR: TKOMV-KBETR,
TKOMV-KWERT.
MODIFY TKOMV INDEX SY-TABIX.
ENDIF.
* ELSE.
READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
KSCHL = 'ZIPI'.
IF SY-SUBRC = 0.
CLEAR: TKOMV-KBETR,
TKOMV-KWERT.
MODIFY TKOMV INDEX SY-TABIX.
ENDIF.
* ENDIF.
ENDIF.
*(Final) Rotina p/ Calcular o vlr da Condição e determinar Aliq de IPI
* IF SY-SUBRC = 0.
* IF WA_ZMMPRICE-IPISP = 'X'.
* READ TABLE TKOMV WITH KEY KPOSN = TEKPO-EBELP
* KSCHL = 'ZIPC'.
* IF SY-SUBRC = 0.
* VL_CALC = VL_CALC + TKOMV-KWERT.
* ENDIF.
* ENDIF.
* ENDIF.
CLEAR: VL_ALIQIPI,
VL_ALIQICM,
VL_VLRBAS,
VL_VLIPI.
ELSE.
ELSE.
IF SY-SUBRC = 0.
CLEAR: TKOMV-KBETR,
TKOMV-KWERT.
MODIFY TKOMV INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
* Final Alteração MWMIT - Jonas 06/07/06 - Calculo Alíquotas
Z_TEKPO[] = TEKPO[].
Z_TEKET[] = TEKET[].
LOOP AT Z_TEKPO.
ENDIF.
IF SY-SUBRC EQ 0.
VLR_CON = W_EKPO-NETPR.
ENDIF.
IF SY-SUBRC IS INITIAL.
*==> Início da alteração por CARLOS A.ORTEGA - COMPLEX - 30/11/2006
* IF i_ekko-bsart = 'NCS' AND i_ekko-bukrs = '0205'.
IF I_EKKO-BSART = 'NCS' AND I_EKKO-BUKRS = '0205' OR
I_EKKO-BUKRS = '5320'.
*==> Final da alteração por CARLOS A.ORTEGA - COMPLEX - 30/11/2006
IF Z_TEKET-BANFN = SPACE.
Mensagens do sistema
Veja mensagens no Cenário de Testes abaixo inserido no contexto do programa.
Obs.: Os testes descritos abaixo foram realizados no ambiente de qualidade do cliente (testes reais).
Solicitação de Transporte
Request Descrição
DV1K906061 MMCN-Ajuste Material nao cadastrado norma NP27 (Grup.Mat. Ante do mat. E
edição tabela ZPC_MTAGRP) )
DV1K906056 MMCN-Ajustes norma NP27 (Ajuste das mensagens, regra Mat.Group antes do
mat.)
DV1K906033 MMCN-Ajuste norma NP27 (Incluir teste "Ativo" no código fonte)
DV1K906028 MMCN-Tabela validacao norma NP27 (Criar tabela ZPC_MTAGRP) )
DV1K906021 MMCN-Ajuste norma NP27 (Ajuste nas regras do programa ZXM06U43)
DV1K906013 MMCN-Ajuste EXIT Adaptacao norma NP27 (Contar fonte para trasporte de
tabelas)
DV1K905939 Adaptação a norma NP27
DV1K905935 Adaptação a norma NP27
DV1K905933 Adaptação a norma NP27
DV1K905930 Adaptação a norma NP27
DV1K905878 Adaptação a norma NP27
DV1K905867 Adaptação a norma NP27
DV1K905854 Adaptação a norma NP27
DV1K905794 Adaptação a norma NP27
06839014 F3130 2 S S Erro Ok Fornecedor tem que ter status entre 2 e 8! Material 06839014
11110115 A030 3 S S S S 11 200415 Gravar Ok 4570010636
68961007 Y740 1 S S Gravar Ok 4570010636
Fornecedor não atende requisitos de saúde e segurança :
11110115 A030 3 S S S N 3 200499 Erro item 1 Ok 11110115
Fornecedor não atende requisitos de saúde e segurança :
22211017 G0AA2 3 N S Erro Ok 11110115
Fornecedor não atende requisitos de saúde e segurança :
22201187 G0AA2 2 S N S N 3 200499 Erro item 2 Ok 11110115
Fornecedor não atende requisitos de saúde e segurança :
11110115 A030 3 S S Erro Ok 11110115
74391287 J4100 2 S N S S 1 201508 Gravar (flag) Ok 4570010637
11110115 A030 3 S S S S 11 200415 Erro item 3 Ok Fornecedor tem que ter status entre 1 e 8! Material 22304183
68961007 Y740 1 S S Erro item 3 Ok Fornecedor tem que ter status entre 1 e 8! Material 22304183
22304183 G0AA2 1 N S Erro Ok Alterar pedido 4570010636 incluir item inválido
11110115 A030 3 S S S S 11 200415 Gravar Ok Fornecedor tem que ter status entre 1 e 8! Material 22304183
68961007 Y740 1 S S Gravar Ok Fornecedor tem que ter status entre 1 e 8! Material 22304183
22211017 G0AA2 3 N S Gravar Ok Alterar pedido 4570010636 incluir item válido
11110115 A030 3 S S S S 11 200415 Gravar Ok Item 2 marcado para deleção
68961007 Y740 1 S S Gravar Ok Marcar item para deleção
22211017 G0AA2 3 N S Gravar Ok Item 2 marcado para deleção
Pendências
Conclusão