需要通过阻止后续更改请求阻止客户创建更改请求

2020-08-16 21:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好, 我正在使用 API ...

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

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


您好,

我正在使用 API if_usmd_crequest_api 方法中的 CREATE_CREQUEST_BY_REFERENCE 来创建从创建为阻止的后续更改请求 更改客户的请求类型,并使用 write_value 方法更新并提交阻止指标。

当我在同步调用中调用此方法时,出现错误。 我在地址数据中遇到错误,因为在对象列表中它仍然拥有temp键。 当我单独调用se24中的方法时,我就能成功创建它。

我怀疑存在锁定问题,但无法解决。

附带的错误消息截图


致谢

Suresh PC

1条回答
蓋茨
2020-08-16 21:45

你好Suresh,

请分享屏幕截图,希望您在更新Entity之前已完成入队和出队。

例如,如果是材料(希望这会给您带来想法):

*参考现有的参考文献创建后续CR
l_obj_crequest_api-> create_crequest_by_reference(

导出
iv_reference_id = g_crid
iv_crequest_type = im_v_crtype
it_crequest_attribute = li_attribute
if_attachments = abap_true
if_objectlist = abap_true
if_notes = abap_true

导入

ev_crequest_id = g_new_crid
et_message = li_message)。

如果li_message []不初始。

返回。

ENDIF。


*保存新创建的CR
l_obj_crequest_api-> save_crequest(导出
if_check = abap_false

导入
et_message = li_message)。

*创建数据参考-主实体密钥

调用方法l_obj_gov_api-> create_data_reference

导出
iv_entity_name = if_mdg_bs_mat_gen_c => gc_entity_material
iv_struct = if_usmd_gov_api_entity => gc_struct_key

导入
er_structure = l_obj_struct_key
er_table = l_obj_table_key。
ASSIGN l_obj_table_key-> *至

ASSIGN l_obj_struct_key-> *到
ASSIGN组件的"材料"结构
= l_matnr。

插入插入表

*锁定实体

TRY。
l_obj_gov_api->入队实体(导出iv_crequest_id = g_new_crid
iv_entity_name = if_mdg_bs_mat_gen_c => gc_entity_material
it_data = )。

CATCH cx_usmd_gov_api_entity_lock cx_usmd_gov_api。

返回。

ENDTRY。

*将实体数据写入CR

TRY。
l_obj_gov_api-> write_entity(导出
iv_crequest_id = g_new_crid
iv_entity_name ='实体名称'
it_data = )。

CATCH cx_usmd_gov_api_entity_write。

返回。

ENDTRY。

*保存更改请求

尝试。
l_obj_gov_api->保存(if_usmd_ui_services => gc_save_mode_draft_no_check).CATCH cx_usmd_gov_api_core_error.RETURN。

ENDTRY。

*出队

TRY。
l_obj_gov_api-> dequeue_crequest(iv_crequest_id = g_new_crid )。CATCH cx_usmd_gov_api.RETURN。

ENDTRY。

一周热门 更多>