• QualifyLead PlugIn(转)


    QualifyLead PlugIn

    Supposing you needed some custom logic to happen immediately after a lead was qualified. You can achieve this by registering a Plug-in on the QualifyLead Post Operation stage. From within this Plug-in you can easily get a reference to the newly created Account, Contact and Opportunity and make any changes you need.

    Inside the PlugIn you need the following code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    IOrganizationService service = localContext.OrganizationService;
    // Get the qualified lead
    EntityReference leadid = (EntityReference) localContext.PluginExecutionContext.InputParameters["LeadId"];
    Lead lead = (Lead)service.Retrieve(leadid.LogicalName, leadid.Id,new ColumnSet(LeadAttributes.crm_AccountType));
     
    // Get the newly created account, contact, opportunity
    Contact contact = null;
    Opportunity opportunity = null;
    Account account = null;
    foreach (EntityReference created in (IEnumerable<object>) localContext.PluginExecutionContext.OutputParameters["CreatedEntities"])
    {
        switch (created.LogicalName)
        {
            case Contact.EntityLogicalName:
                contact = (Contact)service.Retrieve(Contact.EntityLogicalName, created.Id, new ColumnSet(true));
                break;
            case Account.EntityLogicalName:
                account = (Account)service.Retrieve(Account.EntityLogicalName, created.Id, new ColumnSet(true));
                break;
            case Opportunity.EntityLogicalName:
                opportunity = (Opportunity)service.Retrieve(Opportunity.EntityLogicalName, created.Id, new ColumnSet(true));
                break;
     
        }
    }

    If you need to make any changes to the created records, you can simply use:

    1
    2
    contact.LastName = "some change";
    service.Update(contact);

    Hope this helps.

  • 相关阅读:
    Windows 8将替换Win32 API
    密码强度检测:passwordStrength
    整数溢出与程序安全
    编程经验谈:如何正确使用内存
    C/C++指针学习的两个经典实例
    VC调试入门
    一些电子书籍的网站
    BMP文件格式分析(zz)
    C/C++ 跨平台I/O操作技巧
    Windows下C语言网络编程快速入门
  • 原文地址:https://www.cnblogs.com/janmson/p/2880032.html
Copyright © 2020-2023  润新知