SAPUI5和NW Portal

时间:2017-04-03 13:19:49

标签: portal gateway sapui5

我的门户网站上部署了SAPUI5应用程序。 我正在尝试在SAPUI5中登录用户登录门户。

但是当我运行我的应用程序时,它没有获得任何数据。

贝娄是我的代码

sap.ui.define([
'jquery.sap.global',
'sap/ui/core/Fragment',
'sap/ui/core/mvc/Controller',
'sap/ui/model/Filter',
'sap/ui/model/json/JSONModel'
], function(jQuery, Fragment, Controller, Filter, JSONModel) {
    "use strict";

    var CController = Controller.extend("sap.m.ZHRUI001.C", {
        inputId: '',
        valueHelpRequest: function(oController) {
            this.inputId = oController.oSource.sId;
            var sServiceUrl = "http://<my server host>:<my server port>/sap/bc/ui2/start_up";
            var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true, "user", "password");

            var oJsonModel = new sap.ui.model.json.JSONModel();

            oModel.read("/?", null, null, true, function(oData, response) {
                oJsonModel.setData(oData);

            });
            sap.ui.getCore().setModel(oJsonModel);


            // Handling of both confirm and cancel; clear the filter
            var that = this;
            var handleClose = function(oEvent) {

                var oSelectedItem = oEvent.getParameter("selectedItem");
                if (oSelectedItem) {
                    that.byId(that.inputId).setValue(oSelectedItem.getTitle());
                }
                oEvent.getSource().getBinding("items").filter([]);
            };

            // Create a SelectDialog and display it; bind to the same
            // model as for the suggested items
            if (!this._valueHelpSelectDialog) {
                this._valueHelpSelectDialog = new sap.m.SelectDialog("valueHelpSelectDialog", {
                    title: "{fullName}",
                    items: {

                        template: new sap.m.StandardListItem({
                            title: "{fullName}",
                            active: true
                        })
                    },
                    search: function(oEvent) {
                        var sValue = oEvent.getParameter("value");
                        var oFilter = new sap.ui.model.Filter(
                            "name",
                            sap.ui.model.FilterOperator.Contains, sValue
                        );
                        oEvent.getSource().getBinding("items").filter([oFilter]);
                    },
                    confirm: handleClose,
                    cancel: handleClose
                });

                this._valueHelpSelectDialog.setModel(oJsonModel);

            } else {
                this._valueHelpSelectDialog.setModel(oJsonModel);
            }
            this._valueHelpSelectDialog.open();

        }
    });

    return CController;

});

2 个答案:

答案 0 :(得分:1)

从我读到的内容来看,你说的是SAP Portal,我希望你有一个 7.3 + 版本。

我找到了用于查找用户的SAP文档,请注意,因为这不是在门户网站上运行的SAPUI5应用程序的代码,而是在R / 3系统上运行的应用程序,端点 / sap / bc / ui2 / start_up 在NetWeaver门户网站上不存在。

您可以做的是开发一个简单的REST服务(通过开发Servlet),它将回送用户以及您需要的所有详细信息。 这些详细信息可以在包含IUser对象的PortalComponentRequest中找到,您可以在我的Git上找到示例门户servlet:

https://gitlab.com/Almiriad/sap-portal-samples

您只需向网址发送GET请求即可 http [s]:// youserver:您的port / irj / servlet / prt / portal / prtroot / UserServletSample.UserInfoSampleServlet  而且你会得到一个JSo

{
    "user": {
        "user-name":"<LASTNAME>, <FIRSTNAME>",
        "user-id":"<USER_ID>",
        "user-email":"<USER@EMAIL.COM>"
    }
}

我希望这会对你有所帮助。

答案 1 :(得分:0)

`

 var oUserData;
            var y = "/sap/bc/ui2/start_up";
            var xmlHttp = null;
            xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    oUserData = JSON.parse(xmlHttp.responseText);
                }
            };
            xmlHttp.open("GET", y, false);
            xmlHttp.send(null);

`

console oUserData获取登录用户的登录详细信息。