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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2008, 14:20   #1  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
? Ошибка в методе или я что-то не понимаю ?
Имеется стандартный метод класса - WMSJournalCheckPostReception.checkPalletZone
в строке 34 написано -
X++:
                inventItemLocation = InventItemLocation::find(otherTrans.itemId, this.destinationInventLocationId(otherTrans));
что мне непонятно - метод InventItemLocation::find требует на вход переменные
X++:
static InventItemLocation find(ItemId               _itemId,
                               InventDimId          _inventDimId,
                               boolean              _forUpdate = false)
а ему передается ItemId и InventLocationId.
Почему тогда компиляция не выдает ошибку ? Или я не понимаю как это работет ?
Старый 05.06.2008, 14:32   #2  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
последняя переменная (_forUpdate) передается по умолчанию, поэтому не обязательна. Вторая переменная также стринговая, как и InventDimId.
Старый 05.06.2008, 14:33   #3  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
В первом приближении - да хоть Voucher, главное что бы тип и размер совпали.
Оба созданы на основе примитивного string и , несмотря на разные родительские EDT(Num и SysGroup), имеют один и тот же размер. Хотя во втором приближении очевидна необходимость все-таки соблюсти строгость - не дай бог поменяют у одного из типов родительский EDT по размеру. Тогда начнется всякое интересное
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Последний раз редактировалось TasmanianDevil; 05.06.2008 в 14:40.
Старый 05.06.2008, 14:34   #4  
EAlex is offline
EAlex
Участник
 
27 / 14 (1) ++
Регистрация: 30.01.2004
3-й параметр - _forUpdate = false необязательный, и если не указан в вызове явно, инициализируется еще в загололовке метода InventItemLocation::find как false.
Старый 05.06.2008, 14:39   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
P.S. Eldar9x, речь идет о том , что передается переменная типа c EDT InventLocationId, а принимается c EDT InventDimId - что вообще-то не есть хорошо
Вопрос о том почему не ругается компилятор, соотв., потому что:

Цитата:
Вторая переменная также стринговая, как и InventDimId.
ну, или:

Цитата:
Оба созданы на основе примитивного string

Последний раз редактировалось Eldar9x; 05.06.2008 в 14:41.
Старый 05.06.2008, 14:40   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Там действительно ошибка. Проверки вообще не происходит, так как в итоге находится настройка для пустой аналитики, а в ней поле зоны хранения пустое, соответственно, не проверяется подходит ли зона.
А компилятор не ругается вполне понятно почему: и код склада и код аналитики имеют строковый формат.
Старый 05.06.2008, 14:48   #7  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
про 3-й параметр это понятно. Со 2-м вопрос!
То что они оба string - я тож так подумал, но логически - явный глюк!
Что тогда туда передать - otherTrans.InventDimId ?
Старый 05.06.2008, 15:02   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
В 5:

X++:
                inventDimTemp.data(otherTrans.inventDim());
                inventDimTemp.InventLocationId = this.destinationInventLocationId(otherTrans);
                inventDimTemp.InventSiteId = ''; // No reason to default Site as InventLocation is unique across sites
                inventDimTemp = InventDim::findOrCreate(inventDimTemp);

                inventItemLocation = this.inventItemLocation(otherTrans, inventDimTemp);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка (?) при печати приходного ордера в DAX 4.0 SP2 Ivanhoe DAX: Программирование 7 19.01.2021 14:13
Ошибка в методе vendInvoice4PaymJour() таблицы VendInvoice4PaymTrans_RU kvg6 DAX: Функционал 7 30.08.2007 12:45
Ошибка в формате числа. 36AC DAX: Программирование 7 19.10.2006 10:04
Ошибка при обработке С-Ф Sergo DAX: Программирование 7 20.01.2006 11:56
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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