Добрый день.

В разделе Объекты имеется вкладка "Файлы и ссылки объекта", а также возможность просматривать изображения(добавленные на вкладке Файлы и ссылки объекта) при помощи отдельной детали "Изображения".

Так вот, я хочу чтобы страница с реестром изображений вызывалась по кнопке "Посмотреть".

Для этого использую действие "Открыть страницу". Какие параметры необходимо передать, чтобы она открывалась и инициализировала область изображений с их отображением?

Мой код:

var defValues = new Dictionary <string, object>();
var parameters = new Dictionary <string, string>();
var defValuesId = Guid.NewGuid();
var facilityInAppESQ = FacilityInApplicationESQ as EntitySchemaQuery;
 
	var activeRowPrimaryColumnValue = Page.DataSource.ActiveRowPrimaryColumnValue;
	var activeRowUId = Guid.Empty;
	activeRowUId = activeRowPrimaryColumnValue;//Выбранный в реестре файл
 
	Select ProtocolRecordId = new Select(UserConnection)
          	 .Column("FacilityId")
           	 .From("FacilityFile")
           	 .Where("Id").IsEqual(Column.Parameter(activeRowUId)) as Select;
			Guid ProtocolRecord = ProtocolRecordId.ExecuteScalar<Guid>();	
 
UserConnection.SessionData[defValuesId.ToString()] = defValues;
parameters.Add("defValuesId", defValuesId.ToString());
parameters.Add("FacilityId", ProtocolRecord.ToString());
parameters.Add("recordId", activeRowUId.ToString());
OpenTaskEditPageFacilityUserTask.PageParameters = parameters;	
OpenTaskEditPageFacilityUserTask.PageUId = new Guid("d42fdb94-9284-423a-a561-30ccaff36409");
 
return true;

 

Нравится

3 комментария

Антонина, эта деталь изображений является нестандартной и,вероятно, разработана в ходе проекта. Сложно сказать, не видя всей её логики.

Каким образом я могу Вам показать работу данной детали?

Посмотрел ещё раз, на самом деле эта деталь изображений есть в коробке Loyalty, её схема FacilityPicturesDetailGridPage. Использует такой же источник данных файлов в объекте, как обычная деталь файлов в этом разделе.

Соответственно, если Вы где-то уже делали показ по кнопке страницы реестра, отфильтрованной по записи основного раздела, то делать аналогично.

Если нет, то нужно смотреть, как в БП схемы-страницы BaseModulePage и вызываемых из неё схемах-действиях InitializeDetails и SetDetailFilter сделана привязка любой детали к нужной странице и наложение фильтра.

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

Добрый день,

Анализируем варианты интеграции BPMOnline 5.4 c www.unisender.com для рассылок Email.

Подскажите существует ли такая возможность в 5.4? Возможно ли ее туда добавить без доработок?

Вот информация от ТП unisender

Terrasoft уже имеет прямую интеграцию своего продукта с unisender, как транспортный канал трафика email, вполне возможно что вам и не требуется реализовывать его повторно. 

 

Нравится

1 комментарий

Антон, интеграция с Unisender появилась только в 7.8. Вероятно, они её и имели в виду. Там используется находящийся на отдельном сайте облачный сервис рассылок bpm’online Cloud Email Service, который интегрируется с ним и другими подобными сервисами рассылок. В 5.4 всего этого механизма не было, поэтому без доработок подключить не получится.

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

Хочу поделиться интересной 'фичей', обнаруженной при настройке графиков в дешбордах.

Если у Вас в графике есть несколько серий и для первой серии установить тип графика 'Bar' (скрин 1), а для другой 'Column' (скрин 2) (возможно, что в русскоязычной локализации они называются по-другому), то в итоге Вы получите эффект 'вложения' одной серии в другую (для понимания этого эффекта лучше посмотреть прикрепленный скриншот график).

P.S. Не исключаю, что такой эффект после внесения изменений и исправлений в графики после очередного обновления на новую версию может пропасть, так как отображаться в итоге должно нечто другое, соответствующее указанному типу графика, но пока такой эффект присутствует вы можете использовать его в настройке ваших дешбордов, тем более, что нашим пользователям он очень понравился :wink:

Сейчас у нас версия 7.10.2.

Нравится

2 комментария

Это именно что фича а не баг, и тянется она давно, и не планирует исчезать :smile:

Максим,

хорошо, если так.

Мы этому будем только рады!

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

Добрый день,

Задал фильтр по Дате = Текущая неделя.
Смотрю что в БД по фильтру в CustContractFolder
Запрос такой:

SELECT
        [CustContract].[Id] [Id]
FROM
        [dbo].[CustContract] [CustContract]
WHERE
        ([CustContract].[Number] = N'92319851'
        AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
        AND [CustContract].[ModifiedOn] CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

Почему время до 21:00 только?
Подскажите это настраивается?

Нравится

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

Укажите пожалуйста версию продукат.

Время до 21 — из-за того, что на сервере время по Гринвичу. Когда у них 21:00 — у Вас полночь и конец недели.

Возможно, настраивается путём смены времени на сервере, но реально текущая реализация должна фильтровать верно. Нужно только помнить о расхождении при написании напрямую SQL-запросов.

Спасибо. С временем понятно.

Заметили еще такую странность при фильтре по дате: даты в БД не обновляются.
Например сейчас хоть фильтр стоит в GUI пред. неделя, а даты по прежнему старые

AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

Это стандартное поведение фильтров по датам?

Антон, в смысле, не обновляется?
Может, страница раздела не перезагружалась с прошлой недели?

Страница раздела была обновлена, был новый вход. Открыт фильтр http://www.community.terrasoft.ru/system/files/2017-06-30_1531.png, условия фильтра не менялись, не сохранялись.

В БД же запрос прежний и даты прежние как 30.06

AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

я ожидал что будет вида '2017-07-02 21:00:00.000' по '2017-07-09 21:00:00.000', т.е. как в GUI предыдущая неделя.

После того как в фильтре нажал сохранить, в бд запрос обновился и стал отбирать как ожидается. Можно как то программно через БД инициировать "сохранить" по всем группам?

Фильтр должен быть по текущей неделе, никаких дополнительных действий не требуется.
Возможно, в системе что-то закешировалось и нужно очистить Redis.

IIS APP остановил, редис почистил.
Все равно в БД по прежнему старый запрос.
В ГУИ BPMOnline фильтр работает верно, но в БД по другому.
Если нажимаю сохранить в фильтре, то в БД запрос обновляется на корректный.

"Антон Сидоров" написал:В ГУИ BPMOnline фильтр работает верно

В таком случае ничего менять не нужно.

Проблема в том, что у нас реализован функционал генерации активностей по группам договоров на уровне БД (делали Вы(Террасофт) при внедрении проекта), т.е. из за этого по не верным договорам создаются активности.
Бизнес смотрит в ГУИ и ожидает, что по займам будут активности, в реальности оказывается фильтр берется из БД по другим фильтрам дат.

Поэтому и интересует вопрос это нормальное поведение BPMOnline?
Можно как то программно через БД инициировать "сохранить" по всем группам, для актуализации запросов и в БД?

Если есть какие-то доработки, то дело может быть в них. Лучше связаться с авторами проекта.

По фильтру Текущая неделя еще вопрос:
В БД записывается такой запрос при создании сегодня.

SELECT
	[CustContract].[Id] [Id]
FROM
	[dbo].[CustContract] [CustContract]
WHERE
	([CustContract].[Number] = N'92319851'
	AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-07-23 21:00:00.000', 121)
	AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-30 21:00:00.000', 121)))

т.е. в БД все верно с учетом часового пояса сервера +3.
Если ставлю дату на сервере 30.07.17 13:41.
Через интерфейс BPM не отображается (см. вложение), в БД - ок.

30.07.17 ещё не настало. У Вас часы идут неправильно.

Я время вперед перевел на сервере специально, чтобы наступление Воскресенья сэмулировать.

Вероятно, логика системы не рассчитана на такое необычное поведение часов.

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

Добрый день,
Можете подсказать назначение параметра appSettings RequestTimeout в web.config?
На что он влияет?

Нравится

2 комментария

Здравствуйте, Антон.

Данный параметр содержит значение времени ожидания ответа от сервера Active Directory при синхронизации с LDAP. При отправке запроса от bpm'online на сервер AD по умолчанию время ожидания ответа составляет 120 секунд.

Спасибо!

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

Добрый день
В карточке е-мейл-активности есть поле Контакт.Активность. Подскажите, пожста, как "вытащить" значение поля Е-мейл из карточки этого Контакта? Заранее спасибо

Нравится

1 комментарий

Добрый день, Татьяна!

Для получения емейла можно воспользоваться механизмом esq:
https://academy.terrasoft.ru/documents/technic-sdk/7-9/ispolzovanie-ent…
Вам необходимо выбрать Email у Contact, отфильтров по Id контакта.

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

Добрый день.
В БП по сигналу мне бы хотелось, чтобы открывалась страница реестра Взаимосвязей.
Каким образом мне правильно сделать, чтобы туда передавался контакт в ContactAId и я могла создавать там новые записи при нажатии на кнопку "Добавить"?

Нравится

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

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

Для решения необходимо использовать элемент "Преднастроенная страница". Элемент описан по ссылке:
http://www.community.terrasoft.ru/img/video/lms/28/story.html

Также данная тема обсуждалась в других ветках:
http://www.community.terrasoft.ru/forum/topic/25237

Здравствуйте.
Элемент бизнес-процесса "Преднастроенная страница" есть в 7ке, у нас же 5ка и такого элемента для работы с БП нет. Нужна другая реализация данной задачи.

Антонина, в 5.Х есть возможность добавить в процесс элемент-действие, в действии указать «Открыть страницу». Нужные значения передать в параметрах, а их обработку написать в процессе самой страницы.

Я так и пытаюсь сделать. Меня интересует в каком именно параметре нужно передавать значение ContactAId.
вот пример кода:

var ReportSchemaUId = "56a4f892-df6b-4dac-99ad-762f56553035";//Базовая страница реестра взаимосвязей
var EntitySchemaUId = "8409eced-ba37-4a6a-a031-671fcb7be3e2";
 
Guid ContactId = ReadDataUserTask2.ResultEntity.GetTypedColumnValue<Guid>("ContactId");
RelationUserTask.OpenerInstanceId = InstanceUId;
RelationUserTask.PageUId =  new Guid("56a4f892-df6b-4dac-99ad-762f56553035");
var parameters =  
      new Dictionary<string, string> {
            {"ContactAId", ContactId.ToString()},
			{"DataSourceUId", EntitySchemaUId.ToString()},
			{"TreeGridId", EntitySchemaUId.ToString()}//,
      };
 
RelationUserTask.PageParameters = parameters;
 
RelationUserTask.Centered = true;
RelationUserTask.CloseOpenerOnLoad = false;
 
var SelectedActiveRows = new List<Guid>();
SelectedActiveRows.Add(new Guid(DocumentId.ToString()));
 
var selectedRows = new Dictionary<string, object>();
selectedRows.Add("Item1", "Contact");
selectedRows.Add("Item2", "Id");
selectedRows.Add("Item3", SelectedActiveRows);
UserConnection.SessionData[EntitySchemaUId.ToString() + "_SelectedActiveRows"] = selectedRows;

В каком угодно, это зависит от реализации.
Главное, внутри его потом вычитать и использовать в логике страницы.
Для примера посмотрите, как из AccountEditPage в DuplicatesSearchResultModulePage передаются DuplicateSchemaId и ещё несколько параметров.

OpenDuplicatesSearchResultsUserTask.OpenerInstanceId = Page.Process.InstanceUId;
OpenDuplicatesSearchResultsUserTask.PageUId = duplicateSearchResultsPageUId;
OpenDuplicatesSearchResultsUserTask.UseCurrentActivePage = true;
OpenDuplicatesSearchResultsUserTask.PageParameters = new Dictionary<string, string>() {
	{"SchemaId", SearchForDuplicatesUserTask.SchemaId.ToString()},
	{"DuplicateSchemaId", SearchForDuplicatesUserTask.DuplicateSchemaId.ToString()},	
	{"EditPageId", SearchForDuplicatesUserTask.EditPageId.ToString()},
	{"RecordId", SearchForDuplicatesUserTask.RecordId.ToString()},
	{"DataKey", DataKey}
};
OpenDuplicatesSearchResultsUserTask.CloseMessage = "DuplicateResultsPageClosed";
		public virtual bool ChildInitScriptTaskExecute(ProcessExecutingContext context) {
			if (!Ext.IsAjaxRequest) {
	(Page.AspPage as UI.Core.Page).InitializeProfile(new ProfileKeyEventArgs());
	SchemaId = Guid.Parse(Page.GetParameterValue("SchemaId").ToString());
	DuplicateSchemaId = Guid.Parse(Page.GetParameterValue("DuplicateSchemaId").ToString());	
	EditPageId = Guid.Parse(Page.GetParameterValue("EditPageId").ToString());
	RecordId = Guid.Parse(Page.GetParameterValue("RecordId").ToString());
	DataKey = Page.GetParameterValue("DataKey").ToString();	
	Page.Grid.PageInstance.Process.SetPropertyValue("SchemaId", SchemaId);
	Page.Grid.PageInstance.Process.SetPropertyValue("DuplicateSchemaId", DuplicateSchemaId);	
	Page.Grid.PageInstance.Process.SetPropertyValue("EditPageUId", EditPageId);
	Page.Grid.PageInstance.Process.SetPropertyValue("DataKey", DataKey);
	Page.Grid.PageInstance.Process.SetPropertyValue("RecordId", RecordId);
}
return true;
		}

Александр, добрый день.
При нажатии на кнопку запускаю БП.
В БП написала такой код и открываю страницу:

var ReportSchemaUId = "56a4f892-df6b-4dac-99ad-762f56553035";//Базовая страница реестра взаимосвязей
var EntitySchemaUId = "533e9db5-b10c-44a9-bbef-168af653d2d5";//Взаимосвязь
var openerInstanceId = "8409eced-ba37-4a6a-a031-671fcb7be3e2";//Взаимосвязь (представление)
 
var EntitySchema = UserConnection.EntitySchemaManager.GetInstanceByName("Relationship");
Guid ContactId = ReadDataUserTask2.ResultEntity.GetTypedColumnValue<Guid>("ContactId");
 
var parameters = new Dictionary<string, string> {
    {"openerInstanceId", EntitySchemaUId},
	{"contactAId", ContactId.ToString()}
};
RelationUserTask.PageParameters = parameters;
Guid clientDocumentGridPageUId = new Guid("56a4f892-df6b-4dac-99ad-762f56553035");
RelationUserTask.PageUId = clientDocumentGridPageUId;
RelationUserTask.Centered = true;
RelationUserTask.CloseOpenerOnLoad = false;

Далее на Базовой странице реестра взаимосвязей добавила код на событие PageLoadComplete:

			Page.TreeGrid.Clear();
 
				  try
            {
			Guid contactAId = Guid.Parse(Page.Request.QueryString["contactAId"]);
			Guid sysSchemaEntity = Guid.Parse(Page.Request.QueryString["openerInstanceId"]);			
 
			Page.Label1.Caption=contactAId.ToString();
                var opportunityFilter = Page.DataSource.CurrentStructure.CreateIsNullFilter(Page.DataSource.Schema, "ContactA");
                Page.DataSource.CurrentStructure.Filters.Add(opportunityFilter);
                    var applicationFilter = Page.DataSource.CurrentStructure.CreateFilterWithParameters(Page.DataSource.Schema, FilterComparisonType.Equal,
                    "ContactA", contactAId);
                    Page.DataSource.CurrentStructure.Filters.Add(applicationFilter);                          
            }
            catch
            {
 
            }
            Page.DataSource.LoadRows();
           Page.TreeGrid.RefreshData();

Что получилось:
При нажатии на кнопку открывается страница реестра взаимосвязей.
Далее нажимаю на ней на кнопку Добавить - Контакт и тут происходит свал системы.

Exception Message: Object reference not set to an instance of an object.
Exception Type: System.NullReferenceException
Exception Source: TSBpm
 
Exception Stack Trace:
   at Terrasoft.WebApp.BaseRelationshipEditPageEventsProcess`1.ScriptTask1Execute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Что я не доделала или сделала не так? Как исправить?

Где-то внутри ScriptTask1Execute в функцию вместо объекта попадает null. Нужно отлаживаться, чтобы понять, где именно.

Я посмотрела не хватает для полноценной работы параметров:

var ParentEntityId = Guid.Parse(Page.Request.QueryString["ParentEntityId"]);
var MainEntitySchemaId = Guid.Parse(Page.Request.QueryString["MainEntitySchemaId"]);
var ParentEntitySchemaId = Guid.Parse(Page.Request.QueryString["ParentEntitySchemaId"]);

В БП я их определила и передаю, на странице реестра взаимосвязей они тоже подхватываются.
А как передать их на страницу редактирования взаимосвязи?

Тоже через параметры. При стандартной логике кнопки «Добавить» и «Изменить» на странице реестра открывают окна-карточки при помощи JS, формируемого в функции GetRegisterAddPageScript и ей подобных.

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

Использую действие Добавление данных (AddDataUserTask1)
Мне нужно создать активность по клиенту типа SMS (в допустимых действиях только Задача, Звонок и E-mail)

var Body = (string)SysSettings.GetValue(UserConnection, "RKO_OpeningAccount");
Guid SchemaId = new Guid("C449D832-A4CC-4B01-B9D5-8A12C42A9F89");
var DefValues= new Dictionary
        string, object>();
DefValues.Add("Recepient", Phone);
DefValues.Add("MsgSubject", "Информирование об открытии счета");
DefValues.Add("Body", Body);
DefValues.Add("StartDate", DateTime.Now);
DefValues.Add("DueDate", DateTime.Now);
DefValues.Add("OwnerId", "410006E1-CA4E-4502-A9EC-E54D922D2C00");//Петр Петрович Петров
DefValues.Add("AuthorId", "410006E1-CA4E-4502-A9EC-E54D922D2C00");//Петр Петрович Петров
DefValues.Add("StatusId", "4BDBB88F-58E6-DF11-971B-001D60E938C6");//Завершена
DefValues.Add("DetailedResult", "Cмс отправлено");
DefValues.Add("ContactId", Contact);
DefValues.Add("AccountId", Account);
DefValues.Add("EmployeeFolder", Otdelenie);
DefValues.Add("LeadId", LeadId);

AddDataUserTask1.EntitySchemaId = SchemaId;
AddDataUserTask1.RecordDefValues = DefValues;

return true;

Выходит ошибка : Неявное преобразование типа "System.Collections.Generic.Dictionary" в "Terrasoft.Core.Process.EntityColumnMappingValues" невозможно

Нравится

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

Если Вы хотите просто создать в скрипте новую активность с нужными значениями полей, а потом сохранить в базу с отработкой всей логики на объекте, то можно воспользоваться методами Entity. См., например, как это сделано:

var communication = new Activity(userConnection);
				communication.SetDefColumnValues();
				if (isEmail) {
					communication.Title = (string)Terrasoft.Core.Configuration.SysSettings.GetValue(userConnection, "EmailTypeCommunicationPrintingFormText");
				} else if (isImmidiateProcessing) {
					communication.StatusId = ActivityConsts.CompletedStatusUId;
					communication.Title = "Коммуникация по обработке на месте" ;
				} else {
					communication.Title = "Коммуникация с письменным ответом";
				}
				communication.Commentary = serviceRequestEntity.GetTypedColumnValue<string>(shortDescColumn.Name);
				if(isEmail) {
					var contactEmail = serviceRequestEntity.GetTypedColumnValue<string>(emailColumnName.Name);
					if (!string.IsNullOrEmpty(contactEmail)) {
						communication.Recepient = string.Format("{0} <{1}>; ", serviceRequestEntity.GetTypedColumnValue<string>(contactNameColumn.Name), contactEmail);
					}
					communication.HtmlBody = communication.Title; 
				} else if(isSms) {
					communication.Recepient = serviceRequestEntity.GetTypedColumnValue<string>(contactPhoneColumn.Name);
				}
				communication.ContactId = serviceRequestEntity.GetTypedColumnValue<Guid>(contactIdColumn.Name);
				communication.TypeId = activityTypeId;
				communication.ActivityCategoryId = ActivityConsts.ToDoCategoryUId;
				communication.MessageTypeId = ActivityConsts.OutgoingEmailtypeUId;
				communication.ServiceCallId = recordUId;
				communication.Save();

Александр, я поступила по-другому - создала новый процесс на добавление данных и передаю туда данные из основного событийного подпроцесса.
Есть вопросы по поводу сериализациии в БД - для чего она нужна и везде ли она нужна?

При добавление в событийный подпроцесс процесса по добавлению данных получена ошибка: Элемент "CreatedSMS" не может быть сериализован в БД, т.к. не сериализуется процесс.
Методом перебора вариантов получилось сохранить страницу только после того, как в процессе по добавлению данных убрала галочку «сериализовать в БД», все сохранилось и работает.
НО! Мне нужно в основной событийный подпроцесс после создания объекта добавить еще один процесс (старый, написан не мной) и опять такая же проблема: Элемент "SendSmsProcess" не может быть сериализован в БД, т.к. не сериализуется процесс.

Сериализация элемента процесса в БД нужна для того, чтобы после перерыва в выполнении процесса (например, пока пользователь не выполнит задачу) в нём хранились те же значения, что и до.

Могу ли я убрать из старого процесса галочку сериализации? Или как мне лучше всего поступить?

Анастасия, это зависит от конкретного процесса.
Уточните у того, кто его делал.

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

Коллеги, добрый день! На дев площадке добавили колонки в разделы Контрагенты, Конфигурации и Обращения. После добавления разделы отображались корректно. После фиксации изменений, обновления пакета из хранилища на прод площадку и последующей компиляции конфигурации, разделы Конфигурации и Обращения стали отображаться некорректно. В разделе Конфигурации при открытии существующей записи отображается окно новой записи: https://yadi.sk/d/kHsdJtiL3Gg3Wd , в консоли появляются следующие ошибки https://yadi.sk/d/sXIPRxkn3Gg3eF,приложение ругается на новые колонки (Недопустимое имя столбца) В разделе Обращения при открытии записи не отображается номер обращения https://yadi.sk/d/JuO8WvQ63Gg3sq в консоли также появляются аналогичные ошибки из-за созданных колонок https://yadi.sk/d/slVgPRYq3Gg3z3 Есть способ лечения ошибок с помощью удаления этих колонок с помощью мастера раздела и из конфигурации, последующей фиксации изменений в хранилище и переносе обратно на дев площадку, но это неправильно. Также после обновления пакета из хранилища, возникает ошибка для пользовательского бизнес процесса https://yadi.sk/d/gn6EsdX33Gg6zc
Какова природа данной проблемы?

Нравится

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

Я, конечно, не разработчик, но в почему всё в пакете Custom? Его же, вроде, нельзя корректно перенести.

"Сидоров Александр Валерьевич" написал:всё в пакете Custom?

Разве? всё вроде как в пакете WS_FirstOfd
"Голикова Елена Евгеньевна" написал:Какова природа данной проблемы?

Вы только компилировали? Или делали все 5 шагов? (генерация-компиляция-данные-скрипты-обновление структур)?

"Варфоломеев Данила" написал:Разве? всё вроде как в пакете WS_FirstOfd

Да, Вы правы. На этом скрине мне показалось, что открыт пакет Custom https://yadi.sk/d/gn6EsdX33Gg6zc

"Варфоломеев Данила" написал:
Сидоров Александр Валерьевич пишет:

всё в пакете Custom?

Разве? всё вроде как в пакете WS_FirstOfd

Голикова Елена Евгеньевна пишет:

Какова природа данной проблемы?

Вы только компилировали? Или делали все 5 шагов? (генерация-компиляция-данные-скрипты-обновление структур)?


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

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

Ответ на вопрос "Какова природа данной проблемы?" - различие между тестовой средой и продуктовой среда, на прод вносятся изменения на прямую миную тест.

Выполните следующие рекомендации:

  • Убедитесь в корректности зависимостей пакетов и их соответствие между тест и прод средой
  • Откройте все объекты участвующие в разделе, убедитесь, что все поля заполнены корректно, после чего пересохраните и опубликуйте. Все возникшие конфликты устраните
  • Переоткройте каждую схему/модуль раздела и пересохраните/скомпилируйте
  • Откройте процесс и выполните его пересохранение, возникшие ошибки устраните

Не забудьте все исправления внести тестовую среду.

Обратите внимание на системную настройку SchemaNamePrefix на прод среде, она должна совпадать с настройкой на тест среде.

"Терещук Павел" написал:

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

Ответ на вопрос "Какова природа данной проблемы?" - различие между тестовой средой и продуктовой среда, на прод вносятся изменения на прямую миную тест.

Выполните следующие рекомендации:

  • Убедитесь в корректности зависимостей пакетов и их соответствие между тест и прод средой
  • Откройте все объекты участвующие в разделе, убедитесь, что все поля заполнены корректно, после чего пересохраните и опубликуйте. Все возникшие конфликты устраните
  • Переоткройте каждую схему/модуль раздела и пересохраните/скомпилируйте
  • Откройте процесс и выполните его пересохранение, возникшие ошибки устраните

Не забудьте все исправления внести тестовую среду.

Обратите внимание на системную настройку SchemaNamePrefix на прод среде, она должна совпадать с настройкой на тест среде.


Помогла пошаговая компиляция и сохранение всех объектов и схем. Префиксы названий объектов были настроены на обоих площадках корректно. Спасибо

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

Может кто сталкивался. Прошу прокомментировать или помочь

5 версия Сервис деск.

В реестре, для всех ролей, кроме "системный администратор" появляются надписи нет доступа>.
На самом деле, доступ к объектам, колонкам и всему, что только возможно - предоставлен группе "Все сотрудники".

Снятие администрирования к колонкам и прочему - ни к чему не приводит. куки и редис - чистили.
Странно, что эта надпись не появляется для полей с типом "справочник". Б
Буду очень благодарна :)

Нравится

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

Марина, судя по скриншоту, это какой-то новый или значительно переработанный раздел. Возможно, в нём работа с администрированием по записям не предусматривалась или специально ограничена.
Лучше обратиться к тем, кто его разработали, и уточнить по работе этого механизма для указанного раздела.

Нашла что-то подобное, но предложенный вариант не сработал
http://www.community.terrasoft.ru/forum/topic/9817

В стандартном разделе контактов таких полей нет. Возможно, все эти поля пустые в базе и таким образом отображаются в окне. По ссылке выше дан ряд рекомендаций, в том числе пересоздание колонок и перезапуск пула.

Александр, это не новый раздел.
Это я сама создала новое окно, куда вывела отфильтрованные данные из объекта Контакты
там, где есть значения в карточке раздела КОНТАКТЫ- они отображаются. Если значения отсутствуют, то пишется - нет доступа
Например, Имя и Фамилия - есть в карточках. они отображаются в окне
А поле Отчество - не отображается. Хотя я могу войти в карточку Контакта и внести Отчество.

не поняла: в КОНТАКТАХ нет Фамилия, имя, отчество?

Поля Тип, серия, номер - это поля паспотра - ест старый паспорт и новый(если замуж кто вышел. Я создала эти поля в карточке Контакта (и деталь есть)

Нет, в коробке есть единое поле ФИО. Возможно, новые поля создавались после раздачи прав и для них что-то не раздалось.

Вот как раз у меня вопрос: что не раздалось? если войдя в карточку КОНТАКТЫ, я могу всё редактировать.
Александр, это вот Вы зачем мне написали, что что-то не раздалось, хотя у меня был вопрос: коллеги, что могло не раздаться?

Могли не раздаться права доступа по полям.
Вы можете редактировать, поскольку у системных администраторов есть доступ ко всему.

"Милова Марина Федоровна" написал:На самом деле, доступ к объектам, колонкам и всему, что только возможно - предоставлен группе "Все сотрудники".

Отображаемые значения могут не соответствовать реальности, если колонки добавлялись позже.

так в результате, где искать деффект?

К сожалению, поскольку это окно, колонки и прочее не являются стандартными, по одному скриншоту сложно понять причину такого поведения.
Вы можете провести отладку и посмотреть, что реально находится в полях Entity текущей строки реестра при работе под администратором и под пользователем.

Марина, попробуйте в администрировании объекта КОНТАКТЫ раздать права по данным колонкам для конкретной роли, а также дать полный доступ к записям.

Дмитрий, спасибо.
Всё получилось

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