如何在客户退货中为不存在的销售订单分配参考?

2020-08-26 19:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我目前正在为输入超大客户退货(几...

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

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


我目前正在为输入超大客户退货(几百项)的客户进行定制。 退货单上的许多项目都无法链接到ByDesign中的现有销售订单(即原始销售订单)。

如果无法确定销售订单,则将其填充为 使用返回屏幕上的"分配参考"按钮"不适用"或"未知"。 但是,他们必须一一进行。 但是,只要在前端完成,该方法就可以工作。

我正在尝试编写代码以实现此目的的自动化,但是我希望这两种方法都能返回错误,即使我 填充数据元素的方式与查看手动完成的后端查询中显示的方式相同。

有人知道正确的方法吗?

这是我的代码 到目前为止-在CustomerReturn对象上运行,BeforeSave事件:

 import ABSL;
 导入AP.CRM.Global;
 导入AP.Common.GDT;
 导入AP.Common.Global;

//对于没有参考的每个项目
 foreach(this.Item中的var FoundItemWithoutReference){
    //如果基本业务交易文档引用尚不存在
     如果(!FoundItemWithoutReference.BaseItemBusinessTransactionDocumentItemReference.IsSet()){

        //AddReferenceWithDataProvision不起作用
        //下面的代码将返回错误-"无法复制文档;参考文档不存在"
         var BusinessTransactionDocumentItemKey:BusinessTransactionDocumentItemKey;
         BusinessTransactionDocumentItemKey.BusinessTransactionDocumentItemID ="未知";
         BusinessTransactionDocumentItemKey.BusinessTransactionDocumentKey.BusinessTransactionDocumentID.content ="未知";
         BusinessTransactionDocumentItemKey.BusinessTransactionDocumentKey.BusinessTransactionDocumentTypeCode =" 28";
         FoundItemWithoutReference.AddReferenceWithDataProvision(BusinessTransactionDocumentItemKey);

        //下面的代码将返回错误-"无法创建;源对象不一致"

        //创建空白业务交易凭证参考
         var BTDR_TypeCode:BusinessTransactionDocumentTypeCode;
         var BTDR_ID:BusinessTransactionDocumentID;
         var BTDR_ItemTypeCode:BusinessTransactionDocumentItemTypeCode;
         var BTDR_ItemID:BusinessTransactionDocumentItemID;
         BTDR_TypeCode =" 114";
         BTDR_ID.content ="未知";
         BTDR_ItemTypeCode =" 28";
         BTDR_ItemID ="未知";
        //存储要创建的销售订单项目参考的元素
         var elemItemBusinessTransactionDocumentReference:CustomerReturn.Item.ItemBusinessTransactionDocumentReference的元素;
         elemItemBusinessTransactionDocumentReference.BusinessTransactionDocumentRelationshipRoleCode =" 1"; //角色代码1-前身
         elemItemBusinessTransactionDocumentReference.BusinessTransactionDocumentReference.TypeCode = BTDR_TypeCode;
         elemItemBusinessTransactionDocumentReference.BusinessTransactionDocumentReference.ID = BTDR_ID;
         elemItemBusinessTransactionDocumentReference.BusinessTransactionDocumentReference.ItemTypeCode = BTDR_ItemTypeCode;
         elemItemBusinessTransactionDocumentReference.BusinessTransactionDocumentReference.ItemID = BTDR_ItemID;
         elemItemBusinessTransactionDocumentReference.DataProviderIndicator = false; //数据提供者-False,这不是ByDesign事务
         FoundItemWithoutReference.ItemBusinessTransactionDocumentReference.Create(elemItemBusinessTransactionDocumentReference);

     }//如果基本业务交易文档引用尚不存在,则结束
 }//结束每个没有引用的项目