Добрый день! После обновления BPMOnline до версии 7.4.0.2924 при публикации объекта "Активности" появляется ошибка:
Ошибка сохранения: Ошибка операции. Для индекса "ID0d3c4WXcWBjpNl3fs9eZtd0" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "ID0d3c4WXcWBjpNl3fs9eZtd0" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.
Есть ли возможность увеличить max допустимую длину ключа?
Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.
Здравствуйте, Игорь.
Попробуйте удалить данный индекс, он будет пересоздан при публикации объекта.
DROP INDEX ID0d3c4WXcWBjpNl3fs9eZtd0 ON Activity
Если данная рекомендация не решит проблему, просьба более подробно описать изменения сделанные в объекте "Активность", в версии 7.4.0.2924 воспроизвести данную ошибку не удалось.
Ещё при выполнении обновления в лог WorkspaceConsole выпала такая ошибка:
Ошибка Activity: При выполнении действия обновления структуры схемы произошла ошибка "Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.", текст Sql сценария: "CREATE INDEX [IkhyThNAkKdvUI2OBpbFwvp6Q] ON [dbo].[Activity]([Title] ASC)"
--- Exception info ---
Error: При выполнении действия обновления структуры схемы произошла ошибка "Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.", текст Sql сценария: "CREATE INDEX [IkhyThNAkKdvUI2OBpbFwvp6Q] ON [dbo].[Activity]([Title] ASC)"
InnerException: Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.
------
Настройки поля Title не менялись. В объекте "Activity" созданы три поля с префиксом "Usr". Но ошибка указывает именно на индекс поля Title , которого в БД не существует.
Игорь, Вы пишите что запрос выполняли на чистой базе, можете воспроизвести ошибку на чистой БД?
Просьба предоставить или кейс воспроизведения ошибки, или схему объекта Активность на которой воспроизводится ошибка.
При обновлении чистой BPMOnline 7.4.0.2458_Omnichannel до версии 7.4.0.2924 ошибка не воспроизводится.
В проблемной БД есть активности, где значения поля "Заголовок"(Title) длиной 500 символам. При работе с этими активностями также возникает эта ошибка.
Игорь, проимпортировав Ваш объект на демо стенд 7.4.0.2924-Omnichannel-Softkey-RUS проблему воспроизвести не удалось, объект опубликовался успешно. Просьба уточнить Вы не изменяли тип данных столбцов объекта на тип данных большей длины. Это могло привести к данной ошибке согласно информации http://technet.microsoft.com/ru-ru/library/ms163207(v=sql.105).aspx
Нет. Длина столбца "Title" так и осталась 500 символов. Что самое интересное -это то, что:
1. Указанного индекса нет в БД.
2. Эта ошибка вылезла при обновлении BPMOnline до версии 7.4.0.2924. Вот лог:log_20141203_13094874.txt
Добрый день,
Возникла аналогичная ошибка, индекса в базе нет, удалить через DROP INDEX не получается.
Объект сохраняется в метаданных, но при публикации выдает ошибку
Попробуйте вывести список всех индексов в базе, чтобы удостовериться, что такого индекса действительно нету:
SELECT
TableName = t.name,
IndexName = ind.name,
IndexId = ind.index_id,
ColumnId = ic.index_column_id,
ColumnName = col.name,
ind.*,
ic.*,
col.*
FROM
sys.indexes ind
INNER JOIN
sys.index_columns ic ON ind.object_id= ic.object_idand ind.index_id= ic.index_id
INNER JOIN
sys.columns col ON ic.object_id= col.object_idand ic.column_id= col.column_id
INNER JOIN
sys.tables t ON ind.object_id= t.object_id
WHERE
ind.is_primary_key=0
AND ind.is_unique=0
AND ind.is_unique_constraint=0
AND t.is_ms_shipped=0
ORDER BY
t.name, ind.name, ind.index_id, ic.index_column_id
Если нету, попробуйте сгенерировать метаданные для объекта и сгенерировать исходный код, после чего проверить повторно.
Добрый день, Андрей,
Проверил индекса действительно нет, сгенерировал метаданные для объекта и исходный код, но эффект тот же, индекс так и не появился, объект невозможно опубликовать, но он сохраняется, все бы ничего, но при попытке обращаться к новым полям в БП выдает ошибку "Элемент коллекции не существует"
Создал индекс, теперь при публикации возникает следующая ошибка: "Ошибка
Ошибка сохранения: Ошибка операции: индекс или статистика с именем "IGNfQFgKE05l2MANQO3hW70nQsso" уже существует в таблица "dbo.Activity"."