您的位置:首页 > 其它

一个重定义on_new_focus的例子

2017-02-28 16:36 141 查看
 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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CRM SAP ABAP