SugarCRM 6.5.26 CE — экспорт контактов с использованием SugarBean [php]

У меня есть плагин SugarCrm, который экспортирует данные во внешний сервис. Я использую логику для обновленных / удаленных / новых контактов, но у меня проблема с синхронизацией уже существующих данных. Мне нужно извлечь все данные из SugarCRM, и я попытался использовать два метода SugarBean: get_full_list () и get_list (). Первый дает мне полный список контактов, но мне нужно отправить его партиями 1000 контактов в одном максимуме Json, второй метод возвращает только первую страницу контактов (зависит от настроек конфигурации 10 — 1000 max записей).

Я использую этот метод банкомата:

    // prepare contacts data from SugarBean
$bean = BeanFactory::getBean($module);
$contactResults = $bean->get_full_list();

Затем создайте $ contactResults и сохраните нужные мне данные в требуемом формате и отправьте их в виде Json с помощью пост-запроса. Я пытался найти решение, чтобы разбить его на партии, но я застрял 🙁 Мне кажется, ни get_full_list, ни get_list не работают.

Какие-либо предложения? Может, кто-то уже решил эту проблему?
Заранее спасибо!

1

Решение

Для меня это звучит так, как будто твоя проблема — создавать партии? Если нет, пожалуйста, уточните, что не работает.

  • Для разбиения массива на пакеты, вы можете посмотреть на https://php.net/manual/en/function.array-chunk.php
  • Также get_list поддерживает получение более поздних страниц. Это определяется так: function get_list($order_by = "", $where = "", $row_offset = 0, $limit=-1, $max=-1, $show_deleted = 0, $singleSelect=false, $select_fields = array()),
    Это означает, что для второй страницы вы можете указать $row_offset знак равно 1000, для третьей страницы сделай это 2000и т. д. Так что в основном запустите цикл, который вызывает get_list $limit знак равно 1000 и увеличивает начальный $row_offset из 0 от 1000 после каждой итерации, пока не менее 1000 записи или null возвращается функцией.

Вот несколько общих советов, если у вас возникнут проблемы с обработкой этих бинов:

  • Если проблема заключается в неполных данных, попробуйте загрузить каждый компонент вручную, используя его идентификатор. Некоторые функции Sugar не загружают все (специальные) поля по умолчанию.
  • Если кажется, что что-то не получается без причины, обязательно проверьте журнал PHP на наличие ошибок. Возможно, загрузка как можно большего числа компонентов может вызвать проблемы с вашим PHP max_execution_time или же memory_limit,
0

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

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

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