使用C#从CRM 365中的Lookup动态获取价值

时间:2017-09-13 04:01:32

标签: c# plugins dynamics-crm

我有一个实体" new_trialxrmservicetoolkit"在里面我有查询字段" new_LookupTransactionHeader"它链接到" new_transactionheader"实体。

如何解决这个问题?

我遵循此tutorial,但无法解决我想要的问题。

我的代码:

new_trialxrmservicetoolkit t = new new_trialxrmservicetoolkit();

ColumnSet myAttributes = new ColumnSet(new String[] { "new_LookupTransactionHeader" });
Entity myEntityHavingLookup = service.Retrieve("new_transactionheader", t.id, myAttributes);
var myLookupId = ((Microsoft.Xrm.Sdk.EntityReference)(myEntityHavingLookup.Attributes["new_LookupTransactionHeader"])).Id;

throw new InvalidPluginExecutionException(myLookupId.ToString()); // catch this result

这是我测试插件时的结果: enter image description here

3 个答案:

答案 0 :(得分:1)

此代码是否在注册' new_trialxrmservicetoolkit &#39 ;?的插件中运行?如果是,请使用以下代码。

assignees

如果该插件用于“删除”'消息,更改我的代码的第一行:

var entity = (Entity)context.InputParameters["Target"];
if (entity.LogicalName != "new_trialxrmservicetoolkit")
    return;
var entityId=  entity.Id;
ColumnSet myAttributes = new ColumnSet(new String[] { "new_LookupTransactionHeader" });
Entity myEntityHavingLookup = service.Retrieve("new_trialxrmservicetoolkit", entityId, myAttributes);
var myLookupId = ((Microsoft.Xrm.Sdk.EntityReference)(myEntityHavingLookup.Attributes["new_LookupTransactionHeader"])).Id;
throw new InvalidPluginExecutionException(myLookupId.ToString());

答案 1 :(得分:0)

t属于new_trialxrmservicetoolkit类型,您无法将t.id用于new_LookupTransactionHeader类型。

targetentity&获取查找ID用它来检索其他列。

答案 2 :(得分:-1)

获取查找字段值

EntityReference entref = (EntityReference)item.Attributes[attributeName];

var LookupId = entref.Id;

var logicalName = entref.LogicalName;

设置查找字段值

newAccount[attributeName] = new EntityReference(logicalName, LookupId);

设置查找字段的空值

newAccount[attributeName] = Null;