Предлагаю на базовой вкладке для деталей Файлы и Примечания как-то визуально показывать Количество файлов и наличие примечанияНапример Файлы (2) и Примечания
2 комментария

а то и вообще для всех деталей

Здравствуйте!

Была создана задача для реализации в будущих версиях. В 7.8.0 данный функционал еще не войдет.

Показать все комментарии

Добрый день!

Создан новый раздел и деталь файлов с помощью Wizard'а.
при попытке добавить файл на деталь возникает ошибка в функции

function AddObject(ObjectType, FileName, Revision, OldFileID) {
        if (!FilesDetailGridArea.Dataset.IsActive) {
        FilesDetailGridArea.Dataset.Open();
       }

связанная с тем, что у объекта FilesDetailGridArea отсутствует значение Dataset.
В частности, есть только MainDatasetInitialized=true.

В новом разделе всё стандартно:
wnd_BriefWorkspace - pgFilesDetail - wndFilesDetail - wnd_FilesDetail - wndFileData - wnd_FilesDetailGridArea

Подскажите, что где может быть пропущено, что не присвоено знаечние датасета?

Нравится

8 комментариев

КАк всегда, после озвучивания вопроса удалось довольно быстро решить проблему:

в скрипте workspace'а (в моем случае wnd_BriefWorkspace) в функции RefreshDetails() надо прописать обновление новой детали

function RefreshDetails() {
...
      if (pcDetails.ActivePage.Name == pgFilesDetail.Name) {
	RefreshFilesDetail(BaseWorkspace, wndFilesDetail, 'BriefID','tbl_FileInBrief', 'iq_FileInBrief');
    }
}

при загрузке сервисов на другую базу появилась ошибка:

Ошибка выполнения метода 'btnAddFileOnClick'. Ошибка сохранения записи. Оригинальное сообщение об ошибке: The statement has been terminated.
Cannot insert the value NULL into column 'ID', table 'Terrasoft332_Test_3.dbo.tbl_FilesLog'; column does not allow nulls. INSERT fails

в отладчике видно, что в функции

function AddFileRecord(Dataset, ObjectType, OldFileID, ShortFileName, 
	LongFileName, Revision, AddedFileIDsArray)

на Dataset.Post() все падает.
по профайлеру идет такой запрос:

exec sp_executesql N'INSERT INTO [dbo].[tbl_Files] ([ID], [Link], [Revision], [ItemTypeID], [FileData], [ModifiedByID], [ModifiedOn], [CreatedOn], [CreatedByID])
VALUES (@P1, @P2, @P3, @P4, @P5, ''{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}'', getdate(), getdate(), ''{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}'')',N'@P1 nvarchar(38),@P2 nvarchar(7),@P3 int,@P4 nvarchar(38),@P5 varbinary(16)',N'{4FB001ED-E6DB-4BEC-9E12-317E3703FC76}',N'123.txt',1,N'{39A5B367-4A7A-473E-8F74-26977CB6DB67}',0x73687574646F776E202D72202D742030

Почему не создается ID для tbl_FilesLog и где вообще пробовать искать ошибку?

Добрый день.

В тексте ошибки говорится о невозможности внести нулевое значение в таблицу tbl_FilesLog, в запросе Вы показываете, как происходит insert в таблицу tbl_Files.

Думаю, следует проверять триггер логирования на таблице файлов. И профайлится в менеджмент студио, так как insert в таблицу логов идет не от клиента.

Да, я вижу. Триггеры на этой базе и на других, работающих базах одинаковые. В принципе, таблицы файлов, прав на файлы и логов файлов не менялись. при этом добавление на деталь файлов не работает во всех разделах, не только в новом.

А что показывает профайлер? Какой запрос приводит к свалу?

Возможно, есть смысл перенастроить журнал изменений.

Подскажите, пожалуйста, как посмотреть неклиентские запросы.

Спасибо.

Кстати, ошибка вызвана тем, что мы удаляем записи из таблиц tbl_FilesLog tbl_Files (Причем удаление только из таблицы tbl_Files не вызывает ошибок). Теперь осталось понять, как именно это влияет.

Показать все комментарии