on 04-04-2014 2:59 PM
Dear All,
I am getting below error when updating user mapping in SAP Enterprise Portal. I was able to update the data through SAP portal but not through the below code.
Code:
mappingData.put(UmeConstants.PASSWORD, "pasword");
if (!userMapData.setMappingData(newUser, mappingData,logger)) {
errorMessage = new ErrorMessage("Set user maaping data for + " + newUser.getDisplayName() + " failed.", "ApolloUMECreateUser.setUserMappingData()");
public boolean setMappingData(IUser iUser, Map logonData, UmeLog logger) {
//logonData needs to be able to be null to clear the user mapping!
if (iUser != null) {
try {
IUserMappingData mappingData = iUserMapping.getUserMappingData(systemAlias, iUser, logonData);
//IUserMappingService iums = (IUserMappingService)PortalRuntime.getRuntimeResources().getService(IUserMappingService.KEY);
//IUserMappingData mappingData = iums.getMappingData (systemAlias, iUser);
mappingData.storeLogonData(logonData);
return true;
}
catch (IOException ioe) {
return false;
}
catch (Exception e) {
return false;
}
}
return false;
}
Error:
#1.5#00155D007802007D0000417100000B480004F636722D1228#1396613610296#com.sap.security.core.umap.imp.UserMappingDataImp#ibm.com/ibm.com.tivoli.im.umeagent#com.sap.security.core.umap.imp.UserMappingDataImp.saveLogonDataInternal(Map, boolean)#Guest#0##n/a##88b1fdb2bbf211e3a6ac00000032f136#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###Cannot save logon data for principal {0} because there is no mapped backend user ID in the logon data map to save.#1#"user id, password" (unique ID: "USER.PRIVATE_DATASOURCE.un:aujastest31")#
#1.5#00155D00780200740000411600000B480004F636722D12D8#1396613610296#System.err#ibm.com/ibm.com.tivoli.im.****umeagent#System.err#Guest#0##n/a##88cc4ee9bbf211e3b0a300000032f136#SAPEngine_Application_Thread[impl:3]_33##0#0#Error##Plain###Apr 4, 2014 5:43:30 PM com.ibm.tim.agents.UmeAgent [SAPEngine_Application_Thread[impl:3]_33] Info: Created the Writer
#
#1.5#00155D007802007D0000417200000B480004F636722D18DA#1396613610296#com.sap.security.core.umap.imp.UserMappingDataImp#ibm.com/ibm.com.tivoli.im.umeagent#com.sap.security.core.umap.imp.UserMappingDataImp#Guest#0##n/a##88b1fdb2bbf211e3a6ac00000032f136#SAPEngine_Application_Thread[impl:3]_24##0#0#Error##Java###storeLogonData(Map)
[EXCEPTION]
{0}#1#com.sap.security.api.UMException: Mapped backend user ID not specified.
at com.sap.security.core.umap.imp.UserMappingDataImp.saveLogonDataInternal(UserMappingDataImp.java:280)
at com.sap.security.core.umap.imp.UserMappingDataImp.saveLogonData(UserMappingDataImp.java:251)
at com.sap.security.core.umap.imp.UserMappingDataImp.storeLogonData(UserMappingDataImp.java:223)
at com.ibm.tivoli.integration.im.agents.umeagent.sap.usermapping.UserMapData.setMappingData(UserMapData.java:106)
at com.ibm.tivoli.integration.im.agents.umeagent.sap.UMECreateUser.setUserMappingData(UMECreateUser.java:381)
at com.ibm.tivoli.integration.im.agents.umeagent.sap.UMECreateUser.UMECreateSAPUser(UMECreateUser.java:118)
at com.ibm.tim.agents.UmeAgent.UMEProcessAddRequest(UmeAgent.java:207)
at com.ibm.tim.agents.UmeAgent.processRequest(UmeAgent.java:134)
at com.ibm.tim.agents.UmeAgent.doPost(UmeAgent.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1060)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
#
The user is not being found in your database. Can you paste the code you are using to look for iUser?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Rodrigo for you reply.
In Data Base user is exist and manually user mapping is working only through code i am getting error. Using code user is creating but mapping is not happening. I am sending ep6User user as iUser please find requested code.
Please suggest Thanks in advanced!!!
public UmeUser processRequest(com.ibm.dsml2.parser.AddRequest addRequest) {
UmeUser ep6User = null;
try {
Enumeration enumAddRequestAttr = addRequest.enumerateAttr();
Properties userAttributes = new Properties();
while (enumAddRequestAttr.hasMoreElements()) {
com.ibm.dsml2.parser.Attr attr = (com.ibm.dsml2.parser.Attr) enumAddRequestAttr.nextElement();
if (attr.getValueCount() == 1) {
userAttributes.put(attr.getName(), getAttributeValue(attr));
}
else {
List list = new ArrayList(attr.getValueCount());
for (int i = 0; i < attr.getValueCount(); i++) {
list.add(getAttributeValue(attr, i));
}
userAttributes.put(attr.getName(), list);
}
}
ep6User = new UmeUser(userAttributes, logger);
}
catch (Exception e) {
logger.log(this.getClass().getName(), e);
}
return ep6User;
}
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.