Logo

    Home

    Documentation

    Use Cases

    Training

    Applications

    Release Notes

    Session Properties Backend & Frontend

    Session Properties Backend & Frontend

    • Session Properties: Backend
    • How to setup Custom session properties
    • Session Properties: Frontend
    • Accessing session properties from front-end via CLAPI
    • Updating session context via CLAPI

    Session Properties: Backend

    If you want to read the session properties with ABL, you can use Akioma.Swat.OERA.Context.SwatContextWrapper

    The following properties are available:

    • SwatSessionId
    • UserHdl
    • UserKey
    • UserDesc
    • TenantHdl
    • TenantKey
    • TenantName
    • UiLanguageHdl
    • UiLanguageKey
    • DataLanguageHdl
    • DataLanguageKey

    E.g to get the current user please use Akioma.Swat.OERA.Context.SwatContextWrapper:Properties:UserHdl

    For the current session-id you can use the helper class Akioma.Swat.Util.SessionHelper:GetCurrentRequestSessionId()

    How to setup Custom session properties

    1. Set up context dataset and temp-table:
    2. Test/dsTestContext.i
    3. Set up context dataset factory:
    4. BLOCK-LEVEL ON ERROR UNDO, THROW.
      
      CLASS Test.TestContextDatasetFactory
        INHERITS Akioma.Swat.OERA.Context.BaseContextDatasetFactory: 
      
        { Test/dsTestContext.i }
      
        CONSTRUCTOR TestContextDatasetFactory():
          SUPER(DATASET dsTestContext:HANDLE).
        END CONSTRUCTOR.
      END CLASS.
      Test/TestContextDatasetFactory.cls
    5. Set up context wrapper class:
    6. Test/TestContextWrapper.cls
    7. Register context classes as services
    8. services.xml

    Session Properties: Frontend

    Accessing session properties from front-end via CLAPI

    Starting with the SWAT 19.17 release, you can access the session properties from the front-end.

    The new SessionContext is available by accessing akioma.sessionContext. Here the eSessionContext (SCL) and eSwatSessionContext are available. Any custom context would be available in the same object (e.g eCustomSessionContext).

    The SessionContext can also be accessed from CLAPI:

    akioma.swat.SessionManager.get('propertyName', 'context');
    // If 'context' is not specified, default will be eSwatSessionContext.

    Updating session context via CLAPI

    The SessionContext properties can also be updated from CLAPI using the following method:

    akioma.swat.SessionManager.set('propertyName', ‘propertyValue’, 'context');
    // If 'context' is not specified, default will be eSwatSessionContext.

    See how to work with session properties from the back-end .

    Back to DocumentationDocumentation

    Back to Home Page

    Logo
    &SCOPED-DEFINE ACCESS {&ACCESS}
    
    { Consultingwerk/OERA/Context/eContextProperties.i &NO-BEFORE=YES }
    { Consultingwerk/OERA/Context/eSessionContext.i &NO-BEFORE=YES }
    { Akioma/Swat/OERA/Context/eSwatSessionContext.i &NO-BEFORE=YES }
    
    DEFINE {&ACCESS} TEMP-TABLE eTestSessionContext NO-UNDO
      FIELD Property1 AS CHARACTER
    	FIELD Property2 AS CHARACTER
      .
    
    DEFINE DATASET dsTestContext FOR eContextProperties, eSessionContext, eSwatSessionContext, eTestSessionContext.
    BLOCK-LEVEL ON ERROR UNDO, THROW.
    
    CLASS Test.TestContextWrapper
      INHERITS Akioma.Swat.OERA.Context.BaseContextWrapper:
      
      { Akioma/Swat/OERA/Context/Helper/define-context-wrapper-property.i &NAME="Property1" }
      { Akioma/Swat/OERA/Context/Helper/define-context-wrapper-property.i &NAME="Property2" }
    
      CONSTRUCTOR TestContextWrapper():
        SUPER("eTestSessionContext").
      END CONSTRUCTOR.
    END CLASS.
    <?xml version="1.0"?>
    <ttServiceLoader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<ttServiceLoaderRow>
    	  <Order>1</Order>
    	  <ServiceTypeName>Test.TestContextWrapper</ServiceTypeName>
    		<ServiceClassName>Test.TestContextWrapper</ServiceClassName>
    	</ttServiceLoaderRow>
    	<ttServiceLoaderRow>
        <Order>5</Order>
        <ServiceTypeName>Consultingwerk.OERA.Context.IContextDatasetFactory</ServiceTypeName>
        <ServiceClassName>Test.TestContextDatasetFactory</ServiceClassName>
      </ttServiceLoaderRow>
    </ttServiceLoader>