Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 12/01/2007 00:00:00
Data/Hora Última Alteração: 03/02/2010 17:53:57
Descrição da Nota: AJUSTE NA CONVERSÃO DA QUANTIDADE NA UM ESTATISTICA NO EMBARQUE
Sintoma
Ao criar um embarque se o usuário não entrar nos detalhes do Item o programa não esta gravando os
dados referentes à Quantidade na UM Estatistica.
Nos casos em que as unidades de medida base e estatistica são diferentes, o programa esta
considerando sempre uma paridade de 1 para 1, favor ajustar para realizar a conversão conforme o
programa de LI realiza.
Quando entramos modificando o embarque e incluimos novos pedidos e programa não esta gravando os
dados
Solução
Ajustado o programa para calcular a Quantidade na UM Estatistica ao atualizar os itens na pasta
Pedidos e ao incluir novo pedido e salvar, o mesmo será incluído na tabela.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02878 Data: 12/01/2007 Hora: 15:40:19
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02878
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00148
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
AJUSTE NA CONVERSÃO DA QUANTIDADE NA UM ESTATISTICA NO EMBARQUE
----------------------------------------------------------------------------------------------------
Palavras Chave:
/PWS/ZYCIT003, FORM QTD_EST, ITAB_ZYCIT003
PERFORM CONVERTE_UM_NCM
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001O01
REPT /PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
AND tpli = 'S'.
ENDIF.
ENDIF.
MOVE: space TO itab_zycit003-nrseqlsi ,
space TO itab_zycit003-nrlsisub ,
space TO itab_zycit003-nrlsi .
MODIFY itab_zycit003.
MESSAGE s015 WITH text-115.
ENDFORM.
FORM qtd_est.
* >> Início da exclusão: FORM QTD_EST
CHECK sy-tcode EQ '/PWS/ZYCI001_C'.
CHECK /pws/zycie003-qtdeumest IS INITIAL.
CASE v_zzum.
WHEN '11' OR
'17' OR
'20' .
/pws/zycie003-qtdeumest = /pws/zycie003-qtd_iten.
v_flag_qtdest = 'X'.
WHEN '10'.
/pws/zycie003-qtdeumest = /pws/zycie003-ntgew.
* << Fim da exclusão
* >> Início da inclusão: FORM QTD_EST
CHECK sy-tcode EQ '/PWS/ZYCI001_C'
OR sy-tcode EQ '/PWS/ZYCI001_A'.
MOVE: itab_zycit003-qtd_iten TO itab_zycit003-qtdeumest,
itab_zycit003-meins TO itab_zycit003-meinsest.
IF t001-land1 IS INITIAL.
SELECT SINGLE *
FROM t001
WHERE bukrs = /pws/zycie001-bukrs.
ENDIF.
PERFORM converte_um_ncm USING itab_zycit003-matnr
CHANGING itab_zycit003-meinsest
itab_zycit003-qtdeumest.
/pws/zycie003-qtdeumest = itab_zycit003-qtdeumest.
* << Fim da inclusão
v_flag_qtdest = 'X'.
* >> Início da exclusão: FORM QTD_EST
ENDCASE.
* << Fim da exclusão
ENDFORM.
FORM verifica_mat_cent TABLES p_it_ekpo STRUCTURE it_ekpo.
DATA: cacl_matnr LIKE ekpo-matnr ,
cacl_werks LIKE ekpo-werks .
LOOP AT p_it_ekpo.
IF cacl_matnr IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
IF v_resposta EQ 'J'.
v_manual = 'X'.
EXIT.
ELSEIF v_resposta EQ 'N'.
v_manual = 'N'.
ELSE.
CLEAR v_manual.
ENDIF.
CLEAR v_resposta.
ENDFORM.
* >> Início da inclusão:
FORM converte_um_ncm USING p_matnr
CHANGING p_meins
p_qtd.
DATA: v_cod_umncm LIKE /pws/zyglt204-zum ,
v_codpais LIKE /pws/zycev604-land1 ,
v_meinsb LIKE marm-meinh,
v_um_rez TYPE i,
v_um_ren TYPE i,
v_um_rez2 TYPE i,
v_um_ren2 TYPE i,
v_um_rez1 LIKE marm-umrez,
v_um_ren1 LIKE marm-umren,
v_j_1bnbm LIKE /pws/zycit247-j_1bnbm,
v_umncm LIKE /pws/zyglt204-msehi ,
v_qtd_ncm LIKE /pws/zycit247-qtd_ncm.
DATA: v_conv1 TYPE /pws/zycit245-qtd_ncm,
v_conv2 TYPE /pws/zycit245-qtd_ncm.
CLEAR: v_um_rez, v_um_ren, v_codpais, v_cod_umncm, v_umncm,
v_um_rez2, v_um_ren2.
CLEAR v_cod_umncm.
SELECT SINGLE a~steuc INTO v_j_1bnbm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ p_matnr
AND a~steuc NE space
AND b~land1 EQ t001-land1.
IF sy-subrc EQ 0.
SELECT SINGLE land1 /pws/zum
FROM t604f INTO (v_codpais, v_cod_umncm)
WHERE steuc = v_j_1bnbm.
ENDIF.
IF NOT v_cod_umncm IS INITIAL.
SELECT SINGLE msehi
FROM /pws/zyglt204 INTO (v_umncm)
WHERE zum = v_cod_umncm.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-436 text-437 v_j_1bnbm.
CLEAR p_qtd.
EXIT.
ENDIF.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = p_meins
unit_out = v_umncm
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc = 0.
p_qtd = ( p_qtd / v_um_ren ) * v_um_rez.
p_meins = v_umncm.
EXIT.
ENDIF.
ENDIF.
SELECT SINGLE meins FROM mara INTO v_meinsb
WHERE matnr EQ p_matnr.
IF v_meinsb NE p_meins.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = p_meins
unit_out = v_meinsb
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10
.
IF sy-subrc <> 0.
SELECT SINGLE umrez umren
FROM marm INTO (v_um_rez1, v_um_ren1)
WHERE matnr = p_matnr
AND meinh = p_meins.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-434 p_meins text-435 p_matnr.
CLEAR p_qtd.
EXIT.
ELSE.
v_um_rez = v_um_rez1.
v_um_ren = v_um_ren1.
ENDIF.
ENDIF.
IF v_um_rez IS INITIAL
OR v_um_ren IS INITIAL.
EXIT.
ENDIF.
ELSE.
v_um_ren = 1.
v_um_rez = 1.
ENDIF.
IF NOT v_cod_umncm IS INITIAL.
IF v_meinsb NE v_umncm.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = v_meinsb
unit_out = v_umncm
IMPORTING
denominator = v_um_rez2
numerator = v_um_ren2
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10
.
IF sy-subrc <> 0.
SELECT SINGLE umrez umren
FROM marm INTO (v_um_rez1, v_um_ren1)
WHERE matnr = p_matnr
AND meinh = v_umncm.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-434 v_umncm text-435 p_matnr.
CLEAR p_qtd.
EXIT.
ELSE.
v_um_rez2 = v_um_rez1.
v_um_ren2 = v_um_ren1.
ENDIF.
ENDIF.
IF v_um_rez IS INITIAL
OR v_um_ren IS INITIAL.
EXIT.
ENDIF.
ELSE.
v_um_ren2 = 1.
v_um_rez2 = 1.
ENDIF.
p_qtd = p_qtd *
( ( v_um_rez / v_um_ren ) * ( v_um_ren2 / v_um_rez2 ) ).
p_meins = v_umncm.
ELSE.
IF v_j_1bnbm IS INITIAL.
MESSAGE i015 WITH text-442 p_matnr.
ELSE.
MESSAGE i015 WITH text-436 text-437 v_j_1bnbm.
ENDIF.
CLEAR p_qtd.
EXIT.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.
MESSAGE w061 WITH text-004 itab_zycit003-ebelp
text-005 itab_zycit003-ebeln.
v_mexit = 'X'.
EXIT.
ELSE.
LOOP AT itab_zycit003.
v_indice = sy-tabix.
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM atualiza_itens.
* >> Início da inclusão: MODULE ATUALIZA_ITENS
PERFORM qtd_est.
* << Fim da inclusão
ELSE.
ENDIF.
PERFORM atualiza_serv.
MODIFY itab_zycit003 INDEX v_indice.
ENDLOOP.
ENDIF.
ENDMODULE.
MODULE user_command_0400 INPUT.
CASE sy-ucomm.
WHEN 'MODIF'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 434
Texto: (7 caracteres)
"Unidade"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 435
Texto: (33 caracteres)
"não parametrizada para o material"
Comprimento máximo: 33
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 436
Texto: (48 caracteres)
"Unidade de medida Siscomex não esta corretamente"
Comprimento máximo: 48
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 437
Texto: (24 caracteres)
"parametrizada para o NCM"
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 442
Texto: (44 caracteres)
"Código NCM não parametrizado para o material"
Comprimento máximo: 44