生成會記憑證

前臺T-CODE:FB01
調(diào)用BAPI : BAPI_ACC_DOCUMENT_POST

  • BAPI 行項目字段增強(qiáng)

T-CODE SE11 創(chuàng)建結(jié)構(gòu)半抱,該結(jié)構(gòu)包含了要增強(qiáng)的字段和行項目(該字段必須有)

Paste_Image.png

然后 T-CODE SE19 開始進(jìn)行增強(qiáng)實(shí)施(有字段是BAPI里面沒有需要新增時思犁,需要建結(jié)構(gòu)存儲。例:反記賬編碼棉磨,記賬碼...)
在 SE19 創(chuàng)建典型 BADI 輸入 ACC_DOCUMENT 步驟如圖

Paste_Image.png

進(jìn)入以下界面點(diǎn)擊增加学辱,然后選會計憑證:

Paste_Image.png

點(diǎn)擊保存后進(jìn)入以下界面點(diǎn)擊新建

Paste_Image.png

然后

Paste_Image.png

選中剛創(chuàng)建的


Paste_Image.png

然后回到 T-CODE SE19 界面策泣,編輯實(shí)施界面輸入剛才創(chuàng)建的實(shí)施名稱,點(diǎn)更改

Paste_Image.png

進(jìn)去后在實(shí)施累中雙擊第一個方法萨咕,將如下代碼復(fù)制進(jìn)去。

Paste_Image.png
Paste_Image.png

傳值要加前導(dǎo)0

DATA: wa_extension TYPE bapiparex,
ext_value(960) TYPE c, wa_accit TYPE accit,
l_ref TYPE REF TO data.
FIELD-SYMBOLS: <l_struc> TYPE ANY,```
```<l_field> TYPE ANY.
SORT c_extension2 BY structure.
LOOP AT c_extension2 INTO wa_extension.
AT NEW structure.
CREATE DATA l_ref TYPE (wa_extension-structure).
ASSIGN l_ref->* TO <l_struc>.
ENDAT.
CONCATENATE wa_extension-valuepart1 wa_extension-valuepart2
wa_extension-valuepart3 wa_extension-valuepart4
INTO ext_value.
MOVE ext_value TO <l_struc>.
ASSIGN COMPONENT 'POSNR' OF STRUCTURE <l_struc> TO <l_field>.
READ TABLE c_accit WITH KEY posnr = <l_field>
INTO wa_accit.
IF sy-subrc IS INITIAL.
MOVE-CORRESPONDING <l_struc> TO wa_accit.
MODIFY c_accit FROM wa_accit INDEX sy-tabix.
ENDIF.
ENDLOOP. ```

到此增強(qiáng)部分就做完了钙畔,剩下的只要在 BAPI_ACC_DOCUMENT_POST 中的擴(kuò)展表將參考結(jié)構(gòu)和
參考結(jié)構(gòu)建的工作區(qū)(里面存放了要增強(qiáng)的字段的數(shù)據(jù))分別賦給即可金麸。

* 調(diào)用代碼

```DATA:
GD_DOCUMENTHEADER LIKE BAPIACHE09,
GD_CUSTOMERCPD LIKE BAPIACPA09,
GD_FICA_HD LIKE BAPIACCAHD,
IT_ACCOUNTRECEIVABLE LIKE TABLE OF BAPIACAR09 WITH HEADER LINE, "客戶
IT_ACCOUNTGL LIKE TABLE OF BAPIACGL09 WITH HEADER LINE, "總賬科目
IT_ACCOUNTTAX LIKE TABLE OF BAPIACTX09 WITH HEADER LINE, "稅務(wù)項目
IT_CRITERIA LIKE TABLE OF BAPIACKEC9 WITH HEADER LINE, "計記帳:CO-PA 科目
分配特性
IT_VALUEFIELD LIKE TABLE OF BAPIACKEV9 WITH HEADER LINE, "會計記帳:CO-PA 科
目分配值字段
IT_CURRENCYAMOUNT LIKE TABLE OF BAPIACCR09 WITH HEADER LINE, "貨幣項目
IT_RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE, "返回參數(shù)
IT_RETURN1 LIKE TABLE OF BAPIRET2 WITH HEADER LINE, "返回參數(shù)
IT_RECEIVERS LIKE TABLE OF BDI_LOGSYS WITH HEADER LINE, "傳輸邏輯系統(tǒng)的結(jié)
構(gòu)
IT_FICA_IT LIKE TABLE OF BAPIACCAIT WITH HEADER LINE, "應(yīng)收和應(yīng)付附加合
同帳戶
IT_ACCOUNTPAYABLE LIKE TABLE OF BAPIACAP09 WITH HEADER LINE, "供應(yīng)商
IT_PAYMENTCARD LIKE TABLE OF BAPIACPC09 WITH HEADER LINE, "付款卡信息
IT_EXT LIKE TABLE OF BAPIACEXTC WITH HEADER LINE, "客戶退出 參數(shù)的容器
IT_RE LIKE TABLE OF BAPIACRE09 WITH HEADER LINE, "不動產(chǎn)科目分配數(shù)據(jù)
IT_EXT2 LIKE TABLE OF BAPIPAREX WITH HEADER LINE, "擴(kuò)展字段數(shù)據(jù)
IT_EXTENSION LIKE TABLE OF BAPIACEXTC WITH HEADER LINE. "客戶退出參數(shù)的容
器
DATA IT_EXTENSION2 LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE. "擴(kuò)展數(shù)據(jù)工作區(qū)
DATA: WA_ZEXTEN LIKE ZEXTEN. "ZEXTEN 就是剛才 SE11 創(chuàng)建的
那個結(jié)構(gòu)```

```"抬頭
GD_DOCUMENTHEADER-USERNAME = SY-UNAME.
GD_DOCUMENTHEADER-HEADER_TXT = '抬頭文本'. "抬頭文本
GD_DOCUMENTHEADER-COMP_CODE = '2110'. "公司代碼
GD_DOCUMENTHEADER-DOC_DATE = '20161002'. "憑證日期
GD_DOCUMENTHEADER-PSTNG_DATE = '20161002'. "過賬日期
GD_DOCUMENTHEADER-DOC_TYPE = 'KA'. "憑證類型
GD_DOCUMENTHEADER-BUS_ACT = 'RFBU'. "業(yè)務(wù)事務(wù)
GD_DOCUMENTHEADER-FIS_PERIOD = '10'. "會計期間
GD_DOCUMENTHEADER-REF_DOC_NO = ''. "參考憑證編號
"供應(yīng)商
IT_ACCOUNTPAYABLE-ITEMNO_ACC = '1'. "行項目編號
IT_ACCOUNTPAYABLE-VENDOR_NO = '0110100023'. "科目
IT_ACCOUNTPAYABLE-SP_GL_IND = '8'. "特殊總賬
IT_ACCOUNTPAYABLE-PMNTTRMS = 'Z030'. "付款條件
IT_ACCOUNTPAYABLE-BLINE_DATE = '20161002'. "付款基準(zhǔn)日期
IT_ACCOUNTPAYABLE-ALLOC_NMBR = ''. "分配編號
IT_ACCOUNTPAYABLE-ITEM_TEXT = '1'. "項目文本
APPEND IT_ACCOUNTPAYABLE.
* "客戶(客戶與供應(yīng)商類似,有客戶的就往客戶內(nèi)表增加值)
* IT_ACCOUNTRECEIVABLE-ITEMNO_ACC = ''.
* IT_ACCOUNTRECEIVABLE-CUSTOMER = ''.
* IT_ACCOUNTRECEIVABLE-GL_ACCOUNT = ''.
* IT_ACCOUNTRECEIVABLE-SP_GL_IND = ''.
* IT_ACCOUNTRECEIVABLE-PMNTTRMS = ''.
* IT_ACCOUNTRECEIVABLE-BLINE_DATE = ''.
* IT_ACCOUNTRECEIVABLE-ALLOC_NMBR = ''.
* IT_ACCOUNTRECEIVABLE-ITEM_TEXT = ''.
* APPEND IT_ACCOUNTRECEIVABLE.
"總賬科目
IT_ACCOUNTGL-ITEMNO_ACC = '2'. "行項目編號
IT_ACCOUNTGL-GL_ACCOUNT = '1001000000'. "科目號
IT_ACCOUNTGL-COSTCENTER = ''. "成本中心
IT_ACCOUNTGL-TAX_CODE = ''. "稅碼
IT_ACCOUNTGL-ALLOC_NMBR = ''. "分配編號
IT_ACCOUNTGL-ITEM_TEXT = ''. "項目文本
IT_ACCOUNTGL-ORDERID = ''. "銷售訂單號
IT_ACCOUNTGL-WBS_ELEMENT = ''. "WBS 元素
APPEND IT_ACCOUNTGL.

"總賬科目
IT_ACCOUNTGL-ITEMNO_ACC = '3'. "行項目編號
IT_ACCOUNTGL-GL_ACCOUNT = '8022000000'. "科目號
IT_ACCOUNTGL-COSTCENTER = '0021100501'. "成本中心
IT_ACCOUNTGL-TAX_CODE = 'J1'. "稅碼
IT_ACCOUNTGL-ALLOC_NMBR = ''. "分配編號
IT_ACCOUNTGL-ITEM_TEXT = ''. "項目文本
IT_ACCOUNTGL-ORDERID = ''. "銷售訂單號
IT_ACCOUNTGL-WBS_ELEMENT = ''. "WBS 元素
APPEND IT_ACCOUNTGL.
"貨幣
IT_CURRENCYAMOUNT-ITEMNO_ACC ='1'. "項目編號
IT_CURRENCYAMOUNT-CURRENCY = 'CNY'. "貨比碼
IT_CURRENCYAMOUNT-AMT_DOCCUR = '100'. "金額
IT_CURRENCYAMOUNT-EXCH_RATE =''. "匯率
APPEND IT_CURRENCYAMOUNT.
"貨幣
IT_CURRENCYAMOUNT-ITEMNO_ACC ='2'. "項目編號
IT_CURRENCYAMOUNT-CURRENCY = 'CNY'. "貨比碼
IT_CURRENCYAMOUNT-AMT_DOCCUR = '-200'. "金額
IT_CURRENCYAMOUNT-EXCH_RATE =''. "匯率
APPEND IT_CURRENCYAMOUNT.
"貨幣
IT_CURRENCYAMOUNT-ITEMNO_ACC ='3'. "項目編號
IT_CURRENCYAMOUNT-CURRENCY = 'CNY'. "貨比碼
IT_CURRENCYAMOUNT-AMT_DOCCUR = '100'. "金額
IT_CURRENCYAMOUNT-EXCH_RATE ='0'. "匯率
APPEND IT_CURRENCYAMOUNT.
"稅額
DATA T_TAX_INFO TYPE STANDARD TABLE OF RTAX1U15 WITH HEADER LINE. "稅務(wù)代碼的
稅率和稅收金額
DATA:L_INDEX TYPE SY-TABIX. "內(nèi)部表的行索引
DATA:L_DMBTR LIKE BSEG-DMBTR. "金額
DATA ZJE TYPE BSEG-DMBTR .
ZJE = 100 .
CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT'
EXPORTING
I_BUKRS = '2110' "公司代碼

I_MWSKZ = 'J1' "稅碼
I_WAERS = 'CNY' "幣種
I_WRBTR = ZJE "金額
TABLES
T_MWDAT = T_TAX_INFO. "稅務(wù)代碼的稅率和稅收金額
DATA LS_CURRENCYAMOUNT LIKE LINE OF IT_CURRENCYAMOUNT. "貨幣項目
DATA LS_ACCOUNTTAX LIKE LINE OF IT_ACCOUNTTAX. "稅務(wù)項目
DESCRIBE TABLE IT_CURRENCYAMOUNT LINES L_INDEX. "計算貨幣項目行數(shù)
LOOP AT T_TAX_INFO.
"向稅額表中填充數(shù)據(jù)
CLEAR LS_ACCOUNTTAX. "稅務(wù)項目
LS_ACCOUNTTAX-ITEMNO_ACC = '4'. "會計憑證行項目編號(有稅的會
自動新增一行行項目)
LS_ACCOUNTTAX-TAX_CODE = 'J1'. "稅碼
LS_ACCOUNTTAX-ACCT_KEY = T_TAX_INFO-KTOSL. "事務(wù)關(guān)鍵字
LS_ACCOUNTTAX-COND_KEY = T_TAX_INFO-KSCHL. "條件類型
LS_ACCOUNTTAX-TAXJURCODE = T_TAX_INFO-TXJCD. "地區(qū)稅務(wù)代碼
LS_ACCOUNTTAX-TAXJURCODE_DEEP = T_TAX_INFO-TXJCD_DEEP. "地區(qū)稅務(wù)代碼
LS_ACCOUNTTAX-TAXJURCODE_LEVEL = T_TAX_INFO-TXJLV. "稅務(wù)法規(guī)級別
APPEND LS_ACCOUNTTAX TO IT_ACCOUNTTAX. "稅務(wù)項目
"向金額表中填入相應(yīng)的稅額
CLEAR LS_CURRENCYAMOUNT. "貨幣項目
LS_CURRENCYAMOUNT-ITEMNO_ACC = LS_ACCOUNTTAX-ITEMNO_ACC. "會計憑證行項目編號
LS_CURRENCYAMOUNT-CURRENCY = 'CNY'. "貨幣碼
LS_CURRENCYAMOUNT-AMT_DOCCUR = T_TAX_INFO-WMWST. "用憑證貨幣表示的稅收金
額
LS_CURRENCYAMOUNT-AMT_BASE = T_TAX_INFO-KAWRT. "條件基價
APPEND LS_CURRENCYAMOUNT TO IT_CURRENCYAMOUNT. "貨幣項目
L_DMBTR = L_DMBTR + T_TAX_INFO-KAWRT. "金額 = 金額 + 條件基價
ENDLOOP.
"修正自動計算稅額行的金額(由于實(shí)際計算出的不含稅金額與系統(tǒng)計算會出現(xiàn)誤
差揍魂,故手工計算不含稅金額)
READ TABLE IT_CURRENCYAMOUNT INTO LS_CURRENCYAMOUNT WITH KEY ITEMNO_ACC = 1.
IF SY-SUBRC = 0.
LS_CURRENCYAMOUNT-AMT_DOCCUR = L_DMBTR. "金額
MODIFY IT_CURRENCYAMOUNT FROM LS_CURRENCYAMOUNT INDEX SY-TABIX.
ENDIF.
"增強(qiáng)字段
WA_ZEXTEN-POSNR = '2'. "憑證行項目
WA_ZEXTEN-RSTGR = '111'. "憑證行項目原因代碼
WA_ZEXTEN-SKFBT = '100' . "折扣

IT_EXTENSION2-STRUCTURE = 'ZEXTEN'.
IT_EXTENSION2-VALUEPART1 = WA_ZEXTEN.
APPEND IT_EXTENSION2.
DATA: L_TYPE LIKE GD_DOCUMENTHEADER-OBJ_TYPE,
L_KEY LIKE GD_DOCUMENTHEADER-OBJ_KEY,
L_SYS LIKE GD_DOCUMENTHEADER-OBJ_SYS.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
DOCUMENTHEADER = GD_DOCUMENTHEADER
CUSTOMERCPD = GD_CUSTOMERCPD
CONTRACTHEADER = GD_FICA_HD
TABLES
ACCOUNTGL = IT_ACCOUNTGL
ACCOUNTRECEIVABLE = IT_ACCOUNTRECEIVABLE
ACCOUNTPAYABLE = IT_ACCOUNTPAYABLE
ACCOUNTTAX = IT_ACCOUNTTAX
CURRENCYAMOUNT = IT_CURRENCYAMOUNT
CRITERIA = IT_CRITERIA
VALUEFIELD = IT_VALUEFIELD " EXTENSION1 = IT_EXTENSION
EXTENSION2 = IT_EXTENSION2
RETURN = IT_RETURN
PAYMENTCARD = IT_PAYMENTCARD
CONTRACTITEM = IT_FICA_IT
REALESTATE = IT_RE.```


*  備注
1棚瘟、根據(jù)情況對應(yīng)的去傳值
2、在調(diào)用該 BAPI 之前解取,可以調(diào)用相應(yīng)的檢查函數(shù)看看錯誤 BAPI_ACC_DOCUMENT_CHECK。
3蔓肯、每有計算稅的行項目,就需要額外產(chǎn)生一行稅的項目蔗包,在批導(dǎo)循環(huán)的時候記得判斷并計算相應(yīng)
的稅慧邮。
4调限、當(dāng)特別總賬為 W误澳、X、Y忆谓、Z、U哨免、V 時昙沦,該 BAPI 無效琢唾,此時可以用函數(shù) POSTING_INTERFACE_DOCUMENT
批量創(chuàng)建會計
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盾饮,一起剝皮案震驚了整個濱河市懒熙,隨后出現(xiàn)的幾起案子芍碧,更是在濱河造成了極大的恐慌,老刑警劉巖泌豆,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吏饿,死亡現(xiàn)場離奇詭異,居然都是意外死亡贞远,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門蓝仲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來官疲,“玉大人,你說我怎么就攤上這事途凫。” “怎么了维费?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長而晒。 經(jīng)常有香客問我阅畴,道長倡怎,這世上最難降的妖魔是什么恶阴? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮焦匈,結(jié)果婚禮上昵仅,老公的妹妹穿的比我還像新娘缓熟。我一直安慰自己,他們只是感情好够滑,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布彰触。 她就那樣靜靜地躺著梯投,像睡著了一般况毅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尔许,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音蒸甜,去河邊找鬼。 笑死柠新,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的登颓。 我是一名探鬼主播红氯,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痢甘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起塞栅,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎作烟,沒想到半個月后砾医,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拿撩,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡压恒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了探赫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡伦吠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出毛仪,到底是詐尸還是另有隱情箭跳,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布潭千,位于F島的核電站,受9級特大地震影響借尿,放射性物質(zhì)發(fā)生泄漏刨晴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一路翻、第九天 我趴在偏房一處隱蔽的房頂上張望狈癞。 院中可真熱鬧,春花似錦茂契、人聲如沸蝶桶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽真竖。三九已至,卻和暖如春厌小,著一層夾襖步出監(jiān)牢的瞬間恢共,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工璧亚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人癣蟋。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓透硝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疯搅。 傳聞我的和親對象是個殘疾皇子濒生,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容