1

DynamicsCRM4.0でプラグインを作成しようとしています。以下は、正常に機能するフェッチクエリです。fetchxmlBuilderでテストしました。しかし、QueryExpressionに変換しようとすると、結果が返されません。

<fetch mapping='logical'>
    <entity name='new_involvedperson'>
        <attribute name='new_ageattimeofincident'/>
        <filter type='and'>
            <condition attribute='new_personid' operator='eq' alias='new_InvolvedPersonID' value='{70B1E0F8-9205-E111-9C76-005056A44AF5}'/>
            <condition attribute='new_roletype' operator='eq' value='1'/>
        </filter>
        <link-entity name='new_person' from='new_personid' to='new_personnameid'>
            <attribute name='new_firstname'/>
            <attribute name='new_lastname'/>  
            <attribute name='new_dateofbirth'/>
        </link-entity>
    </entity>
</fetch>  

次のコードを書き込もうとしていますが、常に0レコードが返されます

ColumnSet cols = new ColumnSet();

// Set the properties of the column set.
cols.Attributes.Add("new_ageattimeofincident");

// Create the condition expression.
ConditionExpression condition = new ConditionExpression();
condition.AttributeName = "new_personid";
condition.Operator = ConditionOperator.Equal;
condition.Values = new object[1];
condition.Values[0] = incidentId;

//ConditionExpression condition1 = new ConditionExpression();
//condition1.AttributeName = "new_roletype";
//condition1.Operator = ConditionOperator.Equal;
//condition1.Values = new object[1];
//condition1.Values[0] = roleType;


// Build the filter based on the condition.
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.And;
filter.Conditions.Add(condition);
//filter.Conditions.Add(condition1);

// Create a LinkEntity to link the owner's information to the account.
LinkEntity link = new LinkEntity();
link.LinkCriteria = filter;
link.LinkToEntityName = "new_person";
link.LinkToAttributeName = "new_personid";
link.LinkFromEntityName = "new_involvedperson";
link.LinkFromAttributeName = "new_personnameid";

// Create the query.
QueryExpression query = new QueryExpression();
query.EntityName = "new_involvedperson";
query.ColumnSet = cols;
query.LinkEntities.Add( link);

// Create the request object.
RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
retrieve.Query = query;
retrieve.ReturnDynamicEntities = true;

// Execute the request.
RetrieveMultipleResponse retrieved2 = (RetrieveMultipleResponse)service.Execute(retrieve);

return retrieved2.BusinessEntityCollection.BusinessEntities;
4

2 に答える 2

0

new AllColumns() で試してみて、それが機能するかどうかを確認してください。指定された列にデータが含まれていない場合、レコードが返されないというイライラする問題を覚えているようです。

于 2011-12-29T16:20:37.353 に答える