前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用代码将指定的product加入新建的transaction

使用代码将指定的product加入新建的transaction

作者头像
Jerry Wang
发布2021-02-20 10:16:45
3550
发布2021-02-20 10:16:45
举报

Created by Jerry Wang, last modified on Feb 17, 2015

执行report:

clipboard1
clipboard1

输出:

clipboard2
clipboard2

可到webclient ui上搜索刚才使用代码创建出的order:

clipboard3
clipboard3

并且指定的product正确地插入到transaction中:

clipboard4
clipboard4

source code:

代码语言:javascript
复制
REPORT z.
 
 
PARAMETERS: prd_id TYPE comm_product-product_id OBLIGATORY DEFAULT 'JERRYTEST_PROD3',
 
            type   TYPE crmt_process_type OBLIGATORY DEFAULT 'TA'.
 
 
DATA: lo_products           TYPE REF TO if_bol_bo_col.
 
CREATE OBJECT lo_products TYPE cl_crm_bol_bo_col.
 
 
"DATA: lv_type     TYPE crmt_process_type VALUE 'TA',
 
"      lv_bor_type TYPE crmt_subobject_category VALUE 'BUS2000115'.
 
 
DATA(lo_prod) = cl_crm_prod_test_accessor2=>get_prod_by_id( prd_id ).
 
 
INCLUDE: crm_object_types_con.
 
 
DATA:
 
  lt_params         TYPE crmt_name_value_pair_tab,
 
  ls_params         TYPE crmt_name_value_pair,
 
  lv_header_guid_c  TYPE string,
 
  lv_header_guid    TYPE crmt_object_guid,
 
  lv_error          TYPE crmt_boolean,
 
  lr_root_ent       TYPE REF TO cl_crm_bol_entity,
 
  lr_root_col       TYPE REF TO if_bol_bo_col,
 
  lr_adm_h          TYPE REF TO cl_crm_bol_entity,
 
  lr_core           TYPE REF TO cl_crm_bol_core,
 
  lr_factory        TYPE REF TO cl_crm_bol_entity_factory,
 
  lr_items          TYPE REF TO cl_crm_bol_entity,
 
  lr_access_erp     TYPE REF TO if_crm_uiu_erp_channel_aspects,
 
  lr_access_bt      TYPE REF TO if_crm_uiu_bt_channel_aspects,
 
  lv_trvog          TYPE trvog_va,
 
  lv_transferred    TYPE crmt_boolean,
 
  lr_nav_descriptor TYPE REF TO cl_crm_ui_descriptor_object,
 
  lr_window         TYPE REF TO cl_bsp_wd_window.
 
 
DATA lv_cfm_quantity2 TYPE REF TO cnfqty.
 
DATA lv_cfm_quantity TYPE f.
 
 
CREATE OBJECT lr_root_col TYPE cl_crm_bol_bo_col.
 
 
lr_core = cl_crm_bol_core=>get_instance( ).
 
 
 
ls_params-name = 'PROCESS_TYPE'.
 
ls_params-value = type.
 
APPEND ls_params TO lt_params.
 
 
lr_factory = lr_core->get_entity_factory( 'BTOrder' ).      "#EC NOTEXT
 
 
 
lr_root_ent = lr_factory->create( lt_params ).
 
 
ASSERT lr_root_ent IS NOT INITIAL.
 
 
*   if the soldto account is already known, enhance the sales doc
 
lr_access_bt = cl_crm_uiu_bt_channel_asp_fac=>get_instance( ).
 
lr_access_bt->if_crm_uiu_channel_aspects~after_create( iv_entity = lr_root_ent ).
 
 
lr_adm_h = lr_root_ent->get_related_entity(
 
iv_relation_name = 'BTOrderHeader' iv_mode = cl_crm_bol_entity=>bypassing_buffer ).
 
IF lr_adm_h IS BOUND.
 
  lr_items = lr_adm_h->get_related_entity(
 
  iv_relation_name = 'BTHeaderItemsExt' iv_mode = cl_crm_bol_entity=>bypassing_buffer ).
 
ENDIF.
 
 
lo_products->add( lo_prod ).
 
CALL METHOD cl_crm_uiu_bt_tools=>add_products_to_btorder
 
  EXPORTING
 
    ir_products_col     = lo_products
 
  IMPORTING
 
    ev_prdtransfer_flag = lv_transferred
 
  CHANGING
 
    cr_btorder          = lr_root_ent
 
    cr_btitems          = lr_items.
 
 
lr_root_col->add( lr_root_ent ).
 
 
cl_crm_prod_test_accessor2=>save( ).
 
 
DATA(lo_admin) = lr_root_ent->get_related_entity( iv_relation_name = 'BTOrderHeader' ).
 
CHECK lo_admin IS NOT INITIAL.
 
DATA(id) = lo_admin->get_property_as_string( 'OBJECT_ID' ).
 
 
WRITE: / 'Generated Order ID: ', id COLOR COL_NEGATIVE.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Created by Jerry Wang, last modified on Feb 17, 2015
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档