CE PLUS - Nota 002656

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 08/12/2006 00:00:00

Data/Hora Última Alteração: 17/02/2011 14:40:08

Descrição da Nota: COMPOSIÇÃO TRAS ITENS DE EXPORTAÇÃO DUPLICADOS

Sintoma

O programa de composição esta trazendo itens de exportaçãorepetidos.

 

 

Solução

Completar a chave para que os itens não sejam duplicados na seleção.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTADORA)

AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALTERNATIV

Informações Complementares

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

Nota Número 02656 Data: 08/12/2006 Hora: 16:23:54

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

 

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

Nota Número              : 02656

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00142

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

Referência às notas relacionadas:

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

 

02251  - 00001 - 6.0    - 00025  - COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTA

02498  - 00002 - 6.0    - 00025  - AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALT

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

COMPOSIÇÃO TRAS ITENS DE EXPORTAÇÃO DUPLICADOS

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

Palavras Chave:

ITENS - EXPORTAÇÃO - COMPOSIÇÃO - DUPLICADO

/PWS/SAPMZYCI064

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

Objetos da nota:

REPS /PWS/MZYCI064F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

    ELSE.

      SELECT a~nrseqre a~nrre a~dtincl a~agrupado a~codenq1

             b~matnr b~vbeln_va c~vbeln_vf c~posnr b~vbeln_vl b~posnl

             b~gewei b~ntgew b~brgew b~waers

             b~vfob  b~vlagente  b~netpr b~seqagrupado b~codnrseq

             d~nrseqexp c~werks c~steuc c~vkorg_auft c~vtweg_auft

             INTO TABLE itab_re_final

             FROM ( /pws/zycet116 AS a INNER JOIN /pws/zycet118 AS b

             ON a~nrseqre EQ b~nrseqre

             INNER JOIN /pws/zycet002 AS c

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

             ON b~vbeln_va EQ c~vbeln_va AND b~vbeln_vf EQ c~vbeln_vf )

* << Fim da exclusão

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

              ON b~vbeln_va EQ c~vbeln_va

             AND b~vbeln_vf EQ c~vbeln_vf

             AND b~posnr    EQ c~posnr

             AND b~posnl    EQ c~posnl )

* << Fim da inclusão

               LEFT OUTER JOIN /pws/zycit282 AS d

                ON c~nrseq    EQ d~nrseqexp

               AND c~vbeln_va EQ d~vbeln_va

               AND c~vbeln_vl EQ d~vbeln_vl

               AND c~posnl    EQ d~posnl

             WHERE a~dtincl >= p_dtexp1 AND

                   a~dtincl <= p_dtexp2 AND

                   b~nrato  EQ space    AND

                   c~bukrs  EQ /pws/zycie258-bukrs AND

                   b~matnr  IN p_matnr.

...

 

...

        ENDIF.

      ENDIF.

      IF NOT itab_re_final[] IS INITIAL.

        IF /pws/zycit321-ltopc NE '1'.

          SELECT * FROM /pws/zycit281 INTO TABLE itab_zycit281

                 FOR ALL ENTRIES IN itab_re_final

                 WHERE matnr EQ itab_re_final-matnr.

          LOOP AT itab_zycit281.

            READ TABLE itab_zycit434 WITH KEY

                                     werks = itab_zycit281-werks.

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

            IF sy-subrc NE 0.

* << Fim da exclusão

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

            IF sy-subrc NE 0 AND

               /pws/zycie258-werks NE itab_zycit281-werks.

* << Fim da inclusão

              DELETE itab_zycit281 WHERE werks EQ itab_zycit281-werks.

            ENDIF.

          ENDLOOP.

        ELSE.

          CLEAR: itab_mvke, itab_zycit423.

          REFRESH: itab_mvke, itab_zycit423.

          SELECT * FROM mvke INTO TABLE itab_mvke

              FOR ALL ENTRIES IN itab_re_final

              WHERE matnr EQ itab_re_final-matnr

                AND vkorg EQ itab_re_final-vkorg

                AND vtweg EQ itab_re_final-vtweg.

          SELECT * FROM /pws/zycit423 INTO TABLE itab_zycit423.

          SELECT * FROM /pws/zycit421 INTO TABLE itab_zycit421.

          LOOP AT itab_zycit421.

            READ TABLE itab_zycit434 WITH KEY

                                     werks = itab_zycit421-werks.

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

            IF sy-subrc NE 0.

* << Fim da exclusão

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

            IF sy-subrc NE 0 AND

               /pws/zycie258-werks NE itab_zycit281-werks.

* << Fim da inclusão

              DELETE itab_zycit421 WHERE werks EQ itab_zycit421-werks.

            ENDIF.

          ENDLOOP.

        ENDIF.

        SELECT * FROM /pws/zycet003 INTO TABLE itab_zycet003

               FOR ALL ENTRIES IN itab_re_final

               WHERE nrseqre EQ itab_re_final-nrseqre.

        IF NOT itab_zycet003[] IS INITIAL.

          SELECT * FROM /pws/zycet001 INTO TABLE itab_zycet001

                 FOR ALL ENTRIES IN itab_zycet003

...

 

...

    SELECT c~nrseqdi b~nrseq b~ebeln b~ebelp

        FROM ( ( /pws/zycit003 AS a INNER JOIN /pws/zycit100 AS b

               ON  a~nrseq EQ b~nrseq

               AND a~ebeln EQ b~ebeln

               AND a~ebelp EQ b~ebelp )

               INNER JOIN /pws/zycit085 AS c

               ON b~nrseqdi EQ c~nrseqdi )

            INTO TABLE itab_sel_di

            FOR ALL ENTRIES IN itab_insumo_di

            WHERE a~matnr EQ itab_insumo_di-matnr

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

              AND c~dtuserc >= itab_det_exp-dtre.

* << Fim da exclusão

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

              AND c~dtuserc >= itab_det_exp-dtre

              AND c~nrdi NE space.

* << Fim da inclusão

  ENDIF.

  IF NOT itab_insumo_di[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

        FOR ALL ENTRIES IN itab_insumo_di

           WHERE

                 matnr      EQ itab_insumo_di-matnr.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    itab_zycit003_t2[] = itab_zycit003[].

    DELETE itab_zycit003_t2 WHERE nrseqd EQ space.

...

 

...

    IF /pws/zycit321-it_ge EQ 'X'.

      CLEAR: itab_res_imp-codcomp .

      itab_res_imp-grupo = itab_det_imp_final-grupo.

      itab_res_imp-desc_g = itab_det_imp_final-desc_g.

    ENDIF.

    IF v_moeda EQ 'X'.

      itab_res_imp-vlfob = itab_res_imp-qtd_vinc *

                           itab_det_imp_final-valor_u.

      itab_res_imp-waers = 'USD'.

    ELSE.

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

      itab_res_imp-vlfob = itab_det_imp_final-netpr.

* << Fim da exclusão

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

      itab_res_imp-vlfob = itab_res_imp-qtd_vinc *

                           itab_det_imp_final-netpr.

* << Fim da inclusão

      itab_res_imp-waers = itab_det_imp_final-waers.

      itab_res_imp-meins = itab_det_imp_final-meins.

    ENDIF.

    COLLECT itab_res_imp.

  ENDLOOP.

  SORT itab_det_imp_final BY dtdi ASCENDING.

  SORT itab_res_imp       BY codcomp.

  CLEAR: v_dtini, v_dtfim, v_idxtmp.

  LOOP AT itab_res_imp.

    v_idxtmp = sy-tabix.

...