標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (117) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (126) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2013年10月10日 星期四

BAPI_ACC_DOCUMENT_POST enhancement

緣起:
由於一般費用請款需要上傳tax,而user又要求tax要註明憑證資訊;偏偏 BAPI_ACC_DOCUMENT_POST根本就沒有tax 的item text欄位可以填...不得以之下,只好動用BAPI_ACC_DOCUMENT_POST的EXTENSION1這個table來輔助上傳tax item_text。

步驟:
1. 首先客製Z_ACC_DOCUMENT_POST,呼叫 BAPI_ACC_DOCUMENT_POST
FUNCTION Z_ACC_DOCUMENT_POST.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_DOCUMENTHEADER) TYPE  BAPIACHE09
*"     VALUE(I_CUSTOMERCPD) TYPE  BAPIACPA09 OPTIONAL
*"     VALUE(I_CONTRACTHEADER) TYPE  BAPIACCAHD OPTIONAL
*"  EXPORTING
*"     VALUE(E_OBJ_TYPE) TYPE  BAPIACHE09-OBJ_TYPE
*"     VALUE(E_OBJ_KEY) TYPE  BAPIACHE09-OBJ_KEY
*"     VALUE(E_OBJ_SYS) TYPE  BAPIACHE09-OBJ_SYS
*"  TABLES
*"      T_ACCOUNTGL STRUCTURE  BAPIACGL09 OPTIONAL
*"      T_ACCOUNTRECEIVABLE STRUCTURE  BAPIACAR09 OPTIONAL
*"      T_ACCOUNTPAYABLE STRUCTURE  BAPIACAP09 OPTIONAL
*"      T_ACCOUNTTAX STRUCTURE  BAPIACTX09 OPTIONAL
*"      T_CURRENCYAMOUNT STRUCTURE  BAPIACCR09
*"      T_CRITERIA STRUCTURE  BAPIACKEC9 OPTIONAL
*"      T_VALUEFIELD STRUCTURE  BAPIACKEV9 OPTIONAL
*"      T_EXTENSION1 STRUCTURE  BAPIACEXTC OPTIONAL
*"      T_RETURN STRUCTURE  BAPIRET2
*"      T_PAYMENTCARD STRUCTURE  BAPIACPC09 OPTIONAL
*"      T_CONTRACTITEM STRUCTURE  BAPIACCAIT OPTIONAL
*"      T_EXTENSION2 STRUCTURE  BAPIPAREX OPTIONAL
*"      T_REALESTATE STRUCTURE  BAPIACRE09 OPTIONAL
*"      T_ACCOUNTWT STRUCTURE  BAPIACWT09 OPTIONAL
*"----------------------------------------------------------------------
  data l_ok type char0001.

  call function 'BAPI_ACC_DOCUMENT_POST'
    exporting
      DOCUMENTHEADER    = I_DOCUMENTHEADER
      CUSTOMERCPD       = I_CUSTOMERCPD
      CONTRACTHEADER    = I_CONTRACTHEADER
    importing
      OBJ_TYPE          = E_OBJ_TYPE
      OBJ_KEY           = E_OBJ_KEY
      OBJ_SYS           = E_OBJ_SYS
    tables
      ACCOUNTGL         = T_ACCOUNTGL
      ACCOUNTRECEIVABLE = T_ACCOUNTRECEIVABLE
      ACCOUNTPAYABLE    = T_ACCOUNTPAYABLE
      ACCOUNTTAX        = T_ACCOUNTTAX
      CURRENCYAMOUNT    = T_CURRENCYAMOUNT
      CRITERIA          = T_CRITERIA
      VALUEFIELD        = T_VALUEFIELD
      EXTENSION1        = T_EXTENSION1
      RETURN            = T_RETURN
      PAYMENTCARD       = T_PAYMENTCARD
      CONTRACTITEM      = T_CONTRACTITEM
      EXTENSION2        = T_EXTENSION2
      REALESTATE        = T_REALESTATE
      ACCOUNTWT         = T_ACCOUNTWT.

  l_ok = '1'.

  loop at t_return.
    if t_return-type = 'E'.
      l_ok = '0'.
    endif.
  endloop.

  if l_ok = '1'.
    call function 'BAPI_TRANSACTION_COMMIT'
      exporting
        wait = 'X'.
  endif.
ENDFUNCTION.
 
 

2.上傳example
T_ACCOUNTGL
ITEMNO_ACC                     0000000010
GL_ACCOUNT                     67390010
ITEM_TEXT                      TEST -消耗品
DOC_TYPE                       SA
COMP_CODE                      1000
BUS_AREA                       1000
PSTNG_DATE                     2013/10/09
VALUE_DATE                     2013/10/09


T_ACCOUNTPAYABLE
ITEMNO_ACC                     0000000020
VENDOR_NO                      100696
COMP_CODE                      1000
BUS_AREA                       1000
PMNTTRMS                       M030
BLINE_DATE                     2013/10/09
ITEM_TEXT                      TEST -消耗品


T_ACCOUNTTAX
ITEMNO_ACC                     0000000030
GL_ACCOUNT                     12640010
TAX_CODE                       21
ITEMNO_TAX                     000010

T_CURRENCYAMOUNT
ITEMNO_ACC                     0000000010
CURRENCY_ISO                   TWD
AMT_DOCCUR                                        1,000.0000


ITEMNO_ACC                     0000000020
CURRENCY_ISO                   TWD
AMT_DOCCUR                                        1,050.0000-
DISC_BASE                                           210.0000-


ITEMNO_ACC                     0000000030
CURRENCY_ISO                   TWD
AMT_DOCCUR                                           50.0000
AMT_BASE                                          1,000.0000


T_EXTENSION1
FIELD1                             30
FIELD2                             SGTXT
FIELD3                             ZE10000000 1021001 86378995
FIELD4


3.copy SAMPLE_INTERFACE_RWBAPI01 to ZSAMPLE_INTERFACE_RWBAPI01,並implement code:
  data: wa like IT_ACCIT,
        i type i value 0,
        wa_e like EXTENSION,
        ind type sy-tabix.

  loop at EXTENSION into wa_e.
    read table IT_ACCIT with key POSNR = wa_e-field1 into wa.
    ind = sy-tabix.
    if wa_e-field2 eq 'SGTXT'.
      wa-SGTXT = wa_e-field3.
      modify IT_ACCIT from wa index ind.
      i = i + 1.
    endif.
  endloop.
  


4.客製IMG(在各client都要做,無法transport)





5. 結果







 

沒有留言:

張貼留言