OData有效负载-无法修补协议条款

2020-08-27 20:05发布

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

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


专家您好,

我的OData有效负载之一给我带来了困难。 我检查了API多次,所有必填字段均已填写,但我不知为何总是收到400-错误的请求。 如果我删除" AgreementTerms"部分,则可以很好地工作,但不能使其整体正常工作。

-批量
 内容类型:多部分/混合;  boundary = changeset_1

 --changeset_1
 内容类型:application/http
 内容传输编码:二进制
 PATCH协议(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01

 {
 " MKT_AgreementOrigin":" CRM",
 " MKT_AgreementExternalID":" 40001",
 " ContactID":" 20001",
 " ContactOrigin":" MAFIS",
 " MKT_AgreementType":" VERTR_STRO",
 " MKT_AgreementStartDateTime":" 2018-01-01T00:00:00",
 " MKT_AgreementEndDateTime":" 2019-12-31T00:00:00",
 " MKT_MarketingArea":" ENERGIE",
 " MKT_AgreementIsCanceled":否,
 " MKT_AgrmtCancellationReason":"",
 " YY1_CONSUMPTION_VALUE_MKT":" 5000",
 " YY1_CONSUMPTION_UNIT_MKT":"千瓦时",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }

 --changeset_1
 内容类型:application/http
 内容传输编码:二进制

 PATCH协议条款(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001',MKT_AgrmtTermsStartDateTime ='2018-01-01T00:00:00',MKT_AgrmtTermsEndDateTime ='2019-12-31T00:00:00')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01


 {
 " MKT_AgreementStatus":" A",
 " MKT_AgreementRenewalType":" 3",
 " ProductOrigin":" CRM",
 " ProductID":" STROM_PRODUKT_1",
 " MKT_AgrmtCanclnConditions":" 3",
 " MKT_AgreementPaymentFrequency":" 4",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }

 --changeset_1--
  -批量-

任何想法我都会非常感谢。

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

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


专家您好,

我的OData有效负载之一给我带来了困难。 我检查了API多次,所有必填字段均已填写,但我不知为何总是收到400-错误的请求。 如果我删除" AgreementTerms"部分,则可以很好地工作,但不能使其整体正常工作。

-批量
 内容类型:多部分/混合;  boundary = changeset_1

 --changeset_1
 内容类型:application/http
 内容传输编码:二进制
 PATCH协议(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01

 {
 " MKT_AgreementOrigin":" CRM",
 " MKT_AgreementExternalID":" 40001",
 " ContactID":" 20001",
 " ContactOrigin":" MAFIS",
 " MKT_AgreementType":" VERTR_STRO",
 " MKT_AgreementStartDateTime":" 2018-01-01T00:00:00",
 " MKT_AgreementEndDateTime":" 2019-12-31T00:00:00",
 " MKT_MarketingArea":" ENERGIE",
 " MKT_AgreementIsCanceled":否,
 " MKT_AgrmtCancellationReason":"",
 " YY1_CONSUMPTION_VALUE_MKT":" 5000",
 " YY1_CONSUMPTION_UNIT_MKT":"千瓦时",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }

 --changeset_1
 内容类型:application/http
 内容传输编码:二进制

 PATCH协议条款(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001',MKT_AgrmtTermsStartDateTime ='2018-01-01T00:00:00',MKT_AgrmtTermsEndDateTime ='2019-12-31T00:00:00')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01


 {
 " MKT_AgreementStatus":" A",
 " MKT_AgreementRenewalType":" 3",
 " ProductOrigin":" CRM",
 " ProductID":" STROM_PRODUKT_1",
 " MKT_AgrmtCanclnConditions":" 3",
 " MKT_AgreementPaymentFrequency":" 4",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }

 --changeset_1--
  -批量-

任何想法我都会非常感谢。

付费偷看设置
发送
5条回答
代楠1984
1楼-- · 2020-08-27 20:33

您好 Maximilian Mangels

对我来说,您的请求看起来不错。

将其与我在集成指南中找到的版本进行比较(https://help.sap.com/viewer/0f9408e4921e4ba3bb4a7a1f75f837a7/1911.500/en-US/ef61a9b667c84404bee3777568a45f10.html?q=agreement ),我可以看到的唯一区别是您的AgreementTerms部分的时间戳格式。 在有效负载示例中,有一个附加的" datetimeoffset"。

我不知道这是否 可能导致您的要求不正确。

对我来说,还有其他选择。

BR Tobias

粗暴的香蕉
2楼-- · 2020-08-27 20:54

感谢您对Tobias的回复。

我编辑了请求,但是很遗憾,它没有帮助。

对于任何其他来这里寻求时间戳建议的人:示例有效负载都有一些标点符号。

应该读取[...] = datetimeoffset'2012-01-01T00:00:00Z'
-批量
 内容类型:多部分/混合;  boundary = changeset_1

 --changeset_1
 内容类型:application/http
 内容传输编码:二进制

 PATCH协议条款(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001',MKT_AgrmtTermsStartDateTime = datetimeoffset'2018-01-01T00:00:01 + 01:00',MKT_AgrmtTermsEndDateTime = datetimeoffset'2019-12-31T00:00:  00')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01

 {
 " MKT_AgreementStatus":" A",
 " MKT_AgreementRenewalType":" 3",
 " ProductOrigin":" CRM",
 " ProductID":" STROM_PRODUKT_1",
 " MKT_AgrmtCanclnConditions":" 3",
 " MKT_AgreementPaymentFrequency":" 4",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }

 --changeset_1--
  - 批量 - 
 
歪着头看世界
3楼-- · 2020-08-27 20:56

嗨,Maximilian,

只需在PATCH前面添加一个空行:

 ....
 --changeset_1
 内容类型:application/http
 内容传输编码:二进制

 PATCH协议(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001')HTTP/1.1
 内容类型:application/json
 内容长度:###
 .... 

最好的问候,
Wolfgang

SAP浪
4楼-- · 2020-08-27 20:50

谢谢Wolfgang,但这只是在此处复制格式错误。 有效负载如下:

-批量
 内容类型:多部分/混合;  boundary = changeset_1


 --changeset_1
 内容类型:application/http
 内容传输编码:二进制




 PATCH协议(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001')HTTP/1.1
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01


 {
 " MKT_AgreementOrigin":" CRM",
 " MKT_AgreementExternalID":" 40001",
 " ContactID":" 20001",
 " ContactOrigin":" MAFIS",
 " MKT_AgreementType":" VERTR_STRO",
 " MKT_AgreementStartDateTime":" 2018-01-01T00:00:00",
 " MKT_AgreementEndDateTime":" 2019-12-31T00:00:00",
 " MKT_MarketingArea":" ENERGIE",
 " MKT_AgreementIsCanceled":否,
 " MKT_AgrmtCancellationReason":"",
 " YY1_CONSUMPTION_VALUE_MKT":" 5000",
 " YY1_CONSUMPTION_UNIT_MKT":"千瓦时",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }




 --changeset_1
 内容类型:application/http
 内容传输编码:二进制




 PATCH协议条款(MKT_AgreementOrigin ='CRM',MKT_AgreementExternalID ='40001',MKT_AgrmtTermsStartDateTime = datetimeoffset'2018-01-01T00:00:01Z',MKT_AgrmtTermsEndDateTime = datetimeoffset'2019-12-31T00:00:01
 内容类型:application/json
 内容长度:###
 Sap-Cuan-SourceSystemId:XXXCLN123
 Sap-Cuan-SourceSystemType:
 Sap-Cuan-SequenceId:AGREEMENT_MASTER_DATA
 Sap-Cuan-Request时间戳:20170508141617.0000001
 Sap-Cuan-ExternalReferenceId:XXXCLN12320170508141617_01


 {
 " MKT_AgreementOrigin":" CRM",
 " MKT_AgreementExternalID":" 40001",
 " MKT_AgrmtTermsStartDateTime":" 2018-01-01T00:00:00",
 " MKT_AgrmtTermsEndDateTime =" 2019-12-31T00:00:00",
 " MKT_AgreementStatus":" A",
 " MKT_AgreementRenewalType":" 3",
 " ProductOrigin":" CRM",
 " ProductID":" STROM_PRODUKT_1",
 " MKT_AgrmtCanclnConditions":" 3",
 " MKT_AgreementPaymentFrequency":" 4",
 " OriginDataLastChgUTCDateTime":"/日期(1574636400000)/"
 }




 --changeset_1--


  - 批量 - 
 
Nir深蓝
5楼-- · 2020-08-27 20:44

嗨,Maximilian,

尝试使用此有效负载: payloadwithoneemptyline.txt

" PATCH"行前面只有一个空行。

最好的问候,
沃尔夫冈

一周热门 更多>