![]() |
#1 |
MCTS
|
SysOperationFramework
Здравствуйте.
Создал контроллер, создал контракт данных. Появились два вопроса: 1) при запуске контроллера выдается ошибка "Не удается сериализовать параметр". Параметр - енум. 2) изменение контракта данных никак не сказывается на появляющемся диалоге. Причем я уже пробовал и удалять контракт полностью, затем импортировал его заново. Но добавление новых полей в этот контракт не приводит к изменениям диалога. |
|
![]() |
#2 |
Участник
|
Для начала, почисти кэш
Сервис/Кэши/Обновить элементы Ну и можешь остальные пункты меню там дернуть По п.1 - возможно, надо сделать инкрементный CIL Или отключить его выполнение
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Logger (3), Eldar9x (5). |
![]() |
#3 |
Роман Долгополов (RDOL)
|
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#4 |
Талантливый разгвоздяй
|
Только недавно бурил тему SysOperation, вопросов больше чем ответов... Поэтому делюсь своими источниками по теме.
Для быстрого погружения советую статьи:
Наглядное сравнение SysOperation и RunBaseBatch:
Ну и для глубокого погружения во фреймворк рекомендую книгу Microsoft Dynamics AX 2012 Services. Книга про сервисы в AX 2012, очень хорошо гуглится для бесплатного скачивания. Также есть книга для AX 2012 R2. Последний раз редактировалось Kabardian; 16.02.2015 в 17:36. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Владимир Максимов (5), Logger (5), Krash (1), Stitch_MS (5), alex55 (1), pitersky (4), АртемМелихов (1). |
![]() |
#5 |
Участник
|
добрый день, почему после "Создать Инкрементный CIL" я получаю ошибки по классам, которые вообще не входят в проект? Спасибо
|
|
![]() |
#6 |
Участник
|
Инкрементный CIL не настолько инкрементный, как может показаться
![]() |
|
|
За это сообщение автора поблагодарили: EVGL (1), Logger (1), Polgid (1), АртемМелихов (1). |
![]() |
#7 |
Участник
|
После ин.комп. получаю вот такую ошибку "невозможно создать запись в SysXppAssembly (SysXppAssembly). Запись уже существует." Что может помочь?
|
|
![]() |
#8 |
Участник
|
trancate этой таблицы в базе модели и затем полная компиляция CIL
|
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Инкрементный CIL не настолько инкрементный, как может показаться
![]() Например запихнуть туда объекты из одного проекта или относящиеся к одному конф. ключу. Чтобы фрагментацию уменьшить. |
|
![]() |
#10 |
Участник
|
М... похоже, что можно
![]() X++: // Dump incremental xml files changeFound = !dumpChanges || SysCompileIL::dumpIncrementalBulk(); if(changeFound) { AppVersionStr = ApplicationVersion::applBuildNo(); AppVersion = new System.Version(AppVersionStr); xppILAppDomain = xApplication::XppILAppDomain(); parameters = new Microsoft.Dynamics.Ax.Xpp.GeneratorParameters(); parameters.set_AppVersion(AppVersion); parameters.set_AssemblyName(#XppDllName); parameters.set_EnableDebugging(true); parameters.set_EnumFile(xmlPath + '\\Enums.exml'); parameters.set_NumberOfModules(#NumberOfModules); parameters.set_WritePath(writePath); parameters.set_XmlPath(xmlPath); parameters.set_OldAssemblyName(xppAssemblyPath); parameters.set_GeneratorAppDomain(xppILAppDomain); parameters.set_IsDebug(Debug::isDebugOnAOSEnabled()); parameters.set_LogFolderPath(writePath); modifiedModules = Microsoft.Dynamics.Ax.Xpp.XppILGenerator::GenerateIncrementalAssembly(parameters); X++: SysModelElement sysModelElementChildren, sysModelElementSameBucket; SysModelElementData sysModelElementData; SysCompileILTable sysCompileILTable, sysCompileILTableSelfJoin; // insert any type that has changed. insert_recordset sysCompileILTableSelfJoin(Name, ModelElement, ElementType, AxId, GenerateType) select Name, RecId, ElementType, AxId, generateType from sysModelElementSameBucket exists join sysModelElementChildren where sysModelElementChildren.ParentModelElement == sysModelElementSameBucket.RecId && (sysModelElementChildren.ElementType == UtilElementType::ClassInstanceMethod || sysModelElementChildren.ElementType == UtilElementType::ClassStaticMethod || sysModelElementChildren.ElementType == UtilElementType::TableInstanceMethod || sysModelElementChildren.ElementType == UtilElementType::TableStaticMethod || sysModelElementChildren.ElementType == UtilElementType::TableRelation || sysModelElementChildren.ElementType == UtilElementType::TableField) exists join sysModelElementData where sysModelElementData.ModelElement == sysModelElementChildren.RecId && sysModelElementData.ModifiedDateTime >= modifiedDateTime; // Insert types in same bucket as types that changed update_recordset sysCompileILTableSelfJoin setting NetModuleId = (sysCompileILTableSelfJoin.AxId / #GroupSize) mod #NumberOfModules; insert_recordset sysCompileILTable(Name, ModelElement, ElementType, AxId, GenerateType) select Name, RecId, ElementType, AxId, generateType from sysModelElementSameBucket where sysModelElementSameBucket.ElementType == UtilElementType::Class || sysModelElementSameBucket.ElementType == UtilElementType::Table exists join sysCompileILTableSelfJoin where sysCompileILTableSelfJoin.NetModuleId == (sysModelElementSameBucket.AxId / #GroupSize) mod #NumberOfModules; X++: update_recordset sysCompileILTableSelfJoin setting NetModuleId = (sysCompileILTableSelfJoin.AxId / #GroupSize) mod #NumberOfModules; X++: #define.NumberOfModules(1000) #define.GroupSize(10) Последний раз редактировалось gl00mie; 07.08.2015 в 11:50. |
|
|
За это сообщение автора поблагодарили: mazzy (5), Logger (5), Jorj (1), S.Kuskov (5). |