CE PLUS - Nota 003661

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 11/05/2007 00:00:00

Data/Hora Última Alteração: 18/02/2011 13:57:11

Descrição da Nota: COMPLEMENTO DO BOLETO - COMISSAO

Sintoma

No complemento do boleto, contabilizando a Comissão de contrato PT:

1- Levar a informação "Centro" para a Table Control.

2- Mapear a contabilização para informar o Local de Negócio nas partidas.

3- Mesmo alterando os campos no complemento do boleto, o documento não está sendo recontabilizando.

4- Estorno, o documento está apenas pré-editado, não deve fazer a FB08, apenas a FBV0.

 

 

Solução

1- Foi adicionado código para enviar o campo centro para a table control.

2- O campo local de negócio foi adicionado ao batch input.

3- O programa trata de maneira incorreta quando os dados do complemento sao alterados.

4- O programa trata o documento de IR de maneira incorreta, gerando os erros na fb08 e fbv0.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CONTABILIZAÇÃO DE COMISSÃO DE CONTRATO PARA PRÉ-PAGAMENTO

Informações Complementares

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

Nota Número 03661 Data: 11/05/2007 Hora: 13:45:41

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

 

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

Nota Número              : 03661

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00165

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

Referência às notas relacionadas:

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

 

02500  - 00001 - 6.0    - 00025  - CONTABILIZAÇÃO DE COMISSÃO DE CONTRATO PARA PRÉ-PAGAMENTO

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

COMPLEMENTO DO BOLETO - COMISSAO

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

Palavras Chave:

COMPLEMENTO DO BOLETO - COMISSAO

 

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

Objetos da nota:

FUNC /PWS/ZYCB_TRANSACAO_F_51D

FUNC /PWS/ZYCB_TRANSACAO_F_63

REPS /PWS/MZYCB110F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_51D

 

...

            'BKPF-BLART'  t_dados-blart,

            'BKPF-BUKRS'  v_bukrs,

            'BKPF-BUDAT'  v_budat,

            'BKPF-MONAT'  v_periodo,

            'BKPF-WAERS'  t_dados-waers,

            'BKPF-KURSF'  v_kursf,

            'BKPF-XBLNR'  t_dados-xblnr,

            'BKPF-BKTXT'  t_dados-bktxt,

            'RF05A-AUGTX' t_dados-augtx,

            v_xpos_comp   'X',

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_51D

            'BKPF-BRNCH'  t_dados-brnch,

* << Fim da inclusão

            'BDC_OKCODE'  '=SL'.

    write WA_zycbt089-num_selecao to v_selecao.

    if v_selecao gt v_xpos_belnr  .

      shift v_xpos_belnr left deleting leading  '0'.

      perform bdc_screen using 'SAPMF05A' '0710'.

      concatenate 'RF05A-XPOS1(' v_xpos_belnr ')' into v_xpos.

      perform bdc_field using:

            'RF05A-AGKON' t_dados-agkon,

            'RF05A-AGUMS' t_dados-agums,

            'RF05A-AGKOA' t_dados-agkoa,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_63

 

...

           'BSEG-SGTXT'  t_dados-c_sgtxt,

           'RF05V-NEWBS' '40'.

    IF NOT ( t_dados-newbs IS INITIAL ).

      PERFORM bdc_field  USING 'RF05V-NEWBS' t_dados-newbs.

    ENDIF.

    PERFORM bdc_field USING 'RF05V-NEWKO' t_dados-d_newko.

    IF NOT ( t_dados-umskz IS INITIAL ) .

      PERFORM bdc_field  USING 'RF05V-NEWUM' t_dados-umskz.

    ENDIF.

    PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_63

    clear lfbw.

* << Fim da inclusão

    SELECT SINGLE * FROM lfbw WHERE lifnr = t_dados-agkon

                                AND bukrs = t_dados-bukrs.

    IF lfbw-wt_subjct = 'X'.

      PERFORM bdc_screen USING 'SAPLFWTD' '0100'.

      PERFORM bdc_field  USING  'BDC_OKCODE'  '/00'.

    ENDIF.

    IF v_predic EQ 'X'.

      PERFORM bdc_screen USING 'SAPLF040' '0302'.

      PERFORM bdc_field  USING:

             'BSEG-WRBTR' v_wrbtr,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB110F01

 

...

    CLEAR itab_zycbt031_tc.

    SELECT SINGLE * FROM /pws/zycbt002

      WHERE nrseqc   = itab_zycbt064-nrchave

        AND tpparc   = itab_zycbt064-tpparc

        AND nrparc   = itab_zycbt064-nrparc.

    IF sy-subrc = 0.

      itab_zycbt031_tc-dtvencto       = /pws/zycbt002-dtvencto.

      itab_zycbt031_tc-tpparc         = /pws/zycbt002-tpparc.

      itab_zycbt031_tc-nrparc         = /pws/zycbt002-nrparc.

      itab_zycbt031_tc-dtincl         = /pws/zycbt002-dtinicio.

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

      itab_zycbt031_tc-werks          = /pws/zycbt002-KOSTL.

* << Fim da inclusão

      SELECT SINGLE * FROM /pws/zycbt001 INTO /pws/zycbt001

                     WHERE nrseqc   = /pws/zycbt002-nrseqc.

      IF sy-subrc EQ 0.

        itab_zycbt031_tc-gsber          = /pws/zycbt001-gsber.

        itab_zycbt031_tc-nrpagto        = /pws/zycbt001-nrcontr.

        itab_zycbt031_tc-bukrs          = /pws/zycbt001-bukrs.

      ENDIF.

      IF itab_zycbt064-vlmi GT 0.

        itab_zycbt031_tc-v_vlmi       = itab_zycbt064-vlmi.

      ELSE.

...

 

...

        ENDIF.

        IF /pws/zycbe031-belnr_pi IS INITIAL AND sy-index  EQ 2.

          CONTINUE.

        ENDIF.

        PERFORM reverse_document_fbv0_eo.

      ENDDO.

    ENDIF.

  ELSEIF /pws/zycbe031-statusp EQ 'C'.

    READ TABLE itab_zycbt133 WITH KEY codmod = 'E'.

    IF sy-subrc = 0

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

       AND itab_zycbt133-vaprov = 'X'

* << Fim da exclusão

       AND itab_zycbt133-vclear = 'X'.

      IF /pws/zycbe031-tpparc EQ 'C'.

        PERFORM executa_estorno.

        CHECK erro_bi IS INITIAL.

        DO 2 TIMES.

          IF sy-index EQ 1.

            v_doc = /pws/zycbe031-belnr_p.

          ELSE.

            v_doc = /pws/zycbe031-belnr_pi.

          ENDIF.

...

 

...

    itab_zycbe033-d_kostl = itab_zycbt002-kostl.

    itab_zycbe033-c_kostl = itab_zycbt002-kostl.

    itab_zycbe033-d_prctr = itab_zycbt002-prctr.

    itab_zycbe033-c_prctr = itab_zycbt002-prctr.

    itab_zycbe033-d_fipos = itab_zycbt002-fipos.

    itab_zycbe033-c_fipos = itab_zycbt002-fipos.

    itab_zycbe033-d_fictr = itab_zycbt002-fictr.

    itab_zycbe033-c_fictr = itab_zycbt002-fictr.

  ENDIF.

  PERFORM preenche_dados_batch.

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

  IF itab_zycbe033-brnch IS INITIAL.

    SELECT SINGLE * FROM t001w WHERE werks = itab_zycbt002-kostl.

    IF sy-subrc EQ 0.

      PERFORM verifica_pais_filial USING /pws/zycbt001-bukrs

                                         t001w-j_1bbranch.

      itab_zycbe033-brnch = t001w-j_1bbranch.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  IF sy-index EQ 1.

    PERFORM verify_null_field USING /pws/zycbe031-vlme

                                    'VLME'

                                    text-013.

    itab_zycbe033-wrbtr  = /pws/zycbe031-vlme.

    PERFORM verify_null_field USING /pws/zycbe031-vlmi

                                    'VLMI'

                                    text-013.

    itab_zycbe033-dmbtr  = /pws/zycbe031-vlmi.

  ELSE.

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

    check not itab_zycbt002-BELNR_IR_COMP is initial.

* << Fim da inclusão

    PERFORM verify_null_field USING /pws/zycbe031-vlir

                                    'VLME'

                                    text-013.

    itab_zycbe033-wrbtr  = /pws/zycbe031-vlir.

    PERFORM verify_null_field USING /pws/zycbe031-vlmiir

                                    'VLMI'

                                    text-013.

    itab_zycbe033-dmbtr  = /pws/zycbe031-vlmiir.

  ENDIF.

  APPEND itab_zycbe033.

...

 

...

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc EQ 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = text-248

                                        tabela = text-249

                                        cpochv = /pws/zycbe031-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        IF sy-index EQ 1.

          /pws/zycbe031-belnr_p   = itab_zycbt032-belnr.

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

          itab_zycbt031-dtcredpr = /pws/zycbe031-dtcredpr.

* << Fim da inclusão

        ELSE.

          /pws/zycbe031-belnr_pi  = itab_zycbt032-belnr.

        ENDIF.

        /pws/zycbe031-statusp   = 'C'.

        itab_zycbt031-v_process = 'X'.

        MODIFY /pws/zycbt031 FROM /pws/zycbe031.

        MODIFY itab_zycbt031 TRANSPORTING v_process

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

                                          dtcredpr

* << Fim da inclusão

          WHERE nrseq = /pws/zycbe031-nrseq.

        READ TABLE itab_zycbt133 WITH KEY codmod = 'E'.

        IF sy-subrc = 0.

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

          IF itab_zycbt133-vaprov = 'X'.

* << Fim da exclusão

            PERFORM executa_aprovacao.

          ENDIF.

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

        ENDIF.

* << Fim da exclusão

        IF sy-index EQ 1.

          itab_zycbt002-dtpagto       = /pws/zycbe031-dtcredpr.

        ELSE.

          itab_zycbt002-dtpagtoir     = /pws/zycbe031-dtcredir.

        ENDIF.

        IF /pws/zycbt074-fpagto_comis EQ 'L' AND

           itab_zycbt002-flat NE 'X'.

          PERFORM executa_f51_eo.

        ENDIF.

        MODIFY itab_zycbt002 TRANSPORTING belnr_comp dtpagto

...

 

...

    MESSAGE e261(sf) WITH '/PWS/ZYCB001_E'.

  ENDIF.

ENDFORM.

FORM anula_compens_com USING    p_doc.

  CLEAR v_erro_anulacomp.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = text-104.

  itab_zycbe033-tabela = '/PWS/ZYCBT031'.

  itab_zycbe033-cpochv = /pws/zycbe031-nrseq.

  itab_zycbe033-belnr  = p_doc.

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

  check not itab_zycbe033-belnr is initial.

* << Fim da inclusão

  PERFORM verify_null_field USING /pws/zycbe031-bukrs

                                  'BUKRS'

                                  text-010.

  itab_zycbe033-bukrs  = /pws/zycbe031-bukrs.

  IF sy-index EQ 1.

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

    itab_zycbe033-bldat  = /pws/zycbe031-dtcredpr.

    itab_zycbe033-budat  = /pws/zycbe031-dtcredpr.

* << Fim da exclusão

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

    itab_zycbe033-bldat  = itab_zycbT031-dtcredpr.

    itab_zycbe033-budat  = itab_zycbT031-dtcredpr.

* << Fim da inclusão

  ELSE.

    itab_zycbe033-bldat  = /pws/zycbe031-dtcredir.

    itab_zycbe033-budat  = /pws/zycbe031-dtcredir.

  ENDIF.

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  /pws/zycbe031-bukrs

                         CHANGING v_monat.

  PERFORM determina_ano USING itab_zycbe033-budat

                              /pws/zycbe031-bukrs

                     CHANGING v_ano.

...

 

...

            itab_zycbe033-c_valut = /pws/zycbe031-dtboleto.

        ENDCASE.

    ENDCASE.

  ENDLOOP.

ENDFORM.

FORM executa_f51_eo.

  itab_zycbe033-tcode  = text-066.

  itab_zycbe033-tabela = text-253.

  itab_zycbe033-cpochv = itab_zycbt002-nrseqc.

  PERFORM preenche_dados_batch.

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

  IF itab_zycbe033-brnch IS INITIAL.

    SELECT SINGLE * FROM t001w WHERE werks = itab_zycbt002-kostl.

    IF sy-subrc EQ 0.

      PERFORM verifica_pais_filial USING /pws/zycbt001-bukrs

                                         t001w-j_1bbranch.

      itab_zycbe033-brnch = t001w-j_1bbranch.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  itab_zycbe033-d_kostl = itab_zycbt002-kostl.

  itab_zycbe033-c_kostl = itab_zycbt002-kostl.

  itab_zycbe033-d_prctr = itab_zycbt002-prctr.

  itab_zycbe033-c_prctr = itab_zycbt002-prctr.

  itab_zycbe033-d_fipos = itab_zycbt002-fipos.

  itab_zycbe033-c_fipos = itab_zycbt002-fipos.

  itab_zycbe033-d_fictr = itab_zycbt002-fictr.

  itab_zycbe033-c_fictr = itab_zycbt002-fictr.

  PERFORM verify_null_field USING v_agkon

                                  'AGKON'

...

 

...

    AND   nrparc = /pws/zycbe031-nrparc

    AND   tpparc = /pws/zycbe031-tpparc.

ENDFORM.

FORM estorna_lancamento USING    p_docto.

  CLEAR v_erro_anulacomp.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = text-103.

  itab_zycbe033-tabela = '/PWS/ZYCBT031'.

  itab_zycbe033-cpochv = /pws/zycbe031-nrseq.

  itab_zycbe033-belnr  = p_docto.

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

  check not itab_zycbe033-belnr is initial.

* << Fim da inclusão

  PERFORM verify_null_field USING /pws/zycbe031-bukrs

                                  'BUKRS'

                                  text-010.

  itab_zycbe033-bukrs  = /pws/zycbe031-bukrs.

  IF sy-index EQ 1.

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

    itab_zycbe033-bldat  = /pws/zycbe031-dtcredpr.

    itab_zycbe033-budat  = /pws/zycbe031-dtcredpr.

* << Fim da exclusão

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

    itab_zycbe033-bldat  = itab_zycbT031-dtcredpr.

    itab_zycbe033-budat  = itab_zycbT031-dtcredpr.

* << Fim da inclusão

  ELSE.

    itab_zycbe033-bldat  = /pws/zycbe031-dtcredir.

    itab_zycbe033-budat  = /pws/zycbe031-dtcredir.

  ENDIF.

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  /pws/zycbe031-bukrs

                         CHANGING v_monat.

  PERFORM determina_ano USING itab_zycbe033-budat

                              /pws/zycbe031-bukrs

                     CHANGING v_ano.

...