1. 程式人生 > >財務憑證過賬增強 BAPI_ACC_DOCUMENT_POST

財務憑證過賬增強 BAPI_ACC_DOCUMENT_POST

這也是sap慣用的一招
  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
    EXPORTING
      DOCUMENTHEADER = GT_ACC_HD
    TABLES
      ACCOUNTGL      = GT_ACC_GL
      CURRENCYAMOUNT = GT_ACC_CUR
      RETURN         = GT_RETURN
      EXTENSION2     = GT_EXT2.
  

這個EXTENSION2是一個用來增強擴充套件FI憑證欄位的結構喲
EXTENSION2 對應的欄位是這樣的:
 STRUCTURE    1 Types    TE_STRUC    CHAR    30   “放你的增強結構”
VALUEPART1    1 Types    VALUEPART    CHAR    240   "放結構對應的值,然後根據長度寫回結構欄位中,實現動態匹配"
VALUEPART2    1 Types    VALUEPART    CHAR    240
VALUEPART3    1 Types    VALUEPART    CHAR    240
VALUEPART4    1 Types    VALUEPART    CHAR    240
__________________________________________    ______
自己先定義結構,然後在BADI中做增強,從而實現你需要而此bapi沒提供的欄位

BADI
 AC_DOCUMENT
增強中CHANGE METHOD:
LOOP AT C_EXTENSION2 INTO WA_EXTENSION where structure 'ZAFIKJPZ'.
      WA_ZAFIKJPZ = WA_EXTENSION-VALUEPART1.
      append WA_ZAFIKJPZ to lt_ZAFIKJPZ.
    ENDLOOP.

  ENDIF.
  sort lt_ZAFIKJPZ by posnr.
  loop at c_accit into 
wa_accit.
    read table lt_ZAFIKJPZ into  WA_ZAFIKJPZ with key posnr = wa_accit-posnr.
    if sy-subrc eq 0.
      MOVE-CORRESPONDING WA_ZAFIKJPZ to wa_accit.
    endif.
      modify c_accit from wa_accit.
    endloop.


程式中這樣填充


GT_EXT2-STRUCTURE = 'ZAFIKJPZ' .
      GT_EXT2-VALUEPART1 = LS_EXT2 .
      APPEND 
GT_EXT2 .