Добрый всем. Заметил странное поведение детали "Стадии" во вкладке "История продажи".

У меня три страницы для разных типов продаж, на двух из них при переходах со стадии на стадию в истории стадий за один переход прописывается 6 стадий (при этом только последняя относится к этому типу продаж). Но интересное что на одном виде продаж такого нет.

Запускается только один бизнес-процесс, так что влияние сторонних исключено, это проверил.

Видимо в логике именно добавления именно в таблицу что-то.

Подскажите как работает логика, так как я в коде так и не смог найти причину и нормально понять как работает логика добавления записей в эту деталь.Изображение удалено.

Нравится

7 комментариев

Проверьте, не установлено ли "Показывать в воронке" в True для этих стадии в справочнике стадий продаж

Было похожее, но единоразово, когда сайт был сильно загружен. Тогда, вероятнее всего, проблема была в том, что не создался DCM-процесс из-за перезагрузки одной из нод.

 

Если воспроизводится стабильно, то где-то в коде реализовано: или во встроенном БП, или в отдельных, или в событийном слое, или в кейсах этого раздела, или в коде карточки на JS, или, что наименее вероятно, вообще в триггерах.

 

Тут ещё нужно понять, только ли деталь стадий менялась, или реально каждый раз менялось поле «стадия» продажи. Это можно выяснить, настроив стандартный механизм журнала изменений для раздела.

Владимир Соколов,

 в воронке отображаются, так и должно быть. Проблема в том что эти стадии относятся к другим кейсам, которых у меня 4

Зверев Александр,

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

Нужно смотреть во встроенном БП объекта «Продажа» в функции SynchronizeOpportunityStage:

  public virtual void SynchronizeOpportunityStage() {
   if (UserConnection.GetIsFeatureEnabled("DisableOldOpportunityStageSynchronizers")) {
    return;
   }
   if (UserConnection.GetIsFeatureEnabled("NewOpportunityStageManager")) {
    var opportunityStageRepository =
     Terrasoft.Core.Factories.ClassFactory.Get<Terrasoft.Configuration.OpportunityStageRepository>(
      new Terrasoft.Core.Factories.ConstructorArgument("userConnection", UserConnection));
    var opportunityInStageRepository =
     Terrasoft.Core.Factories.ClassFactory.Get<Terrasoft.Configuration.OpportunityInStageRepository>(
      new Terrasoft.Core.Factories.ConstructorArgument("userConnection", UserConnection));
    var opportunityStageManager =
     Terrasoft.Core.Factories.ClassFactory.Get<Terrasoft.Configuration.OpportunityStageManager>(
      new Terrasoft.Core.Factories.ConstructorArgument("userConnection", UserConnection),
      new Terrasoft.Core.Factories.ConstructorArgument("opportunityStageRepository", opportunityStageRepository),
      new Terrasoft.Core.Factories.ConstructorArgument("opportunityInStageRepository", opportunityInStageRepository));
    opportunityStageManager.SynchronizeStage(StageOldValue, OldOwnerId, Entity);
   } else {
    var oppInStageSchema = UserConnection.EntitySchemaManager.GetInstanceByName("OpportunityInStage");
    var stageHelper = Terrasoft.Core.Factories.ClassFactory.Get<Terrasoft.Configuration.OpportunityStageHelper>(
     new Terrasoft.Core.Factories.ConstructorArgument("userConnection", UserConnection),
     new Terrasoft.Core.Factories.ConstructorArgument("oppInStageSchema", oppInStageSchema));
    stageHelper.SynchronizeStage(StageOldValue, OldOwnerId, Entity);
   }
  }

Если, конечно, она не отключается сразу же по фиче во второй строке и работает новая логика где-то в другом месте.

Зверев Александр,

 

К сожалению настройка "DisableOldOpportunityStageSynchronizers" по умолчанию включена, значит синхронизацию стадий реализовали в другом совершенно методе, возможно даже через какой-то бизнес процесс, так как весь метод только начавшись заканчивается сразу return. Так и не нашел как. Самое интересное:

- во первых, что проблема появилась после обновления с 7.12.4 до 7.15.2 (да, много пропустили потому массово пришлось обновлять), на 7.12.4 проблемы не было

- во вторых, у меня три вида продаж, и в одном поведение осталось нормальным а в двух вот такой сбой.

 

Перепроверил у продажи у которой все работает нормально, и сравнил с другими где поведение не корректоное - нечего не нашел, логика везде одинаковая в общем своем

А в кейсах для этого раздела проверяли, может, логика там реализована?

 

Если есть доступ к базе, проверьте, что за записи в момент такого поведения появляются в SysProcessLog и SysProcessElementLog, там видно все выполняющиеся процессы (включая кейсы) и шаги.

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

Есть такая задача:
У каждой стадии продажи есть максимальная длительность. Хочу на детали Стадии продажи видеть планируемую дату выхода из стадии на основании этой длительности + считать задержку относительно планируемой даты.
Может кто подскажите куда что надо прописать .поделится наработками.
Используем bpmonline 7-x.

Нравится

3 комментария

С планируемой датой всё просто - при смене стадии новая запись добавляется на деталь. Достаточно просто сделать бизнес-процесс, который срабатывает на добавление записи, прибавить к текущей стадии определенное количество дней (можно сделать поле в справочнике стадий) и записать планируемую дату в новое поле детали стадии продаж.

С задержкой чуть сложнее. Для отображения задержки в карточке можно сделать виртуальное поле (требуется программирование). Для использования в фильтрах необходимо уже поле в БД и надо пересчитывать его каждый день

Можно ли реализовать периодический запуск БП?

"Кулак Олег" написал:Можно ли реализовать периодический запуск БП?

Да. На форуме есть обсуждения. Например: http://www.community.terrasoft.ua/forum/topic/15055

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

При непонятных обстоятельствах (по моему пытался редактировать справочники в процессе заполнения карточки Продажи)пропал справочник - стадии продажи.
При этом из раздела управления справочниками: Файл - Настройки - Продажи - стадии продаж
справочник стадий продаж виден и редактируется, а из карточки Продажи он видится полностью пустым.
Что делать?

Нравится

2 комментария

Скорее всего, проблема в стадиях для определенного Вами типа продажи. Зайдите в справочник "Стадии продаж по типам" и укажите актуальные стадии для Вашего типа продажи.
После этого в карточке продажи должны появится для выбора указанные ранее Вами стадии.

Большое спасибо!
Проблема полностью решена.

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