2013年9月30日 星期一

F-02 的替代BAPI

1) BAPI_ACC_DOCUMENT_POST




2) BAPI_ACC_GL_POSTING_POST:
不過這只能使用posting key 40/50
40 : positive number
50 : negative number

http://scn.sap.com/message/1512737#1512737

data:
      obj_type like bapiache02-obj_type,
      obj_key like bapiache02-obj_key,
      obj_sys like bapiache02-obj_sys,
      documentheader like bapiache08,

      accountgl like bapiacgl08
                  occurs 0 with header line,
      currencyamount like bapiaccr08
                  occurs 0 with header line,
      return like bapiret2
                  occurs 0 with header line,
      extension1 like bapiextc
                  occurs 0 with header line,

      t_edidd  like edidd occurs 0 with header line,
      bapi_retn_info  like bapiret2 occurs 0 with header line.
data: error_flag.


*documentheader-obj_type     = 'BKPFF'.
*documentheader-obj_key      = '18000000002002004'.
*documentheader-obj_type     = 'BKPFF'.
*documentheader-obj_key      = '180000000010002004'.

*documentheader-obj_sys      = 'RD1CLNT200'.


documentheader-username     = sy-uname.
documentheader-header_txt   = 'Test using BAPI'.
documentheader-comp_code    = '1000'.

*documentheader-ac_doc_no
*documentheader-fisc_year    = '2005'.

documentheader-doc_date     = sy-datum.
documentheader-pstng_date   = sy-datum.

*documentheader-trans_date
*documentheader-fis_period

documentheader-doc_type    = 'SA'.


*documentheader-ref_doc_no
*documentheader-compo_acc
*documentheader-reason_rev



accountgl-itemno_acc = '1'.
accountgl-gl_account = '0000160100'.
accountgl-comp_code = '1000'.
accountgl-pstng_date = sy-datum.
accountgl-doc_type   = 'SA'.
accountgl-profit_ctr = '0000010000'.
append accountgl.

accountgl-itemno_acc = '2'.
accountgl-gl_account = '0000160100'.
accountgl-comp_code = '1000'.
accountgl-pstng_date = sy-datum.
accountgl-doc_type   = 'SA'.
accountgl-profit_ctr = '0000010000'.
append accountgl.


*AC_DOC_NO
*FISC_YEAR
*FIS_PERIOD
*accountgl-STAT_CON = 'X'.
*REF_KEY_1
*REF_KEY_2
*REF_KEY_3
*CUSTOMER
*VENDOR_NO
*ALLOC_NMBR
*ITEM_TEXT
*BUS_AREA
*COSTCENTER
*ACTTYPE
*ORDERID
*ORIG_GROUP
*COST_OBJ
*PROFIT_CTR
*PART_PRCTR
*WBS_ELEMENT
*NETWORK
*ROUTING_NO
*ORDER_ITNO


currencyamount-itemno_acc = '1'.
currencyamount-currency = 'GBP'.
currencyamount-amt_doccur = '100.00'.
append currencyamount.

currencyamount-itemno_acc = '2'.
currencyamount-currency = 'GBP'.
currencyamount-amt_doccur = '-100.00'.
append currencyamount.


  •   call BAPI-function in this system   
call function 'BAPI_ACC_GL_POSTING_POST'
     exporting
          documentheader = documentheader
  •     importing
  •          obj_type       = obj_type
  •          obj_key        = obj_key
  •          obj_sys        = obj_sys
     tables
          accountgl      = accountgl
          currencyamount = currencyamount
          return         = return
          extension1     = extension1
     exceptions
          others         = 1.
if sy-subrc <> 0.
  message e999(re) with  'Problem occured'.
else.
      loop at return.
          if not return is initial.
          clear bapi_retn_info.
          move-corresponding return to bapi_retn_info.
          if return-type = 'A' or return-type = 'E'.
            error_flag = 'X'.
          endif.
          append bapi_retn_info.
        endif.
      endloop.
  if error_flag = 'X'.
     message e999(re) with  'Problem occured'.
     rollback work.
  else.
  commit work.
  endif.
endif.


最後別忘了加上bapi_transaction_commit

沒有留言:

張貼留言