BAPI_ACC_DOCUMENT_POST 解决原因代码输入问题-利用BADI
(1) 复制函数SAMPLE_INTERFACE_RWBAPI01为Z SAMPLE_INTERFACE_RWBAPI01
*"---------------------------------------------------------------------- *"*"Local interface: *" TABLES *" IT_ACCIT STRUCTURE ACCIT *" IT_ACCCR STRUCTURE ACCCR *" RETURN STRUCTURE BAPIRET2 *" EXTENSION STRUCTURE BAPIACEXTC *" IT_ACCWT STRUCTURE ACCIT_WT *" CHANGING *" VALUE(DOCUMENT_HEADER) LIKE ACCHD STRUCTURE ACCHD *"---------------------------------------------------------------------- if sy-uname = 'ZHANGDQ'. LOOP AT EXTENSION. loop at IT_ACCIT . IT_ACCIT-RSTGR = EXTENSION-FIELD1. MODIFY IT_ACCIT . endloop. ENDLOOP. endif. ENDFUNCTION.
只是测试,所以我只针对我的用户有效。
(2) FIBF业务交易事件设置
菜单栏
设置-》处理函数模块-》SAP的一个应用程序
修改视图 每处理界面的应用函数模块:总览
处理 Ctr 应用 函数模块
CACS3003 IS-CS CACS_HR_FIND_EMPLOYEE
CACS8001 EA-ICM CACS_SAP00_PRC_8001
RWBABI01 ZSAMPLE_INTERFACE_RWBAPI01
(3) 程序调用BAPI: BAPI_ACC_DOCUMENT_POST
*&---------------------------------------------------------------------* *& Report ZFR_GL_DOCUMENT *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zfr_gl_document. DATA: gt_docheader LIKE TABLE OF bapiache09 WITH HEADER LINE, gt_accountgl LIKE TABLE OF bapiacgl09 WITH HEADER LINE, gt_acccust LIKE TABLE OF bapiacar09 WITH HEADER LINE, gt_amount LIKE TABLE OF bapiaccr09 WITH HEADER LINE, gt_extension LIKE TABLE OF bapiacextc WITH HEADER LINE, gt_return LIKE TABLE OF bapiret2 WITH HEADER LINE. DATA: gv_post_doc LIKE bapiache09-obj_key. PERFORM fill_header. * Fill in gl PERFORM fill_gl. PERFORM fill_amount. gt_EXTENSION-FIELD1 = 'A01'. APPEND gt_EXTENSION. CLEAR gt_EXTENSION. CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK' EXPORTING documentheader = gt_docheader TABLES accountgl = gt_accountgl currencyamount = gt_amount extension1 = gt_extension return = gt_return. READ TABLE gt_return WITH KEY type = 'E'. IF sy-subrc <> 0. CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST' EXPORTING documentheader = gt_docheader IMPORTING obj_key = gv_post_doc TABLES accountgl = gt_accountgl currencyamount = gt_amount" accountpayable = gt_accpay EXTENSION1 = gt_EXTENSION return = gt_return. COMMIT WORK AND WAIT. WRITE: 'Posting Document: ', gv_post_doc. ELSE. WRITE: 'Error!'. ENDIF. *&---------------------------------------------------------------------* *& Form fill_header *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM fill_header . CLEAR gt_docheader. gt_docheader-doc_date = sy-datum. gt_docheader-pstng_date = sy-datum. * gt_docheader-obj_type = 'IDOC'. * gt_docheader-obj_key = '$'. * gt_docheader-obj_sys = 'BGS1'. gt_docheader-bus_act = 'RFBU'. gt_docheader-username = sy-uname. gt_docheader-header_txt = 'Header Text'. gt_docheader-ref_doc_no = 'Reference Doc No'. gt_docheader-comp_code = '1100'. gt_docheader-doc_type = 'SA'. APPEND gt_docheader. ENDFORM. " fill_header *&---------------------------------------------------------------------* *& Form fill_amount *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM fill_amount . gt_amount-itemno_acc = '1'. gt_amount-currency = 'RMB'. gt_amount-amt_doccur = 10. APPEND gt_amount. gt_amount-itemno_acc = '2'. gt_amount-currency = 'RMB'. gt_amount-amt_doccur = -10. APPEND gt_amount. ENDFORM. " fill_amount *&---------------------------------------------------------------------* *& Form fill_gl *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM fill_gl . CLEAR gt_accountgl. gt_accountgl-gl_account = '1001010000'. gt_accountgl-itemno_acc = '1'. gt_accountgl-item_text = 'Item Text'. gt_accountgl-bus_area = ''. gt_accountgl-profit_ctr = ''. gt_accountgl-costcenter = ''. gt_accountgl-comp_code = '1100'. gt_accountgl-alloc_nmbr = '456'. gt_accountgl-COSTCENTER = '1020120300'. APPEND gt_accountgl. CLEAR gt_accountgl. gt_accountgl-gl_account = '1001010000'. gt_accountgl-itemno_acc = '2'. gt_accountgl-item_text = 'Item Text'. gt_accountgl-bus_area = ''. gt_accountgl-profit_ctr = ''. gt_accountgl-costcenter = ''. gt_accountgl-comp_code = '1100'. gt_accountgl-alloc_nmbr = '789'. gt_accountgl-COSTCENTER = '1020120300'. APPEND gt_accountgl. CLEAR gt_accountgl. ENDFORM. " fill_gl
(4) 查看运行结果
(5) 1
本人常年接收SAP运维和远程项目,ECC,S/4HANA,CRM,WDA.
远程人天可谈,终身售后,有活请联系V信:18925782767(问问题免费,欢迎交流!)
!!请关注本人技术分享公众号:SAP翔子(可扫头像二维码)
每天分享新知识,博客文章也会陆续整理并迁移至公众号,与您一起共同学习
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步