src/Web/SessionContext.php
public function saveSessionObjects()
    {
        // loop all objects (bizview, bizform, bizdataobj) collect their session vars
        $allobjs = Openbizx::objectFactory()->getAllObjects();
        foreach ($allobjs as $obj) {
            if (method_exists($obj, "saveStatefullVars")) {
                //after calling $obj->saveStatefullVars SessObjArr and StatefulSessObjArr are filled
                $obj->saveStatefullVars($this);
            }
            // if previous view's object is used in current view, don't discard its session data
            if ( isset($obj->objectName) && isset($this->_prevViewObjNames[$obj->objectName]) ) {
                unset( $this->_prevViewObjNames[$obj->objectName] );
                Openbizx::$app->getLog()->log( LOG_ERR, "SESSION", "unset " . $obj->objectName );
            }
        }

        // discard useless previous view's session objects
        //foreach($this->_prevViewObjNames as $objName=>$tmp)
        //    unset($this->_sessObjArr[$objName]);

        $this->_sessObjArr["ViewHist"] = $this->_viewHistory;

        $this->setVar(OB_TRANSIENT_DATA_SESSION_INDEX, $this->_sessObjArr);
        $this->setVar(OB_STATEFUL_DATA_SESSION_INDEX, $this->_statefulSessObjArr);
    }
public function saveSessionObjects()
    {
        // loop all objects (bizview, bizform, bizdataobj) collect their session vars
        $allobjs = Openbizx::objectFactory()->getAllObjects();
        foreach ($allobjs as $obj) {
            if (method_exists($obj, "saveStatefullVars")) {
                //after calling $obj->saveStatefullVars SessObjArr and StatefulSessObjArr are filled
                $obj->saveStatefullVars($this);
            }
            // if previous view's object is used in current view, don't discard its session data
            if ( isset($obj->objectName) && isset($this->_prevViewObjNames[$obj->objectName]) ) {
                unset( $this->_prevViewObjNames[$obj->objectName] );
                Openbizx::$app->getLog()->log( LOG_ERR, "SESSION", "unset " . $obj->objectName );
            }
        }

        // discard useless previous view's session objects
        //foreach($this->_prevViewObjNames as $objName=>$tmp)
        //    unset($this->_sessObjArr[$objName]);

        $this->_sessObjArr["ViewHist"] = $this->_viewHistory;

        $this->setVar(OB_TRANSIENT_DATA_SESSION_INDEX, $this->_sessObjArr);
        $this->setVar(OB_STATEFUL_DATA_SESSION_INDEX, $this->_statefulSessObjArr);
    }
Save session variables of all stateful objects into sessionid_obj file

@return void