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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2010, 19:11   #1  
Krom is offline
Krom
Участник
 
28 / 10 (1) +
Регистрация: 10.02.2010
Простой вопрос по плагину
Пишу плагин первый раз. Задача следующая: при создании product создавать и прикреплять productpricelevel
Код такой
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Text;
using SDK = Microsoft.Crm.Sdk;
using SDKType = Microsoft.Crm.SdkTypeProxy;
using Prodd.CrmSdk;

namespace Prodd
{
    public class Class1 : SDK::IPlugin
    {
        public void Execute(SDK::IPluginExecutionContext context)
        {
            XmlDocument xmlConfig = new XmlDocument();
            xmlConfig.Load(@"C:\WIN2003\system32\inetsrv\PluginsConfig.xml");
            XmlNode rootConfig = xmlConfig.FirstChild;

            string serverName = rootConfig["server"].InnerText;
            string orgName = rootConfig["organization"].InnerText;

            CrmAuthenticationToken token = new CrmAuthenticationToken();
            token.AuthenticationType = 0;
            token.OrganizationName = orgName;
            CrmService service = new CrmService();
            service.Url = "http://" + serverName + "/mscrmservices/2007/CrmService.asmx";
            service.CrmAuthenticationTokenValue = token;
            service.Credentials = System.Net.CredentialCache.DefaultCredentials;
            //-----------------------------------------------------------------------------------------

            SDK::DynamicEntity currentPrice = context.PostEntityImages["Prod"] as SDK::DynamicEntity;
            // Продукт
            Lookup lookupProduct = new Lookup();
            lookupProduct.Value = ((SDK::Lookup)currentPrice.Properties["productid"]).Value;
            // Прайс-лист
            Lookup lookupPrice = new Lookup();
            lookupPrice.Value = ((SDK::Lookup)currentPrice.Properties["pricelevelid"]).Value;           
            // Единица измерения
            Lookup lookupUom = new Lookup();
            lookupUom.Value = ((SDK::Lookup)currentPrice.Properties["defaultuomscheduleid"]).Value;

            decimal price = ((SDK::CrmMoney)currentPrice.Properties["price"]).Value;
            if (((SDK::CrmMoney)currentPrice.Properties["price"]) == null)
                price = 0;
            //создаем прайс-лист
            productpricelevel bePriceUpdate = new productpricelevel();
            bePriceUpdate.amount.Value = price;
            bePriceUpdate.productid = lookupProduct;
            bePriceUpdate.pricelevelid = lookupPrice;
            bePriceUpdate.uomid = lookupUom;
            service.Create((BusinessEntity)bePriceUpdate);
        }
    }
}
PostEntityImages["Prod"] слепок данных в plugin registration tool.
Там выбираю соответственно: productid, pricelevelid, defaultuomscheduleid, price.
В таком виде плагин не работает, возможно проблема в decimal price...
Подскажите, если ошибка очевидна, пожалуйста.

PluginsConfig.xml:
Код:
<config>
 <server>crm</server>
 <organization>Company</organization>  
</config>

Последний раз редактировалось Krom; 15.03.2010 в 19:16.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Простой и глупый вопрос по бизнес-процессу miraj Dynamics CRM: Администрирование 27 05.03.2010 16:42
Казалось бы простой вопрос a__ Dynamics CRM: Разработка 6 29.01.2010 12:02
Вопрос от новичка, вопрос про оповещение по электронной почте при создание любого события. echo_igor Dynamics CRM: Прочие вопросы 2 15.06.2009 11:07
Простой вопрос Apossum Dynamics CRM: Администрирование 1 19.08.2008 19:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:13.