日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ABAP:BAPI_ACC_DOCUMENT_POST扩展字段

發(fā)布時(shí)間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP:BAPI_ACC_DOCUMENT_POST扩展字段 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、se11創(chuàng)建結(jié)構(gòu),必須包含行項(xiàng)目號(hào)POSNR字段,和其他需要擴(kuò)展的字段,如記賬碼Posting Key、原因代碼??
???Reason Code等;
2、SE19實(shí)現(xiàn)BADI增強(qiáng)ACC_DOCUMENT,這個(gè)增強(qiáng)是用來(lái)將BAPI_ACC_DOCUMENT_POST參數(shù)表EXTENSION2傳入系統(tǒng)表
3、使用BAPI_ACC_DOCUMENT_POST參數(shù)表EXTENSION2,將擴(kuò)展字段傳入。
以下詳細(xì)列出方法:
1、略
2、引用bapi中的extession2表,將字段擴(kuò)展進(jìn)去。
???但是必須得通過(guò)BADI增強(qiáng)將字段擴(kuò)展進(jìn)去。

Step1:創(chuàng)建Badi

tcode:SE19

此處有2種方式來(lái)創(chuàng)建增強(qiáng),“Classic BADI”或“New BADI”

創(chuàng)建Classic Badi名稱:ACC_DOCUMENT

或創(chuàng)建New Badi名稱:BADI_ACC_DOCUMENT


這篇文章里以創(chuàng)建Classic Badi為例。

命名為Z_MY_ACC_DOCUMENT

?Step2:增加一個(gè)Filter

新增一條BKPFF的Filter

?

Step3:保存

如果保存時(shí)出現(xiàn)了下面這個(gè)消息,說(shuō)明你必須將你做的Classic Badi遷移到New Badi。


此時(shí)可以選擇已有的或創(chuàng)建新的Badi Enhancement Implementation。我們選擇創(chuàng)建新的。

?

?

?

創(chuàng)建好之后,系統(tǒng)會(huì)提示消息。


Step5:編輯代碼

在New Badi里面顯示Z_MY_ACC_DOCUMENT,此時(shí)將不會(huì)報(bào)出需要?jiǎng)h除Classic Badi的警告了。

雙擊CHANGE方法即可進(jìn)入編輯。

代碼例子:

[c-sharp]?view plaincopy
  • METHOD?IF_EX_ACC_DOCUMENT~CHANGE.??
  • ??DATA:?WA_EXTENSION?TYPE?BAPIPAREX,??
  • ????????ZEXT_DATA????TYPE?Zsfi_bseg.??"此處為1所建的結(jié)構(gòu)
  • ??
  • ??FIELD-SYMBOLS:??TYPE?ACCIT.??
  • ??IF?C_EXTENSION2[]?IS?NOT?INITIAL.??
  • ????LOOP?AT?C_EXTENSION2?INTO?WA_EXTENSION??
  • ?????????????????????????WHERE?STRUCTURE?=?'ZSFI_BSEG'.??
  • ??????ZEXT_DATA?=?WA_EXTENSION-VALUEPART1.??
  • ??????READ?TABLE?C_ACCIT?ASSIGNING??WITH?KEY?POSNR?=?ZEXT_DATA-POSNR.??
  • ??????IF?SY-SUBRC?=?0.??
  • *????????-ABPER?=?ZEXT_DATA-ABPER.??
  • *????????-ZZCASHFLOW?=?ZEXT_DATA-ZZCASHFLOW.??
  • ????????-BSCHL?=?ZEXT_DATA-BSCHL.??
  • *????????-XREF1_HD?=?ZEXT_DATA-XREF1_HD.??
  • ??????ENDIF.??
  • ????ENDLOOP.??
  • ??ENDIF.??
  • ENDMETHOD.??
  • 代碼釋義

    CHANGE方法中參數(shù)FLT_VAL,C_ACCHD,C_ACCIT,C_ACCCR,C_ACCWT,C_ACCTX均與憑證數(shù)據(jù)相關(guān)。

    C_EXTENSION2中傳入的數(shù)據(jù)即為BAPI_ACC_DOCUMENT_POST中EXTENSION2參數(shù)。

    BAPIPAREX-TE_STRUC為數(shù)據(jù)字典中結(jié)構(gòu)的名稱,其余為擴(kuò)展數(shù)據(jù)。

    上面例子中,生成BAPI的EXTENTION2參數(shù)時(shí),就是按照Z(yǔ)KS_OA_ACC_EXT的數(shù)據(jù)結(jié)構(gòu)順序?qū)懭氲?#xff0c;讀取時(shí)也按照相同的方式讀取即可。

    根據(jù)參數(shù)里面的類型和說(shuō)明來(lái)判斷某個(gè)參數(shù)對(duì)應(yīng)憑證中的什么數(shù)據(jù),將BAPI中無(wú)法傳入的數(shù)據(jù)從EXTENTION2里面取出,傳入CHANGE的參數(shù)里面即可。

    3、調(diào)用BAPI,引用Extenssion2.

    ?READ?TABLE??lt_alv?INDEX?1.
    ???IF?sy-subrc?=?0.
    ?????documentheader-comp_code??=?lt_alv-bukrs.
    ?????documentheader-fisc_year??=?lv_endda+0(4)..
    ?????documentheader-fis_period?=?lv_endda+4(2).
    ?????documentheader-doc_date???=?lv_endda.
    ?????documentheader-pstng_date?=?lv_endda.
    ?????documentheader-doc_type???=?'SA'.
    ?????documentheader-header_txt?=?'計(jì)提存貨跌價(jià)準(zhǔn)備'.
    ?????documentheader-username???=?sy-uname.
    ?????LOOP?AT??lt_alv.
    ???????item?=?item?+?1.
    ???????accountgl-itemno_acc??=?item.
    ???????accountgl-comp_code???=?lt_alv-bukrs.
    ???????accountgl-doc_type????=?'SA'.
    ???????accountgl-plant???????=?lt_alv-werks.
    ???????accountgl-gl_account??=?'1471000010'.
    ???????accountgl-material????=??lt_alv-matnr.
    ???????APPEND?accountgl.
    ???????currencyamount-itemno_acc??=?item.
    ???????currencyamount-currency????=?'CNY'.
    ???????currencyamount-amt_doccur??=??lt_alv-zytje?*?(?-1?).
    ???????APPEND?currencyamount.
    ???????CLEAR?extension2.
    ???????CLEAR?wa_zsfi040.
    ???????wa_zsfi040-posnr?=?item.
    ???????wa_zsfi040-bschl??????=?'50'.?????????"記賬代碼?增強(qiáng)字段
    ???????extension2-structure??=?'ZSFI040'.
    ???????extension2-valuepart1?=?wa_zsfi040.
    ???????APPEND?extension2.
    ???????CLEAR:accountgl,currencyamount.
    ???????CLEAR:lt_alv-matnr,lt_alv-zchemc,
    ?????????????lt_alv-maktx,lt_alv-meins,
    ?????????????lt_alv-bklas,lt_alv-bkbez,
    ?????????????lt_alv-zkckm,lt_alv-zkckmz,
    ?????????????lt_alv-zcykm,lt_alv-zcykmz,
    ?????????????lt_alv-zbqcy,lt_alv-zqmze,
    ?????????????lt_alv-zqmsl,lt_alv-zqmdj,
    ?????????????lt_alv-zkbdj,lt_alv-zdjce.
    ???????COLLECT?lt_alv?INTO?lt_salv.
    ?????ENDLOOP.
    ?????READ?TABLE?lt_salv?INDEX?1.
    ?????item?=?item?+?1.
    ?????accountgl-itemno_acc??=?item.
    ?????accountgl-comp_code???=?lt_salv-bukrs.
    ?????accountgl-doc_type????=?'SA'.
    ?????accountgl-plant???????=?lt_salv-werks.
    ?????accountgl-gl_account??=?'6701000020'.
    ?????APPEND?accountgl.
    ?????currencyamount-itemno_acc??=?item.
    ?????currencyamount-currency????=?'CNY'.
    ?????currencyamount-amt_doccur??=??lt_salv-zytje?.
    ?????APPEND?currencyamount.
    ?????wa_zsfi040-posnr?=?item.
    ?????wa_zsfi040-bschl??????=?'40'.?????????"記賬代碼
    ?????extension2-structure??=?'ZSFI040'.
    ?????extension2-valuepart1?=?wa_zsfi040.
    ?????APPEND?extension2.
    ?????CLEAR?lt_salv.
    ?????CLEAR?lt_alv.
    ?????CALL?FUNCTION?'BAPI_ACC_DOCUMENT_POST'
    ???????EXPORTING
    ?????????documentheader?=?documentheader
    ???????TABLES
    ?????????accountgl??????=?accountgl
    ?????????currencyamount?=?currencyamount
    ?????????return?????????=?return
    ?????????extension2?????=?extension2.
    ???ENDIF.
    ???CLEAR:documentheader,accountgl[],currencyamount[],extension2[].
    ???READ?TABLE?return?WITH?KEY?type?=?'E'.
    ???IF?sy-subrc?<>?0.
    ?????CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'
    ???????EXPORTING
    ?????????wait???=?'X'
    ???????IMPORTING
    ?????????return?=?return.
    ???ELSE.
    ?????CALL?FUNCTION?'BAPI_TRANSACTION_ROLLBACK'
    ???????IMPORTING
    ?????????return?=?return.
    ???ENDIF.
    ???LOOP?AT?return.
    *將返回日志記入LOG
    ?????gs_log-type????=?return-type.
    ?????gs_log-message?=?return-message.
    ?????APPEND?gs_log?TO?gt_log.
    ???ENDLOOP.
    ???PERFORM?display_log.
    ???CLEAR:gt_log[],return[]?.


    總結(jié)

    以上是生活随笔為你收集整理的ABAP:BAPI_ACC_DOCUMENT_POST扩展字段的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。