CE PLUS - Nota 004429

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 15/08/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 10:51:34

Descrição da Nota: ELIMINAR ESTORNOS QUANDO O ITEM PRINCIPAL É ELIMINADO DO EMBARQUE

Sintoma

Quando excluímos do embarque, itens que possuam faturamentos com faturas de estorno e estornado, o

programa limpa o item da pasta "Ordens de Venda", porém não limpa os itens relacionados da pasta

"Estornos".

 

 

Solução

Incluída rotina para verificação e exclusão de itens de estorno/estornado referentes ao item

eliminado.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

EXCLUSÃO DE ITENS DA MESMA FATURA / REMESSA

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 04429 Data: 15/08/2007 Hora: 17:29:52

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 04429

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00008

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

03396  - 00001 - 6.0    - 00026  - EXCLUSÃO DE ITENS DA MESMA FATURA / REMESSA

----------------------------------------------------------------------------------------------------

ELIMINAR ESTORNOS QUANDO O ITEM PRINCIPAL É ELIMINADO DO EMBARQUE

----------------------------------------------------------------------------------------------------

Palavras Chave:

EMBARQUE, ESTORNO, ESTORNADO, ELIMINAR, ITEM, ORDEM DE VENDA, FATURA

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCE003F02

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCE003F02

 

...

          vbeln_vl TYPE /pws/zycet002-vbeln_vl,

          posnl    TYPE /pws/zycet002-posnl,

          vbeln_vf TYPE /pws/zycet002-vbeln_vf,

          posnr    TYPE /pws/zycet002-posnr,

        END OF itab_excluir.

  DATA: itab_002 LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE.

  DATA: v_index TYPE sy-tabix,

        v_subrc TYPE sy-subrc.

  IF p_marcados EQ 'X'.

    itab_002[] = itab_zycet002_tc[].

* >> Início da inclusão: FORM ELIMINA_ITENS_MARCADOS

    LOOP AT itab_002 INTO itab_002 WHERE mark = 'X'.

      LOOP AT itab_zycet002 INTO itab_zycet002

                            WHERE vbeln_vl EQ itab_002-vbeln_vl AND

                                  docnum   NE itab_002-docnum   AND

                                  mark     IS INITIAL.

        MOVE-CORRESPONDING itab_zycet002 TO itab_002.

        APPEND itab_002.

      ENDLOOP.

    ENDLOOP.

    DELETE ADJACENT DUPLICATES FROM itab_002

                  COMPARING vbeln_va

                            aupos

                            vbeln_vl

                            posnl

                            vbeln_vf

                            posnr

                            ebeln

                            ebelp.

* << Fim da inclusão

  ELSE.

    itab_002[] = itab_zycet002[].

  ENDIF.

  READ TABLE itab_002 WITH KEY mark = 'X'.

  IF sy-subrc NE 0.

    IF p_marcados EQ 'X'.

      MESSAGE s323(v1).

    ENDIF.

    EXIT.

  ELSE.

    LOOP AT itab_002 WHERE mark = 'X'.

      IF NOT itab_002-vbeln_vf IS INITIAL.

* >> Início da inclusão: FORM ELIMINA_ITENS_MARCADOS

        MODIFY itab_002 TRANSPORTING mark

                        WHERE vbeln_vf EQ itab_002-vbeln_vf AND

                        mark IS INITIAL.

* << Fim da inclusão

        MODIFY itab_002 TRANSPORTING mark

* >> Início da exclusão: FORM ELIMINA_ITENS_MARCADOS

                        WHERE vbeln_vf EQ itab_002-vbeln_vf.

* << Fim da exclusão

* >> Início da inclusão: FORM ELIMINA_ITENS_MARCADOS

                        WHERE vbeln_vl EQ itab_002-vbeln_vl AND

                        mark IS INITIAL.

* << Fim da inclusão

      ELSEIF NOT itab_002-vbeln_vl IS INITIAL.

        MODIFY itab_002 TRANSPORTING mark

* >> Início da exclusão: FORM ELIMINA_ITENS_MARCADOS

                        WHERE vbeln_vl EQ itab_002-vbeln_vl.

* << Fim da exclusão

* >> Início da inclusão: FORM ELIMINA_ITENS_MARCADOS

                        WHERE vbeln_vl EQ itab_002-vbeln_vl AND

                        mark IS INITIAL.

* << Fim da inclusão

      ENDIF.

    ENDLOOP.

  ENDIF.

  LOOP AT itab_002 WHERE mark = 'X'.

    IF p_marcados EQ 'X'.

      IF itab_002-staprop EQ 'A'.

        IF itab_002-vbeln_vl IS INITIAL.

          CALL FUNCTION 'MESSAGE_STORE'

               EXPORTING

                    arbgb = '/PWS/ZYCEM'

...