zoukankan      html  css  js  c++  java
  • Plugin Message 初步。转自http://dmcrm.blogspot.com/2008/08/starterexecutionmethod.html

    Starter Execution Method:

    public void Execute(IPluginExecutionContext context)
    {
    string opportunityid = "";

    switch(context.MessageName)
    {
    case "Create":
    if (context.OutputParameters.Properties.Contains("id"))
    {
    opportunityid = context.OutputParameters.Properties["id"].ToString();
    }
    break;
    case "Update":
    if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
    {
    DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
    opportunityid = ((Key)entity.Properties["opportunityid"]).Value.ToString();
    }
    break;
    case "SetState":
    if (context.InputParameters.Properties.Contains("EntityMoniker"))
    {
    if (context.InputParameters.Properties.Contains("State"))
    {
    entity = (Moniker)context.InputParameters.Properties[ParameterName.EntityMoniker];
    opportunityid = entity.Id.ToString();
    }
    }
    break;
    case "SetStateDynamicEntity":
    if (context.InputParameters.Properties.Contains("EntityMoniker"))
    {
    if (context.InputParameters.Properties.Contains("State"))
    {
    entity = (Moniker)context.InputParameters.Properties[ParameterName.EntityMoniker];
    opportunityid = entity.Id.ToString();
    }
    }
    break;
    case "Win":
    opportunityClose = (DynamicEntity)context.InputParameters["OpportunityClose"];
    Lookup WonLook = (Lookup)opportunityClose.Properties["opportunityid"];
    opportunityid = WonLook.Value.ToString();
    break;
    case "Lost":
    opportunityClose = (DynamicEntity)context.InputParameters["OpportunityClose"];
    Lookup LostLook = (Lookup)opportunityClose.Properties["opportunityid"];
    opportunityid = LostLook.Value.ToString();
    break;
    case "Assign":
    if (context.InputParameters.Properties.Contains("Assignee") && context.InputParameters.Properties["Assignee"] is SecurityPrincipal)
    {
    Moniker assignEntity = (Moniker)context.InputParameters.Properties["Target"];
    opportunityid = assignEntity.Id.ToString();
    }
    break;
    case "Delete":
    if (context.InputParameters.Properties.Contains("Target"))
    {
    Moniker monikerentity = null;
    monikerentity = (Moniker)context.InputParameters.Properties[ParameterName.Target];
    opportunityid = monikerentity.Id.ToString();
    }
    break;
    }
    }

    MessageName Class (CrmHelpers)

    AddItem
    AddMember
    AddMembers
    AddMembersByFetchXml
    Assign
    Book
    Clone
    CompoundCreate
    Create
    Delete
    DeliverIncoming
    DeliverPromote
    ExecuteWorkflow
    ExecuteWorkflow
    GrantAccess
    Handle
    Lose
    Merge
    ModifyAccess
    RemoveItem
    RemoveMember
    RemoveMembers
    RemoveMembersByFetchXml
    Reschedule
    Retrieve
    RetrieveExchangeRate
    RetrieveMultiple
    RetrievePrincipalAccess
    RetrieveSharedPrincipalsAndAccess
    RevokeAccess
    Route
    Send
    SetState
    SetStateDynamicEntity
    Update
    Win
  • 相关阅读:
    使用T4模板生成POCO类
    MiniProfiler工具介绍
    程序集和反射(C#)
    按自己的想法去理解事件和泛型(C#)
    WebAPI性能优化之压缩解压
    那些年困扰我们的委托(C#)
    HTML5笔记2——HTML5音/视频标签详解
    HTML5笔记1——HTML5的发展史及标签的改变
    工作中常用的js、jquery自定义扩展函数代码片段
    记一次.NET代码重构
  • 原文地址:https://www.cnblogs.com/janmson/p/1490405.html
Copyright © 2011-2022 走看看