none
【急求】CRM4中会议(appointment)实例查询问题 RRS feed

  • 问题

  • 大家好,

     

            我现在想查询对应contact和相应开始时间的Appointment,但我查询的时候老是报错,希望能够得到大家的帮助,先谢谢大家了。我的代码如下:

     

     

                ColumnSet cols = new ColumnSet();

                cols.Attributes = new string[] { "activityid" };

               
                ConditionExpression condition1 = new ConditionExpression();

                condition1.AttributeName = "requiredattendees";
                condition1.Operator = ConditionOperator.Like;
                condition1.Values = new string[] { contactid };


                ConditionExpression condition2 = new ConditionExpression();

                condition2.AttributeName = "scheduledstart";
                condition2.Operator = ConditionOperator.Like;
                condition2.Values = new string[] { "2009" + "%" };
                  

                ConditionExpression condition3 = new ConditionExpression();

                condition3.AttributeName = "ownerid";
                condition3.Operator = ConditionOperator.Like;
                condition3.Values = new string[] { userid };

                FilterExpression filter = new FilterExpression();

                filter.FilterOperator = LogicalOperator.And;
                filter.Conditions = new ConditionExpression[] { condition1, condition2, condition3 };

                QueryExpression query = new QueryExpression();

                query.EntityName = EntityName.appointment.ToString();
                query.ColumnSet = cols;
                query.Criteria = filter;

                BusinessEntityCollection appointments = service.RetrieveMultiple(query);

    2008年10月20日 9:05

答案

  • 不能这样写,只能用linkentity查询

    sdk中有一个sample:

    Server\HowTo\CS\Query\RetrieveActivitiesByParticipant.cs

    2008年10月28日 1:06
    版主

全部回复

  •  

    你可能要使用LinkEntity.

    参考http://technet.microsoft.com/en-us/library/bb957073.aspx

    2008年10月23日 7:42
  • 是的需要使用LinkEntity,appointment 跟 activityparty 做link.

     

    sdk中有一个sample:

    Server\HowTo\CS\Query\RetrieveActivitiesByParticipant.cs

    2008年10月26日 14:11
    版主
  • 另外你的contactid跟userid是否是Guid类型,如果是
    condition1.Values = new string[] { contactid };
    condition3.Values = new string[] { userid };
    需要改为
    condition1.Values = new string[] { contactid.ToString() };
    condition3.Values = new string[] { userid.ToString() };

    2008年10月26日 14:13
    版主
  • 恩,我的是string类型,谢谢你的提醒,但我目前最主要的问题是appointment中会有一个contact属性,可以使appointment attach到不同的contact联系人上。我目前想查询基于这样的联系人,appointment中联系人的schema name是“requiredattendees”, 当我用如下语句时会报错。先谢谢大家的帮助了。

     

    ConditionExpression condition1 = new ConditionExpression();

    condition1.AttributeName = "requiredattendees";
    condition1.Operator = ConditionOperator.Like;
    condition1.Values = new string[] { contactid };

     

     

     

    2008年10月27日 15:55
  • 不能这样写,只能用linkentity查询

    sdk中有一个sample:

    Server\HowTo\CS\Query\RetrieveActivitiesByParticipant.cs

    2008年10月28日 1:06
    版主