Добрый день Комрады.
В общем пытаюсь реализовать отправку уведомления.
Проблема в том что та инструкция которая есть не подходит для моего случая.
https://academy.terrasoft.ru/documents/technic-sdk/7-12/kak-sozdavat-po…
В Бизнес процессе происходит следующее, стоит событие на изменение стадии Продажи.
Потом идет Скрипт-таск. Интерпретируемый.
Проблема в том что при вызове
var remindingConfig = new RemindingConfig(campaign);
Ругается на ошибку
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в Terrasoft.Core.Entities.Entity.get_PrimaryColumnValue() в Terrasoft.Configuration.RemindingConfig..ctor(Entity entity) в Terrasoft.Core.Process.UsrProcess4MethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context) в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
var id = Get<Guid>("ProcessSchemaParameter1"); Set("Par2",id.ToString()); var userConnection = context.UserConnection; var campaignESQ = new EntitySchemaQuery(userConnection.EntitySchemaManager, "Opportunity"); var campaignTitle = campaignESQ.AddColumn("Title").Name; var campaignid = campaignESQ.AddColumn("Id").Name; var campaign = campaignESQ.GetEntity(userConnection, id); if (campaign == null) { return false; } DateTime remindTime = DateTime.Now; IRemindingTextFormer textFormer = ClassFactory.Get<UsrLeadRemindingTextFormer1>( new ConstructorArgument("userConnection", userConnection)); string leadName = campaign.GetTypedColumnValue<string>(campaignTitle); string subjectCaption = textFormer.GetBody(new Dictionary<string, object> { {"LeadName", leadName} }); string popupTitle = textFormer.GetTitle(null); var remindingConfig = new RemindingConfig(campaign); remindingConfig.AuthorId = userConnection.CurrentUser.ContactId; remindingConfig.ContactId = userConnection.CurrentUser.ContactId; remindingConfig.NotificationTypeId = RemindingConsts.NotificationTypeRemindingId; remindingConfig.RemindTime = remindTime; remindingConfig.Description = subjectCaption; remindingConfig.PopupTitle = popupTitle; var remindingUtilities = ClassFactory.Get<RemindingUtilities>(); remindingUtilities.CreateReminding(userConnection, remindingConfig); return true;
Может кто нибудь сделать внятную инструкцию как отправлять уведомления через БП скриптом ???
Нравится
Добрый день!
Судя по call stack у вас campaign == null
Проверьте
Для того, чтобы понять что не так, нужно произвести debug. С виду все нормально. Обратитесь в поддержку, но для отладки нужна будет ссылка на обезличенную копию БД. Только таким образом можно будет установить причину, т.к. отладка по картинке сложная штука :)