Hi Experts,
Trying to create locations using BO - EHFND_LOCATIONS, but getting short dump, below is the code, could some one help me what I am missing.
*--- Class object types
**DATA : lo_service TYPE REF TO /bobf/if_tra_service_manager,
** lo_trans TYPE REF TO /bobf/if_tra_transaction_mgr.
**
**DATA : lt_mod TYPE /bobf/t_frw_modification,
** ls_mod TYPE /bobf/s_frw_modification.
**
**FIELD-SYMBOLS : <fs_location_revision> TYPE EHFNDS_LOC_REVISION.
DATA : lo_trans TYPE REF TO /bobf/if_tra_transaction_mgr,
lo_serv TYPE REF TO /bobf/if_tra_service_manager.
DATA : lt_mod TYPE /bobf/t_frw_modification,
ls_mod TYPE /bobf/s_frw_modification.
DATA : lv_locid TYPE nrfrom.
*DATA : lr_root TYPE REF TO EHFNDS_LOC_ROOT,
* lr_rev TYPE REF TO data,
* lr_text TYPE REF TO EHFNDS_LOC_REVISION_NAME_TEXT.
FIELD-SYMBOLS : <fs_location> TYPE ehfnds_loc_revision,
<fs_locroot> TYPE ehfnds_loc_root,
<fs_locdesc> TYPE ehfnds_loc_revision_name_text.
*--- Get instances of API
lo_trans = /bobf/cl_tra_trans_mgr_factory=>get_transaction_manager( ).
lo_serv = /bobf/cl_tra_serv_mgr_factory=>get_service_manager(
if_ehfnd_loc_c=>sc_bo_key ).
*--- Populate Root node
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = 'IE'
object = 'EHFNDLCNID'
IMPORTING
number = lv_locid.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ls_mod-node = if_ehfnd_loc_c=>sc_node-root.
ls_mod-change_mode = /bobf/if_frw_c=>sc_modify_create.
ls_mod-key = /bobf/cl_frw_factory=>get_new_key( ).
*
CREATE DATA ls_mod-data TYPE ehfnds_loc_root.
ASSIGN ls_mod-data->* TO <fs_locroot>.
<fs_locroot>-key = ls_mod-key.
<fs_locroot>-id = lv_locid.
APPEND ls_mod TO lt_mod.
CLEAR ls_mod.
*--- Revision node
ls_mod-node = if_ehfnd_loc_c=>sc_node-revision.
ls_mod-change_mode = /bobf/if_frw_c=>sc_modify_create.
ls_mod-key = /bobf/cl_frw_factory=>get_new_key( ).
*
CREATE DATA ls_mod-data TYPE ehfnds_loc_revision.
ASSIGN ls_mod-data->* TO <fs_location>.
*
<fs_location>-key = ls_mod-key.
<fs_location>-type = 'LOCATION'.
*<fs_location>-status = '02'.
<fs_location>-funct_loc_id = 'TEST_MIGRATION'.
APPEND ls_mod TO lt_mod.
CLEAR ls_mod.
*--- Revision text node
*--- Revision node
ls_mod-node = if_ehfnd_loc_c=>sc_node-revision_name_text.
ls_mod-change_mode = /bobf/if_frw_c=>sc_modify_create.
ls_mod-key = /bobf/cl_frw_factory=>get_new_key( ).
*
CREATE DATA ls_mod-data TYPE ehfnds_loc_revision_name_text.
ASSIGN ls_mod-data->* TO <fs_locdesc>.
*
<fs_locdesc>-key = ls_mod-key.
<fs_locdesc>-text = 'Test migration text'.
*<fs_locdesc>-status =
APPEND ls_mod TO lt_mod.
CLEAR ls_mod.
*--- call modify
lo_serv->modify(
EXPORTING
it_modification = lt_mod
* IMPORTING
* eo_change =
* eo_message =
).
lo_trans->save(
* EXPORTING
* iv_transaction_pattern = /BOBF/IF_TRA_C=>GC_TP_SAVE_AND_CONTINUE
* IMPORTING
* ev_rejected =
* eo_change =
* eo_message =
* et_rejecting_bo_key =
).