Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Pagamento Antecipado
Data/Hora da Publicação: 25/11/2005 00:00:00
Data/Hora Última Alteração: 18/02/2011 09:27:58
Descrição da Nota: VERIFICAÇÃO DO STATUS DE CAMPO NO BATCH INPUT
Sintoma
O Batch Input não está identicando o campo GSBER NA F-43 do Pagamento Antecipado no complmento do
boleto.
Solução
Efetuadas consistências conforme o standard para o status do campo GSBER.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00350 Data: 25/11/2005 Hora: 16:37:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00350
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00021
Agrupamento : 00089
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
VERIFICAÇÃO DO STATUS DE CAMPO NO BATCH INPUT
----------------------------------------------------------------------------------------------------
Palavras Chave:
PAGAMENTO ANTECIPADO DIVISÃO COMPLEMENTO BOLETO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCM_TRANSACAO_F_43A
REPS /PWS/LZYCMGF2F01
REPS /PWS/LZYCMGF2TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCM_TRANSACAO_F_43A
FUNCTION /pws/zycm_transacao_f_43a .
...
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
DATA: wa_zycbt007 LIKE /pws/zycbt007.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
*-----------------------------------------------------------------------
* Processamento
*-----------------------------------------------------------------------
LOOP AT t_dados.
* >> Início da exclusão
* select single waersb from /pws/zycbt007 into (/pws/zycbt007-waersb).
* >> Fim da exclusão
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
SELECT SINGLE plcontas waersb FROM /pws/zycbt007
INTO (wa_zycbt007-plcontas,wa_zycbt007-waersb)
WHERE bukrs EQ t_dados-bukrs.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
CHECK t_dados-tcode = 'F-43'.
...
CLEAR v_tabix.
MOVE t_contas[] TO t_contas_aux[].
LOOP AT t_contas.
v_tabix = v_tabix + 1.
IF t_contas-bschl EQ '31'.
...
* Analiza string Credito
CLEAR v_conta.
SELECT akont
INTO v_conta
FROM lfb1
WHERE lifnr = v_newko_aux
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
AND bukrs = t_dados-bukrs.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
ENDSELECT.
"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.
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
* Carrega dados na t_dados da t_contas, que serão consistidos no
* trata_string
MOVE: t_contas-d_gsber TO t_dados-c_gsber,
t_contas-c_zuonr TO t_dados-c_zuonr,
t_contas-c_sgtxt TO t_dados-c_sgtxt.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
...
* Divisão
READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER' chave = 'C'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_gsber IS INITIAL.
PERFORM bdc_field USING 'BSEG-GSBER' t_contas-d_gsber.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Inicio
* >> Início da exclusão
* PERFORM bdc_field USING:
* 'BSEG-ZTERM' t_dados-zterm, "Condição pagto
* 'BSEG-ZFBDT' v_zfbdt_char. "Data base
* >> Fim da exclusão
* >> Início da inclusão
* Condição de Pagamento
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZTERM'
chave = 'C'.
IF sy-subrc <> 0 AND NOT t_dados-zterm IS INITIAL.
PERFORM bdc_field USING 'BSEG-ZTERM' t_dados-zterm.
ENDIF.
* Data Base
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'
chave = 'C'.
IF sy-subrc <> 0 AND NOT v_zfbdt_char = '00.00.0000'
AND NOT t_dados-zfbdt IS INITIAL.
PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt_char.
ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
* Atribuicao
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZUONR' chave = 'C'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-c_zuonr IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-ZUONR' t_contas-c_zuonr.
ENDIF.
* Texto item
READ TABLE itab_oculto WITH KEY campo = 'BSEG-SGTXT' chave = 'C'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-c_sgtxt IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-SGTXT' t_contas-c_sgtxt.
ENDIF.
* >> Início da exclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
** Divisão
* READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER'
* chave = 'C'.
* IF sy-subrc <> 0.
* PERFORM bdc_field USING 'BSEG-GSBER' t_contas-d_gsber.
* ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da exclusão
...
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ELSEIF t_contas-bschl EQ '29'.
...
* Analiza string Credito
CLEAR v_conta.
SELECT akont
INTO v_conta
FROM lfb1
WHERE lifnr = v_newko_aux
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
AND bukrs = t_dados-bukrs.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
ENDSELECT.
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF NOT v_agums IS INITIAL.
SELECT SINGLE skont FROM t074
INTO v_conta
WHERE ktopl = wa_zycbt007-plcontas
AND koart = 'K'
AND hkont = v_conta.
PERFORM define_tela USING t_dados-tcode
t_dados-bukrs
v_newko_aux
t_contas-bschl
CHANGING v_agums
v_tela.
ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
"Determina string de campos de crédito
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
* PERFORM determina_string USING v_chave_debito
PERFORM determina_string USING t_contas-bschl
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
t_dados-bukrs
v_conta
CHANGING v_string_debito.
"Verificando se campos obrigatórios estão preenchidos
FREE itab_oculto.
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
* Carrega dados na t_dados da t_contas, que serão consistidos no
* trata_string
MOVE: t_contas-d_zuonr TO t_dados-d_zuonr,
t_contas-d_sgtxt TO t_dados-d_sgtxt,
t_contas-aufnr TO t_dados-aufnr,
t_contas-d_gsber TO t_dados-d_gsber,
t_contas-d_kostl TO t_dados-d_kostl,
t_contas-d_prctr TO t_dados-d_prctr,
t_contas-ps_psp_pnr TO t_dados-ps_psp_pnr,
t_contas-ebeln TO t_dados-ebeln,
t_contas-ebelp TO t_dados-ebelp.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
PERFORM trata_string_debito3 TABLES t_dados
t_campo
itab_oculto
USING v_string_debito.
* Tela - Criar item conta do razão - 0300 (DÉBITO)
WRITE: t_dados-d_valut TO v_data_val_char,
t_contas-wrbtr TO v_wrbtr CURRENCY t_dados-waers.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
* PERFORM bdc_screen USING 'SAPMF05A' '0304'.
PERFORM bdc_screen USING 'SAPMF05A' v_tela.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING:
'BSEG-WRBTR' v_wrbtr. "Montante
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
WRITE: t_contas-wrbtr1 TO v_dmbtr CURRENCY wa_zycbt007-waersb.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING:
'BSEG-DMBTR' v_dmbtr. "Montante MI
* Data Vencimento
* >> Início da inclusão
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF NOT t_dados-zfbdt IS INITIAL.
WRITE: t_dados-zfbdt TO v_zfbdt_char.
PERFORM define_campo TABLES t_telas
USING 'BSEG-ZFBDT'
v_programa
v_tela.
* Se a variável v_invisible estiver preenchida é porque o campo
* está oculto na tela do BI
IF v_invisible EQ 0.
* Se v_input/v_required preenchidos é porque está obrigarório
IF v_input EQ 1 AND v_required EQ 1.
PERFORM bdc_field USING: 'BSEG-ZFBDT' v_zfbdt_char.
ENDIF.
ENDIF.
ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da inclusão
...
* Atribuição
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZUONR' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_zuonr IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-ZUONR' t_contas-d_zuonr.
ENDIF.
* Texto item
READ TABLE itab_oculto WITH KEY campo = 'BSEG-SGTXT' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_sgtxt IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-SGTXT' t_contas-d_sgtxt.
ENDIF.
* Ordem
READ TABLE itab_oculto WITH KEY campo = 'BSEG-AUFNR' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-aufnr IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-AUFNR' t_contas-aufnr.
ENDIF.
* Divisão
READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_gsber IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-GSBER' t_contas-d_gsber.
ENDIF.
* Centro de custo
READ TABLE itab_oculto WITH KEY campo = 'BSEG-KOSTL' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_kostl IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-KOSTL' t_contas-d_kostl.
ENDIF.
* Centro de lucro
READ TABLE itab_oculto WITH KEY campo = 'BSEG-PRCTR' chave = 'D'.
* >> Início da alteração
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF sy-subrc <> 0 AND NOT t_contas-d_prctr IS INITIAL.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da alteração
PERFORM bdc_field USING 'BSEG-PRCTR' t_contas-d_prctr.
ENDIF.
...
* >> Início da inclusão
* Documento de Compra
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF NOT t_contas-ebeln IS INITIAL.
PERFORM define_campo TABLES t_telas
USING 'BSEG-EBELN'
v_programa
v_tela.
* Se a variável v_invisible estiver preenchida é porque o campo
* está oculto na tela do BI
IF v_invisible EQ 0.
* Se v_input/v_required preenchidos é porque está obrigarório
IF v_input EQ 1 AND v_required EQ 1.
PERFORM bdc_field USING: 'BSEG-EBELN' t_contas-ebeln.
ENDIF.
ENDIF.
ENDIF.
* >> Fim da inclusão
* >> Início da exclusão
* READ TABLE itab_oculto WITH KEY campo = 'BSEG-EBELN'
* chave = 'D'.
* IF sy-subrc <> 0.
* PERFORM bdc_field USING 'BSEG-EBELN' t_contas-ebeln.
* ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da exclusão
* >> Início da inclusão
* Item
* Chamado 270727 - Renato - 23.11.2005 - Inicio
IF NOT t_contas-ebelp IS INITIAL.
PERFORM define_campo TABLES t_telas
USING 'BSEG-EBELP'
v_programa
v_tela.
* Se a variável v_invisible estiver preenchida é porque o campo
* está oculto na tela do BI
IF v_invisible EQ 0.
* Se v_input/v_required preenchidos é porque está obrigarório
IF v_input EQ 1 AND v_required EQ 1.
PERFORM bdc_field USING: 'BSEG-EBELP' t_contas-ebelp.
ENDIF.
ENDIF.
ENDIF.
* >> Fim da inclusão
* >> Início da exclusão
* READ TABLE itab_oculto WITH KEY campo = 'BSEG-EBELP'
* chave = 'D'.
* IF sy-subrc <> 0.
* PERFORM bdc_field USING 'BSEG-EBELP' t_contas-ebelp.
* ENDIF.
* Chamado 270727 - Renato - 23.11.2005 - Fim
* >> Fim da exclusão
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
ENDIF.
ENDLOOP.
...
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCMGF2F01
* >> Início da inclusão:
*&---------------------------------------------------------------------*
*& Form define_campo
*&---------------------------------------------------------------------*
* Objetivo: Determina Campos das telas do batch Input
*----------------------------------------------------------------------
* Parâmetros: ( --> Entrada ) ( <-- Saída ) ( <-> Tabelas )
*----------------------------------------------------------------------
* -->P_CAMPO text
* -->P_PROGRAMA text
* -->P_TELAS text
* <->P_TELA text
*----------------------------------------------------------------------
* Chamado Data Descrição
*----------------------------------------------------------------------
* 270727 23.11.2005 Codificação Inicial
*----------------------------------------------------------------------
FORM define_campo TABLES p_telas STRUCTURE wa_rpy_dyfatc
USING p_campo
p_programa
p_tela.
CLEAR: v_input,
v_output,
v_required,
v_invisible.
CALL FUNCTION 'RPY_DYNPRO_READ'
EXPORTING
progname = p_programa
dynnr = p_tela
TABLES
fields_to_containers = p_telas.
READ TABLE p_telas WITH KEY name = p_campo
type = 'TEMPLATE'.
CHECK sy-subrc = 0.
IF p_telas-input_fld EQ 'X'.
v_input = 1.
ELSE.
v_input = 0.
ENDIF.
IF p_telas-output_fld EQ 'X'.
v_output = 1.
ELSE.
v_output = 0.
ENDIF.
IF p_telas-requ_entry EQ 'X'
OR p_telas-requ_entry EQ 'O'
OR p_telas-requ_entry EQ 'R'.
v_required = 1.
ELSE.
v_required = 0.
ENDIF.
IF p_telas-invisible EQ 'X'.
v_invisible = 1.
ELSE.
v_invisible = 0.
ENDIF.
PERFORM zeile_modifizieren(sapff001)
USING p_telas-name p_telas-group1 p_telas-group2
p_telas-group3 p_telas-group4
CHANGING v_input v_output v_required
v_invisible.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCMGF2TOP
...
v_vlass like /pws/zycbt131-vlme,
v_belnr_f43 like bkpf-belnr,
v_variacao like /pws/zycbt112-vlme,
v_sy_tcode like sy-tcode,
v_syrepid LIKE sy-repid,
* >> Início da exclusão:
e_subrc LIKE sy-subrc.
* << Fim da exclusão
* >> Início da inclusão:
e_subrc LIKE sy-subrc,
v_input LIKE screen-input,
v_output LIKE screen-output,
v_required LIKE screen-required,
v_invisible LIKE screen-invisible,
v_tela LIKE sy-dynnr,
v_programa(40) TYPE c VALUE 'SAPMF05A'.
DATA:
t_telas TYPE rpy_dyfatc OCCURS 0 WITH HEADER LINE,
wa_rpy_dyfatc TYPE rpy_dyfatc OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão