Коллеги всем доброго времени суток! Столкнулся со следующей проблемой, у нас 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.
Нравится
Видимо, элемент открытия карточки новой записи в БП уже подразумевает какой-то сгенерированный Id, который затем во встроенном БП объекта на Inserting заменяется нужным, что и приводит к некорректной работе.
Можно попробовать переделать логику: в БП генерировать Id и сохранять новую запись, а уже потом уже открывать её на редактирование в карточке.