Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Акт переоценки по маркетинговой акции не утверждается : Супермаг Плюс (Супермаг 2000)

22.11.2024 23:04


04.11.2020 11:45
Сначала была явная причина - проверка срабатывала.
Отключил.
Теперь "задача завершена", а акт с розовой на зеленую галку не поменялся.

Что посмотреть, кроме очевидного "лезь в код"?
Миниатюры
Нажмите на изображение для увеличения
Название: 111.png
Просмотров: 51
Размер:	24.3 Кб
ID:	11119  
05.11.2020 06:25
Цитата:
DMaslov Сначала была явная причина - проверка срабатывала.
Отключил.
Теперь "задача завершена", а акт с розовой на зеленую галку не поменялся.

Что посмотреть, кроме очевидного "лезь в код"?
Похоже задание МА не отрабатывает

1. Проверьте значение параметра
Цитата:
show parameter job_queue_processes;
должно быть value = 1000, иначе шаг два

2. ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 1000;

3. После этого надо рестартовать БД и запустить задание МА.
05.11.2020 07:55
если бы задания были выключены, журнале бы ничего не появилось...
могу предположить, что место хранения, по которому акты, не локальное
05.11.2020 08:05
Цитата:
OlegON если бы задания были выключены, журнале бы ничего не появилось...
могу предположить, что место хранения, по которому акты, не локальные
В журнале появляются записи, но время следующего исполнения не меняется
05.11.2020 08:58
Цитата:
Tiger В журнале появляются записи
Да кто же их, кроме джоба, туда поместит-то?
05.11.2020 09:01
Цитата:
OlegON Да кто же их, кроме джоба, туда поместит-то?
OlegON, скорее всего ошибаюсь :) Но время следующего исполнения точно не изменяется
05.11.2020 16:03
Потребовалось залезть в код, чтобы понять/вспомнить механизм утверждения актов, который я настроил пару лет назад.

SQL код:
PACKAGE BODY Schedule

PROCEDURE TASKJOBENTRY(PTASKID IN TTASKID)

SELECT F.ID, F.WHAT
      FROM SMCONTROLTASKS T, SSCONTROLFUNCTIONS F                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
      WHERE F.ID = T.FNID;

SmAutoExecMA(:pTaskID);

    SELECT A.ID FROM SMDOCUMENTS D, SMAUCTIONS A                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
      WHERE D.DOCTYPE = 'MA'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
        AND D.DOCTYPE = A.DOCTYPE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
        AND D.ID = A.ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
        AND SYSDATE BETWEEN A.DATEBEGIN AND A.DATEEND                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
        AND D.DOCSTATE = 2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

    SELECT A.ID FROM SMDOCUMENTS D, SMAUCTIONS A                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
      WHERE D.DOCTYPE = 'MA'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
        AND D.DOCTYPE = A.DOCTYPE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
        AND D.ID = A.ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
        AND A.DATEEND <= SYSDATE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
        AND D.DOCSTATE = 3; 
Правило рассылки маркетинговых акций из центра в магазины: 1-2,2-3,3-0.
Правило рассылки актов переоценки из центра в магазицы: 1-2.

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

И я вспомнил, что "Исполнение / завершение маркетинговых акций" делается только в центре, акции и акты рассылаются в магазины, а в магазинах делается "Регистрация актов переоценки".

Уфф.

Осталось проделать раскопку кода процедуры "Регистрация актов переоценки", чтобы понять, почему в одном из магазинов акт не доводится с розовой галки до зеленой, при наличии МА с зеленой галкой.
11.11.2020 15:31
Цитата:
DMaslov Осталось проделать раскопку кода процедуры "Регистрация актов переоценки", чтобы понять, почему в одном из магазинов акт не доводится с розовой галки до зеленой, при наличии МА с зеленой галкой.
Раскопка не потребовалась. Акты доводятся до зеленой галки, но чуть позже. Из-за различия времени на центральном сервере и сервере магазина я в прошлый раз не дождался утверждения акта, ожидая, чо он прилетел в магазин с розовой галкой, и через минуту (период запуска задания по актам переоценки) должен быть утвержден.
Миниатюры
Нажмите на изображение для увеличения
Название: 111.png
Просмотров: 32
Размер:	8.0 Кб
ID:	11142  
11.11.2020 19:31
Хорошо бы синхронизировать время на серверах с надежным источником... Где минута разница, там и час может быть... А это не только сложности с логами, но и где-то время по умолчанию в документе может проскочить...
26.11.2020 14:57
Из-за пока недораскопанной особенности алгоритма галка "маркетинговая цена", оставшаяся после недозавершенной акции, не снимается после повторного перезапуска акции.

Предполагаю, как-то влияет порядок актов "начало акции" / "окончание акции".

Запустил в третий раз - снялась.
Миниатюры
Нажмите на изображение для увеличения
Название: 001.png
Просмотров: 29
Размер:	9.9 Кб
ID:	11170   Нажмите на изображение для увеличения
Название: 002.png
Просмотров: 26
Размер:	6.3 Кб
ID:	11171   Нажмите на изображение для увеличения
Название: 003.png
Просмотров: 27
Размер:	9.1 Кб
ID:	11172  
Часовой пояс GMT +3, время: 23:04.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.