21.04.2019 16:23
Diamondne
 
Появилась необходимость периодической рассылки одной или нескольких дисконтных карт в подчиненные базы. Постоянно использовать для этого интерфейс СМ крайне не удобно. Карточки складского учета и другие документы рассылаю через добавление их в SMPostTmpQueue и выполнение SMPostMultipleObjects. Но проблема в том, что процедура SMPostMultipleObjects отбирает содержимое таблицы SMPostTmpQueue по совпадению DOCTYPE=OBJTYPE с таблицей SSDOCTYPES, а в ней нет типа документов 'DC'. Собственно вопрос: кто-нить делал что-то подобное? поделитесь, как рассылать дисконтные карты?
21.04.2019 22:15
OlegON
 
Не пробовал. Копал бы, наверное, в сторону прямого наполнения SMPOSTQUEUE, однако, прежде чем решать задачу, хотелось бы ее понимать полностью. Зачем такие рассылки вообще нужны?
22.04.2019 08:47
Diamondne
 
Цитата:
OlegON Зачем такие рассылки вообще нужны?
В супермаг нет механизма активации дисконтных карт по расписанию. Есть только дата, до которой она действует, по достижении которой карта блокируется. Смысл в том, чтобы активировать тогда, когда это нужно по графику. И, чтобы не активировать карту в каждой подчиненной БД, хочу использовать рассылку почтовика.
22.04.2019 09:30
vdm
 
А для чего нужно использовать промежуточный этап в виде SMPostTmpQueue?
SMPostMultipleObjects делает практически только SMPostObject по фильтрованному списку.
Почему не писать сразу все нужное в очередь через SMPostObject или SMAutoPost?
23.04.2019 16:12
Diamondne
 
Спасибо, устроил такой вариант:
supermag.SMAutoPost('DC','7777700008188',0,NULL,NULL,NULL);

Только он работает, если в правилах рассылки почтовика включена рассылка карт, зато с одной строки без всяких циклов, шлет во все подчиненные БД.
29.04.2019 15:19
Diamondne
 
В продолжение темы, работает и прямой инсерт в очередь почтовика:

INSERT INTO SUPERMAG.SMPOSTQUEUE (ENQTIME,ENQSEQ,TARGET,OBJTYPE,OBJID,PARAMINT,PARAMSTR,TRANSFLAGS,COMMENTARY) VALUES (SYSDATE,(SELECT MAX(ENQSEQ)+1 FROM SUPERMAG.SMPOSTQUEUE),3,'DC','7777700008188',NULL,NULL,0,NULL);
Часовой пояс GMT +3, время: 21:46.

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