public function doFrontEndAction(array $data, Form $form, HTTPRequest $request)
    {
        if (!$obj = $this->getContextObject()) {
            throw new Exception(
                _t(
                    'FrontEndWorkflowController.FRONTENDACTION_CONTEXT_EXCEPTION',
                    'Context Object Not Found'
                )
            );
        }

        if (!$this->getCurrentTransition()->canExecute($this->contextObj->getWorkflowInstance())) {
            throw new Exception(
                _t(
                    'FrontEndWorkflowController.FRONTENDACTION_TRANSITION_EXCEPTION',
                    'You do not have permission to execute this action'
                )
            );
        }

        //Only Save data when Transition is 'Active'
        if ($this->getCurrentTransition()->Type == 'Active') {
            //Hand off to WorkflowAction to perform Save
            $svc    = singleton(WorkflowService::class);
            $active = $svc->getWorkflowFor($obj);

            $active->doFrontEndAction($data, $form, $request);
        }

        //run execute on WorkflowInstance instance
        $action = $this->contextObj->getWorkflowInstance()->currentAction();
        $action->BaseAction()->execute($this->contextObj->getWorkflowInstance());

        //get valid transitions
        $transitions = $action->getValidTransitions();

        //tell instance to execute transition if it's in the permitted list
        if ($transitions->find('ID', $this->transitionID)) {
            $this->contextObj->getWorkflowInstance()->performTransition($this->getCurrentTransition());
        }
    }
public function doFrontEndAction(array $data, Form $form, HTTPRequest $request)
    {
        if (!$obj = $this->getContextObject()) {
            throw new Exception(
                _t(
                    'FrontEndWorkflowController.FRONTENDACTION_CONTEXT_EXCEPTION',
                    'Context Object Not Found'
                )
            );
        }

        if (!$this->getCurrentTransition()->canExecute($this->contextObj->getWorkflowInstance())) {
            throw new Exception(
                _t(
                    'FrontEndWorkflowController.FRONTENDACTION_TRANSITION_EXCEPTION',
                    'You do not have permission to execute this action'
                )
            );
        }

        //Only Save data when Transition is 'Active'
        if ($this->getCurrentTransition()->Type == 'Active') {
            //Hand off to WorkflowAction to perform Save
            $svc    = singleton(WorkflowService::class);
            $active = $svc->getWorkflowFor($obj);

            $active->doFrontEndAction($data, $form, $request);
        }

        //run execute on WorkflowInstance instance
        $action = $this->contextObj->getWorkflowInstance()->currentAction();
        $action->BaseAction()->execute($this->contextObj->getWorkflowInstance());

        //get valid transitions
        $transitions = $action->getValidTransitions();

        //tell instance to execute transition if it's in the permitted list
        if ($transitions->find('ID', $this->transitionID)) {
            $this->contextObj->getWorkflowInstance()->performTransition($this->getCurrentTransition());
        }
    }
public function doFrontEndAction ( array $ data , Form $ form , HTTPRequest $ request ) { if ( ! $ obj = $ this -> getContextObject ( ) ) { throw new Exception ( _t ( 'FrontEndWorkflowController.FRONTENDACTION_CONTEXT_EXCEPTION' , 'Context Object Not Found' ) ) ; } if ( ! $ this -> getCurrentTransition ( ) -> canExecute ( $ this -> contextObj -> getWorkflowInstance ( ) ) ) { throw new Exception ( _t ( 'FrontEndWorkflowController.FRONTENDACTION_TRANSITION_EXCEPTION' , 'You do not have permission to execute this action' ) ) ; } //Only Save data when Transition is 'Active' if ( $ this -> getCurrentTransition ( ) -> Type == 'Active' ) { //Hand off to WorkflowAction to perform Save $ svc = singleton ( WorkflowService :: class ) ; $ active = $ svc -> getWorkflowFor ( $ obj ) ; $ active -> doFrontEndAction ( $ data , $ form , $ request ) ; } //run execute on WorkflowInstance instance $ action = $ this -> contextObj -> getWorkflowInstance ( ) -> currentAction ( ) ; $ action -> BaseAction ( ) -> execute ( $ this -> contextObj -> getWorkflowInstance ( ) ) ; //get valid transitions $ transitions = $ action -> getValidTransitions ( ) ; //tell instance to execute transition if it's in the permitted list if ( $ transitions -> find ( 'ID' , $ this -> transitionID ) ) { $ this -> contextObj -> getWorkflowInstance ( ) -> performTransition ( $ this -> getCurrentTransition ( ) ) ; } }
Save the Form Data to the defined Context Object

@param array $data
@param Form $form
@param SS_HTTPRequest $request
@throws Exception
Save the Form Data to the defined Context Object