CE PLUS - Nota 004717

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 13/09/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:16:33

Descrição da Nota: EMBARQUE - REGIME 14 - SELEÇÃO DA

Sintoma

Ao selecionar vários lotes de itens diferentes, o programa exibe Itens repetidos e o saldo errado no

Embarque.

 

 

 

Solução

O embarque de nacionalização, regime 14, deverá juntar todas as quantidades do mesmo pedido/item

quando selecionar vários lotes de vários itens.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

EMBARQUE DE NACIONALIZAÇÃO - REGIME 14

EMBARQUE: VINCULAÇÃO DE DA

CONTROLE DE SALDO DA DA POR LOTE

Informações Complementares

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

Nota Número 04717 Data: 13/09/2007 Hora: 17:51:59

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

 

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

Nota Número              : 04717

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00012

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

Referência às notas relacionadas:

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

 

01468  - 00001 - 6.0    - 00023  - CONTROLE DE SALDO DA DA POR LOTE

04023  - 00002 - 7.0    - 00001  - EMBARQUE: VINCULAÇÃO DE DA

04611  - 00003 - 7.0    - 00002  - EMBARQUE DE NACIONALIZAÇÃO - REGIME 14

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

EMBARQUE - REGIME 14 - SELEÇÃO DA

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

Palavras Chave:

LOTE; SALDO; SELEÇÃO

 

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

Objetos da nota:

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

          wa_cols-screen-input = '0'.

        ELSE.

          wa_cols-screen-input = '1'.

        ENDIF.

      ENDIF.

      MODIFY tc_ped-cols FROM wa_cols.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM selecionar_da.

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

  LOOP AT itab_zycit467.

    itab_zycit467_aux1 = itab_zycit467.

    APPEND itab_zycit467_aux1.

  ENDLOOP.

* << Fim da inclusão

  CLEAR   itab_zycit467.

  REFRESH itab_zycit467.

  IF NOT itab_zycit003[] IS INITIAL.

    IF NOT so_nrseq IS INITIAL.

      LOOP AT itab_zycit003 WHERE

                            nrseqda NE so_nrseq+3.

      ENDLOOP.

      IF sy-subrc IS INITIAL.

        MESSAGE s015 WITH text-254.

        EXIT.

...

 

...

            ENDIF.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

    DELETE itab_da WHERE qtd_lote IS initial.

    DESCRIBE TABLE itab_da LINES v_line.

    IF itab_da[] IS INITIAL.

      MESSAGE s015 WITH text-259 text-264.

      EXIT.

    ENDIF.

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

    LOOP AT itab_da.

      v_tabix = sy-tabix.

      LOOP AT itab_zycit467_aux1 WHERE ebeln     EQ itab_da-ebeln

                                 AND   ebelp     EQ itab_da-ebelp

                                 AND   nrseqlote EQ itab_da-nrseqlote.

        v_saldo = itab_da-qtd_lote - itab_zycit467_aux1-qtd_nac.

        IF v_saldo LE 0.

          DELETE itab_da INDEX v_tabix.

        ELSE.

          itab_da-qtd_lote = v_saldo.

          MODIFY itab_da INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

* << Fim da inclusão

    IF v_manual EQ 'X'.

      v_caller = 'SELECIONAR_RC'.

    ELSE.

      v_caller = 'SELECIONAR_DA'.

    ENDIF.

...

 

...

         itab_zycit443-adicao         TO    itab_zycit003-adicao ,

         /pws/zycit442-nrdi           TO    itab_zycit003-nrdi  .

        IF NOT itab_zycit443-qtd_da IS INITIAL.

          itab_zycit003-ntgew = (  itab_zycit443-ntgew /

                   itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.

        ENDIF.

        itab_zycit003-sld_da   =  itab_zycit443-qtd_sld =

           itab_zycit443-qtd_da - itab_zycit443-qtd_util -

           itab_zycit443-qtd_iten.

        APPEND itab_zycit003.

      ENDIF.

    ENDLOOP.

  ENDIF.

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

  DATA: BEGIN OF itab_zycit003_aux3 OCCURS 0,

          ebeln     LIKE /pws/zycit003-ebeln,

          ebelp     LIKE /pws/zycit003-ebelp,

          qtd_iten  LIKE /pws/zycit003-qtd_iten,

          ntgew     LIKE /pws/zycit003-ntgew,

          sld_da    LIKE /pws/zycit003-qtd_iten,

        END OF itab_zycit003_aux3.

  DATA: v_ntgew LIKE /pws/zycit003-ntgew.

  LOOP AT itab_zycit003.

    itab_zycit003_aux3-ebeln    = itab_zycit003-ebeln.

    itab_zycit003_aux3-ebelp    = itab_zycit003-ebelp.

    itab_zycit003_aux3-qtd_iten = itab_zycit003-qtd_iten.

    itab_zycit003_aux3-ntgew    = itab_zycit003-ntgew.

    COLLECT itab_zycit003_aux3.

    ENDLOOP.

  LOOP AT itab_zycit443.

    CLEAR itab_zycit003_aux3.

    READ TABLE itab_zycit003_aux3 WITH KEY

                                  ebeln = itab_zycit443-ebeln

                                  ebelp = itab_zycit443-ebelp.

    IF sy-subrc IS INITIAL.

      v_tabix = sy-tabix.

      itab_zycit003_aux3-sld_da = itab_zycit443-qtd_da -

                                  itab_zycit443-qtd_util -

                                  itab_zycit003_aux3-qtd_iten.

      IF itab_zycit003_aux3-sld_da > itab_zycit443-qtd_da.

        MESSAGE i015 WITH text-208.

        EXIT.

      ENDIF.

      MODIFY itab_zycit003_aux3 INDEX v_tabix.

    ENDIF.

  ENDLOOP.

  SORT itab_zycit003 BY ebeln ebelp.

  DELETE ADJACENT DUPLICATES FROM itab_zycit003

                  COMPARING  ebeln

                             ebelp.

  LOOP AT itab_zycit003.

    v_tabix = sy-tabix.

    CLEAR itab_zycit003_aux3.

    READ TABLE itab_zycit003_aux3 WITH KEY

                                  ebeln = itab_zycit003-ebeln

                                  ebelp = itab_zycit003-ebelp.

    itab_zycit003-qtd_iten = itab_zycit003_aux3-qtd_iten.

    itab_zycit003-ntgew    = itab_zycit003_aux3-ntgew.

    itab_zycit003-sld_da   = itab_zycit003_aux3-sld_da.

    MODIFY itab_zycit003 INDEX v_tabix.

  ENDLOOP.

* << Fim da inclusão

  CLEAR   itab_nac.

  REFRESH itab_nac.

  MOVE itab_da[] TO itab_da_aux[].

  CLEAR itab_da. REFRESH itab_da.

  LOOP AT itab_da_aux.

    DELETE itab_zycit467_del WHERE nrseqda EQ itab_da_aux-nrseqda

                             AND   nrseqlote EQ itab_da_aux-nrseqlote

                             AND   nrseq     EQ /pws/zycie001-nrseq

                             AND   ebeln     EQ itab_da_aux-ebeln

                             AND   ebelp     EQ itab_da_aux-ebelp.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001TOP

 

...

        INCLUDE STRUCTURE /pws/zyglt100.

DATA: END OF itab_zyglt100.

DATA: itab_zycit094 LIKE /pws/zycit094 OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF itab_zycit031 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit031.

DATA: END OF itab_zycit031.

DATA: BEGIN OF it_zycbe033_aux OCCURS 0.

        INCLUDE STRUCTURE it_zycbe033.

DATA:   belnr_f02 LIKE /pws/zycit466-belnr_f02,

      END   OF it_zycbe033_aux.

* >> Início da inclusão:

DATA: itab_zycit467_aux1 LIKE itab_zycit467 OCCURS 0

                         WITH HEADER LINE.

* << Fim da inclusão

DATA: BEGIN OF wa093,

            bukrs      LIKE /pws/zycie093-bukrs,

            meiotransp LIKE /pws/zycie093-meiotransp,

            paemb      LIKE /pws/zycie093-paemb     ,

            paispae    LIKE /pws/zycie093-paispae   ,

            padest     LIKE /pws/zycie093-padest    ,

            paispad    LIKE /pws/zycie093-paispad   ,

            embarca    LIKE /pws/zycie093-embarca   ,

      END OF wa093.

DATA: wa_zycit001  LIKE /pws/zycie001,

...