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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.11.2024, 14:14   #1  
DesparioN is offline
DesparioN
Участник
 
86 / 15 (1) ++
Регистрация: 21.10.2014
Обрезание поля таблицы (DAX2012)
Добрый день!

Уже какое то время периодически происходит странная вещь (по крайней мере для меня).
При рестарте сервера, в таблице происходит обрезание поля Email в таблице SysUserInfo. Может быть кто-нибудь сталкивался с подобным или в курсе в чем причина?

Со скуля получили следующий список сообщений.

1) ALTER TABLE "DBO".SYSUSERINFO ADD CONSTRAINT I_956USERIDX PRIMARY KEY CLUSTERED (PARTITION,ID)
2) DROP TABLE "DBO".SYSUSERINFO
3) EXECUTE SP_RENAME X956X, SYSUSERINFO
4) CREATE TABLE "DBO".X956X (ID NVARCHAR(8) NOT NULL DEFAULT '' ,DOCUHANDLINGACTIVE INT NOT NULL DEFAULT 0 ,DOCUTOOLBARBUTTONACTIVE INT NOT NULL DEFAULT 0 ,HELPMARKEMPTYLINKS INT NOT NULL DEFAULT 0 ,HELPTHEME NVARCHAR(10) NOT NULL DEFAULT '' ,EMAIL NVARCHAR(10) NOT NULL DEFAULT '' ,COMPILERTARGET INT NOT NULL DEFAULT 0 ,LANGUAGE NVARCHAR(10) NOT NULL DEFAULT '' ,SQMUSERGUID UNIQUEIDENTIFIER NOT NULL DEFAULT '{00000000-0000-0000-0000-000000000000}' ,SQMENABLED INT NOT NULL DEFAULT 0 ,DEFAULTCOUNTRYREGION NVARCHAR(10) NOT NULL DEFAULT '' ,EVENTPOLLFREQUENCY INT NOT NULL DEFAULT 0 ,EVENTPOPUPLINKDESTINATION INT NOT NULL DEFAULT 0 ,EVENTPOPUPDISPLAYWHEN INT NOT NULL DEFAULT 0 ,EVENTEMAILALERTSWHEN INT NOT NULL DEFAULT 0 ,EVENTPOPUPS INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWTASKSINEMAIL INT NOT NULL DEFAULT 0 ,WORKFLOWLINEITEMNOTIFICATIONFORMAT INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWTASKSINCLIENT INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWSHOWPOPUP INT NOT NULL DEFAULT 0 ,DEVELOPERALIAS NVARCHAR(10) NOT NULL DEFAULT '' ,CHECKEXCHRATES INT NOT NULL DEFAULT 0 ,CLIENTMESSAGEOFF INT NOT NULL DEFAULT 0 ,ACTIVATERUNAS INT NOT NULL DEFAULT 0 ,RECVERSION INT NOT NULL DEFAULT 1 ,PARTITION BIGINT NOT NULL DEFAULT 5637144576 ,RECID BIGINT NOT NULL CHECK (RECID <> 0) )
Старый 06.11.2024, 18:52   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,945 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
У вас при рестарте аоса он пытается синхронизировать табличку SysUserInfo так как она прописана в списке синхронизируемых на старте таблиц :
\Classes\Application\getApplTables
И при этом почему-то считает что длина поля в AOT не такая как в БД, поэтому и пересоздает табличку.

А почему свистопляска с длиной поля, надо разбираться.
Что за аос-то ?
1. Рабочий ?
2. Тест ?
3. Дев ?

4. Обычный рестарт ?
или
5. после переноса рабочей базы в тестовое окружение.?

попробуйте убрать табличку из перечня автоматически снхронизируемых.
а еще на всякий случай грохните содержимое SysSqmSettings и рестартуйте аосы (может у вас кеши из разных окружений перемешиваются. чтобы этого не было guid-ы в этой табличке должны быть разные у всех инсталляций аксапты)
Старый 07.11.2024, 10:13   #3  
DesparioN is offline
DesparioN
Участник
 
86 / 15 (1) ++
Регистрация: 21.10.2014
Это происходит на разных АОСах: и тест, и прод. Обычный рестарт.

Из последнего что делалось перед рестартом, была увеличена размерность ЕДТ из договоров и произведена синхронизация данной таблицы. Но я очень сомневаюсь что это может быть взаимосвязано. Судя по тому что 80 символов превращаются в 10, складывается ощущение, что Система не видит связанный с полем ЕДТ и ставит ему базовые 10 символов.

Я правильно понимаю, что при сравнении используется таблица SqlDictionary, или она в данной синхронизации не участвует? Просто если размер меняется изначально в этой таблице, можно было бы отловить что меняет запись.
Старый 07.11.2024, 11:40   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,945 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от DesparioN Посмотреть сообщение
Я правильно понимаю, что при сравнении используется таблица SqlDictionary, или она в данной синхронизации не участвует? Просто если размер меняется изначально в этой таблице, можно было бы отловить что меняет запись.
Да, правильно.
Сделайте полную синхронизацию везде и везде почистите SysSqmSettings
А еще лучше отключить синхронизацию табличек на старте аоса. От него только тормоза.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
D365FO: Отображение в контекстном меню названия поля / метода таблицы sukhanchik DAX: Программирование 0 23.11.2020 23:29
Отработка modifiedField таблицы при изменении значения поля в Map Metrofun DAX: Программирование 2 26.06.2020 18:03
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Как добраться до поля таблицы? Sergioso DAX: Программирование 4 20.01.2005 15:39
О динамическом Relation в EDT у поля таблицы NIMERE DAX: Программирование 4 23.03.2004 13:21
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:10.