本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
员工需要向公司借款,故走OA流程通过BAPI 创建员工借款凭证
BAPI: BAPI_ACC_DOCUMENT_CHECK 检查凭证有无错误
BAPI:BAPI_ACC_DOCUMENT_POST 创建财务凭证
DATA: is_import TYPE zfis_oa_loan_vou_create_import.
DATA: es_export TYPE zfis_oa_loan_vou_create_export.
DATA:
ls_documentheader LIKE bapiache09,
it_accountgl LIKE TABLE OF bapiacgl09 WITH HEADER LINE,
it_accounttax LIKE TABLE OF bapiactx09 WITH HEADER LINE,
it_criteria LIKE TABLE OF bapiackec9 WITH HEADER LINE,
it_valuefield LIKE TABLE OF bapiackev9 WITH HEADER LINE,
it_currencyamount LIKE TABLE OF bapiaccr09 WITH HEADER LINE,
it_return LIKE TABLE OF bapiret2 WITH HEADER LINE,
is_return TYPE bapiret2,
it_return_2 LIKE TABLE OF bapiret2 WITH HEADER LINE,
is_return_2 TYPE bapiret2,
it_receivers LIKE TABLE OF bdi_logsys WITH HEADER LINE,
it_fica_it LIKE TABLE OF bapiaccait WITH HEADER LINE,
it_accountpayable LIKE TABLE OF bapiacap09 WITH HEADER LINE,
it_paymentcard LIKE TABLE OF bapiacpc09 WITH HEADER LINE,
it_ext LIKE TABLE OF bapiacextc WITH HEADER LINE,
it_extension2 LIKE TABLE OF bapiparex WITH HEADER LINE,
ls_exten LIKE zfisacc_exte.
*-------------------------------------------------------------
CLEAR ls_documentheader.
ls_documentheader-username = sy-uname. "用户名
ls_documentheader-header_txt = is_import-bktxt. "抬头文本
ls_documentheader-comp_code = is_import-bukrs. "公司代码
ls_documentheader-doc_date = is_import-bldat. "凭证日期
ls_documentheader-pstng_date = is_import-budat. "过账日期
ls_documentheader-fisc_year = is_import-budat+0(4). "会会计年度
ls_documentheader-fis_period = is_import-budat+4(2). "会计期间
ls_documentheader-doc_type = 'KA'. "凭证类型
ls_documentheader-ref_doc_no = is_import-xblnr. "凭证参考
*-------------------------------------------------------------
"预留字段1 传入OA员工编号
CLEAR it_accountpayable.
it_accountpayable-itemno_acc = 1.
it_accountpayable-vendor_no = is_import-rev01. "OA员工工号
it_accountpayable-item_text = is_import-sgtxt. "行项目文本
it_accountpayable-bline_date = is_import-bldat. "到期日计算的基限日期
APPEND it_accountpayable.
*-------------------------------------------------------------
CLEAR it_accountgl.
it_accountgl-itemno_acc = 2.
it_accountgl-gl_account = is_import-hkont. "总账科目
it_accountgl-item_text = is_import-sgtxt. "行项目文本
IF is_import-prctr IS NOT INITIAL . "利润中心
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_import-prctr
IMPORTING
output = it_accountgl-profit_ctr.
ENDIF.
APPEND it_accountgl.
*-------------------------------------------------------------
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = 1.
it_currencyamount-currency = is_import-waers.
it_currencyamount-amt_doccur = is_import-wrbtr.
APPEND it_currencyamount.
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = 2.
it_currencyamount-currency = is_import-waers.
it_currencyamount-amt_doccur = - is_import-wrbtr.
APPEND it_currencyamount.
*-------------------------------------------------------------
*& EXTENSION2 扩展字段增强部分
"借方为H 过账码21 贷方为S 过账码 50
CLEAR: ls_exten,it_extension2.
ls_exten-posnr = 1. "凭证行项目
ls_exten-bschl = '21'. "凭证行项目过账码
it_extension2-structure = 'ZFISACC_EXTE'.
it_extension2-valuepart1 = ls_exten.
APPEND it_extension2.
CLEAR: ls_exten,it_extension2.
ls_exten-posnr = 2. "凭证行项目
ls_exten-rstgr = '1B4'. "凭证行项目原因代码
ls_exten-bschl = '50'. "凭证行项目过账码
it_extension2-structure = 'ZFISACC_EXTE'.
it_extension2-valuepart1 = ls_exten.
APPEND it_extension2.
*-------------------------------------------------------------
CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
EXPORTING
documentheader = ls_documentheader
TABLES
accountgl = it_accountgl
accountpayable = it_accountpayable
currencyamount = it_currencyamount
return = it_return
extension2 = it_extension2.
READ TABLE it_return WITH KEY type = 'E'.
IF sy-subrc = 0.
LOOP AT it_return INTO is_return WHERE type = 'E'.
CONCATENATE es_export-ifmsg is_return-message INTO es_export-ifmsg." 错误消息
ENDLOOP.
es_export-status = 'E'. "状态
ELSE.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = ls_documentheader
TABLES
accountgl = it_accountgl
accountpayable = it_accountpayable
currencyamount = it_currencyamount
return = it_return_2
extension2 = it_extension2.
READ TABLE it_return_2 WITH KEY type = 'E'.
IF sy-subrc = 0.
LOOP AT it_return_2 INTO is_return_2 WHERE type = 'E'.
CONCATENATE es_export-ifmsg is_return_2-message INTO es_export-ifmsg." 错误消息
ENDLOOP.
es_export-status = 'E'. "状态
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
READ TABLE it_return_2 INTO is_return_2 WITH KEY type = 'S'.
IF sy-subrc = 0.
es_export-busno = is_return_2-message_v2+0(10). "凭证
es_export-ifmsg = '员工借款凭证创建成功'. "消息
es_export-status = 'S'. "状态
ENDIF.
ENDIF.
ENDIF.