自动为服务订单分配服务

2020-09-29 22:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我们需要在流程类型的帮助下使用服务订单获取物料数据。

我已经完成了该需求的编码,但是它并没有显示为空引用,因此请帮助我解决这个问题。

下面的代码

数据:ls_params类型crmt_name_value_pair。 引用cl_crm_bol_entity。

ls_params-name ='OBJECT_ID'。
lv_object_id = zl_bt116it__genericitemel_impl => zobjid。
将ls_params附加到lt_params。

数据:lo_iterator类型ref到if_bol_bo_col_iterator,
lo_current类型REF到if_bol_bo_property_access,
lv_guid TYPE crmt_object_guid,
lt_guid TYPE crmt_object_guid_tab,
gt_orderadm_mtm > gt_product_i TYPE crmt_product_i_wrkt,结果,gs_product_i TYPE crmt_product_i_wrk,结果,gt_pricing_i TYPE crmt_pricing_i_wrkt,结果,gs_pricing_i TYPE crmt_pricing_i_wrk,结果,gt_schedlin_i TYPE crmt_schedlin_i_wrkt,结果,gs_schedlin_i TYPE crmt_schedlin_i_wrk,结果,ls_product TYPE ztab000019,结果 lv_process_type TYPE crmd_orderadm_h-process_type,
lv_product TYPE COMT_PRODUCT_ID," crmd_orderadm_i-product,
lv_product_string TYPE字符串。 ()。
清除lv_guid。
从crmd_orderadm_h选择单个guid到lv_guid,其中object_id = lv_object_id

SELECT * FROM ztab000019 INTO ls_product,其中object_id = lv_guid。
ENDSELECT。
如果ls_product不初始。

选择单个process_type
从crmd_orderadm_h
INTO lv_process_type
哪里有Guid EQ lv_guid。

如果ls_product-zzfld00001f不是INITIAL。
" Flat

从zproduct
到lv_product
中选择单个产品在哪里process_type EQ lv_process_type
AND pro_type EQ ls_product-zzfld00001e
AND plo_type EQ ls_product-zzfld00001f。
* ELSEIF ls_product-zzfld00001e EQ'2'。
ELSE。
" Flat
从zproduct
选择单个产品 INTO lv_product
在哪里process_type EQ lv_process_type
和pro_type EQ ls_product-zzfld00001e。

ENDIF。

如果lv_product不是INITIAL。
lv_product_string = lv_product。
* lo_current-> set_property_as_string(iv_attr_name ='ORDERED_PROD'iv_value = lv_product_string)。

在set属性中,我遇到错误,它并不令人失望

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我们需要在流程类型的帮助下使用服务订单获取物料数据。

我已经完成了该需求的编码,但是它并没有显示为空引用,因此请帮助我解决这个问题。

下面的代码

数据:ls_params类型crmt_name_value_pair。 引用cl_crm_bol_entity。

ls_params-name ='OBJECT_ID'。
lv_object_id = zl_bt116it__genericitemel_impl => zobjid。
将ls_params附加到lt_params。

数据:lo_iterator类型ref到if_bol_bo_col_iterator,
lo_current类型REF到if_bol_bo_property_access,
lv_guid TYPE crmt_object_guid,
lt_guid TYPE crmt_object_guid_tab,
gt_orderadm_mtm > gt_product_i TYPE crmt_product_i_wrkt,结果,gs_product_i TYPE crmt_product_i_wrk,结果,gt_pricing_i TYPE crmt_pricing_i_wrkt,结果,gs_pricing_i TYPE crmt_pricing_i_wrk,结果,gt_schedlin_i TYPE crmt_schedlin_i_wrkt,结果,gs_schedlin_i TYPE crmt_schedlin_i_wrk,结果,ls_product TYPE ztab000019,结果 lv_process_type TYPE crmd_orderadm_h-process_type,
lv_product TYPE COMT_PRODUCT_ID," crmd_orderadm_i-product,
lv_product_string TYPE字符串。 ()。
清除lv_guid。
从crmd_orderadm_h选择单个guid到lv_guid,其中object_id = lv_object_id

SELECT * FROM ztab000019 INTO ls_product,其中object_id = lv_guid。
ENDSELECT。
如果ls_product不初始。

选择单个process_type
从crmd_orderadm_h
INTO lv_process_type
哪里有Guid EQ lv_guid。

如果ls_product-zzfld00001f不是INITIAL。
" Flat

从zproduct
到lv_product
中选择单个产品在哪里process_type EQ lv_process_type
AND pro_type EQ ls_product-zzfld00001e
AND plo_type EQ ls_product-zzfld00001f。
* ELSEIF ls_product-zzfld00001e EQ'2'。
ELSE。
" Flat
从zproduct
选择单个产品 INTO lv_product
在哪里process_type EQ lv_process_type
和pro_type EQ ls_product-zzfld00001e。

ENDIF。

如果lv_product不是INITIAL。
lv_product_string = lv_product。
* lo_current-> set_property_as_string(iv_attr_name ='ORDERED_PROD'iv_value = lv_product_string)。

在set属性中,我遇到错误,它并不令人失望

付费偷看设置
发送
3条回答
clasier
1楼-- · 2020-09-29 22:42

克里希纳,

嗨。 看来您有与服务订单相关的ABAP类型的问题。 假定您知道如何通过在代码中添加断点来理解SE37中的调试,以了解在调试模式下查看每个属性所返回的值。 仔细检查语法错误,或者至少检查上面语句中任何先前查询返回的值。 您可能会使用典型的调试方法。

最好的问候,

SAP支持

ZJXianG
2楼-- · 2020-09-29 23:04

Hello Mark,

感谢您的回复。

我们正在根据服务订单-流程类型在lv_product中获取合适的产品。

但是,每当我们尝试展示该产品时,我们都会得到转储,即排成一行,

lo_current-> set_property_as_string(iv_attr_name ='ORDERED_PROD'iv_value = lv_product_string)。

我附上了该截图

callcenter油条
3楼-- · 2020-09-29 22:55

您好,克里希纳,

您似乎不知道 没有实例化LO_CURRENT对象,因此可以在调用之前尝试以下方法:

 lo_current = lo_iterator-> get_current()。

亲切的问候,

加西亚(Garcia)

一周热门 更多>