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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.11.2010, 14:54   #1  
CCNP|Leonid is offline
CCNP|Leonid
sys*#**#**#**#**#*
 
9 / 10 (1) +
Регистрация: 15.11.2010
Адрес: Екатеринбург
Добрый вечер.
А на какое событие вещать плагин?
Старый 21.11.2010, 15:11   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от CCNP|Leonid Посмотреть сообщение
Добрый вечер.
А на какое событие вещать плагин?
Создание контакта. Message - Create, Primary Entity - contact.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 22.11.2010, 22:59   #3  
CCNP|Leonid is offline
CCNP|Leonid
sys*#**#**#**#**#*
 
9 / 10 (1) +
Регистрация: 15.11.2010
Адрес: Екатеринбург
Добрый вечер. Ускоренными темпами осваиваю шарп и начинаю кодить легкие вещи для CRM. Однако работа одного из отделов очень затруднена уже неделю. Поэтому, друзья, я продолжу Вас вырезано цензурой п.4.1 правил форума своими проблемами.

X++:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using Microsoft.Crm.Sdk.Query;
using System.Web.Services.Protocols;

namespace LeadConversionPlugin
{
    public class ContactCreationHandler : IPlugin
    {
        #region IPlugin Members

        public void Execute(IPluginExecutionContext context)
        {
            if (context.MessageName == MessageName.Create &&
                context.InputParameters.Contains("Target") &&
                context.InputParameters["Target"] is DynamicEntity)
            {
                DynamicEntity entity = (DynamicEntity)context.InputParameters["Target"];

                //Проверяем является ли значение контактом
                if (entity.Name != EntityName.contact.ToString())
                    return;
                // Проверяем есть ли у контакта связь с интересом
                if (!entity.Properties.Contains("originatingleadid"))
                    return;

                //Получаем Guid интереса
                Guid leadid = ((Lookup)entity["originatingleadid"]).Value;

                //получаем Guid контакта
                Guid contactid = (Guid)context.OutputParameters["Id"];

                ICrmService crmservice = context.CreateCrmService(true);

                //Параметры ссылки
                QueryExpression relationshipCheckQuery = new QueryExpression();
                relationshipCheckQuery.EntityName = "new_project";
                //Получаем ID проекта
                relationshipCheckQuery.ColumnSet = new ColumnSet(new string[] { "new_projectid" });//new_project это название поля на форме интереса, у обьекта new_project ключ new_projectid
                //Устанавливаем ссылку где 
                //new_new_project_lead n:1 связи между Интересом и проектом 
                //new_projectid название атрибута в источнике, a new_project на форме интереса.
                LinkEntity link = relationshipCheckQuery.AddLink("new_new_project_lead", "new_project", "new_projectid");
                link.LinkCriteria.AddCondition("leadid", ConditionOperator.Equal, leadid);

                RetrieveMultipleRequest request = new RetrieveMultipleRequest();
                request.Query = relationshipCheckQuery;
                request.ReturnDynamicEntities = true;

                List<BusinessEntity> list = ((RetrieveMultipleResponse)crmservice.Execute(request)).BusinessEntityCollection.BusinessEntities;

                foreach (DynamicEntity de in list)
                {
                    AssociateEntitiesRequest assrequest = new AssociateEntitiesRequest();
                    assrequest.Moniker1 = new Moniker("contact", contactid);
                    assrequest.Moniker2 = new Moniker("new_project", ((Key)de["new_projectid"]).Value);
                    assrequest.RelationshipName = "new_new_project_contactBase";
                    crmservice.Execute(assrequest);
                }
            }
        }

    }
        #endregion IPlugin Members
}
Проект подписан, Плагин зарегистрирован, шаг зарегистрирован как сказали, сервисы црм работают, дебаггер запущен, однако делаю я квалификацию интереса в контакт и ничего. Вообще ничего. Дебаггер молчит. отношение контакта к проекту девственно чистое.
И вдобавок Саня, бывший программист вырезано цензурой п.4.1 правил форума все что делал, сейчас никаких исходников, вообще ничего нет оказывается.

ps. Если кому что по сетям помочь, сервер под тесты предоставить не вопрос - обращайтесь.

Последний раз редактировалось a33ik; 22.11.2010 в 23:56.
Старый 22.11.2010, 23:57   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Скриншоты регистрации плагинов приложите, пожалуйста и перепроверьте, что имя связи именно "new_new_project_contactBase" (потому что мне кажется, что это название таблицы-связки, а не связи).
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 23.11.2010 в 02:02.
Старый 23.11.2010, 18:37   #5  
CCNP|Leonid is offline
CCNP|Leonid
sys*#**#**#**#**#*
 
9 / 10 (1) +
Регистрация: 15.11.2010
Адрес: Екатеринбург
Цитата:
Сообщение от a33ik Посмотреть сообщение
Скриншоты регистрации плагинов приложите, пожалуйста и перепроверьте, что имя связи именно "new_new_project_contactBase" (потому что мне кажется, что это название таблицы-связки, а не связи).
Перепроверил, действительно это было имя таблички связи N:N в базе, исправил, однако симптомы те же. Ничего не происходит. Cкриншот PluginRegistration во вложении.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 260
Размер:	248.3 Кб
ID:	6421   Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 334
Размер:	239.0 Кб
ID:	6422  


Последний раз редактировалось CCNP|Leonid; 23.11.2010 в 18:45.
Старый 24.11.2010, 16:33   #6  
CCNP|Leonid is offline
CCNP|Leonid
sys*#**#**#**#**#*
 
9 / 10 (1) +
Регистрация: 15.11.2010
Адрес: Екатеринбург
Возник такой вопрос, вот этим кодом получается мы получаем id проекта привязанного к интересу посредством запроса к базе на выборку значения поля new_project

X++:
                //Параметры ссылки
                QueryExpression relationshipCheckQuery = new QueryExpression();
                relationshipCheckQuery.EntityName = "new_project";
                //Получаем ID проекта
                relationshipCheckQuery.ColumnSet = new ColumnSet(new string[] { "new_projectid" });//new_project это название поля на форме интереса, у обьекта new_project ключ new_projectid
Теги
бизнес-партнер, интересы, контакт, связанные сущности, связь n:n, связи

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание контактов при дисквалификации интереса Dekan Dynamics CRM: Разработка 17 02.10.2014 18:44
Неизвестная ошибка при преобразовании интереса в сделку Dicora Dynamics CRM: Администрирование 5 13.07.2010 16:59
Преобразование интереса и пользовательские объекты Mycroft Dynamics CRM: Разработка 2 13.04.2010 08:04
Изменение владельца "Интереса" CRM 3.0 Gogus Dynamics CRM: Функционал 3 20.08.2008 19:32
создание интереса SKYNET! Dynamics CRM: Разработка 8 16.08.2008 14:40

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

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

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