AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.01.2014, 14:31   #1  
jonny is offline
jonny
Участник
Аватар для jonny
Самостоятельные клиенты AX
 
217 / 124 (5) +++++
Регистрация: 10.02.2006
Адрес: СПб-Екб-?
Отчет в pdf из портала.
Коллеги, есть следующая проблема.
Пытаюсь сделать сохранение отчета в формате аксапты через портал(счет на оплату).
В аксапте статический метод в классе, делается разноска счета на оплату, с подпихиваением в SalesFormLetter нужного экземпляра PrintJobSettings, При запуске метода через джоб все замечательно отрабатывает - файл сохраняется, при вызове из портала неведомая ошибка:
Функция "GetVersionExW" в библиотеке DLL "KERNEL32" привела к возникновению исключения

Кто либо сталкивался с подобным, или может есть соображения в чем может быть проблема?
Буду рад любым идеям
Старый 13.01.2014, 23:00   #2  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Вы бы хоть версяию Ах написали

Да, и при запуске какого метода ошибка? при запуске Job'а из портала?
Старый 14.01.2014, 03:18   #3  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Скорее всего клиент-сервер заморочки или права доступа на папку.
Я бы сделал обработку ошибок с выводом стека и подебажил бы код в обеих вариантах вызова.
Старый 08.11.2016, 20:07   #4  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от jonny Посмотреть сообщение
Коллеги, есть следующая проблема.
Пытаюсь сделать сохранение отчета в формате аксапты через портал(счет на оплату).
В аксапте статический метод в классе, делается разноска счета на оплату, с подпихиваением в SalesFormLetter нужного экземпляра PrintJobSettings, При запуске метода через джоб все замечательно отрабатывает - файл сохраняется, при вызове из портала неведомая ошибка:
Функция "GetVersionExW" в библиотеке DLL "KERNEL32" привела к возникновению исключения

Кто либо сталкивался с подобным, или может есть соображения в чем может быть проблема?
Буду рад любым идеям
Доброго времени суток,
Удалось решить проблему?
Тоже самое появляется. В Job работает нормально, из EP та же ошибка.(запускается через menuitem out)

Ошибка при вызове в WinApi::getOSVersion()


X++:
client static public container getOSVersion()
{
    #define.OSVERSIONINFOSIZE(276) // includes 128 TCHARs

    DLL         dll;
    DLLFunction dllFunction;
    Binary      binary;
    ;

    dll = new DLL(#KernelDLL);
    dllFunction = new DLLFunction(dll,'GetVersionExW');

    binary = new Binary(#OSVERSIONINFOSIZE);
    binary.dWord(0,#OSVERSIONINFOSIZE);

    dllFunction.arg(ExtTypes::Pointer);
    dllFunction.returns(ExtTypes::Byte);

    dllFunction.call(binary); // здесь валится  

    return [binary.dWord(4),binary.dWord(8),binary.dWord(16)];
}
Вызываемый из

X++:
#define.Win98Platform(1)
public void makeReportRun(ReportName reportName = this.lastValueElementName())
{
    Args        args;
    Report      report;

    [B]if (conpeek(WinAPI::getOSVersion(), 3) > #Win98Platform)[/B]
    {
        super(reportName);
        return;
    }

    // Running under Windows 98 or prior OS version
    args = new Args(reportName);
    if (! reportRun || reportRun.name() != reportName)
    {
        args.caller(this);
        reportRun   = SalesPurchReport_RU::newSysReportRun(args);
    }

    report      = reportRun.report();
    report.interactive(false);

    queryNextUniqueId   = report.query().nextUniqueId();
    treeQueryVersion    = report.query().version();
}

Что делать с этим? Как решили проблему?
DAX2009RU8
SP2010Sp1

Последний раз редактировалось mazzy; 08.11.2016 в 21:08. Причина: оформил xpp-код
Старый 09.11.2016, 09:22   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от TDV Посмотреть сообщение
Доброго времени суток,
Удалось решить проблему?
Тоже самое появляется. В Job работает нормально, из EP та же ошибка.(запускается через menuitem out)

Ошибка при вызове в WinApi::getOSVersion()


X++:
client static public container getOSVersion()
{
    #define.OSVERSIONINFOSIZE(276) // includes 128 TCHARs

    DLL         dll;
    DLLFunction dllFunction;
    Binary      binary;
    ;

    dll = new DLL(#KernelDLL);
    dllFunction = new DLLFunction(dll,'GetVersionExW');

    binary = new Binary(#OSVERSIONINFOSIZE);
    binary.dWord(0,#OSVERSIONINFOSIZE);

    dllFunction.arg(ExtTypes::Pointer);
    dllFunction.returns(ExtTypes::Byte);

    dllFunction.call(binary); // здесь валится  

    return [binary.dWord(4),binary.dWord(8),binary.dWord(16)];
}
Вызываемый из

X++:
#define.Win98Platform(1)
public void makeReportRun(ReportName reportName = this.lastValueElementName())
{
    Args        args;
    Report      report;

    [B]if (conpeek(WinAPI::getOSVersion(), 3) > #Win98Platform)[/B]
    {
        super(reportName);
        return;
    }

    // Running under Windows 98 or prior OS version
    args = new Args(reportName);
    if (! reportRun || reportRun.name() != reportName)
    {
        args.caller(this);
        reportRun   = SalesPurchReport_RU::newSysReportRun(args);
    }

    report      = reportRun.report();
    report.interactive(false);

    queryNextUniqueId   = report.query().nextUniqueId();
    treeQueryVersion    = report.query().version();
}

Что делать с этим? Как решили проблему?
DAX2009RU8
SP2010Sp1
Портал работает под учеткой BC! Под ней Job запускали или под собой? Может принтер ей настроить? Под AOS'ом пробовали запустить? На сервере Работает код?
Старый 09.11.2016, 13:24   #6  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Портал работает под учеткой BC! Под ней Job запускали или под собой? Может принтер ей настроить? Под AOS'ом пробовали запустить? На сервере Работает код?
Портал работает под учеткой BC! - Да все верно.
Под ней Job запускали или под собой?- пробовал и под ней, все работает в приложении Акс.
Может принтер ей настроить? - экспорт идет в PDF в FILE, зачем принтер?
Под AOS'ом пробовали запустить? - не очень понял, пожалуйста можете уточнить как это сделать?
На сервере Работает код? - сам код запускающий printjob выполняется на в class(runon Client) так так формирование отчета Report(AX) из класса да и еще который содержит Blob Image( с blob image не выполняется на сервере в 2009, был фикс но он не работает), запуск класса возможно только на клиенте(runon client). Если запускать class на сервере(runon server), то отчет выводиться на экран несмотря на то что настройки стоят в File PDF, а если запустить тоже самое (class) на клиенте, то все выводиться в pdf файл, но только если запускать из приложения Акс, а не в EP. в EP выкидывает на getVersionOS
Пока пришлось другими способами выкрутиться.
Старый 09.11.2016, 13:40   #7  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от TDV Посмотреть сообщение
Портал работает под учеткой BC! - Да все верно.
Под ней Job запускали или под собой?- пробовал и под ней, все работает в приложении Акс.
В Ах на локальном компе, или где портал крутится?
Старый 09.11.2016, 14:00   #8  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
В Ах на локальном компе, или где портал крутится?
Пробовал на сервере из клиента Акс где установлен AOS и там же портал.
С клиентской машины тоже пробовал. Результат одинаковый
Старый 10.11.2016, 15:14   #9  
jonny is offline
jonny
Участник
Аватар для jonny
Самостоятельные клиенты AX
 
217 / 124 (5) +++++
Регистрация: 10.02.2006
Адрес: СПб-Екб-?
Привет,
я в методе makeReportRun убрал все, оставил только

super(reportName);

остальное там ни к чему, у нас во всяком случае никто не юзал винду младше 98-й
Старый 10.11.2016, 15:25   #10  
TDV is offline
TDV
Участник
 
128 / 30 (2) +++
Регистрация: 04.11.2005
Цитата:
Сообщение от jonny Посмотреть сообщение
Привет,
я в методе makeReportRun убрал все, оставил только

super(reportName);

остальное там ни к чему, у нас во всяком случае никто не юзал винду младше 98-й

Добрый день!
Повезло что заработало, я пробовал также, но там дальше ошибка вылетает с очень понятным инфорлогом "%d" . Дальше уже не стал копать другим способом по БП сделал.

Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axStart: Printing PDF documents Blog bot DAX Blogs 0 01.12.2013 23:15
ax-erp: Save SSRS report to pdf that uses Controller classes [Dynamics AX 2012] Blog bot DAX Blogs 0 19.07.2012 18:11
emeadaxsupport: How to reduce the file size of PDF files generated by AX 2009 Blog bot DAX Blogs 0 20.09.2011 23:12
Как интегрировать PDF документ в отчет eugenet DAX: Программирование 1 13.09.2010 15:57
create Pdf invoice report DmitrySincerity DAX: Программирование 1 25.03.2009 17:27
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:08.