CE PLUS - Nota 000350

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.

 

Versões Tratadas

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