09.12.2011 16:17
vdm
 
У кого есть опыт по работе с супермаговскими правами во внешнем, не супермаговском процессе?

Например хочу менять метки в документах через процедуры СМ.
И права на это выдавать через адм. модуль самого СМ (угу, мы не ищем легких путей :) ).

Есть обычный юзер, созданный в СМ, с включенными правами на все отчеты и на изменение меток приходных накладных.

Беру стандартную процедуру для отчетов
Код:
declare
 res number;
begin
    dbms_session.set_role('SUPERMAG_USER');
    if supermag.core.getproc is null then
        res := supermag.Core.StartSMApp();
    end if;

    -- отчет 'Остатки'
    supermag.SmBeginAction(12, 1205, NULL, NULL, NULL, NULL);

    -- метки приходных накладных
    supermag.SmBeginAction(1, 126, NULL, NULL, NULL, NULL);
end;
Запускаю, строка с отчетным SmBeginAction отрабатывает прекрасно,
а в правах на накладные падает:
Цитата:
Error at line 1
ORA-20506: Нет прав на 'Прих. накл.: Редактирование меток'
ORA-06512: на "SUPERMAG.CORE", line 271
ORA-06512: на "SUPERMAG.OFFICE", line 225
ORA-06512: на "SUPERMAG.CORE", line 1514
ORA-06512: на "SUPERMAG.CORE", line 1526
ORA-06512: на "SUPERMAG.SMBEGINACTIONEX", line 16
ORA-06512: на "SUPERMAG.SMBEGINACTION", line 7
ORA-06512: на line 13
Чего ему не хватает, какой финт ушами дорисовать?

Почтовик не подходит - нужно поменять документ, созданный в супермаге и существующий только в супермаге.
09.12.2011 16:35
OlegON
 
Опыта нет, поскольку всегда делал напрямую. Но там же еще куча ролей, помимо юзера... Почему бы не включить, например, SUPERMAG_FN_DOC_WI_DOCLABELS ?
09.12.2011 17:03
vdm
 
Как раз это должна делать SmBeginAction.
Например отчетная строка к стандартным SUPERMAG_USER, SUPERMAG_MODULE_ADMIN добавляет SUPERMAG_FN_OSTATKI, SUPERMAG_MODULE_REPORTS
09.12.2011 17:43
vdm
 
В общем, эта процедура только для пользовательских ролей работает, которые для отчетов создаются.
Придется выдать напрямую.
12.12.2011 07:37
Mtirt
 
А если добавить в код что-нибудь типа этого: https://olegon.ru/showpost.php?p=76344&postcount=12
12.12.2011 09:24
vdm
 
Не, посмотрите внимательнее, StartSMApp() вверху присутствует.
Часовой пояс GMT +3, время: 18:56.

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