使用ABSL在客户报价中添加项目产品。

2020-08-16 16:58发布

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

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


专家们,我发现尝试使用ABSL代码添加产品时遇到问题。

基本上,我创建了一个脚本,该脚本调用WS(此WS使用ID产品,数量和度量来还原产品列表),并且在尝试添加产品时出现消息Exception。

1)使用这种方法,在CustomerQuote扩展BO中的脚本内部,添加了产品,但是我有消息异常(该产品不存在)

var itemToCreate = this.Item.Create(); //在此行中,引发异常 :( itemToCreate.ItemProduct.ProductKey.ProductID.content = material.InternalID.content; itemToCreate.ItemProduct.QuantityMeasureUnitCode = itemResp.GUabsmg; itemToCreate.FirstRequestedItemScheduleLine.Quantity .content = itemResp.zRtCmp;

2)我尝试了另一种添加产品的方法,但是看不到节点/关联的ItemProduct。

var itemToCreate:CustomerQuote.Item的元素;

//以下几行中出现错误,因为我无法访问关联的ItemProduct。

itemToCreate.ItemProduct.ProductKey.ProductID.content = material.InternalID.content; itemToCreate.ItemProduct.QuantityMeasureUnitCode = itemResp.GUabsmg; itemToCreate.FirstRequestedItemScheduleLine.Quantity.content = itemResp.zRtCmp;

还有另一种添加产品的方式?

谢谢!

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

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


专家们,我发现尝试使用ABSL代码添加产品时遇到问题。

基本上,我创建了一个脚本,该脚本调用WS(此WS使用ID产品,数量和度量来还原产品列表),并且在尝试添加产品时出现消息Exception。

1)使用这种方法,在CustomerQuote扩展BO中的脚本内部,添加了产品,但是我有消息异常(该产品不存在)

var itemToCreate = this.Item.Create(); //在此行中,引发异常 :( itemToCreate.ItemProduct.ProductKey.ProductID.content = material.InternalID.content; itemToCreate.ItemProduct.QuantityMeasureUnitCode = itemResp.GUabsmg; itemToCreate.FirstRequestedItemScheduleLine.Quantity .content = itemResp.zRtCmp;

2)我尝试了另一种添加产品的方法,但是看不到节点/关联的ItemProduct。

var itemToCreate:CustomerQuote.Item的元素;

//以下几行中出现错误,因为我无法访问关联的ItemProduct。

itemToCreate.ItemProduct.ProductKey.ProductID.content = material.InternalID.content; itemToCreate.ItemProduct.QuantityMeasureUnitCode = itemResp.GUabsmg; itemToCreate.FirstRequestedItemScheduleLine.Quantity.content = itemResp.zRtCmp;

还有另一种添加产品的方式?

谢谢!

付费偷看设置
发送
9条回答
SC_Yao
1楼 · 2020-08-16 17:32.采纳回答

Pranav,我尝试过这种方式。

在调试模式下,在var createitem = this.Item.Create();行中引发警告。

设置产品后,在以下几行中保存产品:),但显示警告:(。

谢谢!

梦想连接
2楼-- · 2020-08-16 17:35

你好帕勃罗!

您过得愉快! 非常感谢您的代码。

该错误消息不再显示!

非常感谢!

最好的问候

顺便说一句,去年我也开了一个事件,这就是支持人员给我们写的:

"亲爱的彼得,

我们已经与我们的开发团队一起检查了此问题,以下是他们的发现:PDI创建了一个项目://CustomerQuote:创建项目实例this.Item.Create(elCustomerQuote_Item);

在标准处理中,确定一致性,并显示有关缺少产品的错误消息。 之后,PDI将产品设置为子产品ItemProduct:

//设置产品标识符-必填

this.Item.GetFirst()。ItemProduct.ProductKey.ProductID.content =" 1000001";

在标准处理中,将再次确定一致性,并且该项目变得一致(Status.ConsistencyStatusCode onItem变为3 = Consentent)。

但是,发出的消息无法在同一回合提示中再次删除! 因此,尽管错误已得到解决,但该操作将返回错误消息。 仅当在OData调用中完成项目的创建和产品的提供同时发生时,才能解决该问题。"

追夢秋陽
3楼-- · 2020-08-16 17:19

您好,

我对此有一个解决方案,基本上我们必须设置节点itemProposal。

var itemProd:CustomerQuote.ItemProposal的元素;

itemProd.ProductKey.ProductID.content = prom.ProductID;

itemProd.Quantity.content = prom.CantidadSol.content;

var itemprop = this.ItemProposal.Create(itemProd);

itemprop.Accept(); //这行非常重要。

//现在我们找到了创建的产品,现在可以修改所有自定义字段

var prodTomodify = this.Item.Where(p => p.ID.RemoveLeadingZeros()== prom.ItemNumber).GetFirst();

最好的问候。

d56caomao
4楼-- · 2020-08-16 17:22

你好,帕勃罗,

但是消息仍然显示在UI上吗?

再见,
。 霍斯特(Horst)

绿领巾童鞋
5楼-- · 2020-08-16 17:29

你好,帕勃罗(

您需要通过Create调用来提供数据。

请查看通过CustomerQuote BO的文档中的资源库浏览器找到的示例。

HTH,
。 Horst

6楼-- · 2020-08-16 17:18

嗨,Pranav,谢谢您的帮助。

我用这种方法尝试了几次。 我的问题是线,

var createitem = this.Item.Create(); //在调试模式下,此行会引发错误消息"该商品没有产品"

即使出现该消息,也将创建并保存产品。 但是消息错误仍然出现:(。

骆驼绵羊
7楼-- · 2020-08-16 17:42

HI Pablo,

根据我的类似要求,我首先创建了带有所有必填字段的项目,然后创建了产品:

请参见以下代码。 如果可以使用以下方法创建商品,请告诉我。

varcreateitem = this.Item.Create();

createitem.Description.content ="咨询服务";

createitem.ExpectedNetAmount.content = weightedvalue;

createitem.ExpectedNetAmount.currencyCode =" USD";

createitem.Quantity.content = 1;

createitem.Quantity.unitCode =" EA";

如果(createitem.ItemProduct.IsSet()){

createitem.ItemProduct.ProductKey.ProductID.content =" 10000000";

createitem.ItemProduct.ProductCategoryHierarchyProductCategoryIDKey.ProductCategoryInternalID =" 1";

一周热门 更多>