DATA: lr_inputfield TYPE REF TO cl_wd_input_field,
lr_view_element TYPE REF TO if_wd_view_element,
lt_change_log TYPE wdr_context_change_list,
lt_datas TYPE TABLE OF tab512,
lt_datasrfc TYPE TABLE OF tab512,
lt_datas2 TYPE TABLE OF tab512,
ls_data TYPE SYCHAR512,
ls_datasrfc TYPE SYCHAR512.
DATA: l_context TYPE REF TO if_wd_context,
lr_node TYPE REF TO if_wd_context_node,
lv_nr TYPE string,
lv_nr2 TYPE string,
lv_description TYPE string,
lv_description2 TYPE string,
lv_descrip TYPE string,
lv_des TYPE string.
DATA: lv_index TYPE string,
lo_context TYPE REF TO if_wd_context,
lt_changes TYPE wdr_context_change_list,
ls_change TYPE wdr_context_change.
DATA: lv_be_sytem TYPE om_attrval,
lf_spras TYPE spras.
DATA: lt_option TYPE TABLE OF rfc_db_opt,
ls_option TYPE rfc_db_opt,
lt_feld TYPE TABLE OF rfc_db_fld,
ls_feld TYPE rfc_db_fld.
FIELD-SYMBOLS: <ls_new_value> TYPE any.
************************************************************************
* 1. Prüfen ob wir im Shoppingcart-Wizard sind
*-----------------------------------------------------------------------
IF zcl_ebp_context=>get_transaction_group( ) <> zcl_ebp_context=>gc_ta_group_sc_wizard.
RETURN.
ENDIF.
************************************************************************
* 2. Feld auf Anzeige setzen
*-----------------------------------------------------------------------
TRY.
lr_view_element = view->get_element( 'GOODS_RECIPIENT_ID' ).
IF lr_view_element IS BOUND.
lr_inputfield ?= lr_view_element.
CALL METHOD lr_inputfield->set_enabled
EXPORTING
value = space.
ENDIF.
CATCH cx_sy_move_cast_error.
RETURN.
ENDTRY.
************************************************************************
* 3. HSE Beschreibung füllen
*-----------------------------------------------------------------------
IMPORT lt_datas TO lt_datas2 FROM MEMORY ID sy-uname.
lo_context = wd_context->get_context( ).
lt_changes = lo_context->get_context_change_log( and_reset = abap_true ).
IF FIRST_TIME NE 'X'.
IF lt_changes IS NOT INITIAL .
LOOP AT lt_changes INTO ls_change WHERE change_kind EQ 'A'.
ASSIGN ls_change-new_value->* TO <ls_new_value>.
lv_index = ls_change-element_index.
ENDLOOP.
LOOP AT lt_datas2 INTO ls_data .
lv_nr = ls_data+1(2).
IF <ls_new_value> EQ lv_nr.
lv_description = ls_data+3(30).
ENDIF.
ENDLOOP.
ENDIF.
l_context = wd_context->get_context( ).
IF l_context->name = 'V_DODC_SC_I_BD'.
lr_node = wd_context->get_child_node('ITEM_BASIC_DATA').
CALL METHOD LR_NODE->SET_ATTRIBUTE
EXPORTING
VALUE = lv_description
NAME = 'ZZHSE_TEXT'.
CALL METHOD LR_NODE->GET_ATTRIBUTE
EXPORTING
NAME = 'ZZHSE_TEXT'
IMPORTING
VALUE = lv_descrip .
CALL METHOD LR_NODE->GET_ATTRIBUTE
EXPORTING
NAME = 'ZZHSE'
IMPORTING
VALUE = lv_nr2 .
IF lv_descrip IS INITIAL.
CALL FUNCTION 'Z_EBP_READ_SINGLE_ATTRIBUTE'
EXPORTING
id_attr_id = 'SYS'
IMPORTING
ed_value = lv_be_sytem
EXCEPTIONS
object_id_not_found = 1
no_attributes_requested = 2
attributes_read_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
EXIT.
ENDIF.
lf_spras = sy-langu.
ls_option-text = text-002.
CONCATENATE ls_option-text(9) lf_spras ls_option-text+9(1) INTO ls_option-text.
APPEND ls_option TO lt_option.
ls_feld-fieldname = 'SPRAS'.
APPEND ls_feld TO lt_feld.
ls_feld-fieldname = 'HSE'.
APPEND ls_feld TO lt_feld.
ls_feld-fieldname = 'TEXT'.
APPEND ls_feld TO lt_feld.
CALL FUNCTION 'RFC_READ_TABLE'
DESTINATION lv_be_sytem
EXPORTING
query_table = '/GBE/MMC_HSET'
TABLES
options = lt_option
fields = lt_feld
data = lt_datasrfc
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF lv_nr2 NE lv_nr AND lt_datas2 IS NOT INITIAL.
LOOP AT lt_datas2 INTO ls_data .
lv_nr = ls_data+1(2).
IF lv_nr EQ lv_nr2.
lv_des = ls_data+3(30).
CALL METHOD LR_NODE->SET_ATTRIBUTE
EXPORTING
VALUE = lv_des
NAME = 'ZZHSE_TEXT'.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT lt_datasrfc INTO ls_datasrfc .
lv_nr = ls_datasrfc+1(2).
IF lv_nr EQ lv_nr2.
lv_des = ls_datasrfc+3(30).
CALL METHOD LR_NODE->SET_ATTRIBUTE
EXPORTING
VALUE = lv_des
NAME = 'ZZHSE_TEXT'.
ENDIF.
ENDLOOP.
ENDIF.
EXPORT lv_description2 FROM lv_description TO MEMORY ID sy-uname.
ENDIF.
ENDIF.
ENDIF.
↧
Re: populate custom fields of Shopping Cart's item data
↧