SugarCRM Как сохранить несколько записей, используя логику before_save

Когда я пытаюсь сохранить несколько записей следующим образом:

          public function generateName($bean, $event, $arguments) {
        
        $record_id = $bean->id;
        $module="PNGM_AI_Projects";
        $mybean = BeanFactory::retrieveBean($module, $record_id);

        if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
            for($i=1;$i<=3;$i++){
                $mybean->id=create_guid();
                $mybean->new_with_id = true;
                $mybean->name="AI->".$i;
                $mybean->fetched_row = null;
                $mybean->unique_id_c = uniqid();
                $mybean->ignore_update_c = true;
                $mybean->processed = true;
                $mybean->assigned_user_id = $bean->assigned_user_id;
                $mybean->save();      
            }

        }            
        return true;
    }

я получаю эту ошибку

Исключение произошло при выполнении команды «INSERT INTO pngm_ai_projects_cstm (id_c,assign_c,brand_c,company_c) VALUES(?, ?, ?, ?)» с параметрами ["5d790e7c-3c43-11eb-96f5-0242ac120008", null, "Basic", «Отложенный заказ»]: дублирующаяся запись «5d790e7c-3c43-11eb-96f5-0242ac120008» для ключа «PRIMARY».

1 ответ

      public function generateName($bean, $event, $arguments) {
    
    $record_id = $bean->id;
    $module="PNGM_AI_Projects";

    if (isset($arguments['isUpdate']) && $arguments['isUpdate'] == false) {
        for($i=1;$i<=3;$i++){
            // create new bean here rather than fetching old beans always.
            $mybean = BeanFactory::getBean($module);
            $mybean->id=create_guid();
            $mybean->new_with_id = true;
            $mybean->name="AI->".$i;
            $mybean->fetched_row = null;
            $mybean->unique_id_c = uniqid();
            $mybean->ignore_update_c = true;
            $mybean->processed = true;
            $mybean->assigned_user_id = $bean->assigned_user_id;
            $mybean->save();      
        }

    }            
    return true;
}
Другие вопросы по тегам