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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.05.2009, 12:17   #1  
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
Lightbulb
Подчистил код плагина. Попробуйте это:

Код:
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
{
    public class MyPlugin : IPlugin
    {
        private string _secureInformation;
        private string _unsecureInformation;
        public MyPlugin(string unsecureInfo, string secureInfo)
        {
            _secureInformation = secureInfo;
            _unsecureInformation = unsecureInfo;
        }
        public void Execute(IPluginExecutionContext context)
        {
            DynamicEntity entity = null;
            if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
            {
                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 = new ColumnSet();
                    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 = new QueryByAttribute();
                query.ColumnSet = new AllColumns();
                query.EntityName = EntityName.productpricelevel.ToString();
                query.Attributes = new string[] { "productidname" };
                query.Values = new string[] { new_productname };

                BusinessEntityCollection retrieved = crmService.RetrieveMultiple(query);

                foreach (DynamicEntity product in retrieved.BusinessEntities)
                {
                    product["amount"] = new CrmDecimal(sum);
                    crmService.Update(product);
                }
            }
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                throw new InvalidPluginExecutionException(String.Format("An error occurred in the {0} plug-in.", this.GetType().ToString()), ex);
            }
        }
    }
}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 08.05.2009, 12:27   #2  
Elka is offline
Elka
Участник
Аватар для Elka
 
431 / 22 (1) +++
Регистрация: 02.12.2008
Адрес: г. Ростов-на-Дону
Спасибо!!
Пока не изменилось ничего..
"для отладки - необходимо атачиться к w3p процессу." А это как? (стыдно, но правда не знаю.. )
Старый 08.05.2009, 12:38   #3  
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
Lightbulb
Цитата:
Сообщение от Elka Посмотреть сообщение
Спасибо!!
Пока не изменилось ничего..
"для отладки - необходимо атачиться к w3p процессу." А это как? (стыдно, но правда не знаю.. )
Для того, чтобы плагин дебажить его сначала надо зарегистрировать.
Что говорит плагин регистратор при попытке регистрации?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

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

Последний раз редактировалось a33ik; 08.05.2009 в 12:50.
Старый 08.05.2009, 13:05   #4  
Elka is offline
Elka
Участник
Аватар для Elka
 
431 / 22 (1) +++
Регистрация: 02.12.2008
Адрес: г. Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Для того, чтобы плагин дебажить его сначала надо зарегистрировать.
Что говорит плагин регистратор при попытке регистрации?

В Plagin Registration Tool нажимаю Register -> Register New Assembly
Когда выбираю файл EditPriceList.dll (я его из папки Debug беру..в Release он тоже есть и еще там лежит файл key.snk.. Так и надо? )
Выскакивает ошибка "Unable to load PLugin Assembly" и текст
Unhandled Exception: System.Runtime.Serialization.SerializationException: Тип "PluginRegistrationTool.CrmOrganization" в сборке "PluginRegistration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" не помечен как сериализуемый.
Server stack trace:
в System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
в System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
в System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeMessageParts(ArrayList argsToSerialize)
в System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage..ctor(IMethodReturnMessage mrm)
в System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage.SmuggleIfPossible(IMessage msg)
в System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch(Byte[] reqStmBuff, SmuggledMethodCallMessage smuggledMcm, SmuggledMethodReturnMessage& smuggledMrm)
в System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(Object[] args)

Exception rethrown at [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
в PluginRegistrationTool.AssemblyReader.RetrievePluginsFromAssembly(String path)
в PluginRegistrationTool.RegistrationHelper.RetrievePluginsFromAssembly(String pathToAssembly)
в PluginRegistrationTool.PluginRegistrationForm.btnLoadAssembly_Click(Object sender, EventArgs e)
Старый 08.05.2009, 13:15   #5  
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
Очень странно. За годичную практику такого не было у меня.
Ещё такой вопрос. Под каким фреймворком собираете плагин? Нужно под 2.0.

Гугл на вопрос по такой ошибке мне ничего не сказал...
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 08.05.2009, 13:41   #6  
Elka is offline
Elka
Участник
Аватар для Elka
 
431 / 22 (1) +++
Регистрация: 02.12.2008
Адрес: г. Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Очень странно. За годичную практику такого не было у меня.
Ещё такой вопрос. Под каким фреймворком собираете плагин? Нужно под 2.0.

Гугл на вопрос по такой ошибке мне ничего не сказал...

Я не знаю что значит "Под каким фреймворком собираете плагин". Но на моем компе , где я пытаюсь соорудить plugin , установлены
Microsoft .NET Compact Framework 1.0 Developer
Microsoft .NET Compact Framework 2.0
Microsoft .NET Framework 3.5 SP1

А это не может быть из-за того что я работаю в Microsoft Visual C# 2008 Express Edition?
Старый 08.05.2009, 13:46   #7  
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
При создании плагина - необходимо выбрать версию фреймворка под который он будет писаться. Посмотрите скриншот (должен быть 2.0).

Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 314
Размер:	48.1 Кб
ID:	4624  
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Elka (1).
Теги
c#, plugin, pluginregistrationtool, регистрация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! Three Top Tips for CRM 4.0 Plugin Development Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
haditeo: Is it possible to register different event handlers in only one assembly to be registered in Dynamics CRM Plugin ? Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
a33ik: Plugin for copying notes and attachements from lead to contact whis is converted from lead for Microsoft Dynamics CRM 4.0 Blog bot Dynamics CRM: Blogs 0 10.07.2009 17:05
Ronald Lemmen: Plugin registration tools for Visual Studio 2005 Blog bot Dynamics CRM: Blogs 0 17.04.2009 01:05
PlugIn ImageEntity Konstantin Katsovich Dynamics CRM: Разработка 3 16.01.2009 17:35

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

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

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