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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.11.2019, 22:43   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
310 / 292 (10) ++++++
Регистрация: 27.02.2006
Адрес: Дания
Angry Юнит тест в D365FO: The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found
Уважаемые знатоки. При запуске юнит тестов через раз вываливается ошибка типа The class that generates data types for the '...' type is not found.

База данных на виртуалке была восстановлена из бэкапа клиентской базы. Ошибка выпадает лишь примерно в половине запусков одного и того же теста. Воспроизводится даже на стандартом тесте (см. ниже).

Вопрос: что с черным ящиком? Уже несколько часов на это убил.

Цитата:
Test Name: InventCountingJournalSampleTest.createAndPostCountingJournal
Test FullName: InventCountingJournalSampleTest.createAndPostCountingJournal
Test Source: K:\AosService\PackagesLocalDirectory\bin\XppSource\AtlSampleTests\AxClass_InventCountingJournalSampleTest.xpp : line 80
Test Outcome: Failed
Test Duration: 0:00:29.266

Result StackTrace:
Result Message:
An unknown exception caught! (Actual: The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found.) - Microsoft.Dynamics.Ax.Xpp.ErrorException: Posting - JournalJournal: DAT-000001Voucher: 00001The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found.
at Dynamics.AX.Application.NumberSeqApplicationModule.`internalLoadDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType, Boolean _createSequence) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqApplicationModule.xpp:line 661
at Dynamics.AX.Application.NumberSeqApplicationModule.internalLoadDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType, Boolean _createSequence)
at Dynamics.AX.Application.NumberSeqApplicationModule.`generateModulesDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqApplicationModule.xpp:line 602
at Dynamics.AX.Application.NumberSeqApplicationModule.generateModulesDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType)
at Dynamics.AX.Application.NumberSequenceReference.`findByDatatypeAndScope(Int32 _edt, Int64 _scopeId, Boolean _update, Boolean @_scopeId_IsDefaultSet, Boolean @_update_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxTable_NumberSequenceReference.xpp:line 477
at Dynamics.AX.Application.NumberSequenceReference.findByDatatypeAndScope(Int32 _edt, Int64 _scopeId, Boolean _update, Boolean @_scopeId_IsDefaultSet, Boolean @_update_IsDefaultSet)
at Dynamics.AX.Application.NumberSequenceReference.findByDatatypeAndScope(Int32 _edt, Int64 _scopeId)
at Dynamics.AX.Application.NumberSeqReference.`findReference(Int32 _edt, NumberSeqScope _scope, Boolean @_scope_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqReference.xpp:line 155
at Dynamics.AX.Application.NumberSeqReference.findReference(Int32 _edt, NumberSeqScope _scope, Boolean @_scope_IsDefaultSet)
at Dynamics.AX.Application.NumberSeqReference.findReference(Int32 _edt)
at Dynamics.AX.Application.LedgerParameters.`numRefGeneralJournalEntryJournalNumber() in xppSource://Source/Ledger\AxTable_LedgerParameters.xpp:line 571
at Dynamics.AX.Application.LedgerParameters.numRefGeneralJournalEntryJournalNumber()
at Dynamics.AX.Application.LedgerPostingGeneralJournalController.new() in xppSource://Source/Foundation\AxClass_LedgerPostingGeneralJournalController.xpp:line 1048
at Dynamics.AX.Application.LedgerPostingGeneralJournalController..ctor()
at Dynamics.AX.Application.LedgerPostingGeneralJournalController.`construct() in xppSource://Source/Foundation\AxClass_LedgerPostingGeneralJournalController.xpp:line 2080
at Dynamics.AX.Application.LedgerPostingGeneralJournalController.construct()
at Dynamics.AX.Application.LedgerVoucher.new() in xppSource://Source/Foundation\AxClass_LedgerVoucher.xpp:line 1320
at Dynamics.AX.Application.LedgerVoucherPost..ctor()
at Dynamics.AX.Application.LedgerVoucher.`newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting, Boolean @_transactionLogType_IsDefaultSet, Boolean @_transactionLogTxt_IsDefaultSet, Boolean @_approveJournal_IsDefaultSet, Boolean @_posting_IsDefaultSet) in xppSource://Source/Foundation\AxClass_LedgerVoucher.xpp:line 2039
at Dynamics.AX.Application.LedgerVoucher.newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting, Boolean @_transactionLogType_IsDefaultSet, Boolean @_transactionLogTxt_IsDefaultSet, Boolean @_approveJournal_IsDefaultSet, Boolean @_posting_IsDefaultSet)
at Dynamics.AX.Application.LedgerVoucher.newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting)
at Dynamics.AX.Application.JournalCheckPostLedger.`newLedgerVoucher(JournalTransMap _journalTrans, Boolean _checkMode) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 258
at Dynamics.AX.Application.JournalCheckPostLedger.newLedgerVoucher(JournalTransMap _journalTrans, Boolean _checkMode)
at Dynamics.AX.Application.JournalCheckPostLedger.`postVoucher(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 374
at Dynamics.AX.Application.JournalCheckPostLedger.postVoucher(JournalTransList _journalTransList)
at Dynamics.AX.Application.JournalCheckPostLedger.`postJournal(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 347
at Dynamics.AX.Application.JournalCheckPostLedger.postJournal(JournalTransList _journalTransList)
at Dynamics.AX.Application.InventJournalCheckPost_Movement.`postJournal(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_InventJournalCheckPost_Movement.xpp:line 550
at Dynamics.AX.Application.InventJournalCheckPost_Movement.postJournal(JournalTransList _journalTransList)
at Dynamics.AX.Application.JournalCheckPost.`runPost() in xppSource://Source/Foundation\AxClass_JournalCheckPost.xpp:line 767
at Dynamics.AX.Application.JournalCheckPost.runPost()
at Dynamics.AX.Application.JournalCheckPost.`run() in xppSource://Source/Foundation\AxClass_JournalCheckPost.xpp:line 647
at Dynamics.AX.Application.JournalCheckPost.run()
at Dynamics.AX.Application.SysOperationSandbox.`startOperation(SysOperationIMarshalledRun operationInstance) in xppSource://Source/ApplicationPlatform\AxClass_SysOperationSandbox.xpp:line 100
at Dynamics.AX.Application.SysOperationSandbox.startOperation(SysOperationIMarshalledRun operationInstance)
at Dynamics.AX.Application.Runbase.`runOperation() in xppSource://Source/ApplicationPlatform\AxClass_Runbase.xpp:line 804
at Dynamics.AX.Application.Runbase.runOperation()
at Dynamics.AX.Application.AtlCommandInventJournalPost.`executeTask() in xppSource://Source/AtlApplicationSuite\AxClass_AtlCommandInventJournalPost.xpp:line 11
at Dynamics.AX.Application.AtlCommandInventJournalPost.executeTask()
at Dynamics.AX.Application.AtlCommand.`execute() in xppSource://Source/AtlFoundation\AxClass_AtlCommand.xpp:line 22
at Dynamics.AX.Application.AtlCommand.execute()
at Dynamics.AX.Application.AtlEntityInventCountingJournal.`post() in xppSource://Source/AtlApplicationSuite\AxClass_AtlEntityInventCountingJournal.xpp:line 105
at Dynamics.AX.Application.AtlEntityInventCountingJournal.post()
at Dynamics.AX.Application.InventCountingJournalSampleTest.`createAndPostCountingJournal() in xppSource://Source/AtlSampleTests\AxClass_InventCountingJournalSampleTest.xpp:line 149
at Dynamics.AX.Application.InventCountingJournalSampleTest.createAndPostCountingJournal()
at InventCountingJournalSampleTest::createAndPostCountingJournal(Object , Object[] , Boolean& )
at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeInstanceCall(Object instance, String MethodName, Object[] parameters)
at Microsoft.Dynamics.Ax.Xpp.DictClass.Callobject(String _methodName, XppObjectBase _Called, Object[] varArgs)
at Dynamics.AX.Application.SysTest.`invoke(XppObjectBase _object, String _method, Object _optional, Boolean @_optional_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxClass_SysTest.xpp:line 1095
at Dynamics.AX.Application.SysTest.invoke(XppObjectBase _object, String _method, Object _optional, Boolean @_optional_IsDefaultSet)
at Dynamics.AX.Application.SysTest.invoke(XppObjectBase _object, String _method)
at Dynamics.AX.Application.SysTest.`doRunTestMethod(SysTestResult _result) in xppSource://Source/ApplicationFoundation\AxClass_SysTest.xpp:line 719

Infolog Messages:
<error>Posting - Journal/Journal: DAT-000001/Voucher: 00001/The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found.<\error>
Старый 04.11.2019, 10:10   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
794 / 1034 (36) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Может быть не указана связь с моделью? т.е. модель где выполняется тест не видит ту модель в которой этот класс. Попробуйте указать все модели как референсные
Старый 04.11.2019, 12:12   #3  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
310 / 292 (10) ++++++
Регистрация: 27.02.2006
Адрес: Дания
Таким случайным образом падает даже стандартный тест InventCountingJournalSampleTest.createAndPostCountingJournal(), который лежит в модели "Acceptance Test Library - Standard Tests" и уж по-любому должен работать. Я не могу изменить референсы этой модели.

Вот результат серии запусков InventCountingJournalSampleTest.createAndPostCountingJournal:
OK
OK
Fail
OK
OK
Fail
OK
Fail

Если бы не хватало референса на модель, я бы ожидал Fail всё время, но чтобы вот так, случайным образом?

На стандартной виртуалке с Contoso этот же тест работает всегда.

Может есть какой-то способ прочистить мозги номерным сериям, который можно было бы вставить в setUp() метод?
Старый 05.11.2019, 00:03   #4  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
310 / 292 (10) ++++++
Регистрация: 27.02.2006
Адрес: Дания
В итоге оказалось, что поломан NumberSeqModule enum.

Одинаковые значения разных символов в паре со случайным порядком вызова методов-подписчиков в коде инициализации номерных серий подарили мне несколько незабываемых часов.

Запустил полный ребилд, посмотрим, поможет ли.

За это сообщение автора поблагодарили: dech (3).
Старый 05.11.2019, 12:13   #5  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
310 / 292 (10) ++++++
Регистрация: 27.02.2006
Адрес: Дания
В таблице ENUMVALUETABLE три значения енума вылезли за пределы 255.



После удаления этих строк из таблицы вручную и синхронизации базы, эти три символа получили новые значения (теперь в пределах допустимого диапазона), и проблема решена.
Теги
d365fo, unit test

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
emeadaxsupport: How to resolve the message “Report data source XYZ cube was not found” when you click the Analyze data button in Dynamics AX 2012 Blog bot DAX Blogs 0 08.10.2015 21:13
atinkerersnotebook: Using PowerPivot to Analyze Dynamics AX Data Blog bot DAX Blogs 1 05.10.2013 07:23
atinkerersnotebook: Using the Dynamics AX Excel Add-In Blog bot DAX Blogs 1 25.09.2013 07:11
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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