AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.07.2017, 11:27   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от skuull Посмотреть сообщение
А сколько ещё изменений было в этом ревью ? Там же есть зависимость между длинной изменения и качеством его ревью
Еще где-то 10 других изменений. Я их побоялся смотреть
Старый 18.07.2017, 00:27   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Если бы дело было только в этом.
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов..
Не в скобках дело, а в полном абзаце мозга. Никакие тесты не помогут если мы проверяем потенциально на ноль одно значение, а делим на другое. При втором вызове функция может возвратить другое значение. C вероятностью практически нулевой конечно, но мы же программисты или где

X++:
AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent);
    AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales);
    ...

    //Avoid division by zero
    if (sales == 0)
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = 0;
    }
    else
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = cost / sales;
    }
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 18.07.2017, 03:30   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Не в скобках дело, а в полном абзаце мозга. Никакие тесты не помогут если мы проверяем потенциально на ноль одно значение, а делим на другое.
Да не, он пытался проверить тоже самое значение которое попадет в знаменатель. Но зачем-то решил его вычислить повторно и при этом перепутал местоположение скобки. Код должен был выглядеть вот так:
if (this.itemPrice(ModuleInventPurchSales::Sales) == 0)
Такое случается по запаре. Ничего особенного.
Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили. Кажется я начинаю понимать почему местный саппорт так неохотно репортит даже доказанные баги с указанием где что и как поломано в продуктовую команду.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 17.07.2017, 18:38   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Есть такая полезная программка PVS-Studio.
Один из постов про нее на хабре очень в тему.
https://habrahabr.ru/company/pvs-studio/blog/329090/
Не мешало бы аналог для АХ забабахать
__________________
// no comments
Старый 18.07.2017, 06:14   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Или через тернарный оператор:
X++:
mcrCatalogAreaAnalysisTmp.CogsPercent = sales ? cost / sales : 0;
__________________
// no comments
Старый 18.07.2017, 17:31   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от dech Посмотреть сообщение
Или через тернарный оператор:
X++:
mcrCatalogAreaAnalysisTmp.CogsPercent = sales ? cost / sales : 0;
Это уже не gentle. Фиксить лучше в том же стиле, а если смещения строк нет - вообще идеально.
Заменить переменную - это одно, тернарным это уже переписывать код, так можно заменить один глупый баг другим, что часто и происходит при переписке кода.
За это сообщение автора поблагодарили: dech (1).
Старый 18.07.2017, 11:53   #7  
VORP is offline
VORP
Участник
Аватар для VORP
 
146 / 95 (4) ++++
Регистрация: 26.05.2006
Ну у человека была задача пофиксить ошибку компиляции, которой раньше не было
Может быть он и видел эти скобочки, но исправление скобочек приведёт что что-то будет по другому работать, а следовательно могут упасть автоматы, а потом найдут того, кто поменял и спросят - зачем поменял, а автоматы не поменял, а менять автоматы надо полдня прогонять их и разбираться почему они падают(не факт что из-за изменения, но это надо ещё доказать), и вообще тебе надо было сделать чтоб компилировалось просто
Старый 19.07.2017, 16:04   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Еще нашел такое сегодня

WHSWorkExecuteDisplayInquiryItem.buildItemInquiry():

X++:
...
    if (availQty == 0 && pickedQty == 0 && physInventQty == 0)
    {
        // clear all totals
        availQty        = 0;
        pickedQty       = 0;
        physInventQty   = 0;
    }
...
Чтоб наверняка
За это сообщение автора поблагодарили: mazzy (2), TasmanianDevil (1).
Старый 24.07.2017, 06:18   #10  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Извечная проблема локализаторов - кол-во символов в переведенном слове больше чем в переводимом. В компьютерных играх кто по-креативнее пытались переводить такие слова как-то шуточно, а не тупо урезая слово. В данном случае видимо для 4-х буквенного "EXIT" подошло бы "УЙТИ"
Старый 24.07.2017, 16:06   #11  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Устанавливаем SSRS. Вроде все успешно завершается. Лезем в AX - нет ничего. Смотрим в лог установки - и оба-на, оказывается ошибка. WTF? С ошибкой-то разобрались, но писать "Setup was completed successfully", когда на самом деле "Reporting Services Extension was not configured" как-то странно.

Цитата:
2017-07-20 20:16:42Z Error executing command: USE [*******];
2017-07-20 20:16:42Z DECLARE @tableName NVARCHAR(64);
2017-07-20 20:16:42Z DECLARE @tableId int;
2017-07-20 20:16:42Z DECLARE @utilElementTypeTable AS INT;
2017-07-20 20:16:42Z SELECT @tableName = N'SRSServers';
2017-07-20 20:16:42Z SELECT @utilElementTypeTable = 44;
2017-07-20 20:16:42Z SELECT @tableId = [AxId] FROM [ModelElement] WHERE [ElementType] = @utilElementTypeTable AND [Name] = @tableName;
2017-07-20 20:16:42Z SELECT @tableId;
2017-07-20 20:16:42Z Invalid object name 'ModelElement'.
2017-07-20 20:16:42Z Error executing command: use [*******]; exec [sp_AddReportServer] @serverId = N'*******', @serverUrl = N'*******', @isDefault = 1, @axReportFolder = N'DynamicsAX', @description = N'', @reportManagerUrl = N'*******', @sqlServerInstanceName = N'MSSQLSERVER', @aosServerName = N'*******', @configurationId = N'*******', @isSharepointIntegrated = 0, @recId = 5637268379
2017-07-20 20:16:42Z Cannot insert the value NULL into column 'AOSID', table '*******.dbo.SRSSERVERS'; column does not allow nulls. INSERT fails.
2017-07-20 20:16:42Z Changed database context to '*******'.
2017-07-20 20:16:42Z The statement has been terminated.
2017-07-20 20:16:42Z ******************************************************************************************************

2017-07-20 20:16:42Z Reporting Services Extension was not configured. An unknown issue occurred. Please contact your administrator.

2017-07-20 20:16:42Z ******************************************************************************************************
Изображения
 
__________________
С уважением,
Олег.
Старый 25.07.2017, 16:50   #12  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Тонкости программирования с MapIterator
X++:
    if(!mi.more())
        while(mi.more()) // документы создавались, но откатились
        {
            ...
__________________
// no comments
Старый 03.08.2017, 12:56   #13  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Есть мнение, что было бы крайне не лишним у Enum'ов контролировать не только уникальность кодовых обозначений и числовых значений элементов, но и меток и их содержания.
Для примера, enum InventTransType, элементы Asset и FixedAssets_RU привязаны к разным меткам, @SYS12578 и @SYS19633, имеющих идентичное содержание, а именно "Основные средства".

Пробуем фильтровать складские проводки по типу движения "Основные средства", надеясь увидеть расходы по вводу ОС в российском модуле ОС - получаем фиг.
Ставим вместо "Основные средства" в значение ограничения по типу движения величину 100 (числовое значение элемента FixedAssets_RU) - и, о чудо, запрос на форме вернул данные.
Двигаемся дальше, добиваем запрос прочими ограничениями - получаем фиг . Что же случилось ? При вызове диалога редактирования запроса значение ограничения по полю типа движения "магическим" образом поменялось со 100 на "Основные средства" и снова интерпретируется системой, как запрос на движения, относящиеся к международному, а не российскому, модулю ОС.
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: Pustik (1).
Старый 04.08.2017, 11:46   #14  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Есть мнение, что было бы крайне не лишним у Enum'ов контролировать не только уникальность кодовых обозначений и числовых значений элементов, но и меток и их содержания.
Аналогичные проблемы у кнопок типа CommandButton, когда пытаешься в свойстве кнопки Command установить какое-нибудь значение, например "Отмена".
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 03.08.2017, 13:52   #15  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
А еще запрещать пустые метки.
А то при перепаковке запросов значение фильтра может теряться.
Старый 16.08.2017, 17:47   #16  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,745 / 188 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Я немного недоумеваю от интерфейса АХ7 местами.
В форме настройки номенклатурных групп, например, предлагается несколько горизонтальных скроллов. Помоги себе сам:
Нажмите на изображение для увеличения
Название: Контролы.png
Просмотров: 305
Размер:	94.9 Кб
ID:	11611
Старый 17.08.2017, 10:54   #17  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Цитата:
Сообщение от mnt_dx Посмотреть сообщение
В форме настройки номенклатурных групп, например, предлагается несколько горизонтальных скроллов.
Это похоже глобальная проблема веб интерфейсов от Микрософта: такая же бяка в веб-интерфейсе Проджекта.
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
Старый 01.09.2017, 09:27   #18  
potential is offline
potential
Участник
 
84 / 35 (2) +++
Регистрация: 13.04.2012
Адрес: Санкт-Петербург
Цитата:
Сообщение от mnt_dx Посмотреть сообщение
предлагается несколько горизонтальных скроллов. :
я жутко извиняюсь, но Вы наверное имели в виду "вертикальных"
Старый 01.09.2017, 09:18   #19  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Очень веселит манера MS, на определенной стадии обсуждения бага, отвечать "by design". Просьбы показать этот самый дизайн или внести в него исправления воспринимаются как возмутительное нарушение всяких норм приличия, граничащее с клиническим идиотизмом.
__________________
Isn't it nice when things just work?
Старый 01.09.2017, 10:02   #20  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от macklakov Посмотреть сообщение
Очень веселит манера MS, на определенной стадии обсуждения бага, отвечать "by design". Просьбы показать этот самый дизайн или внести в него исправления воспринимаются как возмутительное нарушение всяких норм приличия, граничащее с клиническим идиотизмом.
Надо просто говорить.
The way it works now does not make sense for this and this industry.
Please change this bug to a DCR. It needs to be fixed
За это сообщение автора поблагодарили: trud (3), VORP (2), gl00mie (2), macklakov (2), Logger (5), AlGol (3).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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