Добрый день!

Подскажите, каков код для добавления напоминания пользователю, а также, какие поля за что отвечают.

Насколько я понял, то за уведомления отвечает таблица "Reminding"...

Спасибо!

Нравится

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

Обычно сообщения в виде жёлтой плашки вверху окна выводятся кодом вроде:

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 констант (либо «автору», либо «ответственнному»), остальные поля понятны из названия.

Александр, низкий поклон!!! Спасибо огромное!

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