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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.08.2016, 23:12   #1  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,745 / 188 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Можно я не про код? Спасибо.
Меня просто порадовал скриншот в технете:
https://technet.microsoft.com/ru-ru/.../hh209188.aspx
За это сообщение автора поблагодарили: Ivanhoe (3).
Старый 24.08.2016, 10:02   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mnt_dx Посмотреть сообщение
Можно я не про код? Спасибо.
Меня просто порадовал скриншот в технете:
https://technet.microsoft.com/ru-ru/.../hh209188.aspx
Сильно не хватает надписи CENSORED в каждом сером квадратике.
Старый 24.08.2016, 11:07   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Да ладно вам, просто людям было лень делать 49 скриншотов с разными языками интерфейса
Старый 25.08.2016, 11:11   #4  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Столкнулся с ошибкой выполнения запросов в базу при выполнении в CIL.
При выполнении в X++ тот же код работает корректно.
Ошибка возникает при попытке выполнения запроса со связью курсором условиями типа
X++:
while select <table>
...
exists join <table2>
where <table>.<Real> == <table2>.<Real>
...
Знаю, что нехорошо так строить запрос, но пришлось, тк других критериев поиска данных не дали.

В результате, запрос со связью таблиц exists join пришлось разворачивать в каскад While select и сравнивать поля в отдельной строке вне запроса.
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.

Последний раз редактировалось AlGol; 25.08.2016 в 11:14.
Старый 06.09.2016, 21:12   #5  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,745 / 188 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Перейдите на закладку "Предложение" или "Предложение"
Название: Предложение.PNG
Просмотров: 2284

Размер: 9.8 Кб
Старый 07.09.2016, 03:43   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
AX7.update1 файл webconfig

X++:
<!-- ISSUE-2012-02-09-RAMESH: What's the purpose of this? -->
      <machineKey decryption="AES" decryptionKey="F7FA540B4DFD82E5BB196B95D15FF81FBA5D8619B270E58E2C90FAA683C5AA02" 
validation="SHA1" validationKey="BA5D8619B270E58E2C90F" />
X++:
<!-- ISSUE-2012-09-02-RAMESH: Revisit for production use -->
            <!-- ISSUE-2012-02-28-RAMESH: 						
                            Does this even work for WebHttpBinding? 						
                            Will this work correctly with authentication enabled? 					-->
            <serviceMetadata httpsGetEnabled="true" />
интересно, этот RAMESH еще работает или уволился и код никто не решается трогать
Старый 28.09.2016, 01:29   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от trud Посмотреть сообщение
AX7.update1 файл webconfig

X++:
<!-- ISSUE-2012-02-09-RAMESH: What's the purpose of this? -->
      <machineKey decryption="AES" decryptionKey="F7FA540B4DFD82E5BB196B95D15FF81FBA5D8619B270E58E2C90FAA683C5AA02" 
validation="SHA1" validationKey="BA5D8619B270E58E2C90F" />
X++:
<!-- ISSUE-2012-09-02-RAMESH: Revisit for production use -->
            <!-- ISSUE-2012-02-28-RAMESH: 						
                            Does this even work for WebHttpBinding? 						
                            Will this work correctly with authentication enabled? 					-->
            <serviceMetadata httpsGetEnabled="true" />
интересно, этот RAMESH еще работает или уволился и код никто не решается трогать
RAMESH кстати уже давно у нас не работает.
Но комменты, похоже, до сих пор остались
Старый 29.09.2016, 10:31   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от kashperuk Посмотреть сообщение
RAMESH кстати уже давно у нас не работает.
Но комменты, похоже, до сих пор остались
А теперь их уже нет
Точнее, в Platform Update 3 их уже не будет

Магия
Старый 06.12.2016, 18:31   #9  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
View не понимает FirstOnly
AX2012R3
Понадобилось сделать View, в котором должна отображаться одна запись с максимальным значением определенного поля.
Делаю в АОТ Query, с одним источником данных, задаю сортировку по нужному полю, в параметрах источника пишу свойство FirstOnly = Yes.
Делаю в АОТ View, на основании созданного query.
Открываю посмотреть что получилось - и вижу все записи таблицы.

В результате разбора выяснил, что View не обращает внимания на опцию FirstOnly в Query.
Пришлось делать обходной маневр в виде двух view с получением max поля и потом отфильтровывать по нему данные.
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 09.12.2016, 09:45   #10  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от AlGol Посмотреть сообщение
В результате разбора выяснил, что View не обращает внимания на опцию FirstOnly в Query.
Это проблема не view, а игнорирование опции firstOnly в Query dynamicsaxhints: Query datasource FirstOnly property
__________________
Sergey Nefedov
Старый 07.02.2017, 15:22   #11  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
AX 2012 R2
Десериализация структуры Struct::create(_container) в CIL, которая была упакована методом pack() в обычном исполняемом коде. Разъезжаются пары Ключ-Значение
Слева на скриншоте десериализация в обычном коде (ошибок нет), справа - выполненная в CIL. Как говорится, результат на лицо. Т.е. порядок значений в структуре остался прежним, а порядок ключей изменился.
Нажмите на изображение для увеличения
Название: Struct.png
Просмотров: 662
Размер:	34.5 Кб
ID:	11188
__________________
Кононов Пётр
За это сообщение автора поблагодарили: mazzy (5), macklakov (2), Logger (3).
Старый 07.02.2017, 15:24   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
AX 2012 R2
Десериализация структуры Struct::create(_container) в CIL, которая была упакована методом pack() в обычном исполняемом коде. Разъезжаются пары Ключ-Значение
Слева на скриншоте десериализация в обычном коде (ошибок нет), справа - выполненная в CIL. Как говорится, результат на лицо. Т.е. порядок значений в структуре остался прежним, а порядок ключей изменился.
Вложение 11188
оО!
1. спасибо
2. пожалуйста, зарегистрируйте багу. лучше от лица клиента. да, регистрация - это гемор. И очень сильный гемор. но эту - зарегистрируйте. пожалуйста.

и еще одно:
а можно попросить у вас еще и код, который у вас приводит к подобному "результату"?
Старый 22.02.2017, 21:30   #13  
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
Старый 09.09.2016, 14:02   #14  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Все версии вплоть до 2009-й (в 2012 не смотрел, скорее всего та же ситуация), российский модуль ОС , класс создания строк журнала амортизации RAssetProposalDepriciation, метод createJournalLines().

В принципе отсутствует контроль на самортизированность ОС по текущей итерации обработки запроса на картотеку, и по всем самортизированным ОС впустую (результат нулевой) прогоняется полный цикл расчета амортизации с даты последней амортизации по заданную дату формирования, что приводит к монотонному возрастанию времени формирования строк журнала со временем.

Исправляется добавлением в самую первую строку метода, перед инициализацией итератора, проверки в виде :
X++:
if(RAssetSumCalc_Trans::newAssetPeriod(rAssetTable.AccountNum, _assetStandardId, datestartmth(runDate) - 1).netBookValue() == 0)
        return;
Статистика по эффективности :
  • Всего 5500 с копейками ОС, амортизируются около 2200 (остальные самортизированы)
  • Время формирования строк журнала амортизации - полтора-два часа до исправления, 15 минут после исправления
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: gl00mie (3), S.Kuskov (5).
Старый 13.09.2016, 22:47   #15  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
в 2012 не смотрел, скорее всего та же ситуация
Таки да, та же самая петрушка до 2012 R3
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 25.11.2016, 11:55   #16  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Обратите внимание на очень неприятную особенность работы catch:
https://blogs.msdn.microsoft.com/mfp...4/x-the-catch/
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
Старый 25.11.2016, 11:56   #17  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Это скорее неприятная особенность определенного способа обработки исключений, который практикуют некоторые отступники от Best Practices
Старый 02.02.2017, 07:58   #18  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Из индусского - типа все бест-практис соблюдены
X++:
   if (custInvoiceJour.company() == "@LIN103")                 
   {
        if(CustInvoiceJour.CurrencyCode == "@LIN63")               
        {
            bankName = strfmt("%1 %2","@LIN73","@LIN104");  
        }
За это сообщение автора поблагодарили: macklakov (1), Vadik (1), 6a6kin (1).
Старый 05.02.2017, 12:42   #19  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
AX2012 R3 CU12 (6.3.5000.133)
(встречается начиная с AX2012 R3 RTM)

\Data Dictionary\Tables\WHSWorkTable\Methods\lockUnlockWork
X++:
public static void lockUnlockWork(WHSWorkId _workId, WHSUserId _userId)
{
    WHSWorkLine             workLine;
    WHSDimTracking          dimTracking;
    ...

    #localmacro.WorkLineFieldsToResetStatus
        WorkStatus                  = WHSWorkStatus::Open,
        UserId                      = '',
        WorkInProcessUTCDateTime    = utcDateTimeNull(),
        AskForNewLicensePlate       = NoYes::No
    #endmacro

    #localmacro.WorkLineStatusInProcessButNotStarted
        workLine.WorkId == _workId
        && workLine.WorkStatus == WHSWorkStatus::InProcess
        && workLine.QtyWork == workLine.QtyRemain
    #endmacro

    ...

    // If we already have some work finished, we only reset the InProcess work lines,
    // where no actual work has been performed so far

    update_recordset workLine
        setting #WorkLineFieldsToResetStatus
        where #WorkLineStatusInProcessButNotStarted;

    if (workTable.isWorkTransTypeOutbound())
    {
        delete_from dimTracking
            exists join workLine
            where #WorkLineStatusInProcessButNotStarted
               && dimTracking.WorkId == workLine.WorkId
               && dimTracking.LineNum == workLine.LineNum
               && dimTracking.Processed == NoYes::No;
    }
    ...

}

Программиста явно подвело чрезмерное увлечение макросами. Если макросы развернуть, ошибка становится очевидной:
X++:
    update_recordset workLine
        setting WorkStatus                  = WHSWorkStatus::Open,      // <-- (1)
                UserId                      = '',
                WorkInProcessUTCDateTime    = utcDateTimeNull(),
                AskForNewLicensePlate       = NoYes::No
        where workLine.WorkId == _workId
           && workLine.WorkStatus == WHSWorkStatus::InProcess           // <-- (2)
           && workLine.QtyWork == workLine.QtyRemain;

    if (workTable.isWorkTransTypeOutbound())
    {
        delete_from dimTracking
            exists join workLine
            where workLine.WorkId == _workId
               && workLine.WorkStatus == WHSWorkStatus::InProcess       // <-- (3)
               && workLine.QtyWork == workLine.QtyRemain
               && dimTracking.WorkId == workLine.WorkId
               && dimTracking.LineNum == workLine.LineNum
               && dimTracking.Processed == NoYes::No;
    }
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: mazzy (2), kashperuk (5), gl00mie (3).
Старый 06.02.2017, 15:33   #20  
Slava Chernenko is offline
Slava Chernenko
Участник
Самостоятельные клиенты AX
Соотечественники
 
34 / 15 (0) ++
Регистрация: 30.04.2008
Адрес: Copenhagen, Denmark
Наткнулся на ошибку, полез смотреть откуда ноги растут, оказалось так всегда было, в смысле в SYS слое такой код.
AX 2009, EmplTable form, datasource EmplTable write():

X++:
public void write()
{
.....

    ttsbegin;

......

    if (emplTable.PartyId && dirPartyTable.Name && !DirPartyTable::exist(emplTable.PartyId))
    {
.......

        if (dirPartyTable.validateWrite())
        {
            // Create a new DirPartyTable row.
            dirPartyTable.write();
            lastNewUnusedId = "";
        }
        else
        {
            // Abort the transaction.
            ttsabort;
        }
    }
    else if (emplTable.PartyId && dirPartyTable.Name && dirPartyTableChanged && DirPartyTable::exist(emplTable.PartyId))
    {
        if (dirPartyTable.validateWrite())
        {
            // Update the existing DirPartyTable row.
            dirPartyTable.write();
        }
        else
        {
            // Abort the transaction.
            ttsabort;
        }
    }

    super();

.....

    ttscommit;
}
Проблема в комбинации ttsabort в середине кода и ttscommit в конце.
Интересно, куда этот код разползся в следующих версиях и выжил ли в AX 7...
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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