bitrix24-php-sdk icon indicating copy to clipboard operation
bitrix24-php-sdk copied to clipboard

Добавить поддержку батч-запросов к нескольким сущностям с возвратом композитного результата

Open mesilov opened this issue 4 years ago • 4 comments

Вопрос: а у вас часто возникает потребность в упаковке запросов к разным или связанным сущностям в один батч?

Vladislav Piqpi в рамках одной сущности, если планируется более 1 запроса, то всегда батч. Если разные сущности, то разные батчи - к каждой сущности свой батч. Я понимаю, что так меньше приходится думать разработчику, и решение получается сделать быстрее

Роман Кононов Несколько сущностей тоже. Вот прямо сейчас проект: берётся Дело и тут же - Контакт, Компания и Сделка, возможно >связанные с ним. Потом ещё, возможно, добавятся Контакты и Компания, связанные с полученной Сделкой. Раз всё >равно один хит - тянуть по-максимуму

Предлагаемое решение:

$batch = new \Bitrix24\SDK\Core\Batch($core, $log);
$batch->addCommand('crm.deal.get', ['ID' => $dealId],'deal');
$batch->addCommand('crm.deal.productrows.get', ['ID' => $dealId],'products');
$batch->addCommand('user.current', [],'user');
$cdArr = $batch->getCompositeResultAsArray();

array(3) {
  ["deal"]=>
  array(40) {
    ["ID"]=> string(3) "713"
    ["TITLE"]=> string(29) "тестовая сделка"
     ...
  ["products"]=>
  array(2) {
    [0]=>
    array(22) { 
      ["ID"]=> string(3) "325"
      ["OWNER_ID"]=>  string(3) "713"
       ...
    }
  }
  ["user"]=>
  array(40) {
    ["ID"]=> string(1) "1"
    ["ACTIVE"]=> 'Y'
    ...
  }
}

mesilov avatar Nov 24 '21 20:11 mesilov

там кстати фишку замечал еще, если передать в имя комманды число, он его не воспримет

покопать

mesilov avatar Dec 13 '21 10:12 mesilov

$applicationInfo = $sb->getMainScope()->main()->getApplicationInfo()->getResponseData()->getResult()->getResultData();
$b24CurrentUserId = (int)$sb->getMainScope()->main()->getUserProfile()->getResponseData()->getResult()->getResultData()['ID'];

mesilov avatar Jun 10 '22 13:06 mesilov

учесть хотелки https://github.com/mesilov/bitrix24-php-sdk/issues/305

mesilov avatar Sep 04 '22 13:09 mesilov

Учесть возможность указания типа результата как аргумента при вызове команды?

mesilov avatar Sep 04 '22 20:09 mesilov