SugarCRM 7.9 — удаление пользовательских полей при удалении пакета

Я создал устанавливаемый пакет, где я создаю несколько пользовательских полей через мой manifest.php:

$installdefs = [
'custom_fields' =>
[...],
[...]
]

Я добавил пост удаления также:

    'post_uninstall' => [
[
0 => '<basepath>/post_uninstall.php'
]
]

В моем post_uninstall.php я добавил:

$fieldsByModule = array(
'Users' => array(
'field1_c',
'field2_c',
'field3_c',
'field4_c',
'field5_c',
'field6_c'
),
);

foreach ($fieldsByModule as $moduleName => $fields) {
foreach ($fields as $field) {
$dyField = new DynamicField();
$dyField->bean = BeanFactory::getBean($moduleName);;
$dyField->module = $moduleName;
$dyField->deleteField($field);
}
}

Когда я запускаю скрипт post_uninstall вручную, он работает и удаляет поля из Sugar DB, но когда я пытаюсь удалить пакет из Sugar ModuleLoader, процесс удаления застревает на 76% (Перестройка платформ …), файлы пакета удаляются, но настраиваемые поля остаются в БД.

Мой вопрос — как мне правильно удалить пользовательские поля, используя post_uninstall.php. Кажется, мой путь не работает. Или может есть какой-то другой способ? Суть в том, что пользователь должен иметь возможность удалить пакет (также настраиваемые поля) из панели администратора.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]