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

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

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

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

2. ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 1000;

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

SQL код:
PACKAGE BODY Schedule

PROCEDURE TASKJOBENTRY
(PTASKID IN TTASKID)

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

SmAutoExecMA(:pTaskID);

    
SELECT A.ID FROM SMDOCUMENTS DSMAUCTIONS 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 DSMAUCTIONS 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
 
Цитата:
DMaslov Осталось проделать раскопку кода процедуры "Регистрация актов переоценки", чтобы понять, почему в одном из магазинов акт не доводится с розовой галки до зеленой, при наличии МА с зеленой галкой.
Раскопка не потребовалась. Акты доводятся до зеленой галки, но чуть позже. Из-за различия времени на центральном сервере и сервере магазина я в прошлый раз не дождался утверждения акта, ожидая, чо он прилетел в магазин с розовой галкой, и через минуту (период запуска задания по актам переоценки) должен быть утвержден.
Миниатюры
Нажмите на изображение для увеличения
Название: 111.png
Просмотров: 8
Размер:	8.0 Кб
ID:	11142  
11.11.2020 19:31
OlegON
 
Хорошо бы синхронизировать время на серверах с надежным источником... Где минута разница, там и час может быть... А это не только сложности с логами, но и где-то время по умолчанию в документе может проскочить...
26.11.2020 14:57
DMaslov
 
Из-за пока недораскопанной особенности алгоритма галка "маркетинговая цена", оставшаяся после недозавершенной акции, не снимается после повторного перезапуска акции.

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

Запустил в третий раз - снялась.
Миниатюры
Нажмите на изображение для увеличения
Название: 001.png
Просмотров: 6
Размер:	9.9 Кб
ID:	11170   Нажмите на изображение для увеличения
Название: 002.png
Просмотров: 5
Размер:	6.3 Кб
ID:	11171   Нажмите на изображение для увеличения
Название: 003.png
Просмотров: 6
Размер:	9.1 Кб
ID:	11172  

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