Skip to Content
Former Member
Mar 21, 2012 at 10:08 AM

SUP 2.1 - Hybrid Web Container - SAP Backend Dynamic MBO Operation Authentication Issue


Hi everyone,

Topic: SUP 2.1 - Hybrid Web Container - SAP Backend Dynamic MBO Operation Authentication Issue

Our Objective
We are implementing a Leave Approval application on the Hybrid Web Container based on SUP 2.1. The app connects to the SAP backend to retrieve the leave details via SAP exposed Web Services (Function Modules built in SAP itself). The MBO authentication from SUP to SAP should be dynamic, thus the username and password used by the MBO (SAP Web Service) should come from the user via the Credential Screen and not static.

We have 3 MBO's in our Sybase Workspace environment:


We have 2 starting points in the workflow, a Credential Request and a Server Initiated point:

All the 3 MBO's have been set to CacheGroup of type On Demand.

When we trigger a Notification from Sybase workspace as per the jumpstart rules, we receive a message in the device containing the Leave Item ID.
This leave item ID is used by the MBO to retrieve all the other details from the SAP backend.

If the notification is loaded for the 1st time, it shows up a Credential Screen, allowing the user to key in a username and password.
This screen is then submitted as Submit Workflow with the username & password saved as Cache Credentials in its properties:

Then, the 1st page showing all the leave details is shown (Leave Approval screen). We are able to get all the data correctly.

The Problem
When user taps on Reject button, which calls the RejectLeave MBO, it will send over the Leave Item ID and comments to the SAP to perform the rejection. This works perfectly fine if we hard code the Authentication Username and Password of this MBO operation. When we check on the SAP side, the leave has been rejected.

However, when we switch to a dynamic one (username and password from the Credential screen to be used), the app quits as usual but the rejection does not take place in SAP.
The Definition screen of the MBO RejectLeave in Dynamic authentication mode as below:

Any help on this are highly appreciated.

Thank you.


In the SCC site, we get the following error log when the RejectLeave MBO is triggered each time:

2012-03-21 16:39:34.558 WARN Other sup.mbs.17 [MAP_LeaveApproval.server.MAP_LeaveApprovalDB]{"entityKey":"0","requestId":"005818645561468fa151903c8cc9a184","replayFailure":0,"code":500,"pendingChange":"N","_rc":0,"message":"java.lang.RuntimeException:SOAP Fault from Web Service : Operation not supported","timestamp":"2012-03-21 08:39:28.66","operation":"Reject","level":5,"component":"RejectLeave","pending":false,"replayPending":0,"_op":"C","messageId":0,"disableSubmit":false,"eisCode":"0"}

2012-03-21 16:39:34.557 WARN Other sup.mbs.17 [MAP_LeaveApproval.server.RejectLeave] [RejectLeave]com.sybase.djc.transaction.TransactionContext.*AnonymousTransaction*
... 24 more
Caused by: java.lang.RuntimeException: SOAP Fault from Web Service : Operation not supported
... 22 more
at com.sybase.vader.mms.DataServiceImpl.execute(
at com.sybase.vader.statistics.MonitoringOperation.execute(
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: SOAP Fault from Web Service : Operation not supported
... 13 more
at com.sybase.djc.transaction.TransactionManager.invokeRequiresNew(
at MAP_LeaveApproval.server.RejectLeaveRejectOperation$1.invoke(
at MAP_LeaveApproval.server.RejectLeaveRejectOperation.replayInternal(
at MAP_LeaveApproval.server.RejectLeaveRejectOperation.create(
at $Proxy0.execute(Unknown Source)
at com.sybase.vader.mms.TimedDataServiceImpl.invoke(
at java.lang.reflect.Method.invoke(
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
at sun.reflect.GeneratedMethodAccessor396.invoke(Unknown Source)
at com.sybase.vader.mms.DataServiceImpl.execute(
at com.sybase.vader.mms.DataServiceImpl.throwDSException(
Caused by: com.sybase.dataservices.DSException: Failed to execute operation d1_map_leaveapproval_1__24213.create
at com.sybase.sup.server.mbs.MessageReceiver_DJC.process(
at com.sybase.djc.transaction.TransactionManager.invokeRequiresNew(
at com.sybase.djc.transaction.TransactionManager.invokeRequiresNew(
at com.sybase.sup.server.mbs.MessageReceiver_DJC$1.invoke(
at com.sybase.sup.server.mbs.MessageReceiver_DJC.access$001(
at com.sybase.sup.server.mbs.MessageReceiver.process(
at MAP_LeaveApproval.server.intrnl.MAP_LeaveApprovalDB_ML.onMessage(
at MAP_LeaveApproval.server.MAP_LeaveApprovalDB.dispatchReceivedMessage(
at MAP_LeaveApproval.server.intrnl.RejectLeaveRejectOperation_ML.onMessage(
at MAP_LeaveApproval.server.RejectLeaveRejectOperation.replayHandler(
at com.sybase.sup.server.runtime.DeadLockRetryHelper.invokeInNewTransactionWithRetry(
at com.sybase.djc.transaction.TransactionManager.invokeRequiresNew(
at com.sybase.djc.transaction.TransactionManager.invokeRequiresNew(
com.sybase.djc.transaction.TransactionRolledbackSystemException: com.sybase.djc.transaction.TransactionContext.*AnonymousTransaction*

2012-03-21 16:39:28.841 INFO DataServices sup.mbs.17 []66#LeaveRequestForm:1 harideva d1_map_leaveapproval.1_0 (sup.mbs.17) - Executing SOAP operation - service address [], SOAP action []


workflow.png (10.2 kB)
mbo-definition.png (46.6 kB)
mbo-s.png (16.1 kB)