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

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

For example:
FUNCTION GetInstance()
  LET EndpointReferenceState.address = NULL 
  # Use default end point location
  LET EndpointReferenceState.ref.OpaqueID = com.Util.CreateUUIDString() 
  # Generate an unique string (can come from a database table id)
  LET EndpointReferenceState.ref.Expiration = CURRENT  + INTERVAL HOUR TO HOUR (1) 
  # 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