2010年1月15日

TR評價類別移轉,會計文件不過帳處理

繼之前提到的Loan Management交易不過帳,最近友人提到客戶有個需求在交易的評價類別移轉時(Tcode TPM15),需考慮到不產生會計文件。
例:
以交易為目的(評價類別0001)移轉到備供出售(評價類別0002)時,需產生會計文件。
以交易為目的(評價類別0001)移轉到持有至到期日(評價類別0003)時,不需產生會計文件。

做法:採用BADI TPM_ACCIF_TRAC的Method FLOW_POSTING_RELEVANCE,依邏輯判斷後,將CH_FLG_POSTING_RELEVANT值設定為space後,系統即不產生會計文件。

進行時發生一個困難,FLOW_POSTING_RELEVANCE這個Method並不提供參數判斷TPM15交易時移轉前後的評價類別資訊。實際以Debug方式測試後,發現可用Field Symbol將TPM15程式的變數以參考方式取得進行判斷,程式碼如下:

DATA: TRLY_TRQ_QTY_SELECT TYPE TABLE OF TRLS_TRQ_QTY_SELECT,
TRLY_TRQ_QTY TYPE TRLS_TRQ_QTY_SELECT.
FIELD-SYMBOLS: <> TYPE ANY.
DATA: OBJNAME TYPE STRING VALUE '(SAPLTPM_TRL_VAL_CLASS_TRANSFER)G_TAB_TRQ_QTY_SELECT[]'.

CHECK SY-TCODE = 'TPM15'.
ASSIGN (OBJNAME) TO <>.
IF SY-SUBRC = 0.
TRLY_TRQ_QTY_SELECT = .
***判斷TRLY_TRQ_QTY_SELECT裡面的前後二個class
READ TABLE TRLY_TRQ_QTY_SELECT INTO TRLY_TRQ_QTY INDEX 1.
IF SY-SUBRC = 0.
IF TRLY_TRQ_QTY-COM_VAL_CLASS = '0001' AND
TRLY_TRQ_QTY-TGT_COM_VAL_CLASS = '0002'.
CH_FLG_POSTING_RELEVANT = SPACE.
ENDIF.
ENDIF.
ENDIF.