AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2009, 12:34   #31  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Воспользовался данным примером, но поле new_scandate не обновилось. Возможно ошибка в настройках CRM сервиса?
Вот код:
Код:
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            //Настройка CRM сервиса
            CrmAuthenticationToken myToken = new CrmAuthenticationToken();
            myToken.OrganizationName = "Keysystems";
            myToken.AuthenticationType = 0;
            CrmService myService = new CrmService();
            myService.Credentials = System.Net.CredentialCache.DefaultCredentials;
            myService.Url = "http://vms:5555/MSCrmServices/2007/CrmService.asmx";
            myService.CrmAuthenticationTokenValue = myToken;
            //получение контекста
            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;
            //Получили необходимые атрибуты записи
            CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now;
            string period = retrievedEntity.Properties.Contains("new_periodical") ? (string)retrievedEntity["new_periodical"]: string.Empty;
            double hours = Convert.ToDouble(period);
            DateTime time = Convert.ToDateTime(sdt.Value);
            CrmDateTime dateTime = new CrmDateTime();
            dateTime.Value = time.AddHours(hours).ToString("yyyy-MM-ddTHH:mm:ss")+"+03:00";
           
 //Обновление записи в CRM
            DynamicEntity myDEUpdate = new DynamicEntity();
            myDEUpdate.Name = "new_web";
            KeyProperty myContactGuid = new KeyProperty();
            myContactGuid.Name = "new_webid";
            Key myContactKey=new Key();
            myContactKey.Value=_entityid; //идентификатор записи породившей бизнес-процесс
            myContactGuid.Value = myContactKey;
            myDEUpdate.Properties.Add(myContactGuid);
            // Create a StringProperty with the new updated value
            StringProperty myDateU = new StringProperty();
            myDateU.Name = "new_scandate";
            myDateU.Value = dateTime.Value; ;
            myDEUpdate.Properties.Add(myDateU);
            try
                {
                myService.Update(myDEUpdate);
                }
            catch (SoapException ex)
                {
                    MessageBox.Show(ex.Detail.InnerXml);
                }
                        
             return base.Execute(executionContext);
        }
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бизнес-процесс висит в состоянии ожидания Evgenia_f Dynamics CRM: Функционал 70 21.12.2009 18:53
Странности бизнес-процесса на изменение атрибутов записи SLK Dynamics CRM: Функционал 6 19.05.2009 08:14
Событие "Назначение записи" для бизнес-процесса Lazarus Dynamics CRM: Функционал 1 22.01.2009 19:54
Работает неопубликованный бизнес-процесс sergeyjb Dynamics CRM: Разработка 1 22.12.2008 09:16
Бизнес-процесс и список ожидания Evgenia_f Dynamics CRM: Разработка 16 07.10.2008 16:22

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:05.