How to use save handlers

“run” method in RecordSaveHandlerInterface return “void”, so your object cannot return information to gui (like validation error information)

namespace App\Data\Service\Record\RecordSaveHandlers;

use App\Data\Entity\Record;
use App\FieldDefinitions\Entity\FieldDefinition;

interface RecordSaveHandlerInterface extends BaseModuleSaveHandlerInterface
{
    /**
     * Run save handler
     * @param Record|null $previousVersion
     * @param Record $inputRecord
     * @param Record|null $savedRecord
     * @param FieldDefinition $fieldDefinition
     * @return void
     */
    public function run(?Record $previousVersion, Record $inputRecord, ?Record $savedRecord,  FieldDefinition $fieldDefinition): void;

}

If you need frontend validation use Front-end Logic Examples :: SuiteCRM Documentation

If you need backend validation please upvote my suggestion Backend field validation

Time ago I made a sort of backend validation with 7.x LogicHooks Logic Hooks :: SuiteCRM Documentation using

SugarApplication::appendErrorMessage('Enter your message string');
1 Like