Подскажите пожалуйста, можно ли где то прочитать логи изменений таблиц? В частности необходимо отследить удаление записей.
SQL Server
TSCRM 3.0
Нравится
Здравствуйте!
В версии Terrasoft CRM 3.2 появилась возможность отслеживать изменения с помощью нового раздела [Журнал изменений].
В версии Terrasoft CRM 3.0 можете настроить следующим образом:
Необходимо открыть Terrasoft CRM Administrator, установить галочку «Отслеживать изменения» в нужном Вам разделе (например, tbl_Contact) и сохранить сделанные изменения.
После сделанных изменений в таблице tbl_DatabaseLog будут логироваться действия пользователей.
Или же более трудоемкий способ - написание собственного триггера, который будет отслеживать указанные Вами действия, например, удаление записей пользователями.
Terrasoft Support Team
Вопрос по вышеуказанному журналу изменений. Почему обозначенных в руководстве значений колонки "Действие" (Добавление, изменение и удаление) при любых действиях пишет одно - "Обновление"? Там же, при попытке посмотреть "Описание" или выгрузить его, выскакивает ошибка "[09.01.22 17.38.35.227] (E) Ошибка выполнения метода 'OpenBlob'. Object 'DataField IncidentNumber' is not assigned «Call Stack»".
Здравствуйте!
Данная проблема возникает в результате кода скрипта, что при формировании имени файла для сохранения описания, если не логируется поле Primary Display Field таблицы, которая логируется. Т.е.в данном случае, поле IncidentNumber является Primary Display Field таблицы, но оно не установлено как поле, которое должно логироваться.
Есть два пути решения проблемы: добавить логирование IncidentNumber и в каждом случае следить, чтобы Primary Display Field логировалось или изменить код в скрипте wnd_ChangesLogScript:
function SaveFile(DataField, UseTempFile) {
var FileNameValue = '';
var Extention = '';
if (!ChangesLog.ParentTable) {
return false;
}
var PrimaryFieldName =
ChangesLog.ParentTable.PrimaryDisplayTableField.SQLName;
var PrimaryFieldValue = '';
if (PrimaryFieldName &&
(dlData.Dataset.DataFields.ItemsByName(PrimaryFieldName))) {
PrimaryFieldValue =
GetDatasetFieldValue(dlData.Dataset, PrimaryFieldName);
if (PrimaryFieldValue) {
FileNameValue = scr_FileUtils.PrepareFileName(PrimaryFieldValue);
}
} else {
FileNameValue = DataField.Name;
}
if (DataField.Name == DescriptionFieldName) {
Extention = '.rtf';
FileNameValue = FileNameValue + Extention;
} else {
Extention = FileNameValue.substr(FileNameValue.search(/.\w*$/),
FileNameValue.length);
}
if (!UseTempFile) {
var FileName = GetNewValue();
FileName.Value = FileNameValue;
var Title = FormatStr("Сохранить '%1' как", DataField.Caption);
if (!(System.SaveDialog(FileName, "Все Файлы (*.*)|*.*", Extention,
Title, Connector.WorkingDirectory))) {
return;
}
DataField.SaveToFile(FileName.Value);
}
return FileNameValue;
}
Terrasoft Support Team