Hello Tim,
Please put below code in setter method::--
method SET_TIME_FROM.
DATA:
current TYPE REF TO if_bol_bo_property_access,
dref TYPE REF TO data,
copy TYPE REF TO data.
DATA: lv_timestamp TYPE crmt_date_timestamp_from,
lv_timestamp_from TYPE crmt_date_timestamp_from,
lv_timezone TYPE crmt_timezone_from,
lv_date TYPE sy-datum,
lv_time TYPE sy-uzeit,
lv_dat TYPE d,
tempchar(40) TYPE c.
FIELD-SYMBOLS:
<nval> TYPE ANY,
<oval> TYPE ANY.
* get current entity
if iterator is bound.
current = iterator->get_current( ).
else.
current = collection_wrapper->get_current( ).
endif.
* get old value and dataref to appropriate type
TRY.
dref = current->get_property( 'TIME_FROM' )."#EC NOTEXT
CATCH cx_sy_ref_is_initial.
RETURN.
ENDTRY.
* assure that attribue exists
CHECK dref IS BOUND.
* set <oval> to old value
ASSIGN dref->* TO <oval>.
* create a copy for new value
CREATE DATA copy LIKE <oval>.
* set <nval> to new value
ASSIGN copy->* TO <nval>.
* fill new value using the right conversion
TRY.
* TRY.
CALL METHOD if_bsp_model_util~convert_from_string
EXPORTING
data_ref = copy
value = value
attribute_path = attribute_path.
CATCH cx_sy_conversion_error.
RAISE EXCEPTION TYPE cx_bsp_conv_failed
EXPORTING
name = 'TIME_FROM'."#EC NOTEXT
ENDTRY.
* only set new value if value has changed
IF <nval> <> <oval>.
current->get_property_as_value( EXPORTING iv_attr_name = 'TIMESTAMP_FROM' IMPORTING ev_result = lv_timestamp_from ).
IF lv_timestamp_from IS NOT INITIAL.
CONVERT TIME STAMP lv_timestamp_from TIME ZONE lv_timezone INTO DATE lv_date TIME lv_time.
ENDIF.
IF <nval> NE lv_time.
lv_time = <nval>.
CONVERT DATE lv_date TIME lv_time INTO TIME STAMP lv_timestamp_from TIME ZONE lv_timezone.
IF lv_timestamp_from IS NOT INITIAL.
current->set_property(
iv_attr_name = 'TIMESTAMP_FROM' "#EC NOTEXT
iv_value = lv_timestamp_from ).
ENDIF.
current->set_property(
iv_attr_name = 'TIME_FROM' "#EC NOTEXT
iv_value = <nval> ).
ENDIF.
ENDIF.
check above code... and make changes like this.
Thanks and Regards,
Amit