CE PLUS - Nota 010197

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 26/05/2010 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:20:54

Descrição da Nota: PREENCHER O TEXTO NO LANÇAMENTO DA F-51 AO RECEBER A FATURA

Sintoma

Ao executar o recebimento da fatura não está sendo preenchido o texto contabil no lançamento da F-

51.

 

 

Solução

Ajustado programa para após o lançamento do documento contabil seja realizado a edição do mesmo para

a inclusão do texto contabil.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA

NOS PROCESSOS DE SERVIÇO, ONDE FAZEMOS O RECEBIMENTO PELA TRANSAÇÃO

Informações Complementares

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

Nota Número 10197 Data: 26/05/2010 Hora: 16:27:23

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

 

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

Nota Número              : 10197

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00023

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

Referência às notas relacionadas:

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

 

01380  - 00001 - 6.0    - 00023  - NOS PROCESSOS DE SERVIÇO, ONDE FAZEMOS O RECEBIMENTO PELA TRANSAÇ

04525  - 00002 - 7.0    - 00002  - AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA

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

PREENCHER O TEXTO NO LANÇAMENTO DA F-51 AO RECEBER A FATURA

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

Palavras Chave:

PREENCHER - TEXTO - CONTABIL - F51 - RECEBIMENTO - FATURA

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

  itab_zycbe033-c_prctr = itab_ekkn-prctr.

  itab_zycbe033-c_fipos = itab_ekkn-fipos.

  itab_zycbe033-c_fictr = itab_ekkn-fictr.

  IF /pws/zycit477 IS INITIAL.

    itab_zycbe033-brnch   = /pws/zycie006-j_1bbranch.

  ENDIF.

  APPEND itab_zycbe033.

  FREE itab_contas.

  v_totline = 1.

  LOOP AT itab_zycbt035.

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

    CLEAR: v_zuonr, v_sgtxt, v_bktxt, v_zuonr.

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

         EXPORTING

              v_nrfat   = /pws/zycie006-nrfat

              v_nrseq   = /pws/zycie001-nrseq

              v_codeven = '006M'

         IMPORTING

              v_xblnr   = v_xblnr

              v_zuonr   = v_zuonr

              v_sgtxt   = v_sgtxt.

    itab_zycbt035-d_zuonr = itab_zycbt035-c_zuonr = v_zuonr.

    itab_zycbt035-d_xblnr = itab_zycbt035-c_xblnr = v_xblnr.

    itab_zycbt035-d_sgtxt = itab_zycbt035-c_sgtxt = v_sgtxt.

* << Fim da inclusão

    IF /pws/zycit000-clucro_ia = ' '.

      CLEAR itab_zycbt035-werks.

    ENDIF.

    MOVE-CORRESPONDING itab_zycbt035 TO itab_contas.

    APPEND itab_contas.

    v_totline = v_totline + 1.

  ENDLOOP.

  PERFORM preenche_t_doc.

  LOOP AT itab_zycbt034.

    MESSAGE i016 WITH itab_zycbt034-descricao.

...

 

...

                                          tabela = '/PWS/ZYCIT006'

                                          cpochv = /pws/zycie006-nrseq

                                          tpmsg  = 'S'.

        IF sy-subrc EQ 0.

          MESSAGE i057 WITH itab_zycbt032-belnr.

          /pws/zycie006-statusp_f_51 = 'C'.

          /pws/zycie006-belnr_f_51  = itab_zycbt032-belnr.

          /pws/zycie006-dt_f_51     = sy-datum.

          MODIFY /pws/zycit006 FROM /pws/zycie006.

          v_f_51_ok = 'S'.

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

        IF NOT itab_zycbt032-belnr IS INITIAL.

          PERFORM preenche_atribuicao_f51 USING

          itab_zycbt032-belnr /pws/zycie006-bukrs v_modo_bi.

        ENDIF.

* << Fim da inclusão

        ELSE.

          LOOP AT itab_zycbt032.

            MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                              itab_zycbt032-msg+50(50).

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT itab_zycbt034.

          MESSAGE i016 WITH itab_zycbt034-descricao.

        ENDLOOP.

...

 

...

* >> Início da inclusão:

FORM preenche_atribuicao_f51 USING p_belnr p_bukrs p_modo_bi.

  DATA v_ano TYPE t001b-frye1.

  DATA: v_campo(20)                           .

  DATA:

        v_bktxt    LIKE bkpf-bktxt.

DATA      it_msg TYPE msg_struc OCCURS 10 WITH HEADER LINE.

DATA: BEGIN OF itab_atrib OCCURS 0.

DATA: buzei LIKE bseg-buzei,

      bschl LIKE bseg-bschl.

DATA: END OF itab_atrib.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs                = /pws/zycie006-bukrs

            v_date                 = /pws/zycie006-dt_f_51

       IMPORTING

            v_year                 = v_ano

       EXCEPTIONS

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

  IF sy-subrc  EQ  0.

    v_gjahr  = v_ano.

  ELSE.

    v_gjahr = /pws/zycie006-dt_f_51+0(4).

  ENDIF.

  CLEAR: it_bdc, it_msg. REFRESH: it_bdc, it_msg.

  SELECT buzei bschl FROM bseg INTO TABLE itab_atrib

         WHERE bukrs = p_bukrs

           AND belnr = p_belnr

           AND gjahr = v_gjahr.

  SORT itab_atrib BY buzei.

  SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013

         WHERE tabela = '/PWS/ZYCIT006'.

    LOOP AT it_zycbt035.

    CLEAR: v_zuonr, v_sgtxt, v_bktxt, v_xblnr.

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

         EXPORTING

              v_nrfat   = /pws/zycie006-nrfat

              v_nrseq   = /pws/zycie001-nrseq

              v_codeven = '006M'

         IMPORTING

              v_xblnr   = v_xblnr

              v_zuonr   = v_zuonr

              v_sgtxt   = v_sgtxt.

    it_zycbt035-d_zuonr = it_zycbt035-c_zuonr = v_zuonr.

    it_zycbt035-d_xblnr = it_zycbt035-c_xblnr = v_xblnr.

    it_zycbt035-d_sgtxt = it_zycbt035-c_sgtxt = v_sgtxt.

      MODIFY it_zycbt035.

    ENDLOOP.

    CLEAR: v_zuonr, v_sgtxt, v_bktxt, v_xblnr.

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

         EXPORTING

              v_nrfat   = /pws/zycie006-nrfat

              v_nrseq   = /pws/zycie001-nrseq

              v_codeven = '006M'

         IMPORTING

              v_xblnr   = v_xblnr

              v_zuonr   = v_zuonr

              v_sgtxt   = v_sgtxt

              v_bktxt   = v_bktxt.

    it_zycbt035-d_zuonr = it_zycbt035-c_zuonr = v_zuonr.

    it_zycbt035-d_xblnr = it_zycbt035-c_xblnr = v_xblnr.

    it_zycbt035-d_sgtxt = it_zycbt035-c_sgtxt = v_sgtxt.

    it_zycbe033-bktxt   = v_bktxt.

  PERFORM fill_bdc USING: 'X' 'SAPMF05L'      '0100',

                          ' ' 'BDC_CURSOR'    'RF05L-GJAHR',

                          ' ' 'RF05L-BELNR'   p_belnr,

                          ' ' 'RF05L-BUKRS'   p_bukrs,

                          ' ' 'RF05L-GJAHR'   v_gjahr,

                          ' ' 'BDC_OKCODE'    '/00'.

  LOOP AT itab_atrib.

    CONCATENATE 'RF05L-ANZDT' '(' itab_atrib-buzei ')'

                INTO v_campo.

    PERFORM fill_bdc USING: 'X' 'SAPMF05L'    '0700',

                            ' ' 'BDC_CURSOR'  v_campo,

                            ' ' 'BDC_OKCODE'  '=PK'.

    CLEAR v_campo.

    CASE itab_atrib-bschl.

      WHEN '34' OR '27' OR '21'.

        PERFORM fill_bdc USING: 'X' 'SAPMF05L'    '0302',

                                ' ' 'BSEG-ZUONR'  v_zuonr,

                                ' ' 'BSEG-SGTXT'  v_sgtxt,

                                ' ' 'BDC_OKCODE'  '=AB'.

      WHEN '39'.

        PERFORM fill_bdc USING: 'X' 'SAPMF05L'    '0304',

                                ' ' 'BSEG-ZUONR'  v_zuonr,

                                ' ' 'BSEG-SGTXT'  v_sgtxt,

                                ' ' 'BDC_OKCODE'  '=AB'.

      WHEN '40' OR '50'.

        PERFORM fill_bdc USING: 'X' 'SAPMF05L'    '0300',

                                ' ' 'BSEG-ZUONR'  v_zuonr,

                                ' ' 'BSEG-SGTXT'  v_sgtxt,

                                ' ' 'BDC_OKCODE'  '=AB'.

        PERFORM fill_bdc USING: 'X' 'SAPLKACB'    '0002',

                                ' ' 'BDC_OKCODE'  '=ENTE'.

    ENDCASE.

  ENDLOOP.

  PERFORM fill_bdc USING: 'X' 'SAPMF05L'    '0700',

                          ' ' 'BDC_OKCODE'  '=AE',

                          'X' 'SAPLSPO1'    '0100',

                          ' ' 'BDC_OKCODE'  '=YES'.

  IF p_modo_bi IS INITIAL.

    p_modo_bi = 'N'.

  ENDIF.

  CALL TRANSACTION 'FB02' USING    it_bdc

                          MODE     p_modo_bi

                          UPDATE   'S'

                          MESSAGES INTO it_msg.          "#EC CI_CALLTA

ENDFORM.

FORM fill_bdc USING p_tipo p_val1 p_val2.

  CLEAR it_bdc.

  IF NOT p_tipo IS INITIAL.

    it_bdc-program  = p_val1.

    it_bdc-dynpro   = p_val2.

    it_bdc-dynbegin = 'X'.

  ELSE.

    it_bdc-fnam = p_val1.

    it_bdc-fval = p_val2.

  ENDIF.

  APPEND it_bdc.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

* >> Início da inclusão:

DATA: it_bdc LIKE bdcdata OCCURS 0 WITH HEADER LINE,

      it_zycbt035 LIKE /pws/zycbe035 OCCURS 0 WITH HEADER LINE  ,

       it_zycbe033 LIKE /pws/zycbe033 OCCURS 0 WITH HEADER LINE  .

* << Fim da inclusão

DATA: END OF COMMON PART.