Добрый день!
Подскажите, каков код для добавления напоминания пользователю, а также, какие поля за что отвечают.
Насколько я понял, то за уведомления отвечает таблица "Reminding"...
Спасибо!
Нравится
Обычно сообщения в виде жёлтой плашки вверху окна выводятся кодом вроде:
Page.BaseMessagePanel.AddMessage(WarningMessageCaption, messagePanelMessage, MessageType.Warning);
При этом текст сообщения лучше брать из локализируемой строки (справа в дереве в дизайнере БП).
Если же нужно много текста, то, возможно, стоит задизайнить отдельную карточку с текстовым полем и кнопкой ОК и показывать её.
Александр, а существует ли такой же код, только для использования в задании-сценарии (блок с C# кодом) в бизнес-процессе? Проблема в том, что это описание добавления напоминания я выполняю не в процессе модуля формы, а в отдельном простейшем БП, потому у меня нету "Page"...
Чтобы не было недоразумений, уточню следующим скрином, какие напоминания мне нужно добавлять:
А, так Вы об этих напоминаниях, теперь понял.
Такие создаются путём добавления новой записи в таблицу, дальше система сама их сама показывает.
В таблицу можно добавить при помощи класса Entity:
var remindingSchema = UserConnection.EntitySchemaManager.GetInstanceByName("Reminding"); var reminding = remindingSchema.CreateEntity(UserConnection); reminding.SetDefColumnValues(); reminding.SetColumnValue("Id", Guid.NewGuid()); reminding.SetColumnValue("AuthorId", UserConnection.CurrentUser.ContactId); reminding.SetColumnValue("ContactId", contactId); reminding.SetColumnValue("SourceId", new Guid("a66d08e1-2e2d-e011-ac0a-00155d043205")); reminding.SetColumnValue("RemindTime", UserConnection.CurrentUser.GetCurrentDateTime()); reminding.SetColumnValue("Description", string.Format(RemindingDownMask.ToString(), ServiceDataUserTask.ResultEntity.PrimaryDisplayColumnValue)); reminding.SetColumnValue("SubjectId", IncidentReadDataUserTask.ResultEntity.GetTypedColumnValue<Guid>("Id")); reminding.SetColumnValue("SubjectCaption", IncidentReadDataUserTask.ResultEntity.GetTypedColumnValue<string>("Number")); reminding.SetColumnValue("SysEntitySchemaId", new Guid("4a5122f9-493f-46a8-b757-fdddbb71a847")); reminding.Save();
Или аналогично при помощи более низкоуровневого Insert:
Insert insert = new Insert(UserConnection) .Into("Reminding") .Set("Id", Column.Parameter(Guid.NewGuid())) .Set("CreatedOn", Column.Parameter(DateTime.UtcNow)) .Set("CreatedById", Column.Parameter(UserConnection.CurrentUser.ContactId)) .Set("ModifiedOn", Column.Parameter(DateTime.UtcNow)) .Set("ModifiedById", Column.Parameter(UserConnection.CurrentUser.ContactId)) .Set("SubjectId", Column.Parameter(ContactConsts.SupervisorUId)) .Set("SourceId", Column.Parameter(RemindingConst.AuthorSourceTypeUId)) .Set("ContactId", Column.Parameter(UserConnection.CurrentUser.ContactId)) .Set("RemindTime", Column.Parameter(DateTime.UtcNow)) .Set("AuthorId", Column.Parameter(ContactConsts.SupervisorUId)) .Set("Description", Column.Parameter(description)) .Set("SysEntitySchemaId", Column.Parameter(UserConnection.EntitySchemaManager.GetInstanceByName("Contact").UId)); insert.Execute();
Примеры из разных мест, поиском можно найти ещё.
Поле SysEntitySchemaId задаёт Id нужной таблицы раздела, SubjectId — Id записи в нём, о которой напоминаем, SourceId — одна из 2 констант (либо «автору», либо «ответственнному»), остальные поля понятны из названия.