Доброе утро! Стал проверять передались ли параметры из CRM. Добавил код создания файла, и чтобы туда загонялся переданный параметр:
Код:
namespace BP_CRMScaner
{
[CrmWorkflowActivity("Выполнить сканирование1", "Сканирование WEB-ресурсов")]
public class Activity1 : SequenceActivity
{
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
//получение контекста
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext workflowContext = contextService.Context;
//Зачем нужна эта строка?
ICrmService service = contextService.Context.CreateCrmService(false);
//Получаем идентификатор записи, породившей запуск бизнес-процесса
Guid _entityid = workflowContext.PrimaryEntityId;
string _entitytype = workflowContext.PrimaryEntityName;
//указываем, какие атрибуты надо получить из CRM
//ColumnSet cols = new ColumnSet();
//cols.AddColumns(new string[] {"new_url"});
//Указываем ID записи, у которой надо получить атрибуты
TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();
targetRetrieve.EntityName = _entitytype;
targetRetrieve.EntityId = _entityid;
//устанавливаем свойства метода RetrieveResponse
RetrieveRequest retrieve = new RetrieveRequest();
retrieve.Target = targetRetrieve;//из какой записи берем
retrieve.ColumnSet = new AllColumns();//что берем
retrieve.ReturnDynamicEntities = true;//о_О
RetrieveResponse retrieved = (RetrieveResponse)service.Execute(retrieve);
//Получили саму запись
DynamicEntity retrievedEntity = (DynamicEntity)retrieved.BusinessEntity;
//Получили необходимые атрибуты записи
string url = retrievedEntity.Properties.Contains("new_url") ? (string)retrievedEntity["new_url"] : string.Empty;
StreamWriter Sw = new StreamWriter("\\\\Uch5\\SHARE\\1.txt");
Sw.WriteLine(url);
Sw.Close();
//Здесь выполняется пользовательская логика
return base.Execute(executionContext);
}
Никакого файла на диске я не получил. Или так делать нельзя?