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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2008, 16:49   #16  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Да, Microsoft настоятельно рекомендует использовать в плагинах исключительно Dynamic Entity. Но...

Короче, я сделал так:
Разбил плагин на два класса.
В одном - референсы на Sdk, в другом - на CrmService.

LeadAutoNumeration.cs
Код:
 
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
 
namespace My.LeadAutoNumeration
{
  public class LeadAutoNumeration : IPlugin
  {
    public void Execute(IPluginExecutionContext context)
    {
      string contextOrgName = context.OrganizationName;
      Guid leadId = (Guid)context.OutputParameters[ParameterName.Id];
      AutoNumeration.SetLeadNumber(leadId, contextOrgName);
    }
  }
}
Num.cs
Код:
 
using System;
using System.Collections.Generic;
using System.Text;
using LeadAutoNumeration.CrmData;
 
namespace My.LeadAutoNumeration
{
  class AutoNumeration
  {
    public static void SetLeadNumber(Guid leadId, string orgName)
    {
      CrmAuthenticationToken token = new CrmAuthenticationToken();
      token.AuthenticationType = 0;
      token.OrganizationName = orgName;
      CrmService serv = new CrmService();
      serv.Url = (string)Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Microsoft").OpenSubKey("MSCRM").GetValue("ServerUrl") + "/2007/CrmService.asmx";
      serv.CrmAuthenticationTokenValue = token;
      serv.Credentials = System.Net.CredentialCache.DefaultCredentials;
 
      int leadNumber = 1;
 
      // загружаем системные параметры
      QueryExpression qeParams = new QueryExpression();
      qeParams.ColumnSet = new AllColumns();
      qeParams.EntityName = EntityName.new_customparams.ToString();
      BusinessEntityCollection customParams = serv.RetrieveMultiple(qeParams);
      if ((customParams.BusinessEntities != null) && (customParams.BusinessEntities.Length > 0))
      {
              new_customparams currentParams = (new_customparams)customParams.BusinessEntities[0];
              DateTime leadlastdate = DateTime.Parse(currentParams.new_leadlastdate.Value);
              if (leadlastdate.ToString("d") == DateTime.Today.ToString("d"))
              {
                leadNumber = currentParams.new_leadcounter.Value + 1;
              }
              else
              {
                currentParams.new_leadlastdate = new CrmDateTime();
                currentParams.new_leadlastdate.Value = DateTime.Today.ToString("s");
              }
              currentParams.new_leadcounter.Value = leadNumber;
              serv.Update(currentParams);
      }
 
      // присваиваем номер интересу 
      lead currentLead = (lead)serv.Retrieve(EntityName.lead.ToString(), leadId, new AllColumns());
      currentLead.new_number = "L-" + DateTime.Now.ToString("yyyyMMdd") + "-" + leadNumber.ToString("000");
      serv.Update(currentLead);
    }
  }
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 4.0 Bookshelf Blog bot Dynamics CRM: Blogs 1 22.01.2009 04:46
Microsoft Dynamics CRM Team Blog: Reports for CRM 4.0 using SQL Server 2008 and Report Builder 2.0 Blog bot Dynamics CRM: Blogs 0 11.11.2008 08:05
Microsoft Dynamics CRM Team Blog: Top 14 Microsoft Dynamics CRM Sites and Downloads Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

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

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

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