【问题标题】:SAPUI5 to access User Interface ServicesSAPUI5 访问用户界面服务
【发布时间】:2014-10-07 09:47:21
【问题描述】:

早上好,

我正在使用 eclipe 和 tomcat 开发和测试一个与 SAP OData 服务对话的 sapui5 移动应用程序。 开发完成后,应用程序将安装在 SAP 服务器上。

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

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

这是一个完整的示例:

<!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,但没有找到改变这种行为的方法。

没有这个我有两个选择:

1 - 开始使用 SAP 服务器进行测试 - 这对我来说并不理想,因为开发和测试需要更长的时间

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

对这个问题有什么想法吗?

提前致谢。

【问题讨论】:

    标签: sapui5


    【解决方案1】:

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

    该服务将返回一个虚拟 JSON 对象,如下所示:

    {
        "client": "200",
        "email": "dummy@gmail.com",
        "firstName": "Dummy",
        "lastName": "Test",
        "fullName": "Dummy Test",
        "id": "DUMMY",
        "language": "EN"
    }
    

    【讨论】:

    • 感谢@Allen 的建议,但这是否意味着在这种情况下无法使用 sap.ui2 库?我真的很想在生产环境中使用相同(或最接近)的条件进行开发和测试。目前我选择了 2º 替代方案,我已经在我的帖子中描述过,它工作正常……但这不是我理想的解决方案。
    • 您可以使用 ui2 库,当您调用 sap.ui2.shell.getUser() 时,ui2 将触发对 /sap/bc/ui2/start_up 的服务调用,这是您的模拟服务雄猫。你可以试试看。
    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多