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

improve DX in add batch methods

Open mesilov opened this issue 3 years ago • 0 comments

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(с проброской кастомных данных/запроса в метод, вместе с результатом)/возвращать запрос и ответ в итераторе

mesilov avatar Jul 29 '22 11:07 mesilov