Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 02/12/2005 00:00:00
Data/Hora Última Alteração: 21/02/2011 15:20:42
Descrição da Nota: ERRO NO EMBARQUE COM ESTORNO DA NOTA DE CRÉDITO
Sintoma
Foi criado uma nota de Crédito, estornou-se esta nota e faturou novamente. A Ordem de Crédito vai
para a pasta Vendas sem Remessa ao invés de ir para a pasta Devoluções/Complementos.
Solução
Ajustes na função que efetua a determinação do fluxo de SD.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00386 Data: 02/12/2005 Hora: 14:38:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00386
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00021
Agrupamento : 00000
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00169 - 00003 - 6.0 - 00021 - DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO
00272 - 00002 - 6.0 - 00021 - AJUSTE NO CÁLCULO DOS VALORES REAIS NA FUNÇÃO TRATA_ORDEM
00301 - 00001 - 6.0 - 00021 - VALORES ERRADOS NO RE QUANDO HÁ DEVOLUÇÃO E ESTORNO DA MESMA NO E
----------------------------------------------------------------------------------------------------
ERRO NO EMBARQUE COM ESTORNO DA NOTA DE CRÉDITO
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO - EMBARQUE - TRATA ORDEM
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCE_TRATA_ORDEM
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_TRATA_ORDEM
...
ENDLOOP.
SORT itab_zycee085 BY nrseq.
itab_zycee085_aux[] = itab_zycee085[].
* >> Início da Inclusão <<
itab_zycee085_l[] = itab_zycee085[].
* >> Fim da Inclusão <<
LOOP AT itab_zycee085_aux.
v_index = sy-tabix.
READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.
...
READ TABLE itab_estorno WITH KEY
kidno = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Início da Inclusão <<
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_aux INDEX v_index.
...
ELSE.
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
* >> Início da Exclusão <<
READ TABLE itab_zycee085_aux WITH KEY
* >> Fim da exclusão <<
* >> Início da Inclusão <<
READ TABLE itab_zycee085_l WITH KEY
* >> Fim da Inclusão <<
vbeln_vf = itab_estorno-vbeln.
IF sy-subrc = 0.
* >> Início da Exclusão <<
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
* >> Fim da eXclusão <<
* >> Início da Inclusão <<
MOVE-CORRESPONDING itab_zycee085_l TO t_estorno.
* >> Fim da Inclusão <<
APPEND t_estorno.
CLEAR t_estorno.
ENDIF.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
* >> Início da Exclusão <<
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da eXclusão <<
* >> Início da Inclusão <<
vbeln_vf = itab_zycee085_l-vbeln_vf.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_aux INDEX v_index.
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
ENDIF.
ENDIF.
ENDIF.
WHEN 'OD' OR 'DR'.
READ TABLE itab_estorno WITH KEY
...
READ TABLE itab_estorno WITH KEY
kidno = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Início da Inclusão <<
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
* Correção para auto-elminação do item da itab_zycet085_aux
DELETE itab_zycee085_aux WHERE
vbeln_va = itab_zycee085_aux-vbeln_va AND
aupos = itab_zycee085_aux-aupos AND
vbeln_vf = itab_zycee085_aux-vbeln_vf AND
posnr = itab_zycee085_aux-posnr AND
vbeln_vl = itab_zycee085_aux-vbeln_vl AND
posnl = itab_zycee085_aux-posnl.
ELSE.
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
* >> Início da Inclusão <<
READ TABLE itab_zycee085_l WITH KEY
* >> Fim da Inclusão <<
* >> Início da Exclusão <<
READ TABLE itab_zycee085_aux WITH KEY
* >> Fim da Exclusão <<
vbeln_vf = itab_estorno-vbeln.
* Chamado 268230 - Início 1
* IF sy-subrc = 0.
* MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
* APPEND t_estorno.
* CLEAR t_estorno.
* ENDIF.
* Chamado 268230 - Término 1
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
* >> Início da Exclusão <<
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbeln_vf = itab_zycee085_l-vbeln_vf.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
* Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio
* DELETE itab_zycee085_aux INDEX v_index.
DELETE itab_zycee085_aux WHERE
vbeln_va = itab_zycee085_aux-vbeln_va AND
aupos = itab_zycee085_aux-aupos AND
vbeln_vf = itab_zycee085_aux-vbeln_vf AND
posnr = itab_zycee085_aux-posnr AND
vbeln_vl = itab_zycee085_aux-vbeln_vl AND
posnl = itab_zycee085_aux-posnl.
* Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio
OK!!!!!
...
WHEN 'OC'.
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
IF sy-subrc = 0 .
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
APPEND t_estorno.
READ TABLE itab_estorno WITH KEY
kidno = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Início da Inclusão
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Inclusão
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
* Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio
...
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
* >> Início da Exclusão <<
READ TABLE itab_zycee085_aux WITH KEY
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
READ TABLE itab_zycee085_l WITH KEY
* >> Fim da Inclusão <<
vbeln_vf = itab_estorno-vbeln.
* >> Início da Exclusão <<
IF sy-subrc = 0.
MOVE-CORRESPONDING itab_zycee085_l TO t_estorno.
APPEND t_estorno.
CLEAR t_estorno.
ENDIF.
* >> Fim da Exclusão <<
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
* >> Início da Exclusão
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Exclusão
* >> Início da Inclusão <<
vbeln_vf = itab_zycee085_l-vbeln_vf.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_aux INDEX v_index.
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
ENDIF.
ENDIF.
ELSE.
...
READ TABLE itab_estorno WITH KEY
kidno = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Início da Inclusão <<
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_aux INDEX v_index.
ELSE.
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
READ TABLE itab_zycee085_aux WITH KEY
vbeln_vf = itab_estorno-vbeln.
* >> Início da Exclusão <<
IF sy-subrc = 0.
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
APPEND t_estorno.
CLEAR t_estorno.
ENDIF.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
* >> Início da Exclusão <<
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_aux INDEX v_index.
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Fim da Inclusão <<
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
ENDIF.
ENDLOOP.
ENDIF.
* Alteração de Sinal em casos de Ordem de Devolução
LOOP AT t_devolucao.
v_index = sy-tabix.
t_devolucao-vlme = - ( 1 ) * t_devolucao-vlme .
t_devolucao-ntgew = - ( 1 ) * t_devolucao-ntgew .
t_devolucao-brgew = - ( 1 ) * t_devolucao-brgew .
t_devolucao-vfob = - ( 1 ) * t_devolucao-vfob.
t_devolucao-fkimg = - ( 1 ) * t_devolucao-fkimg.
MODIFY t_devolucao INDEX v_index.
ENDLOOP.