UI BOL 练习 get value set attr

时间:2021-06-26 15:52:18
"
"
"
"
"**********************change list*************************
"20170302 andylee for bol test
"
"
"
"
REPORT ylytest02. "data defination
DATA lr_core TYPE REF TO cl_crm_bol_core.
DATA:gv_is_started TYPE abap_bool.
DATA:gv_guid TYPE crmt_object_guid VALUE 'B083FEDE53F91EE6BE9C205CA3BED5E1'."order:8000001091
DATA:lr_root_entity TYPE REF TO cl_crm_bol_entity.
DATA:lr_order_h TYPE REF TO cl_crm_bol_entity.
DATA:ls_order_h TYPE crmst_adminh_btil.
DATA:lr_textset TYPE REF TO cl_crm_bol_entity.
DATA:lr_textall TYPE REF TO cl_crm_bol_entity.
DATA:lr_text TYPE REF TO if_bol_entity_col.
DATA:lr_iter TYPE REF TO if_bol_bo_col_iterator.
DATA:ls_textall TYPE crmst_text_btil.
DATA:lv_trans TYPE REF TO if_bol_transaction_context.
DATA:lv_text TYPE string VALUE 'text'.
FIELD-SYMBOLS:<text> TYPE any.
**************************************************activity
DATA:lr_activity_h TYPE REF TO cl_crm_bol_entity.
DATA:ls_activity_h TYPE crmst_activityh_btil.
**************************************************activity "get instance
lr_core = cl_crm_bol_core=>get_instance( ).
"check the bol instance is initial
gv_is_started = cl_crm_bol_core=>check_is_started( ). "if instance is not initial,get initial
IF gv_is_started EQ abap_false.
lr_core->start_up( 'BT' ).
ENDIF.
"get root entity
CHECK lr_core IS BOUND. lr_root_entity = lr_core->get_root_entity(
iv_object_name = 'BTOrder'
iv_object_guid = gv_guid ). CHECK lr_root_entity IS BOUND.
"get order head entity
lr_order_h = lr_root_entity->get_related_entity(
iv_relation_name = 'BTOrderHeader' ). ******************************长文本处理********************************* begin
"get order head data
CHECK lr_order_h IS BOUND.
lr_order_h->if_bol_bo_property_access~get_properties(
IMPORTING
es_attributes = ls_order_h ). lr_textset = lr_order_h->get_related_entity(
iv_relation_name = 'BTHeaderTextSet' ). "get texthall entity
CHECK lr_textset IS BOUND. lr_textall = lr_textset->get_related_entity(
iv_relation_name = 'BTTextHAll' ).
IF lr_textall IS NOT BOUND.
"create textall entity
lr_textall = lr_textset->create_related_entity(
iv_relation_name = 'BTTextHAll' ).
IF lr_textall->is_changeable( ) = abap_true.
lr_textall->if_bol_bo_property_access~get_properties(
IMPORTING
es_attributes = ls_textall ).
ls_textall-tdobject = 'CRM_ORDERH' .
ls_textall-tdname = gv_guid .
ls_textall-tdid = 'A002'.
ls_textall-tdspras = sy-langu .
lr_textall->if_bol_bo_property_access~set_properties( is_attributes = ls_textall ).
ASSIGN lv_text TO <text>.
lr_textall->if_bol_bo_property_access~set_property(
iv_attr_name = 'CONC_LINES'
iv_value = <text> ).
ENDIF.
ELSE.
lr_text = lr_textset->get_related_entities(
iv_relation_name = 'BTTextHAll' ).
lr_iter = lr_text->if_bol_bo_col~get_iterator( ).
IF lr_iter IS BOUND.
lr_text ?= lr_iter->find_by_property( EXPORTING iv_attr_name = 'TDID' iv_value = 'A002' ).
ENDIF.
ASSIGN lv_text TO <text>.
lr_textall->if_bol_bo_property_access~set_property(
iv_attr_name = 'CONC_LINES'
iv_value = <text> ). ENDIF.
******************************长文本处理*********************************end
******************************activity*********************************begin
lr_activity_h = lr_order_h->get_related_entity(
iv_relation_name = 'BTHeaderActivityExt' ).
CHECK lr_activity_h IS BOUND. lr_activity_h->if_bol_bo_property_access~get_properties(
IMPORTING
es_attributes = ls_activity_h ). WRITE ls_activity_h-priority. ******************************activity*********************************end "modify core entity all.
lr_core->modify( ).
lv_trans = lr_core->get_transaction( ).
lv_trans->save( ).
lv_trans->commit( ).