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 leadEntityReference 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, opportunityContact 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.
浙公网安备 33010602011771号