我想查询动态CRM 4.0中机会中不同领料单中的值。我不想查询实际的商机,只查询选项列表中的值。因此,如果我有一个名为Source的Picklist,它的值为1,2,3,4,5。我想查询选项列表并获取这些值。这可能吗?如果是这样,你在世界上如何做到这一点?
我使用Java(JAX-WS),但由于使用了相同的基本实体,因此也欢迎使用.NET示例。
我尝试过的。我设置了以下查询:
// Set up query ...
QueryExpression query = new QueryExpression();
query.setEntityName("picklistmapping");
// Set up columns to retrieve ...
// Add columns to retrieve to the query ...
query.setColumnSet(new AllColumns());
但是这个查询返回一个空结果!
对于记录,这是以下问题的副本:Query the Description Value of a Picklist。差异:这个问题是关于动态CRM 2011,我的是关于动态crm 4.0 !该问题的公认答案与“RetrieveAttributeRequest”类有关。除了我的wsdl没有生成那个类,所以我猜这是针对动态crm 2011的。
答案 0 :(得分:2)
您应该使用Metadata Service来实现此目的。 here是类似的问题,您可以在其中找到代码示例。
RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest();
attributeRequest.EntityLogicalName = <your entity name>;
attributeRequest.LogicalName = <your picklist attribute name>;
attributeRequest.RetrieveAsIfPublished = true;
RetrieveAttributeResponse response = (RetrieveAttributeResponse)metaService.Execute(attributeRequest);
PicklistAttributeMetadata picklist = (PicklistAttributeMetadata)response.AttributeMetadata;
foreach (Option o in picklist.Options)
{
// do something e.g. take o.ValueValue
}