|
21.11.2010, 14:54 | #1 |
sys*#**#**#**#**#*
|
Добрый вечер.
А на какое событие вещать плагин? |
|
21.11.2010, 15:11 | #2 |
Чайный пьяница
|
Создание контакта. Message - Create, Primary Entity - contact.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.11.2010, 22:59 | #3 |
sys*#**#**#**#**#*
|
Добрый вечер. Ускоренными темпами осваиваю шарп и начинаю кодить легкие вещи для 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 |
Чайный пьяница
|
Скриншоты регистрации плагинов приложите, пожалуйста и перепроверьте, что имя связи именно "new_new_project_contactBase" (потому что мне кажется, что это название таблицы-связки, а не связи).
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 23.11.2010 в 02:02. |
|
23.11.2010, 18:37 | #5 |
sys*#**#**#**#**#*
|
Перепроверил, действительно это было имя таблички связи N:N в базе, исправил, однако симптомы те же. Ничего не происходит. Cкриншот PluginRegistration во вложении.
Последний раз редактировалось CCNP|Leonid; 23.11.2010 в 18:45. |
|
24.11.2010, 16:33 | #6 |
sys*#**#**#**#**#*
|
Возник такой вопрос, вот этим кодом получается мы получаем 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, связи |
|
|