Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
emma111
Explorer
0 Kudos
478

S/4HANA系统中的价格管理模块,包括价格主数据管理和定价信息管理。S/4HANA系统作为定价管理系统,外围的采购系统可以从S/4HANA系统中读取定价信息,并且可以创建,修改和删除价格主数据。


S/4HANA系统提供价格主数据OData服务API_PURGPRICINGCONDITIONRECORD_SRV这个同步的主数据入站服务可以让用户获取,创建,更新和删除采购价格主数据。该OData服务包括采购中的定价记录,定价条件有效期,定价等级和定价补充。


定价数据集成场景配置


为了激活上述的OData服务,用户必须创建并激活通信场景SAP_COM_0294。


OData服务列表




OData服务操作


执行更新操作之前,需要使用读取操作从返回结果中获取相关数据的Etag,并将Etag的值放入到请求If-Match中。


更新操作和创建操作不同,更新操作不支持纵深数据结构,只支持扁平数据结构,对于需要同时更新定价记录和定价条件有效期的可以通过批处理操作来完成。


更新操作只对部分开放字段有效,对于定价条件有效期,只有定价条件有效期开始日期,定价条件有效期结束日期支持更新。


对于定价记录,字段定价金额,定价排除,付款条件,固定起息日和附加起息日支持更新。


对于定价等级,字段数量等级,价值等级,金额支持更新。


对于定价补充,只有金额字段支持更新。


更新定价条件有效期


请求正文:更新定价条件有效期开始日期和结束日期
PATCH <host>/sap/opu/odata/SAP/API_PURGPRCGCONDITIONRECORD_SRV/A_PurgPrcgCndnRecdValidity(ConditionRecord='0000061551',ConditionValidityEndDate=datetime'9999-12-31T00:00:00')


X-CSRF-Token: abc


Content-Type: application/json


Accept: application/json


If-Match: W/"'DE75B233FEECB3CE4ADCF9ED202231F08BF8683D'"



{


"ConditionValidityStartDate" : "2049-02-01T00:00:00",


"ConditionValidityEndDate" : "2049-9-30T00:00:00"


}




返回结果:
Status: 204 No Content


dataserviceversion: 2.0


更新定价记录


请求正文:更新定价金额,付款条件和附加起息日
PATCH <host>/sap/opu/odata/SAP/API_PURGPRCGCONDITIONRECORD_SRV/A_PurgPrcgConditionRecord('0000028020')


X-CSRF-Token: abc


Content-Type: application/json


Accept: application/json


If-Match: W/"'8AFFB7DBBD3686F4F30047AE75DD82894F9A575A'"



{


"ConditionRateValue" : "345.38",


"ConditionRateValueUnit" : "EUR",


"ConditionExclusion" : "A",


"PaymentTerms" : "0001",


"FixedValueDate" : "2039-11-14T00:00:00"


}


 


更新定价等级 - 数量类型


请求正文:更新等级数量和等级金额
PATCH <host>/sap/opu/odata/SAP/API_PURGPRCGCONDITIONRECORD_SRV/A_PurgPrcgCndnRecordScale(ConditionRecord='0000061551',ConditionSequentialNumber='1',ConditionScaleLine='7')


X-CSRF-Token: abc


Content-Type: application/json


Accept: application/json


If-Match: W/"'2256047D6497A568781F2DBFBC4941564CDDC42A'"



{


"ConditionScaleQuantity" : "25",


"ConditionRateValue" : "4545.45",


"ConditionRateValueUnit" : "EUR"


}



返回结果:
Status: 204 No Content


dataserviceversion: 2.0


更新定价等级 - 值类型


请求正文:更新等级值和等级金额
PATCH <host>/sap/opu/odata/SAP/API_PURGPRCGCONDITIONRECORD_SRV/A_PurgPrcgCndnRecordScale(ConditionRecord='0000061551',ConditionSequentialNumber='1',ConditionScaleLine='7')


X-CSRF-Token: abc


Content-Type: application/json


Accept: application/json


If-Match: W/"'2256047D6497A568781F2DBFBC4941564CDDC42A'"



{


"ConditionScaleAmount" : "4000",


"ConditionRateValue" : "4545.45",


"ConditionRateValueUnit" : "EUR"


}



返回结果:
Status: 204 No Content


dataserviceversion: 2.0


更新定价补充


请求正文:更新价格补充金额
PATCH <host>/sap/opu/odata/SAP/API_PURGPRCGCONDITIONRECORD_SRV/A_PurgPrcgCndnRecdSuplmnt(ConditionRecord='0000061551',ConditionSequentialNumber='5')


X-CSRF-Token: abc


Content-Type: application/json


Accept: application/json


If-Match: W/"'5B8349EB89A607ADFE6F8315BFCB5E8E16BDE26A'"



{


"ConditionRateValue" : "666",


"ConditionRateValueUnit" : "USD"


}




返回结果:
Status: 204 No Content


dataserviceversion: 2.0


批处理更新


请求正文:用批处理同时更新定价记录和对应的定价条件有效期
POST <host>/sap/opu/odata/sap/API_PURGPRCGCONDITIONRECORD_SRV/$batch
X-CSRF-Token: abc


Content-type:Multipart/mixed;boundary=batch



--batch


Content-Type: multipart/mixed; boundary=changeset



--changeset


Content-Type: application/http


Content-Transfer-Encoding: binary



PATCH A_PurgPrcgCndnRecdValidity(ConditionRecord='0000241124',ConditionValidityEndDate=datetime'9999-12-31T00%3A00%3A00') HTTP/1.1


Content-Type: application/json


If-Match: W/"'A176CB9A5A33775E304A7CCA5FF6F717C7B3F628'"



{


"ConditionValidityStartDate" : "2055-10-01T00:00:00",


"ConditionValidityEndDate" : "2055-10-30T00:00:00"


}




--changeset


Content-Type: application/http


Content-Transfer-Encoding: binary



PATCH A_PurgPrcgConditionRecord('0000241124') HTTP/1.1


Content-Type: application/json


If-Match: W/"'DC2A2BA12B24DEA1F62E489AB568CB805A33DC57'"



{


"ConditionRateValue" : "1.0",


"ConditionRateValueUnit" : "EUR"


}




--changeset--




--batch--



返回结果:
Status: 202 Accepted


dataserviceversion: 2.0



--811D897B750E8710365F9A5B835ABED00


Content-Type: multipart/mixed; boundary=811D897B750E8710365F9A5B835ABED01


Content-Length: 437



--811D897B750E8710365F9A5B835ABED01


Content-Type: application/http


Content-Length: 71


content-transfer-encoding: binary



HTTP/1.1 204 No Content


Content-Length: 0


dataserviceversion: 2.0




--811D897B750E8710365F9A5B835ABED01


Content-Type: application/http


Content-Length: 71


content-transfer-encoding: binary



HTTP/1.1 204 No Content


Content-Length: 0


dataserviceversion: 2.0




--811D897B750E8710365F9A5B835ABED01--



--811D897B750E8710365F9A5B835ABED00--





结语


上面列举了各种更新的例子,批处理操作中支持了各种复杂更新需求,用户可以根据业务需求来组合对应的请求。