Step 4: Create the BDL session initiator function and instantiate a new session

In your BDL function declared as session initiator, you have to:

  • Handle the creation of the session

  • Fill the state variable before returning from the function

  • Store the new session in a database based on the state variable (in order to keep the session across consecutive requests from the same client).

For example:

FUNCTION GetInstance()
  LET EndpointReferenceState.address = NULL 
  # Use default end point location
  LET EndpointReferenceState.ref.OpaqueID = security.RandomGenerator.CreateUUIDString() 
  # Generate an unique string (can come from a database table id)
  LET EndpointReferenceState.ref.Expiration = CURRENT  + INTERVAL(1) HOUR TO HOUR 
  # Create expiration date in one hour to discard request after that date
  ... Store OpaqueID into database or use directly a database table entry 
  ... to hold the session
END FUNCTION

Ensure that IMPORT security is called at the beginning of the file when using security.RandomGenerator.CreateUUIDString().