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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.10.2004, 17:59   #1  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Случайно наткнулся на код
Axapta 3.0 SP3 HF1

Класс InventDimCtrl_Frm_Mov_Transfer слой (sys)

PHP код:
    tmpFieldId inventDimControls.fieldId(_fc);
    if (
curuserid() == 'fwt' && tmpFieldId == 7)
        
tmpFieldId tmpFieldId
интересно много ещё такого?
__________________
С уважением, Игорь Ласийчук.
Старый 06.10.2004, 18:26   #2  
Oz is offline
Oz
Участник
Аватар для Oz
 
293 / 51 (2) ++++
Регистрация: 22.08.2002
Адрес: Москва
Ну что вы так уж привередничаете?
Этот код по крайней мере работает...
__________________
Здесь могла быть Ваша реклама!
Старый 06.10.2004, 18:36   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Это называется КОК Константно - Ориентированный Код
Много ли там такого, можно узнать, запустив поиск по "fwt"

С Уважением,
Георгий
Старый 07.10.2004, 05:41   #4  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Не знаю какой глубинный смысл стоит за словосочетанием "константно-ориентированный код", но смысл сего куска кода очевиден поставить на строчку tmpFieldId = tmpFieldId; брякпойнт и отлаживать случай когда он равен 7...


Мне гораздо более интересным показался с этой точки зрения метод decodeItemId класса Barcode. Смысл метода - найти в базе ItemId товара по отсканированному штрих-коду:

PHP код:
ItemId decodeItemId(str _barcodeStr barcodeStr)
{
    
ItemId              itemId _barcodeStr;
    
InventItemBarcode   inventItemBarcode InventItemBarcode::findInputBarcode(_barcodeStr);
    
InventTable         inventTable;
    ;
    if (
inventItemBarcode)
        return 
inventItemBarcode.itemId;

    
select firstonly inventTable
        index hint ItemIdx
        where inventTable
.itemId == itemId;

    if (
inventTable)
        
itemId inventTable.itemId;

    return 
itemId;

Приглядитесь повнимательнее - кто увидит одну очень большую странность сего метода, тому будет счастье!

P.S.
AX 3.0 SP2

P.P.S
Хотя и тут я подозреваю как именно эта странность поимела место быть.
Старый 07.10.2004, 09:14   #5  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
Наверное, метод decodeItemId() писали какие-нибудь аутсорсеры, у которых оплата идет по количеству написанных строк кода
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 07.10.2004, 10:25   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Возможено, речь сначала шла о
InventTable decodeItemId(str _barcodeStr = barcodeStr)

метод findInputBarcode возвращал ItemId, по которому происходил поиск в InventTable и возвращалась целая запись. Потом была оптимизация, и люди поняли, что нет надобности тянуть всю запись. У меня есть подозрения, что данный код - результат "оптимизации"..

2Alks Это код, завязанный на константы, прошитые в коде, в данном случае "fwt".

С Уважением,
Георгий.
Старый 07.10.2004, 11:21   #7  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано George Nordic
2Alks Это код, завязанный на константы, прошитые в коде, в данном случае "fwt".
Понятно.
Моя версия по поводу decodeItemId() исходит из того что у InventTable есть устаревшее поле DEL_BarCode. Соответственно ляп сей появился когда это поле устраняли, а до этого устранения участок кода видимо выглядел так:


select firstonly inventTable
index hint ItemIdx
where inventTable.BarCode == itemId;


Мораль: все мы люди.
Старый 07.10.2004, 11:41   #8  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
2 Alks
Ну, положим, так то он точно не выглядел...
Минимум -не было hint ItemIdx
Старый 07.10.2004, 13:18   #9  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано xonix
2 Alks
Ну, положим, так то он точно не выглядел...
Минимум -не было hint ItemIdx
Да, точно - проглядел. См. мораль выше.
Старый 07.10.2004, 13:34   #10  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано George Nordic
Много ли там такого, можно узнать, запустив поиск по "fwt"
Лучше использовать Add-Ins - Проверка Best Practices

Хотя в случае с Barcode никакие Best Practices не помогут. Как говорится, ошибка в ДНК.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Код палеты Varmen DAX: Функционал 10 27.03.2008 15:54
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 5 07.09.2004 17:24
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 0 07.09.2004 13:39
Не найден исполнимый код метода insert Александр Костоусов DAX: Программирование 10 03.09.2004 16:47
Ошибка "необходимо заполнить 'основной код сотрудника' " alpin DAX: Функционал 2 04.12.2003 16:28
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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