Product Information
销售价格主数据OData服务 – 更新服务
S/4HANA系统中的价格管理模块,包括价格主数据管理和定价信息管理。S/4HANA系统作为定价管理系统,外围的采购系统可以从S/4HANA系统中读取定价信息,并且可以创建,修改和删除价格主数据。
S/4HANA系统提供价格主数据OData服务API_SLSPRICINGCONDITIONRECORD_SRV,这个同步的主数据入站服务可以让用户获取,创建,更新和删除销售价格主数据。该OData服务包括销售中的定价记录,定价条件有效期,定价等级和定价补充。
定价数据集成场景配置
为了激活上述的OData服务,用户必须创建并激活通信场景SAP_COM_0294。
OData服务列表
OData服务操作
更新操作和创建操作不同,更新操作不支持纵深数据结构,只支持扁平数据结构,对于需要同时更新定价记录和定价条件有效期的可以通过批处理操作来完成。
更新操作只对部分开放字段有效,对于定价条件有效期,只有定价条件有效期开始日期,定价条件有效期结束日期支持更新。
对于定价记录,字段定价金额,定价排除,付款条件,固定起息日和附加起息日支持更新。
对于定价等级,字段数量等级,价值等级,金额支持更新。
对于定价补充,只有金额字段支持更新。
更新定价条件有效期
请求正文:更新定价条件有效期开始日期和结束日期
PATCH <host>/sap/opu/odata/SAP/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgCndnRecdValidity(ConditionRecord='0000027865',ConditionValidityEndDate=datetime'2022-11-30T00%3A00%3A00')
X-CSRF-Token: abc
Content-Type: application/json
Accept: application/json
If-Match: W/"'79BAD8181704F1D6E2223A60CE6FC0CBBE578E66'"
{
"ConditionValidityStartDate" : "2047-02-01T00:00:00",
"ConditionValidityEndDate" : "2047-9-30T00:00:00"
}
返回结果:
Status: 204 No Content
dataserviceversion: 2.0
更新定价记录
请求正文:更新定价金额,付款条件和附加起息日
PATCH <host>/sap/opu/odata/SAP/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgConditionRecord('0000027867')X-CSRF-Token: abc
Content-Type: application/json
Accept: application/json
If-Match: W/"'EA5821B048AB5145777D470A9E5BCC3797C11018'"
{
"ConditionRateValue" : "999.00",
"ConditionRateValueUnit" : "EUR",
"AdditionalValueDays" : "10",
"PaymentTerms" : "0001"
}
返回结果:
Status: 204 No Contentdataserviceversion: 2.0
更新定价等级 – 数量类型
请求正文:更新等级数量和等级金额
PATCH <host>/sap/opu/odata/SAP/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgCndnRecordScale(ConditionRecord='0000027865',ConditionSequentialNumber='1',ConditionScaleLine='4')X-CSRF-Token: abc
Content-Type: application/json
Accept: application/json
If-Match: W/"'2130C66D6F15C419F0994B2D05CCE6EC3E3F2C7C'"
{
"ConditionScaleQuantity" : "25",
"ConditionRateValueUnit" : "EUR",
"ConditionRateValue" : "333.33"
}
返回结果:
Status: 204 No Contentdataserviceversion: 2.0
更新定价等级 – 值类型
请求正文:更新等级值和等级金额
PATCH <host>/sap/opu/odata/sap/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgCndnRecordScale(ConditionRecord='0000068013',ConditionSequentialNumber='1',ConditionScaleLine='7')Content-Type: application/json
Accept: application/json
If-Match: W/"'5C3DAD50168B7DAB6E6C44228317BBAFD511EB2A'"
{
"ConditionScaleAmount" : "4000",
"ConditionScaleAmountCurrency" : "EUR",
"ConditionRateValue" : "333.33",
"ConditionRateValueUnit" : "EUR"
}
返回结果:
Status: 204 No Contentdataserviceversion: 2.0
更新定价补充
请求正文:更新价格补充金额
PATCH <host>/sap/opu/odata/SAP/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgCndnRecdSuplmnt(ConditionRecord='0000061099',ConditionSequentialNumber='4')X-CSRF-Token: abc
Content-Type: application/json
Accept: application/json
If-Match: W/"'30E33BFCAE6AA0B84F31FE3C612D26A0FC1BCF6D'"
{
"ConditionRateValue" : "8000",
"ConditionRateValueUnit" : "JPY"
}
返回结果:
Status: 204 No Contentdataserviceversion: 2.0
批处理更新
请求正文:用批处理同时更新定价记录和对应的定价条件有效期
POST <host>/sap/opu/odata/sap/API_SLSPRICINGCONDITIONRECORD_SRV/$batchX-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_SlsPrcgCndnRecdValidity(ConditionRecord='0000068013',ConditionValidityEndDate=datetime'9999-12-31T00%3A00%3A00') HTTP/1.1
Content-Type: application/json
If-Match: W/"'3C7B20BD3183665B200940017C1E948205F04A09'"
{
"ConditionValidityStartDate" : "2055-10-01T00:00:00",
"ConditionValidityEndDate" : "2055-10-30T00:00:00"
}
--changeset--
--batch
Content-Type: multipart/mixed; boundary=changeset
--changeset
Content-Type: application/http
Content-Transfer-Encoding: binary
PATCH A_SlsPrcgConditionRecord('0000068013') HTTP/1.1
Content-Type: application/json
If-Match: W/"'EFA2CB70489203861C00B818765BF8AD0FDD8F63'"
{
"ConditionRateValue" : "99.99",
"ConditionRateValueUnit" : "EUR",
"AdditionalValueDays" : "15",
"PaymentTerms" : "0001"
}
--changeset--
--batch--
返回结果:
Status: 202 Accepteddataserviceversion: 2.0
--B9C9C566C935A32C487032E2B2DAECD50
Content-Type: multipart/mixed; boundary=B9C9C566C935A32C487032E2B2DAECD51
Content-Length: 238
--B9C9C566C935A32C487032E2B2DAECD51
Content-Type: application/http
Content-Length: 71
content-transfer-encoding: binary
HTTP/1.1 204 No Content
Content-Length: 0
dataserviceversion: 2.0
--B9C9C566C935A32C487032E2B2DAECD51--
--B9C9C566C935A32C487032E2B2DAECD50
Content-Type: multipart/mixed; boundary=B9C9C566C935A32C487032E2B2DAECD51
Content-Length: 238
--B9C9C566C935A32C487032E2B2DAECD51
Content-Type: application/http
Content-Length: 71
content-transfer-encoding: binary
HTTP/1.1 204 No Content
Content-Length: 0
dataserviceversion: 2.0
--B9C9C566C935A32C487032E2B2DAECD51--
--B9C9C566C935A32C487032E2B2DAECD50--
结语
上面列举了各种更新的例子,批处理操作中支持了各种复杂更新需求,用户可以根据业务需求来组合对应的请求。