Обработчик событий перед добавлением записи & БП

Коллеги всем доброго времени суток! Столкнулся со следующей проблемой, у нас CRM интегрируется со сторонней системой в БД которой Id представлены как long.

Реализовали БП  создания заказа из звонка. На уровне объекта Order перед сохранение уходит запрос во внешнюю систему тянет последний id в БД, полученный ответ инкрементируем  на 1 и переводим в GUID получаем "00000000-0000-0000-0000-000000000001";  полученный Id подставляем PrimaryColumnValue

http://prntscr.com/m7t797

 

var origin = HttpContext.Current.Request.Headers["Origin"];
IntegrationAutobookingClient client = new IntegrationAutobookingClient(UserConnection);
if (!string.IsNullOrEmpty(origin))
{
	var lastOrerIdInPlatform = client.GetRequest("/v1/orders/last_id");
	var abOrderId = Convert.ToInt64(lastOrerIdInPlatform);
	var newOrderId = abOrderId + 1;
	var bpmOrderId = client.ChangeId(newOrderId);
	Entity.PrimaryColumnValue = bpmOrderId;
}
return true;

Далее идет обработчик после сохранения записи, уходит запрос во внешнюю систему создания Заказа.

Открытие карточки редактирования заказа осуществляется через БП - http://prntscr.com/m7t97l

При сохранении заказ создается, но карточка(эл-т процесса) остается не выполненным - http://prntscr.com/m7taim и дальше по процессу не идет

В консоли наблюдаю следующее - http://prntscr.com/m7tb5u

Подскажите как с этим бороться? Подозреваю что дело в изменении PK.

Нравится

1 комментарий

Видимо, элемент открытия карточки новой записи в БП уже подразумевает какой-то сгенерированный Id, который затем во встроенном БП объекта на Inserting заменяется нужным, что и приводит к некорректной работе.

Можно попробовать переделать логику: в БП генерировать Id и сохранять новую запись, а уже потом уже открывать её на редактирование в карточке.

Показать все комментарии