Skip to main content

Session Management

Typically, when calling a Connect API, the call opens a new session in SAP, executes the needed functionality, and then closes the session. Sometimes it is desirable to execute multiple API calls in a single session for performance purposes - ensuring that various pieces of data remain in memory in SAP. Specifically, the most frequent use case for this functionality is when doing variant configuration - that RIO is specifically designed to allow you to take advantage of keeping the prior configuration round in memory to reduce the need to recompute every piece of the configuration.

Using the session APIs

There are two session APIs:

  • /api/sap/[ConnectionName]/session/start
  • /api/sap/[ConnectionName]/session/stop

These APIs are added to every Connect end point - they do not need to be selected on the API screen.

Note that if the end point supports multiple connections, these API calls will exist for each one.

Starting a session

To start a session, simply call the start API. You will get back a response with a set-cookie header for a cookie named Sap-session. Store the value of that cookie for use below.

Executing calls in a session

Whenever you want to execute a call in a session you previously created, simply add a cookie header to the normal API call and pass in a cookie named SAP-session with the value returned in the start call. This call will behave normally in all respects, other than it will be executed in the same SAP session as any other call with that cookie.

Passing an invalid session cookie value will result in an error response.

Ending a session

To end a session, simply call the stop API, including the same cookie header used when executing calls in the session. This will end the session in SAP. Failure to end a session will result in the session being closed according to the settings of the particular SAP system (often something like 30 minutes after last use).