緣起:
由於一般費用請款需要上傳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. 結果
This man is too old to remember everything in his brain. Right now, he needs a place to write down what he has studied.
標籤
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)
沒有留言:
張貼留言