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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2014, 11:17   #1  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
Workflow проверка при генерации
Добрый день! Workflow генерирует для опроса токены, всё работает, но вот никак не могу сделать проверку, чтобы если уже есть такой токен в списке, то не нужно его опять генерировать, а то получается что дубликат делается. Код ниже:
X++:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;

namespace Bum.Survey.CRM.WorkflowActivity
{
    public class GenerateTokens : CodeActivity
    {
        protected override void Execute(CodeActivityContext activityContext)
        {
            IExecutionContext context = activityContext.GetExtension<IExecutionContext>();
            IOrganizationServiceFactory serviceFactory = activityContext.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService _orgService = serviceFactory.CreateOrganizationService(context.UserId);
            ITracingService tracingService = activityContext.GetExtension<ITracingService>();

            Entity survey = _orgService.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));

            if (survey.GetAttributeValue<EntityReference>("bf_survey_singleval") != null)
            {
                Entity evalobject = _orgService.Retrieve(survey.GetAttributeValue<EntityReference>("bf_survey_singleval").LogicalName,
                                                         survey.GetAttributeValue<EntityReference>("bf_survey_singleval").Id, 
                                                         new ColumnSet("regardingobjectid"));

                if (evalobject.GetAttributeValue<EntityReference>("regardingobjectid") != null)
                {
                    Entity semestraplanaieraksts = _orgService.Retrieve(evalobject.GetAttributeValue<EntityReference>("regardingobjectid").LogicalName, 
                                                                  evalobject.GetAttributeValue<EntityReference>("regardingobjectid").Id, 
                                                                  new ColumnSet(true));

                    QueryExpression qrystudprieks = new QueryExpression()
                    {
                        EntityName = "bf_st_semester_planrow",
                        ColumnSet = new ColumnSet(true)
                    };

                    qrystudprieks.Criteria.AddCondition("bf_st_semester_planro_semester_planw", ConditionOperator.Equal, semestraplanaieraksts.Id);

                    var prieksmeti = _orgService.RetrieveMultiple(qrystudprieks).Entities;

                    foreach (var prieksmets in prieksmeti)
                    {
                        if (prieksmets.GetAttributeValue<EntityReference>("bf_st_semester_planrow_semester_plan") != null)
                        {
                            Entity studsem = _orgService.Retrieve(prieksmets.GetAttributeValue<EntityReference>("bf_st_semester_planrow_semester_plan").LogicalName,
                                                                  prieksmets.GetAttributeValue<EntityReference>("bf_st_semester_planrow_semester_plan").Id,
                                                                  new ColumnSet(true));

                            if (studsem.GetAttributeValue<EntityReference>("bf_st_semester_plans_study_plan") != null)
                            {
                                Entity studplans = _orgService.Retrieve(studsem.GetAttributeValue<EntityReference>("bf_st_semester_plans_study_plan").LogicalName,
                                                                        studsem.GetAttributeValue<EntityReference>("bf_st_semester_plans_study_plan").Id,
                                                                        new ColumnSet(true));

                                if (studplans.GetAttributeValue<EntityReference>("bf_st_study_plans_student") != null)
                                {
                                    Entity students = _orgService.Retrieve(studplans.GetAttributeValue<EntityReference>("bf_st_study_plans_student").LogicalName,
                                                                           studplans.GetAttributeValue<EntityReference>("bf_st_study_plans_student").Id,
                                                                           new ColumnSet(true));

                                    Entity token = new Entity()
                                    {
                                        LogicalName = "bf_surveytoken"
                                    };

                                    token.Attributes.Remove("activityid");
                                    token.Id = Guid.NewGuid();
                                    string regardingobjecttype = "bf_survey";
                                    token["bf_surveytoken_survey"] = new EntityReference(regardingobjecttype, survey.Id);
                                    token["regardingobjectid"] = new EntityReference("bf_sudents", students.Id);

                                    _orgService.Create(token);
                                }
                            }
                        }
                    }
                }
            }     
        }
    }
}
Старый 06.05.2014, 12:44   #2  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
Справился сам.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Gareth Tucker: CRM 2013 New Features: Using Real-time Workflow for Validation Rules Blog bot Dynamics CRM: Blogs 0 07.12.2013 08:31
crminthefield: Watch out for this CRM 2011 Workflow upgrade gotcha! Blog bot Dynamics CRM: Blogs 0 07.01.2013 22:11
Удаленная работа с CRM и расширеный поиск ASheff Dynamics CRM: Разработка 64 04.06.2010 17:44
Microsoft Dynamics CRM Team Blog: Workflow E-mail Utilities Blog bot Dynamics CRM: Blogs 0 16.12.2008 23:05
Workflow: проверка на уникальность при автоматическом создании Lead'a SergeyV Dynamics CRM: Администрирование 2 02.10.2008 13:33

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:27.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.