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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2009, 21:14   #1  
Карис is offline
Карис
Участник
 
8 / 10 (1) +
Регистрация: 11.05.2007
Адрес: Иркутск, Россия
Разнести несколько журналов коммерческих соглашений из кода
Microsoft Dynamix AX 4.0 sp 1.

Имеется несколько журналов соглашений по ценам/скидкам. Журналы нужно разнести.

Перебираем журналы в цикле. Для каждого выполняем
X++:
// проверить и разнести журнал
priceDiscAdmCheckPost = new PriceDiscAdmCheckPost(false); 
// передаем номер журнала
priceDiscAdmCheckPost.initJournalNum(priceDiscAdmTable.JournalNum);
// обрабатываем журнал
priceDiscAdmCheckPost.run();
Первый журнал разносится нормально. Остальные не разносятся. Ошибка возникает в методе run() класса PriceDiscAdmCheckPost. Смысл ошибки в том, что при разноске первого журнала был создан Infolog, содержащий запись об успешной разноске. Поэтому !infolog.line() не может быть true. В итоге, второй и последующий журналы, будучи абсолютно правильными, не разносятся.

Это кусок метода run()
X++:
// результат этого if для второго и последующих журналов - false
    if (!infolog.line() && !checkOnly)
        this.postJournal();

    ttscommit;

    endLengthyOperation();

// результат этого if для второго и последующих журналов - false
    if (!infolog.line())
    {
        if (checkOnly)
        {
            info("@SYS17146");
        }
        else
        {
            info("@SYS5815");
        }
    }
    else
    {
        if (!checkOnly)
            throw error("@SYS24802");
    }
При этом через форму журналы разносятся нормально, независимо от того открыт infolog или закрыт.

Что я делаю неправильно? Может быть разноску нужно делать с помощью другого класса? Или как-то управлять infolog перед повторным вызовом run()?
Старый 07.04.2009, 07:02   #2  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
infolog.viewDelay() или infolog.viewUpdate(), чтобы обнулить infolog.line(),
либо переделать класс, чтобы избавиться от infolog.line()
Теги
журнал коммерческих соглашений, программно, разноска, pricedisc

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Коммерческие соглашения в Axapta 3 soin DAX: Функционал 7 19.05.2005 17:30
проблема с настройкой штрихового кода Nic DAX: Функционал 4 27.12.2004 09:04
Проблемы с журналом коммерческих соглашений. maloy DAX: Функционал 4 11.04.2004 18:37
Использование штрихового кода (barcode) в Аксапта Pavlo AKA Panok DAX: Функционал 9 17.10.2003 15:13
Журнал коммерческих соглашений Роман Кошелев DAX: Функционал 4 08.08.2002 16:59
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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