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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.06.2007, 15:08   #1  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Поведение equal() метода в классе RunOn Server v3.0 SP4
Дано:
Трёхуровневая Аксапта v3.0 SP4
Класс WMSOrderTransSplit - разбиение строк
в методе run() есть проверка:

X++:
        select firstonly forupdate WMSOrderTransCopy
            index hint OrderIdx
            where WMSOrderTransCopy.orderId     == WMSOrderTrans.orderId    &&
                  WMSOrderTransCopy.itemId      == WMSOrderTrans.itemId     &&
                  WMSOrderTransCopy.recId       == WMSOrderTrans.recId;

        if (!WMSOrderTransCopy || !bufCmp(WMSOrderTransCopy, WMSOrderTrans))
            throw error("@SYS18447");
Смысл проверки, если я правильно понимаю
!WMSOrderTransCopy - не удалил ли пользователь строку перед разбиением
!bufCmp(WMSOrderTransCopy, WMSOrderTrans) - не изменил ли пользователь строку перед разбиением

Так вот bufCmp(...) в случае RunOn Server работает некорректно, а именно возвращает false, когда строка не была изменена. Иными словами - строка пришедшая в класс, и строка взятая в качестве эталона, для метода equal() понимаются как разные. Изменяя же свойство класса RunOn на Called from, метод equal() работает правильно.

Как вариант, !bufCmp(WMSOrderTransCopy, WMSOrderTrans) можно попытаться заменить на WMSOrderTransCopy.xml() != WMSOrderTrans.xml()

Причём такое поведение equal() характерно не только для таблицы WMSOrderTrans, но и для для других таблиц.
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
За это сообщение автора поблагодарили: Logger (1).
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 4.0 SP1 EE Ошибка в классе PurchFormLetter_PackingSlip метода createParmLineFromWMSJournalTrans.. aidsua DAX: Функционал 2 30.01.2008 12:13
Доработка формы SysTableBrowser v3.0 SP4 Russland DAX: База знаний и проекты 0 10.09.2007 17:08
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
aEremenko: Диагностика проблем при установке Microsoft Dynamics Ax 4.0 на Microsoft SQL Server 2005 Blog bot DAX Blogs 0 28.10.2006 16:01
RunOn=Server Проблема listener DAX: Программирование 7 06.10.2003 13:30

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:32.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.