\w+)/"; /** @inheritdoc * @throws FormBlockException */ public function AllInputsReadyEvent(): void { parent::AllInputsReadyEvent(); $this->ComputeExpression(FormEvents::POST_SET_DATA); $this->ComputeExpression(FormEvents::POST_SUBMIT); } /** * Compute the expression and set the output values. * * @param string $sEventType * * @return mixed * @throws FormBlockException */ public function ComputeExpression(string $sEventType): mixed { $sExpression = $this->GetOption('expression'); try { $oExpression = Expression::FromOQL($sExpression); $aFieldsToResolve = $oExpression->ListRequiredFields(); $aResolvedParams = []; foreach ($aFieldsToResolve as $sFieldToResolve) { $aResolvedParams[$sFieldToResolve] = strval($this->GetInputValue($sFieldToResolve)); } return $oExpression->Evaluate($aResolvedParams); } catch (Exception $e) { throw new FormBlockException('Compute expression '.json_encode($sExpression).' block issue: '.$e->getMessage(), 0, $e); } } }