04.04.2013, 16:10 | #1 |
Участник
|
Создание номерной серии в DAX2012
Добрый день. Подскажите пожалуйста, что я делаю не так.
Передо мной стоит простая задача (в предыдущих версиях я ее неоднократно делала): необходимо в модуль Расчеты с клиентами добавить новую номерную серию. 1. В класс NumberSeqModuleCustomer, метод loadModule добавляю код: datatype.parmDatatypeId(extendedtypenum(ObjectId)); datatype.parmReferenceLabel(literalStr("@SYS93408")); datatype.parmReferenceHelp(literalStr("@SYS93408")); datatype.parmWizardIsContinuous(true); datatype.parmWizardIsManual(NoYes::No); datatype.parmWizardIsChangeDownAllowed(NoYes::No); datatype.parmWizardIsChangeUpAllowed(NoYes::No); datatype.parmWizardHighest(999999); datatype.addParameterType(NumberSeqParameterType::dataArea, true, false); this.create(datatype); 2. Запускаю синхронизацию АОТ 3. Создаю на таблице CustParameters метод: clientserverstatic NumberSequenceReference numRefObjectId() { return NumberSeqReference::findReference(extendedTypeNum(ObjectId)); } 4. Насколько я помню из предыдущих версий, теперь в форме Параметры модуля расчетов с клиентами, на вкладке Номерные серии должна появиться новая запись с новой номерной серией, но ее НЕТ. В Управление организацией/Номерные серии при попытке создания новой номерной серии тоже не появляется новая номерная серия |
|
04.04.2013, 16:13 | #2 |
Axapta
|
Теперь так не получится. Надо джобик писать, чтобы появилась номерная серия. Ну чтоб не так скучно было, как в прошлых версиях. Запуск следующего кода поможет точно (он воссоздаст вообще все номерные серии):
X++: static void NumberSeqApplicationModuleLoadAll(Args _args) { NumberSeqApplicationModule::loadall(); } Цитата:
Note In Microsoft Dynamics AX 2009, number sequence references could be initialized by restarting the Application Object Server (AOS). In Microsoft Dynamics AX 2012, the initialization of references to populate the NumberSequenceDatatype and NumberSequenceParameterType tables has moved to the initialization checklist. To initialize the newly created references, run a job that executes the LoadModule method.
You can also reinitialize all references by running a job that executes the LoadAll method in the NumberSequenceModuleSetup class. However, for reinitializing all references, you must ensure that there are no existing number sequences already defined in the system.. http://technet.microsoft.com/en-us/l.../hh272879.aspx |
|
|
За это сообщение автора поблагодарили: sukhanchik (2), Logger (1), leva (1), Mila (1), IvanS (1), farlander (1), alex55 (3), r2d2 (1). |
04.04.2013, 16:21 | #3 |
Участник
|
Спасибо Вам Огромное. Так и знала, что чего-то было добавлено. Столько времени потратила.
|
|
04.04.2013, 17:27 | #4 |
Участник
|
А мне не помогал такой джоб. Приходилось читать глобальный кеш, очищать его и потом инициализировать номерные серии, иначе они просто не виделись системой. Правда, речь шла про "новый" модуль со своими сериями.
__________________
Ivanhoe as is.. |
|
04.04.2013, 17:33 | #5 |
Axapta
|
Да, когда я делал номерные серии в собственном модуле, то приложение тоже сначала не видело мой новый класс. Тоже чистил кэш, перезапускал АОС и в некоторый момент все заработало. Меня вообще в AX2012 этот момент раздражает. Пишешь код, пишешь, но чтобы он заработал надо периодически в бубен стучать. Например, добавил я значение в энум, написал некий код, его использующий, потом удалил добавленное значение. А система еще долго считала, что такое значение есть. В старых версиях такого никогда не было.
|
|
04.04.2013, 18:13 | #6 |
Участник
|
Я в итоге использовал такой джоб, на двух инсталляциях срабатывало с первой попытки.
X++: // IF 15.02.2013 KCAI_RMM static void RMM_NumberSeqInit(Args _args) { NumberSeqModuleRMM numberSeqModuleRMM = new NumberSeqModuleRMM(); // это класс обслуживающий ваш новый модуль NumberSeqGlobal numberSeqGlobal = appl.numberSeqGlobal(); ; numberSeqModuleRMM.load(); SysGlobalObjectCache::clearAllCaches(); numberSeqGlobal.buildModulesMap(); }
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: AlGol (2), ta_and (1), sukhanchik (4), Logger (3), Ar (1), leva (1), wojzeh (1), S.Kuskov (2), arhat (1). |