CE PLUS - Nota 004830

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Variação Cambial

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

Data/Hora Última Alteração: 22/02/2011 11:49:50

Descrição da Nota: CORREÇÃO NA GRAVAÇÃO DE DADOS DA VARIAÇÃO CAMBIAL

Sintoma

1) O valor da diferença não era gravado corretamente na /PWS/ZYCET009

2) O sinal dos valores de devolução não eram considerados

 

 

Solução

Foi ajustado o cálculo da diferença, para considerar todos os itens.

Apenas os itens de saída passam a ser selecionados.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

TRATAMENTO PARA MELHORAR PERFORMANCE NA VARIAÇÃO CAMBIAL

Informações Complementares

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

Nota Número 04830 Data: 26/09/2007 Hora: 13:44:24

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

 

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

Nota Número              : 04830

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00014

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

Referência às notas relacionadas:

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

 

04292  - 00001 - 7.0    - 00002  - ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

04560  - 00002 - 7.0    - 00002  - TRATAMENTO PARA MELHORAR PERFORMANCE NA VARIAÇÃO CAMBIAL

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

CORREÇÃO NA GRAVAÇÃO DE DADOS DA VARIAÇÃO CAMBIAL

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

Palavras Chave:

VARIAÇÃO CAMBIAL COMPLEMENTO ZYCET009

 

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

Objetos da nota:

REPS /PWS/ZYCEI007

REPS /PWS/ZYCER007

 

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

Modificações efetuadas em REPS /PWS/ZYCEI007

 

...

        dtemb      LIKE /pws/zycet001-dtemb,

        kurrf_bl   LIKE /pws/zycet001-kurrf_bl,

        nremb      LIKE /pws/zycet001-nremb,

        viatrans   LIKE /pws/zycet001-viatrans,

        werks      LIKE /pws/zycet001-werks,

        codportd   LIKE /pws/zycet001-codportd,

        dtcruze    LIKE /pws/zycet001-dtcruze,

        butxt      LIKE t001-butxt,

        land1      LIKE t001-land1,

      END OF it_zycet001.

* >> Início da exclusão:

DATA: BEGIN OF it_zycet002 OCCURS 0,

        nrseq      LIKE /pws/zycet002-nrseq,

        vbeln_va   LIKE /pws/zycet002-vbeln_va,

        vbeln_vf   LIKE /pws/zycet002-vbeln_vf,

        posnr      LIKE /pws/zycet002-posnr,

        vbeln_vl   LIKE /pws/zycet002-vbeln_vl,

        posnl      LIKE /pws/zycet002-posnl,

        docnum     LIKE /pws/zycet002-docnum,

        auart      LIKE /pws/zycet002-auart,

        waers      LIKE /pws/zycet002-waers,

        kurrf      LIKE /pws/zycet002-kurrf,

        zterm      LIKE /pws/zycet002-zterm,

        ktgrd      LIKE /pws/zycet002-ktgrd,

        bukrs      LIKE /pws/zycet002-bukrs,

        kunag      LIKE /pws/zycet002-kunag,

        gsber      LIKE /pws/zycet002-gsber,

        matnr      LIKE /pws/zycet002-matnr,

        werks      LIKE /pws/zycet002-werks,

        ktgrm      LIKE /pws/zycet002-ktgrm,

        prctr      LIKE /pws/zycet002-prctr,

        vkorg_auft LIKE /pws/zycet002-vkorg_auft,

        vlemb       LIKE /pws/zycet002-vlemb,

        nfnum      LIKE /pws/zycet002-nfnum,

        dtcont     LIKE /pws/zycet002-dtcont,

        dtnf       LIKE /pws/zycet002-dtnf,

        belnr5     LIKE /pws/zycet002-belnr5,

        shkzg      LIKE /pws/zycet002-shkzg,

        vrkme      LIKE /pws/zycet002-vrkme,

        vtweg_auft LIKE /pws/zycet002-vtweg_auft,

        spara      LIKE /pws/zycet002-spara,

        fkdat      LIKE /pws/zycet002-fkdat,

        aupos      LIKE /pws/zycet002-aupos,

        fkart      LIKE /pws/zycet002-fkart,

        vlfob      LIKE /pws/zycet002-vlfob,

        inco1      LIKE /pws/zycet002-inco1,

        fkimg      LIKE /pws/zycet002-fkimg,

        ntgew      LIKE /pws/zycet002-ntgew,

        brgew      LIKE /pws/zycet002-brgew,

        st_vd      LIKE /pws/zycet002-st_vd,

        st_rm      LIKE /pws/zycet002-st_rm,

        awkey      LIKE bkpf-awkey,

* << Fim da exclusão

* >> Início da inclusão:

DATA: BEGIN OF it_zycet002 OCCURS 0.

INCLUDE TYPE /pws/zycet002.

DATA:   awkey      LIKE bkpf-awkey,

* << Fim da inclusão

        kappl      LIKE /pws/zycet037-kappl,

        kschl      LIKE /pws/zycet037-kschl,

        kvsl1      LIKE /pws/zycet037-kvsl1,

        nfaver     TYPE c,

      END OF it_zycet002.

DATA: BEGIN OF it_zycet020 OCCURS 0,

        auart     LIKE /pws/zycet020-auart,

        bukrs     LIKE /pws/zycet020-bukrs,

        tipodoc   LIKE /pws/zycet020-tipodoc,

      END OF it_zycet020.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCER007

 

...

           WHERE nrseq IN s_emb.

  ENDIF.

  PERFORM trata_emb.

  IF NOT it_zycet001[] IS INITIAL.

    LOOP AT it_zycet001.

      ON CHANGE OF it_zycet001-bukrs.

        PERFORM verifica_autorizacao USING it_zycet001-bukrs

                                           '01'.

      ENDON.

    ENDLOOP.

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

    IF p_reimp EQ 'X'.

* << Fim da exclusão

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

    PERFORM seleciona_itens_embarque

            USING

* << Fim da inclusão

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

      SELECT nrseq

             vbeln_va

             vbeln_vf

             posnr

             vbeln_vl

             posnl

             docnum

             auart

             waers

             kurrf

             zterm

             ktgrd

             bukrs

             kunag

             gsber

             matnr

             werks

             ktgrm

             prctr

             vkorg_auft

             vlemb

             nfnum

             dtcont

             dtnf

             belnr5

             shkzg

             vrkme

             vtweg_auft

             spara

             fkdat

             aupos

             fkart

             vlfob

             inco1

             fkimg

             ntgew

             brgew

             st_vd

             st_rm

             FROM /pws/zycet002

             INTO TABLE it_zycet002

             FOR ALL ENTRIES IN it_zycet001

             WHERE nrseq  EQ it_zycet001-nrseq.

* << Fim da exclusão

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

               it_zycet001[]

               p_reimp

            CHANGING

               it_zycet002[].

* << Fim da inclusão

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

    ELSE.

      SELECT nrseq

             vbeln_va

             vbeln_vf

             posnr

             vbeln_vl

             posnl

             docnum

             auart

             waers

             kurrf

             zterm

             ktgrd

             bukrs

             kunag

             gsber

             matnr

             werks

             ktgrm

             prctr

             vkorg_auft

             vlemb

             nfnum

             dtcont

             dtnf

             belnr5

             shkzg

             vrkme

             vtweg_auft

             spara

             fkdat

             aupos

             fkart

             vlfob

             inco1

             fkimg

             ntgew

             brgew

             st_vd

             st_rm

             FROM /pws/zycet002

             INTO TABLE it_zycet002

             FOR ALL ENTRIES IN it_zycet001

             WHERE nrseq  EQ it_zycet001-nrseq

             AND dtnf EQ '00000000'

             AND dtcont EQ '00000000'.

    ENDIF.

* << Fim da exclusão

    IF NOT it_zycet002[] IS INITIAL.

      SELECT * FROM /pws/zycet012 INTO TABLE it_zycet012

        FOR ALL ENTRIES IN it_zycet002

        WHERE nrseq  =  it_zycet002-nrseq

        AND   belnr5 NE space

        AND   belnr8 EQ space.

      IF NOT it_zycet012[] IS INITIAL AND p_reimp IS INITIAL.

        LOOP AT it_zycet012.

          READ TABLE it_zycet002 WITH KEY nrseq = it_zycet012-nrseq.

          IF sy-subrc = 0.

...

 

...

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

  ELSE.

    PERFORM limpa_tabelas.

  ENDIF.

  PERFORM limpa_tabelas.

ENDFORM.

FORM fill_data_j1b1.

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

  DATA: wa_emitenf LIKE LINE OF it_emitenf[].

* << Fim da inclusão

  IF NOT it_zycee005[] IS INITIAL AND

     NOT it_zycet035-nfcref IS INITIAL.

    MOVE it_zycee005 TO it_zycee005_aux.

    APPEND it_zycee005_aux.

    CLEAR it_zycee005.

    REFRESH it_zycee005.

  ENDIF.

  it_zycee005-tabela = text-006.

  it_zycee005-nrseq = it_relat-nrseq.

  PERFORM verify_null_field USING it_relat-branch

...

 

...

    it_zycee005-taxtyp2 = it_zycet035-tpcod2.

  ENDIF.

  it_zycee005-docdat = sy-datlo.

  it_zycee005-pstdat = sy-datlo.

  PERFORM verify_null_field USING it_relat-docnum

                                  'DOCNUM'

                                   text-051.

  it_zycee005-docref = it_relat-docnum.

  it_zycee005-itmref = it_relat-posnr.

  it_zycee005-menge = 1.

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

  it_zycee005-netpr = abs( it_emitenf-difer ).

* << Fim da exclusão

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

  LOOP AT it_emitenf INTO wa_emitenf WHERE docnum = it_relat-docnum.

    it_zycee005-netpr = it_zycee005-netpr + ABS( wa_emitenf-difer ).

  ENDLOOP.

* << Fim da inclusão

  PERFORM busca_incoterm TABLES   it_zycet002

                         CHANGING it_zycee005-inco1

                                  it_zycee005-inco2.

  PERFORM busca_cond_pagto TABLES it_zycet002

                           CHANGING it_zycee005-zterm.

  APPEND it_zycee005.

  LOOP AT it_relat_aux2 WHERE nrseq  = it_relat-nrseq

                          AND branch = it_relat-branch.

    READ TABLE it_nfnum WITH KEY nrseq = it_relat_aux2-nrseq

                                 nfnum = it_relat_aux2-nfnum.

...

 

...

  ELSE.

    LOOP AT it_nfnum.

      it_zycee006-msg    = it_nfnum-nfnum.

      it_zycee006-indice = sy-tabix.

      APPEND it_zycee006.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM atualiza_tabelas_j1b1.

  READ TABLE it_zycet002 WITH KEY docnum = it_emitenf-docnum.

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

  READ TABLE it_zycee005 WITH KEY docnum = it_emitenf-docnum.

* << Fim da inclusão

  /pws/zycet009-nrseq    = it_relat-nrseq.

  /pws/zycet009-vbeln_va = it_zycet002-vbeln_va.

  /pws/zycet009-vbeln_vf = it_zycet002-vbeln_vf.

  /pws/zycet009-docnum   = it_relat-docnum.

  /pws/zycet009-docnum2  = it_zycet005-belnr.

  /pws/zycet009-nftype   = it_zycee005-nftype.

  /pws/zycet009-branch   = it_zycee005-branch.

  /pws/zycet009-parid    = it_zycee005-parid.

  /pws/zycet009-waers    = it_relat-waers.

  /pws/zycet009-bukrs    = it_zycee005-bukrs.

...

 

...

                 EXCEPTIONS

                      campo_em_branco = 1

                      periodo_fechado = 2

                      OTHERS          = 3.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDON.

  ENDLOOP.

  IF NOT it_zycee005_aux[] IS INITIAL.

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

    REFRESH it_zycee005.

    MOVE it_zycee005_aux[] TO it_zycee005[].

* << Fim da exclusão

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

    APPEND LINES OF it_zycee005_aux[] TO it_zycee005[].

* << Fim da inclusão

  ENDIF.

  IF sy-subrc = 0.

    CALL CUSTOMER-FUNCTION '002'.

    LOOP AT it_relat.

      CLEAR v_execute.

      IF NOT it_zycet035-nfcref IS INITIAL.

        IF it_relat-nrseq  NE r_nrseq1  OR

           it_relat-branch NE r_branch1 OR

           it_relat-docnum NE r_docnum1.

          MOVE 1 TO v_execute.

...

 

...

    ELSE.

      CASE itab_zyglt321-cpocb.

        WHEN 'NRSEQ'.

          p_campo = it_relat-nrseq.

        WHEN 'NREMB'.

          p_campo = it_relat-nremb.

      ENDCASE.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM seleciona_itens_embarque

     USING

       p_t_zycet001  LIKE it_zycet001[]

       p_reimpressao TYPE xfeld

     CHANGING

       p_t_zycet002  LIKE it_zycet002[].

  DATA: wa_zycet001 LIKE LINE OF p_t_zycet001[],

        it_itens TYPE STANDARD TABLE OF /pws/zycet002.

  LOOP AT p_t_zycet001 INTO wa_zycet001.

    CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'

         EXPORTING

              nrseq     = wa_zycet001-nrseq

         TABLES

              tab_saida = it_itens[]

         EXCEPTIONS

              OTHERS    = 1.

    IF p_reimpressao IS INITIAL.

      DELETE it_itens[] WHERE NOT dtnf IS initial

                           OR NOT dtcont IS initial.

    ENDIF.

    APPEND LINES OF it_itens[] TO p_t_zycet002[].

    CLEAR: it_itens[].

  ENDLOOP.

ENDFORM.

* << Fim da inclusão