Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
mesilov opened this issue Nov 24, 2021 · 4 comments · May be fixed by #226
Assignees
Labels
2.x issue related with 2.x sdk version improve DX developer experience improvement ⚡️ performance
Milestone

Comments

@mesilov
Copy link
Owner

mesilov commented Nov 24, 2021

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

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 mesilov self-assigned this Nov 24, 2021
@mesilov mesilov added 2.x issue related with 2.x sdk version improvement labels Nov 24, 2021
@mesilov mesilov added this to the 2.x-core milestone Nov 24, 2021
@mesilov mesilov linked a pull request Nov 24, 2021 that will close this issue
@mesilov
Copy link
Owner Author

mesilov commented Dec 13, 2021

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

покопать

@mesilov mesilov added improve DX developer experience ⚡️ performance labels Feb 6, 2022
@mesilov
Copy link
Owner Author

mesilov commented Jun 10, 2022

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

@mesilov
Copy link
Owner Author

mesilov commented Sep 4, 2022

учесть хотелки #305

@mesilov
Copy link
Owner Author

mesilov commented Sep 4, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.x issue related with 2.x sdk version improve DX developer experience improvement ⚡️ performance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant