在创建帐户记录时连接联系人和帐户名的插件
本文关键字:联系人 插件 创建 记录 连接 | 更新日期: 2023-09-27 18:27:42
我不熟悉插件和C#,我需要创建一个插件,在创建帐户记录时连接联系人和帐户名称的文本值。例如:ABC公司"-约翰·史密斯"我正在使用Visual Studio和CRM 2016 Online(试用版)。以下是我目前所拥有的:
使用Microsoft.Xrm.Sdk;使用系统;
命名空间CRMPluginProject4{公共类ConcatPlugin:IPlugin{#区域安全/不安全配置设置private字符串_secureConfig=null;private字符串_unsecureConfig=null;
public ConcatPlugin(string unsecureConfig, string secureConfig)
{
_secureConfig = secureConfig;
_unsecureConfig = unsecureConfig;
}
#endregion
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
try
{
Entity entity = (Entity)context.InputParameters["Target"];
//TODO: Do stuff
}
catch (Exception e)
{
throw new InvalidPluginExecutionException(e.Message);
}
}
}
}
PJM,您可以使用java脚本而不是编写插件来实现这一点。
尽管如此,如果你想使用插件,请使用以下代码,
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
//Get the target property and check whether its a contact.
Entity target = (Entity)context.InputParameters["Target"];
string primaryContactId = target.Attributes.Contains("primarycontactid") ? ((EntityReference)target.Attributes["primarycontactid"]).Name : string.Empty;
string accountName = target.Attributes.Contains("name") ? target.Attributes["name"].ToString() : string.Empty;
target["name"] = accountName + "-" + primaryContactId;
}
请确保这不在创建和更新帐户的预操作中。希望这对你有帮助。如果您需要更多帮助,请告诉我们。