08.11.2016, 16:59 | #1 |
Участник
|
Установка ax2009 на windows 2012 R2
Привет всем.
Решили мы наконец перейти на терминальных серверах с 2003-й винды (32 бит) на 2012 R2 Все поставили - работает но бывают очень странные плавающие глюки. Может быть кто-нибудь подскажет в чем может быть дело. Описание : Форма LedgerJournalTable Управляющий класс LedgerJournalformTable При инициализации формы отрабатывает метод X++: SysQuery::GRD_setFieldRange( qbds, fieldnum(LedgerJournalTable, journalType), queryValue(ledgerJournalType), RangeStatus::Locked ); X++: // очищает все Range'и по указанному полю и устанавливает новый Range с указанным статусом static QueryBuildRange GRD_setFieldRange(QueryBuildDataSource _qbds, FieldId _fieldId, Range _rangeValue, RangeStatus _rangeStatus = RangeStatus::Open) { QueryBuildRange qbr; ; if (_qbds) { while (_qbds.findRange(_fieldId)) { _qbds.clearRange(_fieldId); } qbr = _qbds.addRange(_fieldId); if (qbr) { qbr.value( _rangeValue); qbr.status(_rangeStatus); } } return qbr; } \Classes\JournalFormTable\classDeclaration и инициализированной так : X++: if (journalStatic.tableFieldIdJournalType())
criteriaJournalType = journalTable_ds.query().dataSourceNo(1).addRange(journalStatic.tableFieldIdJournalType()); "Порча" в том что Аксапта начинает считать ссылку criteriaJournalType нулевой, но в какой то момент (вызов super() на дочерних датасорсах прилинкованных по delayed) эта ссылка вообще смотрит на какой то узел в treenode в AOT а вовсе не на QueryBuildRange ! Из-за чего при попытке работать с ней лезут ошибки. В частности при попытке установить фильтр ядро ругается что нет метода value Из-за чего это может быть ? Как лечить ? Ядро от RU7 (билд 1500.4570) Проявляется на win2012 R2 Не проявляется на win2003 и на win2008 R2 Настройка совместимости с winXp, win7, etc в ярлыке запускающем клиента аксапты - не помогает. Последний раз редактировалось Logger; 08.11.2016 в 17:06. |
|
27.07.2017, 16:49 | #2 |
Участник
|
Может кто-нибудь сталкивался с такой проблемой ?
Неужели никто не использует 2012-ю винду на терминальных серверах ? Проблема должна проявляться после вызова qbds.clearRange(fieldId); Таким мест очень много в коде если смотреть по перекрестным ссылкам. P.S. Ядро 5.0.1600.3596 Последний раз редактировалось Logger; 27.07.2017 в 16:56. |
|
27.07.2017, 17:08 | #3 |
Иван Захаров
|
Иногда подыхает само ядро АОСа.
Мы делали такие проверки перед коммитом транзакций на "живость" АОСа: X++: ... if (SysLabel::labelId2String(strLRTrim(' @SYS36159'), 'ru') != 'Нет' || // sys SysLabel::labelId2String(strLRTrim(' @SYS36159'), 'en-us') != 'No' || SysLabel::labelId2String(strLRTrim(' @fav1904'), 'ru') != 'Прием' || // fav SysLabel::labelId2String(strLRTrim(' @fav1904'), 'en-us') != 'Receipt' || SysLabel::labelId2String(strLRTrim(' @GEE10142'), 'ru') != 'Фактура' || // gee SysLabel::labelId2String(strLRTrim(' @GEE10142'), 'en-us') != 'Facture' || SysLabel::labelId2String(strLRTrim(' @CFS1129'), 'ru') != 'Считано' // cfs ) { batchServerStatus = ( strFMT("@SYS35667") == "@SYS35667" ) ? mBatchServerStatus::Error : mBatchServerStatus::CriticalError; mBatchServerStateLog::writeErrorState(batchServerStatus); mBatchServerMonitor::sendMail(strfmt("%1: %2", Session::getAOSInstanceName(),batchServerStatus)); } ... У нас вообще - значения енума NoYes не распознавались ))) |
|
27.07.2017, 17:13 | #4 |
Участник
|
Спасибо за отклик.
В нашем случае queryValue() корректно отрабатывала. А вот переменная с типов QueryBuildRange объявленная на форме в classDeclaration портилась. classIdGet() для нее выдавал что это QueryBuildRange а .handle() выдавал что это treenode Если же дергать для методы AOTToString() toString() то ссылка идет на какие то узлы из ветки \Queries\\Methods В общем, жесть. Ну и соответственно при попытке обратиться к ее методам ядро ругалось что не существует метода Value() |
|
27.07.2017, 18:33 | #5 |
Участник
|
Цитата:
Сообщение от ziva
Иногда подыхает само ядро АОСа.
Мы делали такие проверки перед коммитом транзакций на "живость" АОСа: X++: ... if (SysLabel::labelId2String(strLRTrim(' @SYS36159'), 'ru') != 'Нет' || // sys SysLabel::labelId2String(strLRTrim(' @SYS36159'), 'en-us') != 'No' || SysLabel::labelId2String(strLRTrim(' @fav1904'), 'ru') != 'Прием' || // fav SysLabel::labelId2String(strLRTrim(' @fav1904'), 'en-us') != 'Receipt' || SysLabel::labelId2String(strLRTrim(' @GEE10142'), 'ru') != 'Фактура' || // gee SysLabel::labelId2String(strLRTrim(' @GEE10142'), 'en-us') != 'Facture' || ... Лечили так Проблема с метками |
|
Теги |
ax2009, clearrange, windows 2012 |
|
|