2014-10-07 30 views
0

早上好,SAPUI5:角色的SAP NetWeaver用户界面服务

我使用的Eclipe和Tomcat来开发和测试sapui5移动应用程序,它与SAP OData服务说话。 在开发fase之后,应用程序将安装在SAP服务器上。

我试图使用用户界面服务(sap.ui2)来访问用户信息。

我的问题是,似乎这个API不准备从的应用程序调用/使用,而不是在SAP服务器上部署。我所看到的所有呼叫都是相对呼叫,因此没有找到资源。

继承人全样本:

<!DOCTYPE HTML> 
<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> 

     <script src="<my-sap-server>/sap/public/bc/ui2/services/sap/ui2/srvc/error.js"></script> 
     <script src="<my-sap-server>/sap/public/bc/ui2/services/sap/ui2/srvc/utils.js"></script> 
     <script src="<my-sap-server>/sap/public/bc/ui2/shell-api/sap/ui2/shell/startup.js"></script> 

     <script src="resources/sap-ui-core.js" 
       id="sap-ui-bootstrap" 
       data-sap-ui-libs="sap.m" 
       data-sap-ui-theme="sap_bluecrystal"> 
     </script> 
     <script> 
      var user = sap.ui2.shell.getUser(); 
      user.load({ 
    //     depthAtRoot: 1, 
    //     nodeId: " ", 
    //     depthAtNode: 1 
        }, 
        function() {        
          //set user data in the json model 
          alert(user.getFullName()); 
        }, 
        function(sErrorMessage) { 
          /* failure handler: e.g. display load error */    
         alert(sErrorMessage); 
        } 
      ); 
     </script> 

    </head> 
    <body class="sapUiBody" role="application"> 
     <div id="content"></div> 
    </body> 
</html> 

和错误:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/sap/bc/ui2/start_up?depth=0 
2014-10-07 10:30:10 Error 404 in response for URL /sap/bc/ui2/start_up?depth=0 - sap.ui2.srvc 

如图所示,该API假定UI2部署我的本地服务器上,而不是从那里远程SAP服务器上我加载了库。

我搜索了sap.ui2 API,但没有找到改变这种行为的方法。

如果没有这一点,我有2种选择:

1 - 开始使用测试用SAP服务器 - 这是不理想的我,因为开发和测试将需要更长的

2 - 手动调用URL为http: /// sap/bc/ui2/start_up?depth = 0到标准的SAPUI5 JSONModel - 不可取,因为如果SAP团队决定更改某些内容,我的应用程序可能会中断。

对这件事有什么想法?

在此先感谢。

回答

0

您需要的是Tomcat中的http://localhost:8080/sap/bc/ui2/start_up的模拟服务。

该服务将返回一个空的JSON对象类似以下内容:

{ 
    "client": "200", 
    "email": "[email protected]", 
    "firstName": "Dummy", 
    "lastName": "Test", 
    "fullName": "Dummy Test", 
    "id": "DUMMY", 
    "language": "EN" 
} 
+0

感谢您的建议@Allen,但是这并不意味着没有办法使用sap.ui2库在这种情况下?我真的很想开发和测试与生产环境中相同(或最接近)的条件。在这个时候,我选择了2º的选择,我在我的文章中描述过,它的工作正常......但这不是我理想的解决方案。 – mjd 2014-10-08 09:33:21

+0

在调用sap.ui2.shell.getUser()时,您可以使用ui2库,ui2将触发对/ sap/bc/ui2/start_up的服务调用,这是您在Tomcat中的模拟服务。你可以试试看。 – Allen 2014-10-08 09:39:05