bitrix24-php-sdk
bitrix24-php-sdk copied to clipboard
improve DX in add batch methods
foreach ($this->serviceBuilder->getCRMScope()->deal()->batch->add($rawDeals) as $addDealResult) {
$dealIdList[] = $addDealResult->getId();
}
в rawDeals лежит массив сделок на добавление, в add они добавятся через батч, он нарежет всё как надо, добавит и вернёт уже через генератор айдишники добавленных сделок
Vlad Bazhanov
через генератор? а как сопоставляются добавляемые сделки и их id? т.е. если я добавляю данные через рест, а потом в локальной системе нужно привязать айди сделки (зачемто) к каждой отдельной сущности, что я добавил, то как?
Maxim
хороший вопрос, я его решаю так: это зона ответственности разработчика, в клиентском коде пусть сам решает что там ему надо. если мы говорим про связь сужностей в двух системах, то у тебя должно быть поле по которому идёт связь, какой нить UUID, ну собственно у тебя:
- есть система А в которой есть данные и uuid
- ты в Б24 отправил массив сделок у которых в пользовательском поле эти uuid
- тебе вернули их id (добавленных) по id ты выбрал и сопоставил можно конечно использовать ключи массива со сделками как идентификаторы и прокидывать их, например
Vlad Bazhanov
я не пробовал вашу библиотеку, может у вас можно выполнить метод добавления другим способом, а это дополнительный "сахар" для частного кейса на вскидку вариантов много: позволять задавать код запроса и по нему получать ответ/callback(с проброской кастомных данных/запроса в метод, вместе с результатом)/возвращать запрос и ответ в итераторе