Вы находитесь на странице: 1из 4

*&---------------------------------------------------------------------*

*& Tabelas Internas


*&---------------------------------------------------------------------*
DATA: t_return
TYPE TABLE OF bapiret2,
t_bdc
TYPE bdcdata
OCCURS 0 WITH HEADER LINE,
t_msg
TYPE STANDARD TABLE OF bdcmsgcoll .
*&---------------------------------------------------------------------*
*& Declarao de workareas
*&---------------------------------------------------------------------*
DATA: wa_return
TYPE bapiret2,
wa_msg
LIKE LINE OF t_msg.
*&---------------------------------------------------------------------*
*& Declarao de Constantes
*&---------------------------------------------------------------------*
CONSTANTS: c_call
TYPE sy-tcode
VALUE 'F-64'. "Transao
*&---------------------------------------------------------------------*
*& SHDB
*&---------------------------------------------------------------------*
PERFORM insert_item USING:
'X' 'SAPLF040'
' ' 'BDC_CURSOR'
' ' 'BDC_OKCODE'
' ' 'BKPF-BLDAT'
' ' 'BKPF-BLART'
' ' 'BKPF-BUKRS'
' ' 'BKPF-BUDAT'
' ' 'BKPF-ZZDTLIM'
' ' 'BKPF-MONAT'
' ' 'BKPF-WAERS'
' ' 'BKPF-BKTXT'
' ' 'VBKPF-XBWAE'
' ' 'FS006-DOCID'
' ' 'RF05V-NEWBS'
' ' 'RF05V-NEWKO'
PERFORM
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '
' '

insert_item USING:
'SAPLF040'
'BDC_CURSOR'
'BDC_OKCODE'
'BSEG-WRBTR'
'BSEG-DMBTR'
'BSEG- ZZVUM'
'BSEG-ZBD1T'
'BSEG-ZFBDT'
'BSEG-ZLSCH'
'BSEG-ZUONR'
'BSEG-SGTXT'
'RF05V-NEWBS'
'RF05V-NEWKO'

PERFORM
'X'
' '
' '
' '
' '

insert_item USING:
'SAPLF040'
'BDC_CURSOR'
'BDC_OKCODE'
'BSEG-WRBTR'
'BSEG-DMBTR'

'0100'
,
'RF05V-NEWKO'
,
'/00'
,
wa_arq_in_ex-dt_doc
,
wa_arq_in_ex-sis_origem ,
vl_codcedente
,
wa_arq_in_ex-dt_doc
,
wa_arq_in_ex-dt_lim
,
wa_arq_in_ex-dt_doc+4(2),
vl_um
,
vl_bktxt
,
'X'
,
'*'
,
'01'
,
vl_parceiro
.
'0301'
,
'RF05V-NEWKO'
,
'/00'
,
wa_arq_in_ex-vlr_tot_um ,
vl_valorreais
,
wa_arq_in_ex-vlr_tot_um ,
vl_dtvenci
,
wa_arq_in_ex-dt_doc
,
wa_arq_in_ex-frm_pagto ,
wa_arq_in_ex-ind_receb ,
'3310'
,
'50'
,
wa_arq_in_ex-contab_contrapartida.
'0300'
'BSEG-SGTXT'
'ZK'
wa_arq_in_ex-vlr_tot_um
vl_valorreais

,
,
,
,
,

'
'
'
'
'
'

'
'
'
'
'
'

'BSEG- ZZVUM'
'BSEG-VALUT'
'BSEG-ZUONR'
'BSEG-SGTXT'
'BDC_SUBSCR'
'DKACB-FMORE'

wa_arq_in_ex-vlr_tot_um
,
wa_arq_in_ex-dt_doc
,
wa_arq_in_ex-ind_receb
,
'3310'
,
'SAPLKACB
0001BLOCK',
'X'
.

PERFORM
'X'
''
''
''
''
''

insert_item USING:
'SAPLKACB'
'BDC_OKCODE'
'COBL-RMVCT'
'BDC_SUBSCR'
'BDC_CURSOR'
'COBL-ZZQTANX'

PERFORM
'X'
''
''

insert_item USING:
'SAPLF040'
'330'
,
'BDC_CURSOR'
'BSEG-CCBTC' ,
'BDC_OKCODE'
'BP'
.

'2'
,
'ENTE'
,
'C04'
,
'SAPLKACB
'COBL-ZZTPDETCTB',
'0'.

9999BLOCK1',

PERFORM call_transaction USING c_call.


*----------------------------------------------------------------------*
FORM insert_item USING p_tipo TYPE c
p_nome TYPE c
p_valor TYPE any.
*----------------------------------------------------------------------*
CLEAR t_bdc.
t_bdc-dynbegin = p_tipo.
CASE p_tipo.
WHEN 'X'.
t_bdc-program = p_nome.
t_bdc-dynpro = p_valor.
WHEN ' '.
t_bdc-fnam
= p_nome.
t_bdc-fval
= p_valor.
CONDENSE t_bdc-fval.
ENDCASE.
APPEND t_bdc.
ENDFORM.

"INSERT_ITEM

*&---------------------------------------------------------------------*
*&
Form CALL_TRANSACTION
*&---------------------------------------------------------------------*
FORM call_transaction USING p_trans TYPE sy-tcode.
DATA: vl_opt

TYPE ctu_params

REFRESH t_msg.
CLEAR wa_msg.
MOVE: 'A' TO vl_opt-updmode ,
'P' TO vl_opt-dismode ,
'X' TO vl_opt-defsize ,
'' TO vl_opt-racommit.
CALL TRANSACTION p_trans USING t_bdc

OPTIONS FROM vl_opt


MESSAGES INTO t_msg.
LOOP AT t_msg INTO wa_msg.
CLEAR wa_return.
PERFORM return_error USING wa_msg-msgtyp wa_msg-msgid wa_msg-msgnr
wa_msg-msgv1 wa_msg-msgv2 wa_msg-msgv3
wa_msg-msgv4
CHANGING wa_return.
IF wa_return-type EQ 'E'.
* Tratar o erro ou ignorar a mesma
ENDIF.
ENDLOOP.
REFRESH t_bdc.
ENDFORM.

" CALL_TRANSACTION

*&---------------------------------------------------------------------*
*&
Form RETURN_ERROR
*&---------------------------------------------------------------------*
FORM return_error USING
p_msgty TYPE bdc_mart
p_msgid TYPE bdc_mid
p_msgnr TYPE bdc_mnr
p_msgv1 TYPE bdc_vtext1
p_msgv2 TYPE bdc_vtext1
p_msgv3 TYPE bdc_vtext1
p_msgv4 TYPE bdc_vtext1
CHANGING p_return TYPE bapiret2.
DATA:
wa_return1
wa_return2
DATA: v_msgno
v_msgv1
v_msgv2
v_msgv3
v_msgv4
MOVE: p_msgnr
p_msgv1
p_msgv2
p_msgv3
p_msgv4

TYPE bapiret1,
TYPE bapiret2.
TYPE sy-msgno,
TYPE sy-msgv1,
TYPE sy-msgv2,
TYPE sy-msgv3,
TYPE sy-msgv4.
TO v_msgno,
TO v_msgv1,
TO v_msgv2,
TO v_msgv3,
TO v_msgv4.

CALL FUNCTION 'BALW_BAPIRETURN_GET1'


EXPORTING
type
= p_msgty
cl
= p_msgid
number
= v_msgno
par1
= v_msgv1
par2
= v_msgv2
par3
= v_msgv3
par4
= v_msgv4
IMPORTING
bapireturn = wa_return1
EXCEPTIONS
OTHERS
= 9.
IF sy-subrc IS INITIAL.

MOVE-CORRESPONDING wa_return1 TO wa_return2.


p_return = wa_return2.
ELSE.
CLEAR p_return.
ENDIF.
ENDFORM.

" RETURN_ERROR

Вам также может понравиться