点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我想使用absl覆盖采购订单的价格来获取产品组合的标价数据。
我认为标价的BO是" ProcurementPriceSpecification"。
在报告中,我通过使用查询" QueryByTypeCodeAndPropertyIDAndPropertyValue"执行数据。
尽管我添加了正确的参数,但结果为零。
我使用一些代码来查询" ProcurementPriceSpecification" BO。
结果也为零。 所以,我跟踪我的代码,我得到了错误
"(PRC_PROCUREMENT_PS,ROOT)发生技术错误(无业务配置要处理请求):PRC_ESF_CND_MAINT109。报告事件。"
我还参考了"按产品ID查询采购价格规格"的讨论。
我尝试使用以下代码执行此操作:
导入ABSL;
导入AP.FO.PriceAndTax.Global;
////////////////
if(this.ItemProduct.IsSet()){
var prodID = this.ItemProduct.ProductKey.ProductID.content;
if(!prodID.IsInitial()){
var TestDate = Date.ParseFromString(" 20160605");
var provider = this.ToParent.SellerParty.Party.Key.PartyID.content;
var prd_cat = this.ItemProduct.ProductCategory.InternalID;
if(!TestDate.IsInitial()){
var priceSpecQuery = ProcurementPriceSpecification.QueryByTypeCodeAndPropertyIDAndPropertyValue;
var params = priceSpecQuery.CreateSelectionParams();
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation1.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",prodID);
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation2.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",供应商);
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation3.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",prd_cat);
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation1.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_PRODUCT_ID");
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation2.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_SUPPL_ID");
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation3.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_PRD_CAT_ID");
params.Add(priceSpecQuery.Status.ConsistencyStatusCode," I"," EQ"," 3");
params.Add(priceSpecQuery.Status.ReleaseStatusCode," I"," EQ"," 3");
var result = priceSpecQuery.Execute(params);
foreach(结果中为var inst){
this.ListUnitPrice.Amount.content = inst.Amount.content;
this.ListUnitPrice.Amount.currencyCode = inst.Amount.currencyCode;
this.ListUnitPrice.BaseQuantity.content = inst.BaseQuantity.content;
this.ListUnitPrice.BaseQuantityTypeCode.content = inst.BaseQuantityTypeCode.content;
}
}
}
}
最好的问候
Phyo
你好极点
尝试使用 SalesPriceList.bo 。 如果您在存储库中单击它,则会有一些示例说明如何执行查询。
最诚挚的问候,
Alexandre。
你好,Alexandre,
我尝试使用类似于 SalesPriceList.bo 的代码来做到这一点:
但是我不能????
var prodID = this.ProductKey.ProductID.content;
if(!prodID.IsInitial()){
var provider = this.ToRoot.SellerParty.Party.Key.PartyID.content;
var prd_cat = this.ProductCategory.InternalID;
var priceSpecQuery = ProcurementPriceSpecification.QueryByTypeCodeAndPropertyIDAndPropertyValue;
var params = priceSpecQuery.CreateSelectionParams();
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation1.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_PRODUCT_ID");
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation1.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",prodID);
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation2.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_SUPPL_ID");
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation2.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",供应商);
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation3.PriceSpecificationElementPropertyReference.PriceSpecificationElementPropertyID.content," I"," EQ"," CND_PRD_CAT_ID");
params.Add(priceSpecQuery.PropertyValuationPriceSpecificationElementPropertyValuation3.PriceSpecificationElementPropertyValue.ID.content," I"," EQ",prd_cat);
//params.Add(priceSpecQuery.Status.ConsistencyStatusCode," I"," EQ"," 3");
//params.Add(priceSpecQuery.Status.ReleaseStatusCode," I"," EQ"," 3");
var result = priceSpecQuery.Execute(params);
foreach(结果中为var inst){
this.ToParent.ListUnitPrice.Amount.content = inst.Amount.content;
this.ToParent.ListUnitPrice.Amount.currencyCode = inst.Amount.currencyCode;
this.ToParent.ListUnitPrice.BaseQuantity.content = inst.BaseQuantity.content;
this.ToParent.ListUnitPrice.BaseQuantityTypeCode.content = inst.BaseQuantityTypeCode.content;
}
}
嗨,
您可能会收到错误消息,因为PriceMasterDataManagement可能没有范围。
可能
Hi Pole,
检查它是否在业务配置工作中心范围内,如果没有,请检查范围。
谢谢,Pradeep。
嗨,
我遇到了完全相同的问题。 PriceMasterDataManagement绝对在范围内。 如果执行不带选择参数的查询,我什至会得到数据。 仅使用选择参数,我没有任何结果。 知道我缺少什么吗?
我的查询看起来与前面所述的查询几乎相同。
此致
Daniel
嗨,魅力
标价BO是采购价格规范。
您可以使用Web服务-NameManageProcurementPriceSpecificationIn更新清单价格。
您可以在"应用程序和用户管理"->"服务资源管理器"视图->"标价"->单击链接按钮中找到示例有效负载。
最佳问候,
Arun
一周热门 更多>