1
votes

I've a SAP Fiori application and I need to get the current logged in user details. I've searched web but unable to find a solution.

is there any way to get current logged in user details from launchpad.

4

4 Answers

2
votes

There is a UserInfo service from the FLP shell which can be retrieved like this:

{ // In Controller
  doSomethingUserDetails: async function() {
    const oUserInfo = await this.getUserInfoService();
    const sUserId = oUserInfo.getId(); // And in SAPUI5 1.86, those became public: .getEmail(), .getFirstName(), .getLastName(), .getFullName(), ... 
    // ...
  },
  
  getUserInfoService: function() {
    return new Promise(resolve => sap.ui.require([
      "sap/ushell/library"
    ], oSapUshellLib => {
      const oContainer = oSapUshellLib.Container;
      const pService = oContainer.getServiceAsync("UserInfo"); // .getService is deprecated!
      resolve(pService);
    }));
  },
}

To align with the current best practices, avoid calling sap.ushell.Container.getService directly!

  • getService is deprecated. Use getServiceAsync instead.
  • Require the library instead of referencing the Container via global namespace (sap.ushell.*) as shown above.

Alternatively, information about the the current user can be also retrieved via the user API service exposed by the application router from the SAP Business Technology Platform (SAP BTP).


* In case the app is deployed to the old Neo environment, see the previous edit.

0
votes

The User-ID can be retrieved from SDK. Please refer to class sap.ushell.services.UserInfo

0
votes

Try this:

new sap.ushell.services.UserInfo().getId()
0
votes

If you want to access the user detail when you are running your application in launchpad. then you can retrieve current user detail by adding following code snippet:

var userInfo = sap.ushell.Container.getService("UserInfo");
var email = userInfo.getEmail();

Then further detail about the user can be retrieved like email and fullname. See the API here.