7.12
sales_enterprise

Уведомления через Бизнес процессы

Добрый день Комрады.

В общем пытаюсь реализовать отправку уведомления.

Проблема в том что та инструкция которая есть не подходит для моего случая.

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("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(
	                                 new ConstructorArgument("userConnection", userConnection));

string leadName = campaign.GetTypedColumnValue(campaignTitle);
string subjectCaption = textFormer.GetBody(new Dictionary {
            {"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.CreateReminding(userConnection, remindingConfig);


return true;

 

Может кто  нибудь сделать внятную инструкцию как отправлять уведомления через БП скриптом ???

Нравится

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

Добрый день!

Судя по call stack у вас campaign == null

Проверьте

Артем Гура,

А нет, не заметил проверку :)

Для того, чтобы понять что не так, нужно произвести debug. С виду все нормально. Обратитесь в поддержку, но для отладки нужна будет ссылка на обезличенную копию БД. Только таким образом можно будет установить причину, т.к. отладка по картинке сложная штука :)

Спасибо!

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