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

2020-08-26 19:36发布

         点击此处--->   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);

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

         点击此处--->   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);

     }//如果基本业务交易文档引用尚不存在,则结束
 }//结束每个没有引用的项目
付费偷看设置
发送
8条回答
Doze时光
1楼-- · 2020-08-26 20:01

你好,丹,

如果没有参考,为什么根本需要创建一个?
如果没有创建" ItemBusinessTransactionDocumentReference",是否也会出错?

再见,
霍斯特

d56caomao
2楼-- · 2020-08-26 20:17

霍斯特,

是的,需要引用-没有引用,返回无效/不一致且无法发布 。

大道至简
3楼-- · 2020-08-26 20:20

您好,皮埃尔,

对不起,但我离开了这个区域。 :-(

但是AFAI记得在这个方向上没有做任何事情。

再见,
。霍斯特

CJones
4楼-- · 2020-08-26 20:07

霍斯特,

好主意,但是我遇到了同样的错误。我想出了很多,但是当我在支持下开立一个案子时,他们告诉我,在考虑之前,我必须在SCN上提问。

感谢您的答复,

-Dan

Aaron 3364
5楼-- · 2020-08-26 19:59

Hello Dan,

根据您的回复 如果您提交这些数据,则必须使用ID" UNKNOWN"来编码BTD引用。:-(

将ID字段留空怎么办?

再见,
Horst

Tong__Ming
6楼-- · 2020-08-26 20:19

您好,霍斯特,有关此问题的任何更新?

PDI方法唯一缺少的是"外部指标"复选框,它使您可以将任何信息传递到这些字段中。

致谢,
Pierre

一周热门 更多>