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

2020-08-26 11:59发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个SAP Business...

         点击此处--->   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梦
2020-08-26 12:34

有点奇怪。

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

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

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

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

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

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

感谢报告。

一周热门 更多>