|
02.11.2009, 10:36 | #1 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
Доброе утро! Стал проверять передались ли параметры из 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); }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
03.11.2009, 10:31 | #2 |
Участник
|
|
|
03.11.2009, 10:36 | #3 |
Чайный пьяница
|
А шаг Workflow удачно выполнился?
Попробуйте создавать файл на сервере для начала.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
03.11.2009, 10:58 | #4 |
Участник
|
|
|
03.11.2009, 11:33 | #5 |
Чайный пьяница
|
Врядли. С точки зрения работы с файловой системы - все работы выполняются в контексте учётной записи под которой запущен асинхронный сервис CRM.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
03.11.2009, 11:43 | #6 |
Участник
|
|
|
05.11.2009, 09:44 | #7 |
Участник
|
По ходу дела возникла вот какая проблема:
Хочу вывести в текстовый файл результат работы одной процедуры: Код: StreamWriter Sw1 = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Tarasov.txt"); Sw1.Write(ConnectToSite(url)); Sw1.Close(); А вот код самой процедуры: Код: public static string ConnectToSite(string link)//подключение к сайту и загрузка html-кода { string Code = ""; try { string ip = "192.168.0.7";//получение адреса прокси-сервера string port = "3128"; //получение номера порта WebProxy proxyObject = new WebProxy(ip + ":" + port, true);//передача параметров прокси WebClient client = new WebClient(); proxyObject.Credentials = CredentialCache.DefaultNetworkCredentials;//передача параметров аутентификации по умолчанию client.Proxy = proxyObject; Code = new Regex(@"\s+", RegexOptions.Compiled).Replace(client.DownloadString(link), " ").Normalize();//нормализация кода страницы } catch { } return Code; } |
|