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

Выход из производства, как запустить функцию "Произвести и принять" : Супермаг Плюс (Супермаг 2000)

20.04.2024 6:29


22.02.2022 09:00
Tiger
 
В документе выход из производства есть функция "Произвести и принять", которая позволяет создать Акты производства. Можно ли ее как-то запускать извне (стороннее ПО), указав например номер документа?
22.02.2022 13:00
DMaslov
 
Все можно запустить из любого клиента Oracle, если выяснить, что запускает Супермаг.
Выяснить можно аудитом.
Смотрите процедуры "smdocstateacc..."
01.03.2022 16:44
Tiger
 
Может кто-нибудь уже так делал. У самого пока не получается, как отследить что в сессии выполняется под пользователем? И как потом эту функцию запустить извне.
01.03.2022 17:54
DMaslov
 
Цитата:
как отследить что в сессии выполняется под пользователем?
Цитата:
аудитом
Типичные заклинания аудита прикладываю.
Вложения
Тип файла: zip Audit.zip (1.2 Кб, 21 просмотров)
01.03.2022 18:12
OlegON
 
да нет, что ты... процедура вот этого заклинания называется "трассировка сессии" и я ее тут на форуме уже описывал
01.03.2022 19:04
DMaslov
 
Если подытожить, способы, которые известны мне:

1. Запускать клиентское приложение в специальном мониторе, перехватывающем запросы.
2. Аудит.
3. Трассировка сессии.
02.03.2022 07:11
Tiger
 
Сделал трассировку своей сессии, воспользовался триггером
Цитата:
CREATE OR REPLACE TRIGGER debug_olegon AFTER LOGON ON DATABASE WHEN (SYS_CONTEXT ('USERENV', 'SESSION_USER') in ('ИМЯ_ПОЛЬЗОВАТЕЛЯ'))
BEGIN
EXECUTE IMMEDIATE 'alter session set tracefile_identifier=''MyTraceIdentifier''';
EXECUTE IMMEDIATE 'alter session set events ''10046 trace name context forever, level 12''';
END debug_olegon;
Файл трассировки обработал утилитой tkprof, получил преобразованный файл, но найти в нем что-то касаемо функции Произвести и принять не смог
Вложения
Тип файла: 7z trace.7z (12.5 Кб, 18 просмотров)
02.03.2022 09:07
DMaslov
 
SQL код:
Supermag.Core.LockObject('1','RF','156936779','1'); 
Это, видимо, документ.

SQL код:
Supermag.SMBeginAction(m=>:v0f1=>:v1f2=>:v2f3=>:v3f4=>:v4f5=>:v5); End
А это, видимо, выполняемые с ним действия.
02.03.2022 09:12
OlegON
 
Что-то ты не ту сессию поймал (не тот файлик взял), если бегло смотреть... Лучше трассируй уже существующую сессию.
02.03.2022 16:15
Tiger
 
Цитата:
OlegON Что-то ты не ту сессию поймал (не тот файлик взял), если бегло смотреть... Лучше трассируй уже существующую сессию.
А как существующую сессию трассировать?
Часовой пояс GMT +3, время: 06:29.

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