CE PLUS - Nota 003572

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 27/04/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:39:29

Descrição da Nota: UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO DE ITENS

Sintoma

O programa de composição não está utilizando a data de registro ao selecionar as DI¿s .

Não está excluindo os itens de importação corretamente na composição quando está utilizando itens

genéricos.

 

 

Solução

Ajustar o programa para utilizar a data de registro na seleção e montagem dos dados.

Ajustar exclusão dos itens para tratar itens genéricos.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

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

Informações Complementares

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

Nota Número 03572 Data: 27/04/2007 Hora: 14:12:52

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

 

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

Nota Número              : 03572

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00163

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

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

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

UTIILIZA DATA DE REGISTRO DA DI PARA BUSCA E AJUSTE NA EXCLUSÃO DE ITENS

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

Palavras Chave:

DATA - REGISTRO - SELEÇÃO - DI - EXCLUSÃO - ITENS - COMPOSIÇÃO

/PWS/SAPMZYCI064

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

Objetos da nota:

REPS /PWS/MZYCI064F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

    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~dtreg >= itab_det_exp-dtre

* << Fim da inclusão

              AND c~nrdi NE space.

  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[].

...

 

...

            SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041

                   FOR ALL ENTRIES IN itab_zycit042

                   WHERE nrseq    EQ itab_zycit042-nrseqnf

                     AND nfglobal EQ itab_zycit042-nfglobal

                     AND cancel   EQ space.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

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

  SORT itab_zycit085 BY dtuserc nrseqdi.

* << Fim da exclusão

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

  SORT itab_zycit085 BY dtreg nrseqdi.

* << Fim da inclusão

  SORT itab_zycit100 BY nrseqdi ebeln ebelp.

  REFRESH:  itab_ekpo_sort, itab_zycit100_sort.

  LOOP AT itab_zycit085.

    LOOP AT itab_zycit100 WHERE nrseqdi EQ itab_zycit085-nrseqdi.

      READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit100-ebeln

                                    ebelp = itab_zycit100-ebelp.

      READ TABLE itab_ekpo_sort WITH KEY ebeln = itab_ekpo-ebeln

                                         ebelp = itab_ekpo-ebelp.

      IF sy-subrc NE 0.

        itab_ekpo_sort = itab_ekpo.

...

 

...

                              AND vbeln_va = itab_det_exp_final-vbeln_va

                              AND vbeln_vf = itab_det_exp_final-vbeln_vf

                              AND posnr    = itab_det_exp_final-posnr.

          LOOP AT itab_di_final WHERE

                                nrseqre  = itab_comp_vinc_final-nrseqre

                            AND nrseq    = itab_comp_vinc_final-nrseq

                            AND codmat   = itab_comp_vinc_final-codmat

                            AND vbeln_va = itab_comp_vinc_final-vbeln_va

                            AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                            AND posnr    = itab_comp_vinc_final-posnr

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

                            AND codcomp  = itab_comp_vinc_final-codcomp.

* << Fim da exclusão

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

                            AND

                              ( codcomp = itab_comp_vinc_final-codcomp

                             OR grupo  EQ itab_comp_vinc_final-grupo ).

* << Fim da inclusão

            v_tabix2 = sy-tabix.

            LOOP AT itab_di_final_aux WHERE

                                  codcomp  EQ itab_di_final-codcomp AND

                                  nrdi     EQ itab_di_final-nrdi    AND

                                  ebeln    EQ itab_di_final-ebeln   AND

                                  ebelp    EQ itab_di_final-ebelp   AND

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

                                  docnum   EQ itab_di_final-docnum  AND

                                  itmnum   EQ itab_di_final-itmnum  AND

* << Fim da inclusão

                                  nrseqemb EQ itab_di_final-nrseqemb.

              IF

         ( itab_di_final_aux-nrseqre  NE itab_det_exp_final-nrseqre  OR

           itab_di_final_aux-vbeln_va NE itab_det_exp_final-vbeln_va OR

           itab_di_final_aux-vbeln_vf NE itab_det_exp_final-vbeln_vf OR

           itab_di_final_aux-posnr    NE itab_det_exp_final-posnr    OR

           itab_di_final_aux-nrseq    NE itab_det_exp_final-nrseq    OR

           itab_di_final_aux-codmat   NE itab_det_exp_final-codmat ).

                itab_di_final_aux-sdo_qtd  =

                     itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

...

 

...

                            AND vbeln_va = itab_det_exp-vbeln_va

                            AND vbeln_vf = itab_det_exp-vbeln_vf

                            AND posnr    = itab_det_exp-posnr.

        LOOP AT itab_di_final WHERE

                              nrseqre  = itab_comp_vinc_final-nrseqre

                          AND nrseq    = itab_comp_vinc_final-nrseq

                          AND codmat   = itab_comp_vinc_final-codmat

                          AND vbeln_va = itab_comp_vinc_final-vbeln_va

                          AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                          AND posnr    = itab_comp_vinc_final-posnr

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

                          AND codcomp  = itab_comp_vinc_final-codcomp.

* << Fim da exclusão

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

                            AND

                              ( codcomp = itab_comp_vinc_final-codcomp

                             OR grupo  EQ itab_comp_vinc_final-grupo ).

* << Fim da inclusão

          v_tabix2 = sy-tabix.

          LOOP AT itab_di_final_aux WHERE

                                   codcomp  EQ itab_di_final-codcomp AND

                                   nrdi     EQ itab_di_final-nrdi    AND

                                   ebeln    EQ itab_di_final-ebeln   AND

                                   ebelp    EQ itab_di_final-ebelp   AND

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

                                   docnum   EQ itab_di_final-docnum  AND

                                   itmnum   EQ itab_di_final-itmnum  AND

* << Fim da inclusão

                                   nrseqemb EQ itab_di_final-nrseqemb.

            IF ( itab_di_final_aux-nrseqre  NE itab_det_exp-nrseqre  OR

                 itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR

                 itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR

                 itab_di_final_aux-posnr    NE itab_det_exp-posnr    OR

                 itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

                 itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

              itab_di_final_aux-sdo_qtd  =

                   itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

              MODIFY itab_di_final_aux INDEX sy-tabix.

...

 

...

  IF pressed_tab_3c_2 EQ 'FS_VINC3'.

    itab_di_final_aux[] = itab_di_final[].

    LOOP AT itab_comp_vinc WHERE marc_cp EQ 'X'.

      LOOP AT itab_di_final WHERE

                            nrseqre  = itab_comp_vinc-nrseqre

                        AND nrseq    = itab_comp_vinc-nrseq

                        AND codmat   = itab_comp_vinc-codmat

                        AND vbeln_va = itab_comp_vinc-vbeln_va

                        AND vbeln_vf = itab_comp_vinc-vbeln_vf

                        AND posnr    = itab_comp_vinc-posnr

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

                        AND codcomp  = itab_comp_vinc-codcomp.

* << Fim da exclusão

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

                        AND ( codcomp = itab_comp_vinc-codcomp

                         OR   grupo  EQ itab_comp_vinc-grupo ).

* << Fim da inclusão

        v_tabix2 = sy-tabix.

        LOOP AT itab_di_final_aux WHERE

                                 codcomp  EQ itab_di_final-codcomp AND

                                 nrdi     EQ itab_di_final-nrdi    AND

                                 ebeln    EQ itab_di_final-ebeln   AND

                                 ebelp    EQ itab_di_final-ebelp   AND

                                 nrseqemb EQ itab_di_final-nrseqemb.

          IF ( itab_di_final_aux-nrseqre  NE itab_det_exp-nrseqre  OR

               itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR

               itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR

...

 

...

               itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

               itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

            itab_di_final_aux-sdo_qtd  =

                 itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

            MODIFY itab_di_final_aux INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

        DELETE itab_di_final_aux INDEX v_tabix2.

        DELETE itab_di_final INDEX v_tabix2.

      ENDLOOP.

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

      IF /pws/zycit321-it_ge IS INITIAL.

* << Fim da inclusão

      DELETE itab_comp_vinc_final WHERE

                                     nrseqre  = itab_comp_vinc-nrseqre

                                 AND nrseq    = itab_comp_vinc-nrseq

                                 AND codmat   = itab_comp_vinc-codmat

                                 AND vbeln_va = itab_comp_vinc-vbeln_va

                                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                                 AND posnr    = itab_comp_vinc-posnr

                                 AND codcomp  = itab_comp_vinc-codcomp.

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

      ELSE.

        DELETE itab_comp_vinc_final WHERE

                                      nrseqre = itab_comp_vinc-nrseqre

                                   AND nrseq  = itab_comp_vinc-nrseq

                                   AND codmat = itab_comp_vinc-codmat

                                 AND vbeln_va = itab_comp_vinc-vbeln_va

                                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                                   AND posnr  = itab_comp_vinc-posnr

                                  AND grupo   = itab_comp_vinc-grupo.

      ENDIF.

* << Fim da inclusão

      DELETE itab_comp_vinc.

    ENDLOOP.

    itab_di_final[] = itab_di_final_aux[].

    EXIT.

  ENDIF.

ENDFORM.

FORM trata_button_dall3.

  IF pressed_tab_3c_2 EQ 'FS_RESUMO3'.

    LOOP AT itab_resumo.

      itab_resumo-marc_l = ' '.

...

 

...

    APPEND itab_det_exp_final.

  ENDLOOP.

ENDFORM.

FORM monta_dis3.

  REFRESH   itab_di_final_aux.

  itab_di_final_aux[] = itab_di_final[].

  CLEAR itab_zycit085.

  READ TABLE itab_zycit085 WITH KEY

                             nrseqdi = itab_zycit100_sort-nrseqdi.

  CHECK sy-subrc EQ 0 AND

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

        itab_zycit085-dtuserc >= v_dtini AND

        itab_zycit085-dtuserc <= v_dtfim.

* << Fim da exclusão

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

        itab_zycit085-dtreg >= v_dtini AND

        itab_zycit085-dtreg <= v_dtfim.

* << Fim da inclusão

  IF  /pws/zycbt007-bukrs NE itab_zycit085-bukrs.

    SELECT SINGLE * FROM /pws/zycbt007

      WHERE bukrs EQ itab_zycit085-bukrs.

  ENDIF.

  READ TABLE itab_ekpo WITH KEY

                              ebeln = itab_zycit100_sort-ebeln

                              ebelp = itab_zycit100_sort-ebelp.

  READ TABLE itab_zycit100 WITH KEY

                              nrseq = itab_zycit100_sort-nrseq

                              ebeln = itab_zycit100_sort-ebeln

...

 

...

      itab_zycit100_sort-grupo      TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit085-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit085-nrdi            TO itab_di_final-reg_di      ,

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

      itab_zycit085-dtuserc         TO itab_di_final-dtdi        ,

* << Fim da exclusão

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

      itab_zycit085-dtreg           TO itab_di_final-dtdi        ,

* << Fim da inclusão

      itab_zycit100-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit100-adicao          TO itab_di_final-adicao      ,

      itab_ekpo-ebeln               TO itab_di_final-ebeln       ,

      itab_ekpo-ebelp               TO itab_di_final-ebelp       ,

      itab_zycit003-meins           TO itab_di_final-meins       ,

      itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      ,

      itab_zycit003-qtd_iten        TO itab_di_final-sdo_qtd     ,

      itab_zycit003-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit085-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit003-gewei           TO itab_di_final-gewei       ,

...

 

...

      itab_zycit100_sort-grupo      TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit085-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit085-nrdi            TO itab_di_final-reg_di      ,

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

      itab_zycit085-dtuserc         TO itab_di_final-dtdi        ,

* << Fim da exclusão

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

      itab_zycit085-dtreg           TO itab_di_final-dtdi        ,

* << Fim da inclusão

      itab_zycit100-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit100-adicao          TO itab_di_final-adicao      ,

      itab_ekpo-ebeln               TO itab_di_final-ebeln       ,

      itab_ekpo-ebelp               TO itab_di_final-ebelp       ,

      itab_zycit003-meins           TO itab_di_final-meins       ,

      itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      ,

      itab_di_final_aux-sdo_qtd     TO itab_di_final-sdo_qtd     ,

      itab_zycit003-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit085-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit003-gewei           TO itab_di_final-gewei       ,

...