C# 使用CRM 4.0 webservice设置BusinessEntity选取列表值
我正在尝试在CRM 4.0中创建ImportMap对象。我需要设置TargetEntity属性,它是一个Picklist值。似乎暗示可以通过使用C# 使用CRM 4.0 webservice设置BusinessEntity选取列表值,c#,web-services,dynamics-crm,dynamics-crm-4,C#,Web Services,Dynamics Crm,Dynamics Crm 4,我正在尝试在CRM 4.0中创建ImportMap对象。我需要设置TargetEntity属性,它是一个Picklist值。似乎暗示可以通过使用 importmap map = new importmap(); map.name = "test map"; map.targetentity = new Picklist(); map.targetentity.name = "Contact" 但这似乎总是将目标实体属性保留为null 有什么想法吗 如果是选择列表,则必须提供索引值。假设您有一个
importmap map = new importmap();
map.name = "test map";
map.targetentity = new Picklist();
map.targetentity.name = "Contact"
但这似乎总是将目标实体属性保留为null
有什么想法吗 如果是选择列表,则必须提供索引值。假设您有一个名为TargetValues.Contact的枚举,该枚举的值为1,则它将如下所示:
map.targetentity = new Picklist();
//map.targetentity.name = "Contact"
map.targetentity.Value = Convert.ToInt32(TargetEntities.Contact);
--编辑--
我相信,对于你试图实现的目标,你必须以某种方式检索目标实体,只有这样你才能列举它们
,也许这会有帮助
如果上述内容无效,则以下是您的操作方法:
顺便说一句,如果您浏览CRM SDK,您会发现类似排序的示例。将此函数用于动态请求选取列表值:
public IDictionary<int,string> PickListValues(string entityname, string attributename)
{
var req = new RetrieveAttributeRequest();
req.EntityLogicalName = entityname;
req.LogicalName = attributename;
req.RetrieveAsIfPublished = true;
var response = (RetrieveAttributeResponse)Service.MetaDataService.Execute(req);
var picklist = (PicklistAttributeMetadata)response.AttributeMetadata;
var res = new Dictionary<int,string>();
foreach (var item in picklist.Options)
res.Add(item.Value.Value, item.Label.UserLocLabel.Label);
return res;
}
public IDictionary PickListValues(string entityname,string attributename)
{
var req=新的RetrieveAttributeRequest();
req.EntityLogicalName=entityname;
req.LogicalName=属性名称;
req.RetrieveAsIfPublished=真;
var response=(RetrieveAttributeResponse)Service.MetaDataService.Execute(req);
var picklist=(PicklistAttributeMetadata)response.AttributeMetadata;
var res=新字典();
foreach(picklist.Options中的变量项)
res.Add(item.Value.Value,item.Label.UserLocLabel.Label);
返回res;
}
谢谢,这正是我想的。问题是,我试图设置的这个选择列表实际上是系统中所有实体类型的列表,包括自定义类型,所以在设计时我不知道索引是什么。是否有方法动态加载和枚举选取列表?感谢斯马特,很抱歉延迟回复;请查看我的更新回复。dynamics-crm-4似乎不存在“RetrieveAttributeRequest”类(2011年有)。这个问题的crm-4解决方案是什么?上面的评论不是真的,我只需要生成元数据服务的类,请参见: