|
![]() |
#1 |
Чайный пьяница
|
При создании плагина - необходимо выбрать версию фреймворка под который он будет писаться. Посмотрите скриншот (должен быть 2.0).
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Elka (1). |
![]() |
#2 |
Участник
|
Цитата:
Ой, спасибо большое.. У меня вообще нет возможности выбора фреймворка. Наверно из-за этого все беды...Попробую найти и установить нормальную Visual Studio |
|
![]() |
#3 |
Участник
|
Добрый день! После регистрации плагина, создаю в crm продукт для возможной сделки. При сохранении возникает ошибка :"Unable to cast object of type 'Microsoft.Crm.SdkTypeProxy.productpricelevel' to type 'Microsoft.Crm.Sdk.DynamicEntity'".
В плагине так: query.EntityName = EntityName.productpricelevel.ToString(); Не знаю как исправить ![]() |
|
![]() |
#4 |
Чайный пьяница
|
![]() Цитата:
Сообщение от Elka
![]() Добрый день! После регистрации плагина, создаю в crm продукт для возможной сделки. При сохранении возникает ошибка :"Unable to cast object of type 'Microsoft.Crm.SdkTypeProxy.productpricelevel' to type 'Microsoft.Crm.Sdk.DynamicEntity'".
В плагине так: query.EntityName = EntityName.productpricelevel.ToString(); Не знаю как исправить ![]()
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#5 |
Участник
|
Цитата:
Спасибо Вам большое ![]() Вот код: using System; using System.Collections.Generic; using Microsoft.Win32; using Microsoft.Crm.Sdk.Query; // Microsoft Dynamics CRM namespaces using Microsoft.Crm.Sdk; using Microsoft.Crm.SdkTypeProxy; using Microsoft.Crm.SdkTypeProxy.Metadata; using System.Text; namespace Crm.Plugins { publicclassMyPlugin : IPlugin { privatestring _secureInformation; privatestring _unsecureInformation; public MyPlugin(string unsecureInfo, string secureInfo) { _secureInformation = secureInfo; _unsecureInformation = unsecureInfo; } publicvoid Execute(IPluginExecutionContext context) { DynamicEntity entity = null; if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] isDynamicEntity) { entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target]; } else { return; } try { ICrmService crmService = context.CreateCrmService(true); decimal sum = ((CrmMoney)entity.Properties["new_esum"]).Value; String new_productname = ""; if (entity.Properties.Contains("productid")) { ColumnSet cs = newColumnSet(); Lookup regarding = (Lookup)entity.Properties["productid"]; cs.Attributes.Add("name"); product _product = (product)crmService.Retrieve(EntityName.product.ToString(), regarding.Value, cs); if (_product == null || _product.name == null) { return; } else { new_productname = _product.name; } } QueryByAttribute query = newQueryByAttribute(); query.ColumnSet = newAllColumns(); query.EntityName = EntityName.productpricelevel.ToString(); query.Attributes = newstring[] { "productidname" }; query.Values = newstring[] { new_productname }; BusinessEntityCollection retrieved = crmService.RetrieveMultiple(query); foreach (DynamicEntity product in retrieved.BusinessEntities) { product["amount"] = newCrmDecimal(sum); crmService.Update(product); } } catch (System.Web.Services.Protocols.SoapException ex) { thrownewInvalidPluginExecutionException(String.Format("An error occurred in the {0} plug-in.", this.GetType().ToString()), ex); } } } } |
|
![]() |
#6 |
Чайный пьяница
|
![]()
Исправьте код
Код: foreach (DynamicEntity product in retrieved.BusinessEntities) { product["amount"] = newCrmDecimal(sum); crmService.Update(product); } Код: foreach (productpricelevel product in retrieved.BusinessEntities) { product.amount = new CrmDecimal(sum); crmService.Update(product); }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#7 |
Участник
|
![]() new CrmDecimal(sum) "cannot implicity convert type 'Microsoft.Crm.Sdk.CrmDecimal' to 'Microsoft.Crm.Sdk.CrmMoney" ![]() |
|
![]() |
#8 |
Участник
|
"VS 2005" vs. "VS2008"
Предлагаю продолжить ликбез...
![]() Цитата:
ASP.NET 2.0 (скриншот ниже) - т.е. все предыдущие этапы (создание, сборка, регистрация....) пройдены успешно. При попытке выбрать 2-й фреймворк при создании проекта в VS2008 я не могу создать References для System.Workflow.* - т.к. они берутся из "C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0" - система пишет, что для 2-го они не подходят. На компьютере стоят фреймворки 2-й, 3-й, 3.5 с сервис-паками. При попытке удалить и проинсталить все снова - все сыпется. Каким образом мне использовать 2-й фреймворк при создании плагина для Workflow в Visual Studio 2008? Буду признателен за подсказки. |
|
Теги |
c#, plugin, pluginregistrationtool, регистрация |
|
|