Изменение длины поля через PHP Script - PullRequest
0 голосов
/ 24 июня 2019

Хочу изменить длину поля с помощью PHP-скрипта и Sugar-бинов как в базе данных, так и в Sugar CRM studio

1 Ответ

1 голос
/ 24 июня 2019

Ваш вопрос очень важен и не показывает нам, что вы уже пробовали, но я попробую, независимо от того:

Пользовательские поля

Studio сохраняет пользовательские поля в DynamicFields bean-компонентах, которые сохраняются в базе данных в таблице fields_meta_data.Идентификатором поля является имя модуля + имя поля, например, Accountstests_c для поля test_c.

Один из способов изменить его - обновить столбец len в таблице, а затем запустить Quick Repair & Rebuild(см. примечания ниже).

В качестве альтернативы вы можете настроить поле, используя бины DynamicFields или используя PHP-контроллер ModuleBuilder, аналогично тому, как это делает Studio (я постараюсь добавить примеры позже.).

Поля для заполнения

Вы можете настроить длину поля, используя Vardefs-Extensions .

Например, если вы хотитеизменить длину (атрибут vardef len) поля varchar name в модуле Accounts на 100:

./custom/Extension/modules/Accounts/Ext/Vardefs/sugarfield_name.php:

<?php
$dictionary['Account']['fields']['name']['len'] = 100;

Примечания

  • Запустите Быстрое восстановление и перестройку , и ваши изменения будут применены в Sugar и Studio.Затем прокрутите вниз и запустите предложенные изменения БД.Если вы хотите сделать это без взаимодействия с пользователем, найдите или напишите сценарий восстановления sugarcrm.
  • При создании новых расширений Vardef обязательно используйте BeanName для индекса массива словаря, поэтому Accountдля Accounts или aCase для чехлов.Если вы не знаете, что использовать, просто посмотрите, как это делают существующие файлы vardefs рассматриваемого модуля.
  • Чтобы узнать имена доступных атрибутов vardefs и узнать больше о vardefs, смотрите здесь или посмотрите vardefs.php файлы в подпапках modules/.
...