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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.02.2017, 17:52   #221  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
О том и речь, зачем.
__________________
Sergey Nefedov
Старый 17.02.2017, 18:09   #222  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от SRF Посмотреть сообщение
AX 2012 R3, к словам об игрушечной базе Отсутствие индекса и непонятный cross join к WHSLoadLine.
Сергей, вы у себя это починили? Или это теоретическая находка?
Старый 17.02.2017, 18:23   #223  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Починили, добавили индекс по LoadLineRecId и код слегка поправили, не знаю уж какая в итоге была задумка начального запроса, но правили вот так:

X++:
    select count(RecId) from segmentLine
        //join line
        where segmentLine.LoadLineRecId == loadLine.RecId;
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: kashperuk (5).
Старый 17.02.2017, 19:57   #224  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А сам способ проверки наличия в таблице записей через подсчёт их количества это же неаккуратненько как-то.
Старый 18.02.2017, 01:09   #225  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А сам способ проверки наличия в таблице записей через подсчёт их количества это же неаккуратненько как-то.
Да, я в фиксе сделал просто firstonly RecId вместо count()

Retail запрос тоже пофиксил.
За это сообщение автора поблагодарили: S.Kuskov (2), SRF (5).
Старый 18.02.2017, 13:08   #226  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
RetailTransactionServiceOrders::updateCustomerOrder()

X++:
    salesLine.SalesQty = qty;
    salesLine.QtyOrdered = qty;
__________________
Axapta non erubescit
Старый 18.02.2017, 13:20   #227  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
И еще прикольный косяк - в RetailOrderHistoryViewQuery на датасорсе RetailTransactionTable, присоединенном к SalesTable по notexists join, не хватает условия по EntryStatus != Voided, приводящий к тому, что если вы отменили транзакцию по какому-либо из Customer Order-ов, он пропадает из истории на POS.
Вообще, про это условие, похоже, не все помнят. Вот, например, в RetailTransactionServiceTransactions::addSalesOrderToResultMap() тоже забыли...
__________________
Axapta non erubescit
Старый 18.02.2017, 17:18   #228  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Я не работаю с DAX2012 и не специализируюсь на retail в предыдущих версиях.
Для собственного развития время от времени копаюсь в DAX2012. Такое впечатление, что куча мест, касающихся retail в DAX2012 это тема для daily Axapta WTF.
Почему так? В предыдущих версиях для России в основе лежало решение от Коламбуся для конкретного клиента (могу ошибаться, но вроде бы для Перекрестка). В DAX2012 было заявлено, что решение для ритейла универсальное международное. Думаю, что "международное решение" это как-то выверенное на сотнях-тысячах клиентов. Что не так в "международном решении"?
Старый 18.02.2017, 18:08   #229  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Это когда было решение коламбуса по ритейлу в стандарте?
А модуль ритейл, насколько я знаю, был куплен у международного партнера еще для 2009, а в 2012 его уже мс сам переписывал.
__________________
Ivanhoe as is..
Старый 18.02.2017, 22:40   #230  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А модуль ритейл, насколько я знаю, был куплен у международного партнера еще для 2009, а в 2012 его уже мс сам переписывал.
Да, верно, модуль был куплен у LS Retail для 2009-й версии
__________________
Axapta non erubescit
Старый 18.02.2017, 23:01   #231  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
RetailTransactionServiceOrders::updateCustomerOrder()

X++:
    salesLine.SalesQty = qty;
    salesLine.QtyOrdered = qty;
Такого кода в 7ке нету в этом классе
Старый 18.02.2017, 23:04   #232  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Такого кода в 7ке нету в этом классе
В 2012 R3 CU12 есть
__________________
Axapta non erubescit
Старый 22.02.2017, 21:30   #233  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
AX2012 R3

RetailCDXSeedDataSubJob.createSubJob() - subjob.Enabled всегда Yes, хотя, если включить Retail Essentials, часть таблиц будет выключена конф. ключом, и в дальнейшем CDX будет падать при попытке их обработки.
Можно было б инициировать из dictTable.enabled(), хотя бы... Но нет, да и сам этот флаг не особо проверяется.
__________________
Axapta non erubescit
Старый 28.03.2017, 13:02   #234  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Оригинально подошли к проблеме переименования полей в D365. При переименовании поля в таблице и нажатии кнопки сохранить старое просто удаляется, а новое создается. Проблема ID наконец-то решена(о чем вроде как даже писали в what's new)
Правда данные при этом тоже удаляются, но кого это волнует.
За это сообщение автора поблагодарили: gl00mie (2), AlGol (3), Logger (1).
Старый 28.03.2017, 13:19   #235  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от trud Посмотреть сообщение
Проблема ID наконец-то решена
Heavy is good. Heavy is reliable (c) Борис Бритва
Особенно удобно при рефакторинге, не правда ли ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 30.03.2017, 00:37   #236  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от trud Посмотреть сообщение
Оригинально подошли к проблеме переименования полей в D365. При переименовании поля в таблице и нажатии кнопки сохранить старое просто удаляется, а новое создается. Проблема ID наконец-то решена(о чем вроде как даже писали в what's new)
Правда данные при этом тоже удаляются, но кого это волнует.
Логично же, если не жалко хранить все данные в облаке, то значит и данные в кастомном поле не критичны. А может это еще одно ограничение в кастомизации приложения, зачем вам новые поля - пользуйтесь стандартными... ну или если очень нужно, просите МС добавить в стандард
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: macklakov (1).
Старый 30.03.2017, 16:36   #237  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Вынес часть сообщений в отдельную ветку, Как жить без средств разработки и отладки в продуктиве
__________________
-ТСЯ или -ТЬСЯ ?
Старый 10.04.2017, 04:25   #238  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
D365O 1611
X++:
driverLog = TMSDriverLog::find(appt.ApptId, true);
driverLog.ActualStartUTCDateTime = DateTimeUtil::utcNow();
driverLog.updateDates();
driverLog.update();
Зачем проверять что файнд что-то вернул ? Лучше покажем пользователю что запись никогда не была выбрана

И второй момент, на демо данных у LoadId и TMSApptId одна и та же номерная серия, поэтому вводя аппоинтмент АХ всегда находит сушествующий лоад который никакого отношения к делу не имееет, хотя хотелось бы аппоинтмент

X++:
case #CheckInOutId:
                if (mode == WHSWorkExecuteMode::DriverCheckIn || mode == WHSWorkExecuteMode::DriverCheckOut)
                {
                    if (WHSLoadTable::exist(_data))
                    {
                        fieldValues.insert(#CheckInOutId, _data);
                        fieldValues.insert(#LoadId, _data);
                    }
                    else if (WHSShipmentTable::exist(_data))
                    {
                        fieldValues.insert(#CheckInOutId, _data);
                        fieldValues.insert(#LoadId, WHSShipmentTable::find(_data).LoadId);
                    }
                    else if (TMSAppointment::exist(_data) && TMSAppointment::find(_data).ApptRefType == TMSApptRefType::Load)
                    {
                        fieldValues.insert(#CheckInOutId, _data);
                        fieldValues.insert(#LoadId, TMSAppointment::find(_data).ApptRefNum);
                    }
                    else
                    {
                        errorMessage = "@WAX1081";
                        hasError = true;
                        break;
                    }
                    
                    if (WHSLoadTable::exist(fieldValues.lookup(#LoadId)))
                    {
                        hasError = this.validateLoadIdCheckOut(fieldValues.lookup(#LoadId));
                    }
                    else
                    {
                        errorMessage = "@WAX3626";
                        hasError = true;
                    }
                }
                break;

Последний раз редактировалось skuull; 10.04.2017 в 04:35.
Старый 10.04.2017, 07:03   #239  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
А как быстро исправить этот баг с учетом что приложение залочено?
За это сообщение автора поблагодарили: AlGol (2).
Старый 11.04.2017, 19:54   #240  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
На подобные вопросы MS вроде обычно отвечает - "не делайте это". Ну то есть не используйте этот функционал.
__________________
Дмитрий
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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