AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.09.2012, 11:33   #1  
Iwa is offline
Iwa
Участник
 
14 / 10 (1) +
Регистрация: 10.07.2012
Адрес: Киев, Украина
Процесс обработки записей многие-к-одному
Имею задачу осуществить обработку файла импорта. Он представляет собой "плоский" файл с транзакциями пользователей.В нем есть три группы направлений обработки, суть которых в создании( или обновлении) записей. Т.е. осуществляется обработка один-к-одному. Удается взаимно связывать создаваемые записи с записями транзакций. С этим все хорошо.

Сложность возникла на этапе подсчитывания записей, которые об'единены принадлежностью к какой-то группе. Обработка осуществлена следующим образом:

При вставке з таблицу транзакций создается (или изменяется) запись в некоей сущности "Активностей Потребителя", каждая такая Активность берется из списка зарегистрированных активностей, каждая из которых содержит поле счетчика.

По логике, каждая "Активность Потребителя" должна приращивать счетчик активностей в списке тех самых зарегистрированных активностей.
Для этого я создал два процесса, - на создание и на изменение сущности "Активность Потребителя", в которой и попытался осуществить приращение счетчика в активности из списка, на которую указывает "Активность Потребителя". Приращение осуществил стандартно: "Увеличить на" {1}.

Так вот первая запись подсчитывается нормально, а потом начинается чехарда - что-то подсчитывается, а бальшинство процессов застопоряются из-за SQL-ошибки.

Я уже и статус для записи вводил, чтобы обрабатывать запись в зависимости от состояния - "Занято"-"Свободно" - на результат это принципиально не влияет, - снова одна-две записи подсчитываются, другие выпадают с ошибками, а третьи - видно, что механизм статуса не срабатывает, - между шагами одного процесса успевают сработать другие процессы, так что в общем получается какая-то чехарда.

Фантазии уже не хватает для того, чтобы разрулить ситуацию ...

Help please.

Последний раз редактировалось Iwa; 17.09.2012 в 11:40.
Старый 17.09.2012, 23:27   #2  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
ну скажу открыто... я мало что понял ))))
может еще как то опишите? ) суть импорта?
Старый 18.09.2012, 11:22   #3  
Iwa is offline
Iwa
Участник
 
14 / 10 (1) +
Регистрация: 10.07.2012
Адрес: Киев, Украина
Цитата:
Сообщение от -O_o- Посмотреть сообщение
ну скажу открыто... я мало что понял ))))
может еще как то опишите? ) суть импорта?
Есть сущности:
Потребители
Маркетиновые Активности
Активности Потребителей
Транзакции

Импорт производится в сущность "Транзакции".
В каждой транзакции есть указания
1) на потребителя, который осуществил транзакцию;
2) на участие Потребителя в Маркетинговой Активности (Активность Потребителя)
3) на Маркетинговую Активность, в рамках которой осуществлена транзакция.

Идентификация Потребителя и Активности Потребителя производится на этапе подготовки файла импорта, так что в файле проставляются (либо отсутствуют) соответствующие GUID-ы. Маркетиновая Активность присутствует априори.

Для Транзакции создан процесс на создание записи.
Процесс осуществляет следующее:
1) создает Потребителя, если такой не существует или обновляет, если сущестует;
2) регистрирует Потребителя и Транзакцию в Активности Потребителя (увязывает Потребителя и Маркетинговую Активность) если такой не существует, или обновляет в нем Транзакцию, если существует;

Импорт отрабатывает полностью, без ошибок.
Все задания на создание Транзакций отрабатывают полностью.
Все задания на создание/обновление Потребителей отрабатывают полностью.

Для Активности Потребителя в процессах на вставку и на обновление присутствует шаг, в котором осуществляется приращение счетчика Маркетинговой Активности, которая указана в Активности Потребителя.

Так вот задания на создание записей в Активности Потребителя отрабатывают в части создания, но не отрабатывают коректно в части приращения счетчика Маркетинговой Активности. На полторы тысячи созданных записей счетчик посчитал лишь 60. Остальные задания зависли в ожидании из-за SQL-ошибки.

Последний раз редактировалось Iwa; 18.09.2012 в 12:25. Причина: уточнение
Старый 20.09.2012, 22:48   #4  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Причина возможно в том, что сервер просто не успевает обрабатывать... то есть записи создает, а вот обновить по каким-то причинам не может и за этого конфликт скорее всего получается... Правила то асинхронные.. Должны все в очередь запросы в БД становится... То есть по идее, что бы все отрабатывало, должно все идти одним циклом. А не так, что бы там кусок создали.. а потом тут дергать на все что создалось ранее..
Если без прироста попробовать? то есть не обновлять значение? Нормально все отрабатывает?
Сложно просто въехать, что же оно там творит )))
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Параметр TotalRecordCount и проблемы производительности. Как отключить подсчет количества записей в представлении Blog bot Dynamics CRM: Blogs 0 13.06.2012 22:11
Бизнес процесс и ожидание времени. СРМ4 Yuri Fedorov Dynamics CRM: Разработка 0 02.12.2011 10:44
Бизнес-процесс висит в состоянии ожидания Evgenia_f Dynamics CRM: Функционал 70 21.12.2009 18:53
Бизнес-процесс (Workflow) отправка e-mail degussa Dynamics CRM: Функционал 1 07.12.2009 08:42
Фильтр для отчета - из списка связанных записей? AlekseyS Dynamics CRM: Разработка 3 11.09.2008 10:54

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:19.