Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 15/12/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:28:53
Descrição da Nota: PREENCHE UNIDADE NCM PARA UTILIZAÇÃO NA DI. SALDO NEGATIVO
Sintoma
Esta levando para o campo unidade estatistica a mesma unidade do pedido. Permite vincular com saldo
negativo.
Solução
Ajustada rotina de conversão para preencher a unidade estatistica antes da conversão. Verificar
saldo negativo.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07777 Data: 15/12/2008 Hora: 10:20:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07777
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00008
Agrupamento : 00077
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03458 - 00001 - 7.0 - 00001 - AJUSTE PARA PREENCHER CORRETAMENTE A UNIDADE ESTATISTICA
06621 - 00002 - 7.0 - 00005 - AJUSTE PARA NÃO TRAZER PARA O EMBARQUE PEDIDOS SEM SALDO
----------------------------------------------------------------------------------------------------
PREENCHE UNIDADE NCM PARA UTILIZAÇÃO NA DI. SALDO NEGATIVO
----------------------------------------------------------------------------------------------------
Palavras Chave:
UNIDADE - NCM - DI - EMBARQUE
/PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
FORM carrega_zycbe003.
READ TABLE it_ekpo_aux WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF NOT it_ekpo_aux IS INITIAL.
MOVE it_ekpo_aux-idnlf TO ekpo-idnlf.
ELSE.
MOVE itab_zycit003-idnlf TO ekpo-idnlf.
ENDIF.
MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.
* >> Início da inclusão: FORM CARREGA_ZYCBE003
v_qtd_item = itab_zycit003-qtd_iten.
* << Fim da inclusão
CLEAR /pws/zycit078.
IF NOT itab_zycit003-nrseqli IS INITIAL AND
itab_zycit003-nrli IS INITIAL.
SELECT SINGLE * FROM /pws/zycit078
WHERE nrseqli EQ itab_zycit003-nrseqli.
IF sy-subrc EQ 0.
IF NOT /pws/zycit078-nrli IS INITIAL.
/pws/zycie003-nrli = /pws/zycit078-nrli.
ENDIF.
ENDIF.
...
...
* >> Início da inclusão: FORM SELECIONAR_ITENS
DATA v_pedido(16) TYPE c.
* << Fim da inclusão
...
...
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde.
ENDIF.
IF ( sy-tcode EQ '/PWS/ZYCI001_C' OR
sy-tcode EQ '/PWS/ZYCI001_A' ) AND
itab_zycit013-slqtde < 0.
MESSAGE i015 WITH
text-472 itab_zycit003-ebeln
text-473 itab_zycit003-ebelp.
ENDIF.
IF itab_zycit013-slqtde <= 0.
* >> Início da inclusão: FORM SELECIONAR_ITENS
CONCATENATE itab_zycit013-ebeln '/' itab_zycit013-ebelp
INTO v_pedido.
MESSAGE i013 WITH text-046 v_pedido text-487.
* << Fim da inclusão
CONTINUE.
ENDIF.
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,
itab_itens-menge TO itab_zycit003-menge,
itab_itens-uebto TO itab_zycit003-uebto,
itab_itens-uebtk TO itab_zycit003-uebtk.
MOVE itab_itens-menge TO itab_zycit003-menge.
ELSE.
MOVE: itab_itens-menge TO itab_zycit003-slqtde,
itab_itens-menge TO itab_zycit003-menge.
...
...
FORM qtd_est.
CHECK sy-tcode EQ '/PWS/ZYCI001_C'
OR sy-tcode EQ '/PWS/ZYCI001_A'.
* >> Início da exclusão: FORM QTD_EST
IF itab_zycit003-qtdeumest IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM QTD_EST
IF itab_zycit003-qtdeumest IS INITIAL OR
v_qtd_item NE /pws/zycie003-qtd_iten.
* << Fim da inclusão
IF t001-land1 IS INITIAL.
SELECT SINGLE *
FROM t001
WHERE bukrs = /pws/zycie001-bukrs.
ENDIF.
IF NOT itab_zycit003-matnr IS INITIAL .
MOVE: itab_zycit003-qtd_iten TO itab_zycit003-qtdeumest,
itab_zycit003-meins TO itab_zycit003-meinsest.
PERFORM converte_um_ncm USING itab_zycit003-matnr
CHANGING itab_zycit003-meinsest
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
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.
* >> Início da inclusão: FORM CONVERTE_UM_NCM
p_meins = v_umncm.
* << Fim da inclusão
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
...
...
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.
* >> Início da inclusão: FORM CONVERTE_UM_NCM
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
* << Fim da inclusão
p_qtd = ( p_qtd / v_um_ren ) * v_um_rez.
* >> Início da inclusão: FORM CONVERTE_UM_NCM
ENDCATCH.
IF sy-subrc = 5.
MESSAGE w039 WITH text-486.
CLEAR p_qtd.
ENDIF.
* << Fim da inclusão
p_meins = v_umncm.
EXIT.
...
...
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.
* >> Início da inclusão: FORM CONVERTE_UM_NCM
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
* << Fim da inclusão
p_qtd = p_qtd *
( ( v_um_rez / v_um_ren ) * ( v_um_ren2 / v_um_rez2 ) ).
* >> Início da inclusão: FORM CONVERTE_UM_NCM
ENDCATCH.
IF sy-subrc = 5.
MESSAGE w039 WITH text-486.
CLEAR p_qtd.
ENDIF.
* << Fim da inclusão
p_meins = v_umncm.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
* >> Início da inclusão:
DATA v_qtd_item LIKE /pws/zycit003-qtd_iten.
* << Fim da inclusão
DATA: END OF COMMON PART a.