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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM