SAPUI5和西北入口

SAPUI5和西北入口,sapui5,sap-enterprise-portal,Sapui5,Sap Enterprise Portal,我的门户上部署了一个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,

我的门户上部署了一个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;

});
sap.ui.define([
“jquery.sap.global”,
“sap/ui/core/Fragment”,
“sap/ui/core/mvc/Controller”,
“sap/ui/model/Filter”,
'sap/ui/model/json/JSONModel'
],函数(jQuery、片段、控制器、过滤器、JSONModel){
“严格使用”;
var CController=Controller.extend(“sap.m.ZHRUI001.C”{
输入:“”,
valueHelpRequest:函数(oController){
this.inputId=oController.oSource.sId;
var sServiceUrl=“http://:/sap/bc/ui2/start\u-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,函数(oData,响应){
oJsonModel.setData(oData);
});
sap.ui.getCore().setModel(oJsonModel);
//确认和取消的处理;清除过滤器
var=这个;
var handleClose=功能(oEvent){
var oSelectedItem=oEvent.getParameter(“selectedItem”);
if(oSelectedItem){
that.byId(that.inputId).setValue(oSelectedItem.getTitle());
}
oEvent.getSource().getBinding(“项”).filter([]);
};
//创建一个SelectDialog并显示它;绑定到该对话框
//建议项目的模型
如果(!this.\u valueHelpSelectDialog){
这是.\u valueHelpSelectDialog=new sap.m.SelectDialog(“valueHelpSelectDialog”{
标题:“{fullName}”,
项目:{
模板:新sap.m.StandardListItem({
标题:“{fullName}”,
主动:正确
})
},
搜索:功能(oEvent){
var sValue=oEvent.getParameter(“值”);
var of ilter=new sap.ui.model.Filter(
“姓名”,
sap.ui.model.FilterOperator.Contains,S值
);
oEvent.getSource().getBinding(“items”).filter([oFilter]);
},
确认:handleClose,
取消:handleClose
});
此.\u值帮助选择对话框.setModel(oJsonModel);
}否则{
此.\u值帮助选择对话框.setModel(oJsonModel);
}
这是。_valueHelpSelectDialog.open();
}
});
返回控制器;
});
`

`


控制台UserData以获取登录用户的登录详细信息。

从我所读到的内容来看,您指的是SAP门户,我希望您有一个7.3+版本

我找到了用于查找用户的SAP文档,请小心,因为这不是在门户上运行的SAPUI5应用程序的代码,但对于在R/3系统上运行的应用程序,NetWeaver门户上不存在endpoint/SAP/bc/ui2/start\u up

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

您只需向url发送GET请求 http[s]://youserver:your port/irj/servlet/prt/portal/prtroot/UserServletSample.UserInfoSampleServlet 你会得到一个JSo

{
    "user": {
        "user-name":"<LASTNAME>, <FIRSTNAME>",
        "user-id":"<USER_ID>",
        "user-email":"<USER@EMAIL.COM>"
    }
}
{
“用户”:{
“用户名”:“,”,
“用户id”:“,
“用户电子邮件”:”
}
}

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

你好,Sriram,我必须将此代码放入我的控制器中吗?但是我如何才能获得用户全名?UserData包含用户的所有详细信息,包括全名。您可以给我举个例子,我如何使用UserData显示全名吗?嗨,Almiriad,我必须在SAP门户中导入此Servlet吗?你好,是的,您可以在门户上部署它。我认为您可以简单地部署EAR文件,即UserServletSample文件夹,servlet应该是可用的。请小心,因为存在一个安全区域“com.almiriad.sap.portal.user.UserInfoSampleServlet”,您必须确保您的用户有权访问该区域(通常,一旦您通过身份验证,就应该可以):
{
    "user": {
        "user-name":"<LASTNAME>, <FIRSTNAME>",
        "user-id":"<USER_ID>",
        "user-email":"<USER@EMAIL.COM>"
    }
}