标准网关服务'FDP_EF_PURCHASE_ORDER_SRV'的问题for'PurchaseOrder'的GetEntity(Read)

2020-08-18 16:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 作为项目要求的一...

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

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


大家好,

作为项目要求的一部分,我正在测试用于PO表单的标准Odata服务,即FDP_EF_PURCHASE_ORDER_SRV,并且我遇到了GetEntity(Read)操作的问题。

当我运行以下URI时:

/sap/opu/odata/sap/FDP_EF_PURCHASE_ORDER_SRV/PurchaseOrder('4500000000')

它会给出错误消息"未找到段'PurchaseOrderNode'的资源",状态码为404。但是我可以看到其中已编码了对应于PurchaseOrder的GetEntity方法。

奇怪的是,当我在URI下运行时:

/sap/opu/odata/sap/FDP_EF_PURCHASE_ORDER_SRV/PurchaseOrder

它用于GetEntitySet(Query),效果很好,即使在响应有效负载中,我也可以看到这样的

即使GetEntity(Read)的代码仍然存在抛出错误,这还是很奇怪的。

任何人都可以帮助您理解此问题。

我的主要问题是,绑定到Adobe Form时会不会产生任何问题?

谢谢

四进

(16.6 kB)
9条回答
callcenter油条
2020-08-18 17:37 .采纳回答

嗨Sijn,

我能够基于完全激活的设备

我调试了请求,发现CL_FDP_EF_PURCHASE_ORD_DPC_EXT类的GET_ENTITY方法是

(该方法的代码见下文)

,但是该实现期望仅通过查询中的导航请求单个采购订单。

< p>由于直接访问实体时没有提供源密钥,因此完整性检查失败。

 *完整性检查
 如果mt_source_keys是INITIAL。
   返回。  " <<仅允许查询调用(源键包含查询参数)
 ENDIF。

我认为缺少的是此时将引发有意义的错误消息。

因为当前行为是将请求发送回框架而没有 提供任何结果,以便框架发出通用错误消息

"段'PurchaseOrderNode'找不到资源"

如果要查找发送的请求,可以启动有效负载 使用事务/iwfnd/traces在系统中进行跟踪。

 METHOD Purchaseorders_get_entity。
 数据:ls_t052类型t052,
 it_payment类型标准文本表,
 wa_payment TYPE ttext。
   清除:er_entity,es_response_context。
 *在set_query_options()中使用
 mt_keys = io_tech_request_context-> get_keys()。
 *用于导航时的优化
 mt_navigation_info = io_tech_request_context-> get_navigation_path()。
 mt_source_keys = io_tech_request_context-> get_source_keys()。
 *设置实例变量
 _set_instance_variables(io_tech_request_context)。
 * 完整性检查
 如果mt_source_keys是INITIAL。
   返回。  " <<仅允许查询调用(源键包含查询参数)
 万一。
 *获取SADL映射属性的数据
 超级-> purchaseorders_get_entity
 

所以您现在可以关闭此问题。

关于

Andre

一周热门 更多>