点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我想通过Z *程序从Order中删除"对员工负责"的合伙人。 以下是我的代码。 但是我仍然无法删除它。 有人可以看一下代码吗?
lv_partner-ref_guid ='DDCBF5EB8FA58FF19F94001E6849B4E8'。 lv_partner-ref_handle ='0000000000'。 lv_partner-ref_kind ='A'。 lv_partner-ref_partner_handle ='0000'。 lv_partner-ref_partner_fct ='00000014'。 lv_partner-ref_partner_no ='200010671'。 lv_partner-ref_no_type ='BP'。 lv_partner-ref_display_type ='BP'。 lv_partner-partner_guid ='DDCDB8C50DFC0CF19F94001E6849B4E8'。 lv_partner-kind_of_entry =''。 lv_partner-partner_fct ='00000014'。 lv_partner-partner_no ='200010671'。 lv_partner-display_type ='BP'。 lv_partner-no_type ='BP'。 lv_partner-mainpartner ='X'。 将lv_partner插入表lt_partner。 数据:l_key类型CRMT_LOGICAL_KEY。 ***输入栏位 将'000000000014''200010671''BPBP'放入l_key中。 清除lw_field。 清除lt_field。 lw_field-ref_guid ='DDCBF5EB8FA58FF19F94001E6849B4E8'。 lw_field-ref_handle ='0000000000'。 lw_field-ref_kind ='A'。 lw_field-objectname ='PARTNER'。 lw_field-logical_key ='000000000014200010671 BPBP'。 lw_fp-fieldname ='PARTNER_FCT'。 将lw_fp插入表lt_fp。 lw_field-field_names = lt_fp。 插入lw_field插入表lt_field。 数据:lt_mode类型CRMT_ORDERADM_H_COMT, lv_mode类型CRMT_ORDERADM_H_COM。 lv_mode-guid ='DDCBF5EB8FA58FF19F94001E6849B4E8'。 lv_mode-mode ='D'。 将lv_mode附加到lt_mode。 *用于BADI更改EMP响应,状态,文本注释 通话功能'CRM_ORDER_MAINTAIN' 出口 it_partner = lt_partner 改变 CT_ORDERADM_H = lt_mode ct_input_fields = lt_field 。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 数据:it_guid类型为crmt_object_guid_tab。 * Lv_header_guid类型为crmt_object_guid。 Lv_header_guid ='DDCBF5EB8FA58FF19F94001E6849B4E8'。 * 将LV_HEADER_GUID附加到IT_GUID。 通话功能'CRM_ORDER_SAVE' 出口 it_objects_to_save = it_guid 。 如果sy-subrc <> 0。 *消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO *与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。 万一。 通话功能'BAPI_TRANSACTION_COMMIT' *出口 *等待= *重要 *返回= 。
您好
在您提供给CRM_ORDER_MAINTAIN的所有表中," ref"字段(ref_part_no,ref_part_fct等)必须包含旧值(在进行更改之前)。 要输入的新值是不带" ref"的相同字段(partner_no,partner_fct,...)。
如果要删除特定的伙伴函数,则您的" ref"字段 应该包含当前输入的值(可以通过执行crm_order_read来完成此操作),并且非" ref"字段应该完全为空! (您要删除它们)
您忘了一个市长的事情是输入字段中的FIELD_NAMES。 您在结构中填写的每个字段(在这种情况下为合作伙伴)都应在input_fields-fieldnames中列出,而不仅是PARTNER字段。 (对ref_partner_no,partner_no,...都指定了值的所有字段也是如此,否则将忽略这些值)
我还认为您不应该在相应的字段中指定逻辑键 inpur字段,因为您要删除某些内容而不是创建或更改某些内容。 (所有其他input_fields应该保留)
问候,
Joost
嗨,Dharmesh,
试一下FM'CRM_PARTNER_DELETE_EC'是否适合您。
此致
Saumya
大家好,
请允许我添加一些建议:我有类似的情况:
这在我的情况下有效,但是在我更改了自定义相关伙伴功能之后,首先在适当的伙伴方案中自定义为"可更改"。
我尝试了相同的操作,并在必填字段中仅添加了" PARTNER_FCT",但系统抛出了如下错误
我有什么建议可以克服这种情况
deletion-of-partner.png
此致
R.Naveen kumar。
一周热门 更多>