SAP CRM BOLエンティティの削除 - ルートノードおよびサブノード

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

ジェリー王によって作成され、最後の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操作>です。

clipboard1

そして、あなたは、サブノード以下のルート・ノードを削除した場合:

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タブボルエンティティ・マネージャのに追加しました
clipboard2
clipboard3

本当にサブノードを削除するには、保存してコミットする方法if_bol_transaction_context呼び出す必要があります。

おすすめ

転載: blog.csdn.net/i042416/article/details/94768658