SAP Hybrid应用-OData问题

2020-08-20 06:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在构建具有...

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

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


专家们,

我们正在构建具有离线功能的SAP Hybrid应用。 我们正在调用oData服务,该应用应为此应用创建离线存储。 我们以以下方式定义了定义请求:

 openStore:function(){
         console.log("在openStore");
         jQuery.sap.require(" sap.ui.thirdparty.datajs"); //使用SAPUI5和Kapsel离线商店时需要
         var properties = {
             " name":" store_PurchaseOrder",
             "主机":sap.hybrid.kapsel.appContext.registrationContext.serverHost,
             "端口":sap.hybrid.kapsel.appContext.registrationContext.serverPort,
             " https":sap.hybrid.kapsel.appContext.registrationContext.https,
             " serviceRoot":fiori_client_appConfig.appID +" _ECConPremise/sap/opu/odata/sap/ZGOODSRECEIPT_OFFLINE_SRV/",
 " definingRequests":{
 " PurchaseOrderItemSet":"/img/PurchaseOrderItemSet?$ top = 50"
 }
         };
    
         store = sap.OData.createOfflineStore(properties);
    
         var openStoreSuccessCallback = function(){
             console.log("在openStoreSuccessCallback");
             sap.OData.applyHttpClient(); //现在可以针对datajs进行离线OData调用。
             sap.hybrid.startApp();
         }
    
         var openStoreErrorCallback = function(error){
             console.log("在openStoreErrorCallback");
             alert("发生错误" + JSON.stringify(错误));
         }
    
         store.open(openStoreSuccessCallback,openStoreErrorCallback);
     },
 

在日志中,我们可以看到正在创建商店并正确打开了商店。

我们正在通过以下服务电话读取数据

 var oDataModel = sap.ui.model.odata.v2.ODataModel(
 "/img/sap/opu/odata/sap/ZGOODSRECEIPT_OFFLINE_SRV",true);

 var mParameters = {
 成功:函数(oData,oResponse){
 调试器;
 console.log(JSON.stringify(oData));
 } .bind(this),

         错误:函数(oError){

 } .bind(this)
 };
 oDataModel.read("/img/PurchaseOrderItemSet",mParameters);
 

当我们使用Webide Preview运行应用程序时,我们会收到odata服务返回的多条记录,但是当我们在设备上以混合应用程序(在执行Build Packaged App之后)运行该应用程序时,我们只会得到 服务。 我们在后端设置了外部断点,并注意到服务在输出中返回了多条记录,但在应用程序中,我们仅获得了一条记录(结果集的最后一条记录)。 任何人都可以建议为什么在将应用程序作为混合应用程序运行时,为什么oData会有不同的响应。

3条回答
d56caomao
2020-08-20 06:54

嗨,

没有关于您的数据集和数据结构的更多信息:您是否可能未在SEGW中定义属性键字段? 在将自己预订到数据库中时,每行可能会覆盖之前的那一行,因为它具有相同的密钥……这只是我的第一个想法,因为代码本身看起来确实不错。

一周热门 更多>