on 2017 Jun 07 7:24 AM
First get the CR using the BP number:
DATA : LR_MODEL TYPE REF TO IF_USMD_MODEL,
LT_ENT TYPE USMD_T_VALUE,
LS_ENT TYPE USMD_S_VALUE,
LO_USMD_CHG_DOC TYPE REF TO CL_USMD_MDF_CHANGE_DOCUMENT.
CALL METHOD CL_USMD_MODEL=>GET_INSTANCE
EXPORTING
I_USMD_MODEL = 'BP'
IMPORTING
EO_INSTANCE = LR_MODEL
ET_MESSAGE = DATA(LT_MSG).
CALL METHOD CL_USMD_MDF_CHANGE_DOCUMENT=>GET_INSTANCE
RECEIVING
EO_INSTANCE = LO_USMD_CHG_DOC.
LS_ENT-FIELDNAME = 'BP_HEADER'.
LS_ENT-VALUE = '23'. "Pass BP number with leading zeroes here, it wont work otherwise
APPEND LS_ENT TO LT_ENT.
CALL METHOD LO_USMD_CHG_DOC->READ_DOCUMENT_HEADER
EXPORTING
I_ENTITY = 'BP_HEADER'
IT_ENTITY_VALUE = LT_ENT
IO_MODEL = LR_MODEL
IMPORTING
ET_DOCUMENT_HEADER = DATA(LT_HEADER). "This table contains the CR number
Then next get entity data like this:
DATA : LR_MODEL TYPE REF TO IF_USMD_MODEL_EXT,
LT_SEL TYPE USMD_TS_SEL,
LS_SEL TYPE USMD_S_SEL,
LT_CREQUEST_1 TYPE USMD_T_CREQUEST_ENTITY,
LO_MODEL TYPE REF TO IF_USMD_GOV_API,
LR_BP_DATA_STR TYPE REF TO DATA,
LR_BP_DATA_TAB TYPE REF TO DATA,
LV_CR_NUMBER TYPE USMD120C-USMD_CREQUEST,
LV_BP TYPE C LENGTH 10,
LR_BP_KEY_STR TYPE REF TO DATA,
LR_BP_KEY_TAB TYPE REF TO DATA.
FIELD-SYMBOLS : <LS_KEY_1> TYPE ANY,
<LT_KEY_1> TYPE INDEX TABLE,
<VALUE> TYPE ANY,
<LT_BP_DATA> TYPE INDEX TABLE,
<LS_BP_DATA> TYPE ANY.
START-OF-SELECTION.
BREAK-POINT.
LV_CR_NUMBER = '000000000605'. "Take from first part of logic
LV_BP = '0001600058'. "Pass BP with leading zeroes
TRY.CALL METHOD CL_USMD_GOV_API=>GET_INSTANCEEXPORTING
IV_MODEL_NAME = 'BP'
RECEIVING
RO_GOV_API = LO_MODEL.CATCH CX_USMD_GOV_API .ENDTRY.
LO_MODEL->CREATE_DATA_REFERENCE(EXPORTING
IV_ENTITY_NAME = 'BP_VENGEN'
IV_STRUCT = LO_MODEL->GC_STRUCT_KEYIMPORTING
ER_STRUCTURE = LR_BP_KEY_STR
ER_TABLE = LR_BP_KEY_TAB ).
LO_MODEL->CREATE_DATA_REFERENCE(EXPORTING
IV_ENTITY_NAME = 'BP_VENGEN'
IV_STRUCT = LO_MODEL->GC_STRUCT_KEY_ATTRIMPORTING
ER_STRUCTURE = LR_BP_DATA_STR
ER_TABLE = LR_BP_DATA_TAB ).
ASSIGN LR_BP_KEY_STR->* TO <LS_KEY_1>.ASSIGN LR_BP_KEY_TAB->* TO <LT_KEY_1>.
ASSIGN COMPONENT 'BP_HEADER' OF STRUCTURE <LS_KEY_1> TO <VALUE>.
<VALUE> = LV_BP.INSERT <LS_KEY_1> INTO TABLE <LT_KEY_1>.
ASSIGN LR_BP_DATA_TAB->* TO <LT_BP_DATA>.
TRY.CALL METHOD LO_MODEL->IF_USMD_GOV_API_ENTITY~READ_ENTITYEXPORTING
IV_CREQUEST_ID = LV_CR_NUMBER
IV_ENTITY_NAME = 'BP_HEADER'
IT_KEY = <LT_KEY_1>
IF_ACTIVE_DATA = ' 'IMPORTING
ET_DATA = <LT_BP_DATA>.CATCH CX_USMD_GOV_API_CORE_ERROR .CATCH CX_USMD_GOV_API .ENDTRY.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Please find the below code
DATA lo_if_usmd_model TYPE REF TO if_usmd_model.
DATA lo_cl_usmd_model TYPE REF TO cl_usmd_model.
DATA lo_data TYPE REF TO data.
DATA lv_model TYPE usmd_model VALUE '0G'.
DATA lv_pl_flg TYPE wdy_boolean.
DATA lv_querymode TYPE usmd_querymode VALUE 2.
DATA ls_sel TYPE usmd_s_sel.
DATA lt_messages TYPE usmd_t_message.
DATA lt_sel TYPE usmd_ts_sel.
FIELD-SYMBOLS: <fs_t_data> TYPE ANY TABLE,
<fs_s_data> TYPE any,
<fs_v_val> TYPE any.
PARAMETERS: p_acc TYPE usmdz1_account,
p_edtn TYPE usmd_edition.
CALL METHOD cl_usmd_model=>get_instance
EXPORTING
i_usmd_model = lv_model
IMPORTING
eo_instance = lo_if_usmd_model
et_message = lt_messages.
lo_cl_usmd_model ?= lo_if_usmd_model.
CALL METHOD lo_cl_usmd_model->if_usmd_model_delta~create_data_reference
EXPORTING
i_fieldname = 'ACCOUNT'
i_struct = 'KATTR'
if_table = abap_true
i_tabtype = 'S'
RECEIVING
er_data = lo_data.
ASSIGN lo_data->* TO <fs_t_data>.
*ACCOUNT
ls_sel-fieldname = 'ACCOUNT'.
ls_sel-low = p_acc.
ls_sel-option = 'EQ'.
ls_sel-sign = 'I'.
APPEND ls_sel TO lt_sel.
CALL METHOD lo_cl_usmd_model->if_usmd_model~query
EXPORTING
i_fieldname = 'ACCOUNT'
it_sel = lt_sel
i_querymode = lv_querymode
if_use_edtn_slice = abap_false
IMPORTING
et_data = <fs_t_data>
et_message = lt_messages.
You can also Make use of the READ_CHAR_VALUE of IF_USMD_MODEL in which you have the option to pass the ReadMode.
Make use of the CL_USMD_GOV_API . to read the CR Data.
Thanks, Pavan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The usage of the CL_USMD_MODEL is actually forbidden. Please check the MDG Wiki -> Application Framework for details on using the different, public MDG APIs including examples.
User | Count |
---|---|
66 | |
10 | |
10 | |
10 | |
10 | |
8 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.