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.
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.