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.
6.0
Produto:
Nota
Descriçã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.
...