Примеры сценариев

Отправка сообщения в чат бот Telegram

При создании задачи в бизнес процессе можно отправить пользователю сообщение в чат бот Telegram:

public override void OnTaskCreate (ITaskBase task, P_SupplierAdvPayment context)
{
	var wtask = task as IWorkflowTaskBase;
  	// {3d701012-72a0-4f87-8b27-5405c91d7181} - Uid задачи на схеме
  	if (wtask != null && wtask.WorkflowBookmark.ElementUid.Equals (new Guid ("{3d701012-72a0-4f87-8b27-5405c91d7181}")) && wtask.Executor.MobilePhone != null) {
    	try {
      		GateManager.CurrentGate.SendMessage (wtask.Executor.MobilePhone, SR.T ("🖌 Подписать ПП для: {0}", context.Supplier.Name));
    	}
    	catch {
      		// ignored
    	}
  	}
}

В Telegram придет следующее сообщение:

image-1622009345537.png

Задача согласования документа в Telegram

При постановке в бизнес процессе задачи согласования документа, можно ее продублировать в Telegram:

public override void OnTaskCreate (ITaskBase task, P_SupplierAdvPayment context)
{
	// d8ef716f-f819-4578-9cde-698ba71524b1 - Uid pflfxb cjukfcjdfybz cxtnf yf c[tvt  
	SMSHelper.TelegramGateProvider.LinkWorkflowTask(new Guid("d8ef716f-f819-4578-9cde-698ba71524b1"), task, model =>
	{
      	// 542bdff7-8d93-4946-bbc3-e2941d210daf - Uid перехода Согласовано
		model.Buttons.Add(new TelegramButton { Name = "Согласовано", Emoji = "✅", ConnectorUid = new Guid("542bdff7-8d93-4946-bbc3-e2941d210daf") });
      	// c17b1064-0dbf-4372-b74d-38c84af7d05a - Uid перехода Не согласовано
		model.Buttons.Add(new TelegramButton { Name = "Отказано", Emoji = "❌", ConnectorUid = new Guid("c17b1064-0dbf-4372-b74d-38c84af7d05a") });

      	// Счет
		if (context.Invoice != null)
			model.Document = new TelegramDocument { Name = context.Invoice.Name, File = context.Invoice.CurrentVersion.File };
		
      	// Дополнительная информация
		model.Details.Add("Покупатель: " + context.Invoice.IEECustomer.Name);
      
      	// Лист согласования документа
		SMSHelper.TelegramGateProvider.AddApprovalList(model, context.Invoice);
	});
}

В результате в Telegram придет блок сообщений с кнопками:

image-1622009770424.png

При выборе действия "Отказано" задачу будет завершена и в бизнес процессе произойдет переход "Не согласовано":

image-1622009851749.png

Обычная задача бизнес процесса в Telegram

При выполнении обычной задачи бизнес процесса ее можно продублировать в Telegram, например задача подписания документа (не docflow):

public override void OnTaskCreate (ITaskBase task, P_SupplierAdvPayment context)
{
	// 1c2cbe8f-73b7-4618-930a-aeefe4ae06ff - Uid задачи на схеме
  	SMSHelper.TelegramGateProvider.LinkWorkflowTask(new Guid("1c2cbe8f-73b7-4618-930a-aeefe4ae06ff"), task, model =>
	{
      	// 5d682c20-4a47-433b-95c6-a08f97d56e68 - Uid перехода на схеме
		model.Buttons.Add(new TelegramButton { Name = "Подписано", Emoji = "🖋", ConnectorUid = new Guid("5d682c20-4a47-433b-95c6-a08f97d56e68") });
      	
      	// Файл (версия) документа
		model.Document = new TelegramDocument { File = context.PaymentOrder.File };
	});
}

В Telegramt будет сформирован блок сообщений:

image-1622010216372.png

После нажатия "Подписано" задача будет завершена и бизнес процесс пойдет дальше:

image-1622010265032.png