Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 07/12/2005 00:00:00
Data/Hora Última Alteração: 21/02/2011 14:39:04
Descrição da Nota: ORDENS DE DEVOLUÇÃO CONSIDERADAS NO PROGRAMA DE CONTAINER
Sintoma
O programa está movendo ordem de devolução para a pasta container,enquanto não faturado o
item de devolução.
Após o faturamento o programa manteve a ordem de devolução na pasta container.
Solução
Atualizar o tratamento do status de cada item do embarque, através da aplicação da dessa nota de
atualização.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00415 Data: 07/12/2005 Hora: 15:25:22
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00415
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00022
Agrupamento : 00093
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00386 - 00001 - 6.0 - 00021 - ERRO NO EMBARQUE COM ESTORNO DA NOTA DE CRÉDITO
00396 - 00002 - 6.0 - 00022 - SALVAR EMBARQUE ENVIADO PARA O CÂMBIO
----------------------------------------------------------------------------------------------------
ORDENS DE DEVOLUÇÃO CONSIDERADAS NO PROGRAMA DE CONTAINER
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO CONTAINER EMBARQUE DEVOLUÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCE_TRATA_ORDEM
REPS /PWS/MZYCE003F01
REPS /PWS/SAPMZYCE003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_TRATA_ORDEM
...
ELSE.
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
READ TABLE itab_zycee085_l WITH KEY
vbeln_vf = itab_estorno-vbeln.
IF sy-subrc = 0.
MOVE-CORRESPONDING itab_zycee085_l TO t_estorno.
APPEND t_estorno.
CLEAR t_estorno.
ENDIF.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
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.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
* >> Início da Exclusão <<
DELETE itab_zycee085_aux INDEX v_index.
* >> Fim da Exclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
ENDIF.
ENDIF.
ENDIF.
WHEN 'OD' OR 'DR'.
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
...
READ TABLE itab_estorno WITH KEY
sfakn = itab_zycee085_aux-vbeln_vf
fksto = ' '.
IF sy-subrc EQ 0.
READ TABLE itab_zycee085_l WITH KEY
vbeln_vf = itab_estorno-vbeln
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
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.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
* >> Início da Exclusão <<
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.
* >> Fim da Exclusão <<
ENDIF.
ENDIF.
ELSE.
READ TABLE itab_vbfa WITH KEY
vbeln = itab_zycee085_aux-vbeln_va
posnn = itab_zycee085_aux-aupos.
IF sy-subrc = 0.
READ TABLE itab_zycee085 WITH KEY
vbeln_vf = itab_vbfa-vbelv
posnr = itab_vbfa-posnv.
IF sy-subrc = 0.
CLEAR : v_ntgew, v_brgew, v_vlme, v_fob, v_fkimg,
v_frete, v_seguro, v_despesa, v_agente,
v_desconto, v_acrescimo.
...
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.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
* >> Fim da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
...
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
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.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
* >> Início da Exclusão <<
DELETE itab_zycee085_aux INDEX v_index.
* >> Fim da Exclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
ENDIF.
ENDIF.
ELSE.
READ TABLE itab_vbfa WITH KEY
vbeln = itab_zycee085_aux-vbeln_va
posnn = itab_zycee085_aux-aupos.
...
WHEN 'OS'.
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.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-vbeln.
* >> Início da Exclusão <<
DELETE itab_zycee085_aux INDEX v_index.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_aux-vbeln_vf.
* >> Fim da Inclusão <<
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.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_estorno-vbeln.
DELETE itab_zycee085_l WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_estorno-sfakn.
DELETE itab_zycee085 WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_estorno-sfakn.
* >> Início da Exclusão <<
DELETE itab_zycee085_aux INDEX v_index.
* >> Fim da Exclusão <<
DELETE itab_zycee085_aux WHERE
vbeln_vf = itab_zycee085_l-vbeln_vf.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F01
...
ENDLOOP.
ENDLOOP.
LOOP AT itab_002 WHERE devolucao = 'X'.
LOOP AT itab_vbfa WHERE vbeln = itab_002-vbeln_vf AND
posnn = itab_002-posnr.
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart
bukrs = itab_zycet002-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.
ENDIF.
IF itab_zycet020-tipodoc EQ 'DR'.
READ TABLE itab_zycet002 WITH KEY vbeln_vl = itab_vbfa-vbelv
posnl = itab_vbfa-posnv.
IF NOT sy-subrc IS INITIAL.
READ TABLE itab_zycet002 WITH KEY vbeln_va = itab_vbfa-vbelv
aupos = itab_vbfa-posnv.
ENDIF.
ELSE.
* << Fim da inclusão
READ TABLE itab_zycet002 WITH KEY vbeln_va = itab_vbfa-vbelv
aupos = itab_vbfa-posnv.
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
ENDIF.
* << Fim da inclusão
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
v_vbeln_va = itab_zycet002-vbeln_va.
v_aupos = itab_zycet002-aupos.
* << Fim da inclusão
* >> Início da exclusão: FORM IDENTIFICA_STATUS_ITENS
LOOP AT itab_vbfa2 WHERE vbeln = itab_vbfa-vbelv AND
posnn = itab_vbfa-posnv.
* << Fim da exclusão
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
LOOP AT itab_vbfa2 WHERE vbeln = v_vbeln_va AND
posnn = v_aupos.
* << Fim da inclusão
READ TABLE itab_zycet002 WITH KEY vbeln_vf = itab_vbfa2-vbelv
posnr = itab_vbfa2-posnv.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
...
...
IF sy-subrc EQ 0.
v_fkimg = itab_vbrp-fkimg.
ENDIF.
LOOP AT itab_vbfa WHERE vbelv = itab_zycet002-vbeln_vf AND
posnv = itab_zycet002-posnr.
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart
bukrs = itab_zycet002-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.
ENDIF.
IF itab_zycet020-tipodoc EQ 'DR'.
READ TABLE itab_002 WITH KEY vbeln_vl = itab_vbfa-vbelv
posnl = itab_vbfa-posnv.
IF NOT sy-subrc IS INITIAL.
READ TABLE itab_002 WITH KEY vbeln_va = itab_vbfa-vbelv
aupos = itab_vbfa-posnv.
ENDIF.
ELSE.
* << Fim da inclusão
READ TABLE itab_002 WITH KEY vbeln_va = itab_vbfa-vbeln
aupos = itab_vbfa-posnn.
* >> Início da inclusão: FORM IDENTIFICA_STATUS_ITENS
ENDIF.
* << Fim da inclusão
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
READ TABLE itab_vbrp WITH KEY vbeln = itab_002-vbeln_vf
posnr = itab_002-posnr.
...
...
IF v_tipo_ov EQ 'V'.
v_vbeln = itab_zycet002-ebeln.
v_posnr = itab_zycet002-ebelp.
ENDIF.
ELSE.
* >> Início da inclusão: FORM ATUALIZA_FATURAMENTOS
IF itab_zycet020-tipodoc NE 'OD' and
itab_zycet020-tipodoc NE 'OC'.
* << Fim da inclusão
v_vbeln = itab_zycet002-vbeln_vl.
v_posnr = itab_zycet002-posnl.
* >> Início da inclusão: FORM ATUALIZA_FATURAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
v_nao_achou = 'X'.
LOOP AT itab_vbfa WHERE vbelv EQ v_vbeln AND
posnv EQ v_posnr.
READ TABLE itab_vbrk WITH KEY vbeln = itab_vbfa-vbeln.
...