Dynamics crm 2011 如何在Dynamics CRM插件中获取销售订单的父帐户实体?
我正在开发一个Microsoft Dynamics CRM 2011插件,该插件在创建事件时连接到SalesOrder实体。我需要获得订单父帐户,以访问其某些属性。我正在Dynamics crm 2011 如何在Dynamics CRM插件中获取销售订单的父帐户实体?,dynamics-crm-2011,Dynamics Crm 2011,我正在开发一个Microsoft Dynamics CRM 2011插件,该插件在创建事件时连接到SalesOrder实体。我需要获得订单父帐户,以访问其某些属性。我正在Execute方法中尝试以下代码,但执行时键“accountid”不存在 Entity entity = (Entity)context.InputParameters["Target"]; // A salesorder entity EntityReference accountRef = (EntityReference)
Execute
方法中尝试以下代码,但执行时键“accountid”不存在
Entity entity = (Entity)context.InputParameters["Target"]; // A salesorder entity
EntityReference accountRef = (EntityReference)entity.Attributes["accountid"];
插件在操作后阶段注册,以同步模式执行。下图显示了所有配置
是否有其他方法获取SalesOrder实体的父帐户?这里有两个可能的问题。首先,您的插件是在同步执行模式下注册的,并且处于预操作事件管道执行阶段吗? 请检查此设置,可能存在问题
其次,如果您正确注册了插件,可能您没有在SalesOrder表单上设置ParentAccount,这可能不是问题:)SDK文档中似乎有错误,因为即使我将插件配置为以异步模式运行,SalesOrder实体也永远无法使用accountid属性。我通过customerid更改了accountid属性,这实际上可以是一个帐户(默认行为)。这解决了我的问题,我可以获得订单所属帐户的参考
Entity entity = (Entity)context.InputParameters["Target"]; // A salesorder entity
EntityReference accountRef = (EntityReference)entity.Attributes["customerid"];
if (accountRef.LogicalName != "account") return;
拉撒路,谢谢你的回答。我更新了我的问题,包括一个显示插件注册参数的屏幕截图。由于配置为在后期操作阶段运行,我假设SalesOrder已经创建,并且引用了它所属的帐户,但这种假设似乎是错误的:(