如何通过服务层更新机会合作伙伴(OPRT)记录?

2020-08-26 11:59发布

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

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


我有一个SAP Business One OPRT记录,我想通过服务层更新该记录,其PrtID = 100000和Name =" 100000"。

根据EDMX和 https://b1sa.github.io/hackathon/上的文档 b1sl.html 我已经为服务层创建了这个Fiddler请求:

 POST https://xxx.xxx.xxx.xxx:50000/b1s/v1/PartnersSetups(100000)HTTP/1.1
 连接:保持活动
 Cookie:B1SESSION = 565b0534-169a-11ea-8000-000c298b2471;  ROUTEID = .node3
 内容类型:application/json:charset = utf-8
 内容长度:25
 主持人:xxx.xxx.xxx.xxx:50000
 {" Details":" Some string"} 

服务层响应:

 HTTP/1.1 400错误的请求
 日期:2019年12月4日星期三14:04:28 GMT
 伺服器:Apache/2.4.34(Unix)
 DataServiceVersion:3.0
 内容类型:application/json; charset = utf-8
 有所不同:接受编码
 连接方式:关闭
 传输编码:分块


 a1
 {
    "错误":{
       "代码":-1000,
       "信息" : {
          " lang":" zh-cn",
          " value":"未定义'OPRT'的字段'PrtId'"
       }
    }
 }


 0
 

我对此进行了多种尝试,包括用单引号引起来的记录键:

 POST https://xxx.xxx.xxx.xxx:50000/b1s/v1/PartnersSetups('100000')HTTP/1.1 

,并在有效负载中包含" PartnerID"," PrtId"和"名称":

 {" PartnerID":" 100000"," Details":"某些字符串"} 
 {" PrtId":" 100000"," Details":"某些字符串"} 
 {"名称":" 100000","详细信息":"某些字符串"} 

...但是它们都以"未定义'OPRT'的字段'PrtId'"进行响应。

我怀疑我是否为此实体类型以错误的方式调用了此服务,或者服务层不支持更新合作伙伴,或者是服务层错误。

在9.3 PL9上完成的测试。 我计划进行一次PL11更新,以查看这是否有所作为,但确实可以在PL9上取得进展。

谢谢。

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

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


我有一个SAP Business One OPRT记录,我想通过服务层更新该记录,其PrtID = 100000和Name =" 100000"。

根据EDMX和 https://b1sa.github.io/hackathon/上的文档 b1sl.html 我已经为服务层创建了这个Fiddler请求:

 POST https://xxx.xxx.xxx.xxx:50000/b1s/v1/PartnersSetups(100000)HTTP/1.1
 连接:保持活动
 Cookie:B1SESSION = 565b0534-169a-11ea-8000-000c298b2471;  ROUTEID = .node3
 内容类型:application/json:charset = utf-8
 内容长度:25
 主持人:xxx.xxx.xxx.xxx:50000
 {" Details":" Some string"} 

服务层响应:

 HTTP/1.1 400错误的请求
 日期:2019年12月4日星期三14:04:28 GMT
 伺服器:Apache/2.4.34(Unix)
 DataServiceVersion:3.0
 内容类型:application/json; charset = utf-8
 有所不同:接受编码
 连接方式:关闭
 传输编码:分块


 a1
 {
    "错误":{
       "代码":-1000,
       "信息" : {
          " lang":" zh-cn",
          " value":"未定义'OPRT'的字段'PrtId'"
       }
    }
 }


 0
 

我对此进行了多种尝试,包括用单引号引起来的记录键:

 POST https://xxx.xxx.xxx.xxx:50000/b1s/v1/PartnersSetups('100000')HTTP/1.1 

,并在有效负载中包含" PartnerID"," PrtId"和"名称":

 {" PartnerID":" 100000"," Details":"某些字符串"} 
 {" PrtId":" 100000"," Details":"某些字符串"} 
 {"名称":" 100000","详细信息":"某些字符串"} 

...但是它们都以"未定义'OPRT'的字段'PrtId'"进行响应。

我怀疑我是否为此实体类型以错误的方式调用了此服务,或者服务层不支持更新合作伙伴,或者是服务层错误。

在9.3 PL9上完成的测试。 我计划进行一次PL11更新,以查看这是否有所作为,但确实可以在PL9上取得进展。

谢谢。

付费偷看设置
发送
4条回答
My梦
1楼-- · 2020-08-26 12:34

有点奇怪。

我不熟悉PartnerSetup对象,但是检查帮助后,发现没有用于CRUD操作的公共方法:

https://i.imgur.com/VoAILc8.png

因此,我了解所有这些操作均由PartnersSetupsService处理

https://i.imgur.com/Aid6A4A.png

但是当前服务层似乎仅实现GetList方法。

让我检查开发情况,看看有什么发现。

感谢报告。

Aaron 3364
2楼-- · 2020-08-26 12:31

我创建了一个支持事件,SAP确认该文档不正确,并且服务层未实现OPRT更新。 他们正在创建内部事件以使文档"已修复"。

他们建议我创建一个影响力想法,我已经在这里完成: https ://influence.sap.com/sap/ino/#/idea/241281

好像又回到了DI-API:-(

感谢 Ralph Oliveira 的输入。

奄奄一息的小鱼
3楼-- · 2020-08-26 12:27

感谢您的关注 进入这个拉尔夫。

我假定PartnerSetup对象具有CRUD方法,因为它们位于SL URL本身托管的API文档中:

https://imgur.com/ycYG4II

我尝试在已实现的偶然机会上调用/PartnersSetupsService_Update,但似乎无法识别。

Violet凡
4楼-- · 2020-08-26 12:36

您好 Darren Grayson

回到此问题,这似乎是应用程序级别的错误。

该事件已经在内部进行了报告,但是如果您还创建了一个事件,以便客户支持可以跟踪它,可能会有所帮助。

感谢告知我们。

# p#

一周热门 更多>