CALL METHOD super->on_new_focus
EXPORTING
focus_bo = focus_bo.
CLEAR a.
CLEAR b.
CHECK focus_bo IS BOUND.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'a'
IMPORTING
ev_result = a.
DATA iv_guid TYPE crmt_object_guid.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'GUID'
IMPORTING
ev_result = iv_guid.
CHECK iv_guid IS NOT INITIAL .
DATA lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'ONEORDER' ).
DATA lv_root TYPE REF TO cl_crm_bol_entity.
TRY.
CALL METHOD lv_bol_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = iv_guid
RECEIVING
rv_result = lv_root.
CATCH cx_crm_genil_model_error .
ENDTRY.
CHECK lv_root IS BOUND .
DATA lr_header TYPE REF TO cl_crm_bol_entity.
lr_header = lv_root->get_related_entity( iv_relation_name = 'BTOrderHeader' ).
CHECK lr_header IS BOUND .
DATA lr_datesset TYPE REF TO cl_crm_bol_entity.
lr_datesset = lr_header->get_related_entity( iv_relation_name = 'BTHeaderDatesSet' ).
CHECK lr_datesset IS BOUND .
DATA lr_datesall TYPE REF TO if_bol_entity_col.
lr_datesall = lr_datesset->get_related_entities( iv_relation_name = 'BTDatesAll' ).
CHECK lr_datesall IS BOUND.
DATA lr_iterator TYPE REF TO if_bol_entity_col_iterator.
DATA lr_property_access TYPE REF TO if_bol_bo_property_access.
DATA ls_date TYPE crmst_date_btil.
lr_iterator ?= lr_datesall->get_iterator( ).
CHECK lr_iterator IS BOUND.
lr_property_access ?= lr_iterator->get_first( ).
CHECK lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
WHILE lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
lr_property_access ?= lr_iterator->get_next( ).
ENDWHILE.
EXPORTING
focus_bo = focus_bo.
CLEAR a.
CLEAR b.
CHECK focus_bo IS BOUND.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'a'
IMPORTING
ev_result = a.
DATA iv_guid TYPE crmt_object_guid.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'GUID'
IMPORTING
ev_result = iv_guid.
CHECK iv_guid IS NOT INITIAL .
DATA lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'ONEORDER' ).
DATA lv_root TYPE REF TO cl_crm_bol_entity.
TRY.
CALL METHOD lv_bol_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = iv_guid
RECEIVING
rv_result = lv_root.
CATCH cx_crm_genil_model_error .
ENDTRY.
CHECK lv_root IS BOUND .
DATA lr_header TYPE REF TO cl_crm_bol_entity.
lr_header = lv_root->get_related_entity( iv_relation_name = 'BTOrderHeader' ).
CHECK lr_header IS BOUND .
DATA lr_datesset TYPE REF TO cl_crm_bol_entity.
lr_datesset = lr_header->get_related_entity( iv_relation_name = 'BTHeaderDatesSet' ).
CHECK lr_datesset IS BOUND .
DATA lr_datesall TYPE REF TO if_bol_entity_col.
lr_datesall = lr_datesset->get_related_entities( iv_relation_name = 'BTDatesAll' ).
CHECK lr_datesall IS BOUND.
DATA lr_iterator TYPE REF TO if_bol_entity_col_iterator.
DATA lr_property_access TYPE REF TO if_bol_bo_property_access.
DATA ls_date TYPE crmst_date_btil.
lr_iterator ?= lr_datesall->get_iterator( ).
CHECK lr_iterator IS BOUND.
lr_property_access ?= lr_iterator->get_first( ).
CHECK lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
WHILE lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
lr_property_access ?= lr_iterator->get_next( ).
ENDWHILE.