ジェリー王によって作成され、最後の2014年10月13日に変更
次のレポートが削除された場合は、手動で報告することなく、BOLエンティティルートエンティティは、また、実際に削除COMMIT WORKのルートエンティティをトリガーすることができたとき:
DATA:cl_crm_bol_core TO lo_coreのTYPE REF、 lo_collectionのTYPE REF TO if_bol_entity_col、 lv_view_nameタイプcrmt_view_name、 lv_query_nameタイプcrmt_ext_obj_name、 lt_query_parameter TYPEのcrmt_name_value_pair_tab、 lt_query_parameter OF LIKE LINE ls_query_parameter、 lv_size I型。 ls_query_parameter名= 'INTERNAL_ID'。 ls_query_parameter値= '201300024498'。 lt_query_parameter TO ls_query_parameterを追加します。 lo_core = cl_crm_bol_core => get_instance()。 lo_core-> load_component_set( 'CRMSMT')。 lv_query_name = 'PostSearch'。 lo_collection = lo_core-> iv_query_name = lv_query_name it_query_params = lt_query_parameter iv_view_name = lv_view_name)。 lv_size = lo_collection-> IF_BOL_BO_COL〜SIZE()。 「lv_size 1. ASSERT DATA(lo_bol_entity)= lo_collection-> get_first()。 チェックlo_bol_entityがINITIALではありません。 。DATA(lo_root)= lo_bol_entity-> get_related_entity( 'SocialPostRel')を lo_root->()を削除します。
CL_CRM_BOL_CORE-> ROOT_DELETEメソッドが自動的にCL_CRM_GENERIC_IL_NEW-に呼び出されるための理由は、COMMIT操作>です。
そして、あなたは、サブノード以下のルート・ノードを削除した場合:
REPORTのzhana_product_search1。
パラメータ:PROD_ID TYPEのcomt_product_id、
prod_desタイプcomt_prshtextx、
CAT_IDタイプcomt_category_id、「COMM_PRPRDCATR-CATEGORY_ID、
cat_descタイプcomt_category_text、
maxhit I型。
DATA:cl_crm_bol_core TO lo_coreのTYPE REF、
lo_collectionのTYPE REF if_bol_entity_colするには、
lo_root_entityタイプREF cl_crm_bol_entity TO、
lv_view_nameタイプcrmt_view_name、
lv_query_nameタイプcrmt_ext_obj_name、
lt_query_parameter TYPEのcrmt_name_value_pair_tab、
lt_query_parameter OF LIKE LINE ls_query_parameter、
lv_size I型。
START-OF-SELECTION。
- PROD_IDに「」「で」を置換。
SHIFTは、スペース末尾RIGHT DELETINGをPROD_ID。
SHIFTは、スペースをリードLEFT DELETINGをPROD_ID。
SHIFTのprod_desはRIGHT末尾のスペースを削除します。
SHIFTのprod_desは先頭にスペースを削除LEFT。
SHIFTは、RIGHT末尾のスペースを削除CAT_ID。
SHIFTは、スペースをリードLEFT DELETINGをCAT_ID。
RIGHT DELETING末尾のスペースcat_desc SHIFT。
LEFT DELETING LEADINGスペースcat_desc SHIFT。
'PROD_ID NE' IF。
ls_query_parameter名= 'PRODUCT_ID'。
ls_query_parameter値= PROD_ID。
lt_query_parameter TO ls_query_parameterを追加します。
ENDIF。
'' prod_desのNE IF。
ls_query_parameter名=「説明」。
ls_query_parameter値= prod_des。
lt_query_parameter TO ls_query_parameterを追加します。
ENDIF。
'' CAT_IDのNE IF。
ls_query_parameter名= 'CATEGORY_ID'。
ls_query_parameter値= CAT_ID。
lt_query_parameter TO ls_query_parameterを追加します。
ENDIF。
'' cat_descのNE IF。
ls_query_parameter名= 'CATEGORY_DESC'。
ls_query_parameter値= cat_desc。
lt_query_parameter TO ls_query_parameterを追加します。
ENDIF。
'' maxhitのEQ IF。
= 10000 maxhit
ENDIF。
ls_query_parameter名= 'MAX_ROWS'。
ls_query_parameter値= maxhit。
lt_query_parameter TO ls_query_parameterを追加します。
lo_core = cl_crm_bol_core => get_instance()。
lo_core-> load_component_set( 'PROD_ALL')。
= 'ProdAdvancedSearchProducts'をlv_query_name。
「lv_query_name = 'ProdAdvSearchRgProducts'。
TRY。
lo_collection = lo_core->クエリ(
iv_query_name = lv_query_name
it_query_params = lt_query_parameter
iv_view_name = lv_view_name)。
CATCHのcx_sy_arithmetic_error。
WRITE:/ 'エラー'。
ENDTRY。
lv_size = lo_collection-> if_bol_bo_col〜サイズ()。
WRITE:/ '数'、lv_size、 '製品が発見されました!'。
DATA(lo_product)= lo_collection-> get_first()。
チェックlo_productはINITIALされていません。
DATA(lo_short_text)= lo_product-> get_related_entities(iv_relation_name = 'ProductShortText')。
チェックlo_short_textはINITIALされていません。
DATA(lo_text)= lo_short_text-> get_first()。
チェックlo_textはINITIALされていません。
>ロックをlo_product- CHECK()= abap_true。
lo_text->()を削除します。
削除呼び出しの発見後、単に現在のサブノードを入れて対応するボルエンティティがmodified_entitiesタブボルエンティティ・マネージャのに追加しました
本当にサブノードを削除するには、保存してコミットする方法if_bol_transaction_context呼び出す必要があります。