0

我想在动态 CRM 4.0 中的机会中查询不同选项列表中的值。我不想查询实际的机会,只查询 Picklist 中的值。因此,如果我有一个名为 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。区别:那个问题是关于 Dynamics CRM 2011 的,我的是关于 Dynamics crm 4.0的!该问题的公认答案与“RetrieveAttributeRequest”类有关。除了我的 wsdl 没有生成那个类,所以我猜这是特定于动态 crm 2011 的。

4

1 回答 1

2

您应该为此目的使用元数据服务。这是类似的问题,您可以在其中找到代码示例

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
}
于 2012-05-09T07:35:10.280 回答