CE PLUS - Nota 000343

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Adiantamento

Data/Hora da Publicação: 25/11/2005 00:00:00

Data/Hora Última Alteração: 20/06/2011 11:55:51

Descrição da Nota: LIBERAÇÃO DO ADIANTAMENTO E PRESTAÇÃO DE CONTAS ACUSA O ERRO DE DIVISÃO.

Sintoma

Na liberação do adiantamento e prestação de contas o sistema acusa o erro de divisão(GSBER).

 

 

Solução

Verificar se campo está oculto antes de preenchê-lo.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

APROVAR ADIANTAMNETO OU PRESTAÇÃO ESTA MOVENDO DIVISÃO.

Informações Complementares

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

Nota Número 00343 Data: 25/11/2005 Hora: 11:50:54

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

 

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

Nota Número              : 00343

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00089

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

Referência às notas relacionadas:

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

 

00216  - 00001 - 6.0    - 00021  - APROVAR ADIANTAMNETO OU PRESTAÇÃO ESTA MOVENDO DIVISÃO.

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

LIBERAÇÃO DO ADIANTAMENTO E PRESTAÇÃO DE CONTAS ACUSA O ERRO DE DIVISÃO.

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

Palavras Chave:

LIBERAÇÃO DE ADIANTAMENTO - LIBERAÇÃO DE PRESTAÇÃO DE CONTAS

DIVISÃO - GSBER

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

Objetos da nota:

FUNC /PWS/ZYCI_TRANSACAO_F_43A

REPS /PWS/LZYCIGF2F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_F_43A

 

...

     LOOP AT t_contas.

       IF t_dados-d_prctr IS INITIAL.

         t_dados-c_prctr = t_dados-d_prctr = t_contas-d_prctr.

       ENDIF.

       v_index  = sy-tabix.

       v_index2 = sy-tabix + 1.

       IF t_contas-bschl EQ '31' OR t_contas-bschl EQ '21'.

         IF t_contas-bschl = '21'.

           v_chave_credito = '21'.

         ENDIF.

         v_tamanho = strlen( t_contas-d_newko ).

         MOVE t_contas-d_newko TO v_newko.

 *        WRITE v_newko TO v_newko_aux RIGHT-JUSTIFIED.

 *        DO v_tamanho TIMES.

 *          REPLACE space WITH '0' INTO v_newko_aux.

 *        ENDDO.

 *       Analiza string Credito

 *        CLEAR v_conta.

 *        SELECT akont

 *          INTO v_conta

 *          FROM lfb1

 *          WHERE lifnr = v_newko_aux.

 *        ENDSELECT.

*<<Inicio inclusão>>                                        <--- Nota

         if sy-saprl eq '46B'.

           WRITE v_newko TO v_newko_aux.

         else.

           WRITE v_newko TO v_newko_aux RIGHT-JUSTIFIED.

           DO v_tamanho TIMES.

             REPLACE space WITH '0' INTO v_newko_aux.

           ENDDO.

         endif.

*<<Fim    inclusão>>                                        <--- Nota

*       Analiza string Credito

         CLEAR v_conta.

*<<Inicio inclusão>>                                        <--- Nota

         SELECT akont

           INTO v_conta

           FROM lfb1

           WHERE lifnr = v_newko_aux

             and bukrs = t_dados-bukrs.

         ENDSELECT.

*<<Fim    inclusão>>                                        <--- Nota

        "Determina string de campos de credito

        PERFORM determina_string USING v_chave_credito

                                       t_dados-bukrs

                                       v_conta

                              CHANGING v_string_credito.

        "Verificando se campos obrigatórios estão preenchidos

        FREE itab_oculto.

        PERFORM trata_string_credito TABLES t_dados

                                           t_campo

                                           itab_oculto

                                    USING  v_string_credito.

*       Tela - Criar item Fornecedor - 0302   (CRÉDITO)

        WRITE: t_contas-wrbtr TO v_wrbtr CURRENCY t_dados-waers,

               t_dados-zfbdt TO v_zfbdt_char.

*               t_dados-d_valut to v_zfbdt_char.

        PERFORM bdc_screen USING 'SAPMF05A' '0302'.

 

...

 

 

        CLEAR t_contas_aux.

        READ TABLE t_contas_aux INDEX v_index2.

        PERFORM bdc_field  USING:

             'RF05A-NEWBS' t_contas_aux-bschl,   "Chv.lançto-débito

             'RF05A-NEWKO' t_contas_aux-d_newko. "Conta débito

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER' chave = 'C'.

        IF sy-subrc <> 0 AND NOT t_contas-d_gsber IS INITIAL.

          "Não está oculto

          PERFORM bdc_field USING 'BSEG-GSBER' t_contas-d_gsber.

        ENDIF.

*<<Inicio inclusão>>                                        <--- Nota

 

*        Condição pagto

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZTERM' chave = 'C'.

        IF sy-subrc <> 0.                  "Não está oculto

          PERFORM bdc_field USING 'BSEG-ZTERM' t_dados-zterm.

        ENDIF.

 

        PERFORM bdc_field  USING:

*             'BSEG-ZTERM' t_dados-zterm,    "Condição pagto

             'BSEG-ZFBDT' v_zfbdt_char.     "Data base

*<<Fim    inclusão>>                                        <--- Nota

 

        "Atribuicao

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZUONR' chave = 'C'.

        IF sy-subrc <> 0.                  "Não está oculto

          PERFORM bdc_field USING 'BSEG-ZUONR' t_contas-c_zuonr.

        ENDIF.

        "Texto item

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-SGTXT' chave = 'C'.

        IF sy-subrc <> 0.                  "Não está oculto

          PERFORM bdc_field USING 'BSEG-SGTXT' t_contas-c_sgtxt.

        ENDIF.

        "Divisão

       READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER' chave = 'C'.

...

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

Modificações efetuadas em REPS /PWS/LZYCIGF2F01

 

...

    APPEND p_itab_oculto.

    p_itab_oculto-campo = 'BSEG-GSBER'.

    p_itab_oculto-chave = 'C'.

    APPEND p_itab_oculto.

  ENDIF.

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

  IF v_string+32(1) = '+'.

    IF p_t_dados-c_gsber = space.

      CLEAR p_t_campo.

      READ TABLE p_t_campo WITH KEY campo = 'BSEG-GSBER'.

        IF sy-subrc <> 0.

          p_t_campo-mandt = p_t_dados-mandt.

          p_t_campo-campo = 'BSEG-GSBER'.

          p_t_campo-descricao = text-016.

          APPEND p_t_campo.

          RAISE campo_em_branco.

        ELSE.

          IF ( p_t_campo-conteudo = space ).

            RAISE campo_em_branco.

          ELSE.

            MOVE p_t_campo-conteudo TO p_t_dados-c_gsber.

            MODIFY p_t_dados TRANSPORTING c_gsber.

            DELETE p_t_campo INDEX sy-tabix.

            CLEAR p_t_campo.

          ENDIF.

        ENDIF.

    ENDIF.

  ELSEIF v_string+32(1) = '-'.

    p_itab_oculto-campo = 'BSEG-GSBER'.

    p_itab_oculto-chave = 'C'.

    APPEND p_itab_oculto.

  ENDIF.

* << Fim da inclusão

  IF v_string+9(1) = '+'.

    IF p_t_dados-c_kostl = space.

      CLEAR p_t_campo.

      READ TABLE p_t_campo WITH KEY campo = 'COBL-KOSTL'.

      IF sy-subrc <> 0.

...