2017-04-03 14 views
0

포털에 SAPUI5 응용 프로그램을 배포했습니다. SAPUI5에서 포털에 로그온 한 사용자 로그인을 얻으려고합니다.SAPUI5 및 NW 포털

하지만 내 응용 프로그램을 실행할 때 데이터가 없습니다.

가 우는 소리는 로그인 해당 사용자의 로그인 정보를 얻을하려면 코드

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; 

}); 
+0

누군가 나를 도울 수 있습니까? –

답변

1

SAP 포탈에 대해 읽고 있다면 7.3+ 버전. 이것은 SAPUI5 응용 프로그램이 포털에서 실행하지만 하나를 들어, R/3 시스템에 엔드 포인트를 실행하기위한 코드가 아니기 때문에

난 당신이 사용자를 찾을 수 조심하는 데 사용되는 SAP의 문서를 발견 /SAP/bc/ui2/start_up이 NetWeaver 포털에 없습니다.

당신이 할 수있는 일은 사용자와 필요한 모든 세부 사항을 되돌려 줄 간단한 REST 서비스 (서블릿 개발)를 개발하는 것입니다. 이러한 세부 사항은 IUSER 개체를 보유하고있는 PortalComponentRequest에서 찾을 수 있습니다, 당신은 여기 내 힘내에 샘플 포털 서블릿을 찾을 수 있습니다

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

당신은 단순히 URL에 GET 요청을 보낼 필요가 HTTP [S] : // youserver : 당신의 포트/IRJ/서블릿/PRT/당신이 JSO

{ 
    "user": { 
     "user-name":"<LASTNAME>, <FIRSTNAME>", 
     "user-id":"<USER_ID>", 
     "user-email":"<[email protected]>" 
    } 
} 

를 얻을 수 있습니다 포털/prtroot/UserServletSample.UserInfoSampleServlet 그리고 내가 당신을 도울 바랍니다.

+0

안녕하세요, Almiriad, SAP Portal에서이 서브렛을 가져와야합니까? –

+0

안녕하세요, 네 포털에 배포 할 수 있습니다. UserServletSample 폴더 인 EAR 파일을 배포하면 서블릿을 사용할 수 있다고 생각합니다. 사용자가 액세스 권한이 있는지 확인해야하는 보안 영역 "com.almiriad.sap.portal.user.UserInfoSampleServlet"이 있으므로주의하십시오 (일반적으로 인증을 받으면 정상이어야 함). https://help.sap .com/saphelp_nw75/helpdata/ko/48/50badbb82971b9e10000000a421937/frameset.htm – Almiriad

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); 

`

콘솔 oUserData이다. 난 어떤에서

+1

안녕하세요 Sriram, 이 코드를 제 컨트롤러에 넣으십시오. –

+0

예이 코드를 컨트롤러 –

+0

의 onInit 함수에 넣습니다.하지만 어떻게하면 fullName 사용자를 얻을 수 있습니까? –