見越/繰延エンジン (AE)
への追加パラメータの転送
新規パラメータ (利益センタやマーケットなど) を、CRM から見越/繰延エンジンのコンポーネント IPMO に転送します。
Event _ACCIMI1 の機能 ACE の購読を登録します。

この例では、会計処理セットから利益センタが読み込まれ、AE に別のパラメータとして転送されます。請求エンジンテンプレートが関連しているため、コードをコマンドとして入力する必要があります。

* DATA:
* LS_&SUBSCRIPTION%_OBJECT TYPE CRMT_IPM_CAE_BE_OBJECT,
* LS_&SUBSCRIPTION%_PARAM TYPE CRMT_IPM_CAE_BE_PARAM,
* LV_&SUBSCRIPTION%_CUR TYPE CRMT_IAOM_OBJECT_ID,
* LS_&SUBSCRIPTION%_SDCO TYPE CRMT_IPM_ACC_SDCO,
* LV__&SUBSCRIPTION%_PRCTR TYPE PRCTR.
*
* * loop over actual object and related subobjects
* loop at lt_ace_object into LS_&SUBSCRIPTION%_OBJECT
* where OBJID = ls_ace_object-objid OR
* PARENT_GUID = ls_ace_object-objid.
* clear: LS_&SUBSCRIPTION%_PARAM, LV_&SUBSCRIPTION%_PRCTR.
* * here you need your own coding to fill the profit center
* * as example it is read from the accounting set
* LV_&SUBSCRIPTION%_CUR = LS_BDI_WRK-SRC_GUID.
* READ TABLE IS_BDOC-SERVICE_SDCO[] INTO LS_&SUBSCRIPTION%_SDCO
* WITH KEY CURRENT_OBJECT_ID = LV_&SUBSCRIPTION%_CUR.
* IF SY-SUBRC = 0.
* LV_&SUBSCRIPTION%_PRCTR = LS_&SUBSCRIPTION%_SDCO-PRCTR.
* * create new parameter for Profit Center
* LS_&SUBSCRIPTION%_PARAM-BE_HEAD_NO =
* LS_&SUBSCRIPTION%_OBJECT-BE_HEAD_NO.
* LS_&SUBSCRIPTION%_PARAM-OBJID =
* LS_&SUBSCRIPTION%_OBJECT-OBJID.
* LS_&SUBSCRIPTION%_PARAM-DATE_FROM =
* LS_&SUBSCRIPTION%_OBJECT-DATE_FROM.
* LS_&SUBSCRIPTION%_PARAM-NAME = 'ZZPRCTR'.
* LS_&SUBSCRIPTION%_PARAM-CONTENT = LV_&SUBSCRIPTION%_PRCTR.
* APPEND LS_&SUBSCRIPTION%_PARAM TO LT_ACE_PARAM.
* ENDIF.
* endloop.
必要な追加パラメータ用に、ERP システムの構造 IPMO_ACE_PARAMETERS のアペンドを作成します。この場合、名称が上記の ZZPRCTR でコーディングされている名称と同じであることを確認します。これによって、見越/繰延エンジンで新規パラメータが利用可能になります。
新規パラメータ (利益センタやマーケットなど) を、CRM から見越/繰延エンジンのコンポーネント IPM に転送します。
CRM
システムで BAdI CRM_IPM_CAE_BADI の実装を作成し、必要なパラメータをメソッド CHANGE_DATA に提供します。以下の例では、利益センタが別のパラメータとして AE に転送されます。また、常に値 4711
がこれに入力されます。
このコーディングは以下のとおりです。

DATA: ls_ace_object TYPE crmt_ipm_cae_object,
ls_ace_param TYPE crmt_ipm_cae_param.
LOOP AT CT_ACE_OBJECT INTO LS_ACE_OBJECT.
* create new parameter
ls_ace_param-objid = ls_ace_object-objid .
ls_ace_param-date_from = ls_ace_object-date_from.
ls_ace_param-name = ‘ZZPRCTR.
Ls_ace_param-content = ‘4711’.
APPEND ls_ace_param TO ct_ace_params.
ENDLOOP.

ライセンス販売契約を再度読み込む場合、読込には CT_ACE_OBJECT-OBJID を使用します。これは CRMD_ORDERADM_I-GUID に対応します。CT_ACE_OBJECT-OBJECT_TYPE には、ロイヤリティ明細 BRI と配賦明細のどちらが関連するかが示されます。
必要な追加パラメータ用に、構造 IPM_ACE_PARAMETERS のアペンドを作成します。この場合、名称が上記の ZZPRCTR でコーディングされている名称と同じであることを確認します。これによって、見越/繰延エンジンで新規パラメータが利用可能になります。
パラメータを見越/繰延エンジンから FI インタフェースにも転送する場合、メソッドCHANGE_ITEM_DATA で BAdI CRM_ACE_POSTING_BADI の実装を作成する必要があります。このコーディングは以下のとおりです。
エントリを入力する項目が構造 ACEPS_BAPI_PRELINEITEM に存在しない場合、アペンドを使用してこれをインクルードする必要があります。この場合、名称が構造 BAPIACGL09 でコーディングされている名称と同じであることを確認します。

TYPE-POOLS: rsds, aceds.
DATA: lv_ip TYPE zcomt_product_id,
lv_market TYPE zcrmt_ipm_market.
DATA: lt_selrng TYPE rsds_frange_t,
ls_selrng TYPE LINE OF rsds_frange_t,
ls_selopt TYPE LINE OF rsds_selopt_t,
lt_acedsop TYPE aceds_ty_db_param_t.
FIELD-SYMBOLS: <ls_acedsop> TYPE LINE OF aceds_ty_db_param_t.
* clear standard fields for reading accounting manager
* only necessary, if you fill your own accounting objects
CLEAR: cs_prebapi_item-ext_object_id,
cs_prebapi_item-bus_scenario,
cs_prebapi_item-cond_type.
* read Accrual Engine parameter
ls_selopt-sign = 'I'.
ls_selopt-option = 'EQ'.
CLEAR ls_selrng.
ls_selrng-fieldname = 'BUKRS'.
ls_selopt-low = is_docitem-bukrs.
APPEND ls_selopt TO ls_selrng-selopt_t.
APPEND ls_selrng TO lt_selrng.
CLEAR ls_selrng.
ls_selrng-fieldname = 'OBJID'.
ls_selopt-low = is_docitem-objid.
APPEND ls_selopt TO ls_selrng-selopt_t.
APPEND ls_selrng TO lt_selrng.
CLEAR ls_selrng.
ls_selrng-fieldname = 'SUBID'.
ls_selopt-low = is_docitem-subid.
APPEND ls_selopt TO ls_selrng-selopt_t.
APPEND ls_selrng TO lt_selrng.
CLEAR ls_selrng.
ls_selrng-fieldname = 'PARAM_NAME'.
ls_selopt-low = 'ZZPRCTR'.
APPEND ls_selopt TO ls_selrng-selopt_t.
APPEND ls_selrng TO lt_selrng.
CALL FUNCTION 'ACEDSDB_PARAM_READ'
EXPORTING
id_ace_comp = is_docitem-comp
it_selranges = lt_selrng
IMPORTING
et_acedsop = lt_acedsop
EXCEPTIONS
not_found = 1.
* fill Profit Center
READ TABLE lt_acedsop ASSIGNING <ls_acedsop>
WITH KEY param_name = 'ZZPRCTR'.
IF sy-subrc = 0.
cs_prebapi_item-profit_ctr = <ls_acedsop>-content.
ENDIF.