Вопрос
Ошибка: '' is not a valid GUID value возникает часто на врсиях 3.4 при сохранении карточки с Lookup связвнным с PROJECTS
27 июля 2012 20:18
Для устранения проблемы выполнить, следующие действия:
- Запустить Terrasoft Administrator под пользователем с правами Администратора системы.
- Открыть сервис ds_TaskScript (Tasks\General\Main Grid\ds_TaskScript).
- Найти функцию function SelfOnDatasetBeforePost(Dataset, DoPost) и замените ее на приведенную ниже (с внесенными поправками):
function SelfOnDatasetBeforePost(Dataset, DoPost) {
/* MODULE PROJECTS */
var ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');
if (!IsEmptyValue(ProjectID)){
var ProjectDataset = Services.GetNewItemByUSI('ds_Project');
if (!GetIsCanEditRecord(ProjectDataset, ProjectID)) {
ShowInformationDialog(TaskByProjectCanNotEdit);
DoPost.Value = false;
return;
}
}
/* ENDMODULE PROJECTS */
ds_TaskScript.IsAppend = (Dataset.State == dstInsert);
if ((ds_TaskScript.IsAppend) &&
(Dataset.Values('AuthorID') != Connector.CurrentUser.ContactID)) {
Dataset.Values('AuthorID') = Connector.CurrentUser.ContactID;
}
PrepareRemindVariables(Dataset);
ds_TaskScript.OldContactID = Dataset.DataFields('ContactID').OldValue;
}
/* MODULE PROJECTS */
var ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');
if (!IsEmptyValue(ProjectID)){
var ProjectDataset = Services.GetNewItemByUSI('ds_Project');
if (!GetIsCanEditRecord(ProjectDataset, ProjectID)) {
ShowInformationDialog(TaskByProjectCanNotEdit);
DoPost.Value = false;
return;
}
}
/* ENDMODULE PROJECTS */
ds_TaskScript.IsAppend = (Dataset.State == dstInsert);
if ((ds_TaskScript.IsAppend) &&
(Dataset.Values('AuthorID') != Connector.CurrentUser.ContactID)) {
Dataset.Values('AuthorID') = Connector.CurrentUser.ContactID;
}
PrepareRemindVariables(Dataset);
ds_TaskScript.OldContactID = Dataset.DataFields('ContactID').OldValue;
}
Затем найдите функцию function SelfOnDatasetBeforeDelete(Dataset, DoDelete) и замените ее на исправленный вариант:
function SelfOnDatasetBeforeDelete(Dataset, DoDelete) {
ds_TaskScript.DeleteTaskID = Dataset.Values('ID');
/* MODULE PROJECTS */
ds_TaskScript.ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');
ds_TaskScript.ProjectTeamRoleID = GetDatasetFieldValue(Dataset, 'ProjectTeamRoleID');
var ProjectDataset = Services.GetNewItemByUSI('ds_Project');
if (!IsEmptyValue(ds_TaskScript.ProjectID)){
if (!GetIsCanEditRecord(ProjectDataset, ds_TaskScript.ProjectID)) {
ShowInformationDialog(TaskByProjectCanNotEdit);
DoDelete.Value = false;
return;
}
}
/* ENDMODULE PROJECTS */
ds_TaskScript.CycleTaskParamID = GetDatasetFieldValue(Dataset, 'CycleTaskParamID');
}
ds_TaskScript.DeleteTaskID = Dataset.Values('ID');
/* MODULE PROJECTS */
ds_TaskScript.ProjectID = GetDatasetFieldValue(Dataset, 'ProjectID');
ds_TaskScript.ProjectTeamRoleID = GetDatasetFieldValue(Dataset, 'ProjectTeamRoleID');
var ProjectDataset = Services.GetNewItemByUSI('ds_Project');
if (!IsEmptyValue(ds_TaskScript.ProjectID)){
if (!GetIsCanEditRecord(ProjectDataset, ds_TaskScript.ProjectID)) {
ShowInformationDialog(TaskByProjectCanNotEdit);
DoDelete.Value = false;
return;
}
}
/* ENDMODULE PROJECTS */
ds_TaskScript.CycleTaskParamID = GetDatasetFieldValue(Dataset, 'CycleTaskParamID');
}
Сохраните внесенные изменения. Перезапустите приложение Terrasoft. Проверьте работу функционала.
С уважением,
Белецкий Арсений
Группа компаний Terrasoft
Нравится
2 комментария
1 июня 2015 08:52
Проделал все что описано выше не помогло. Ошибка выходит в администраторе через некоторое время после запуска.
3 июня 2015 09:30
Здравствуйте.
Ваш вопрос решается в рамках обращения 0250440. На самом деле источник проблемы заключается в реализации бизнес-процесса. В телефонном режиме Вам были предоставлены рекомендации по изменению логики процесса, а именно: "провести шаги процесса через таймер на проверку условия".
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать