none
关于GUID的问题 RRS feed

  • 问题

  •  

    如题,我想知道在例子中有很多new Guid("********-*****************")的写法,这是针对知道了某一条记录的id才这么写的吧,一般来说我们都不会这么写死啊,而且我怎么知道这些对应的guid值呢。如果我要取得符合某个条件的第一条记录,是怎么filter呢?跟那些*expression类有关?还有我发现crm中好像很少设置自定义的参数,如果我要定义一个比如sales parameter,难道还要新建一个实体?如何去取得这些参数呢?
    2008年12月9日 7:20

答案

  • 是否是要调用webservice查找某写条件的记录呢?

    你可以用RetrieveMultiple Message

    可以设置查询条件,跟在数据库写sql一样,你可以设置where条件,然后还可以进行分页等功能.

    Sample:

    [C#]
    // Set up the CRM Service.
    CrmAuthenticationToken token = new CrmAuthenticationToken();
    // You can use enums.cs from the SDK\Helpers folder to get the enumeration for Active Directory authentication.
    token.AuthenticationType = 0;
    token.OrganizationName = "AdventureWorksCycle";

    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Create the column set that indicates the fields to be retrieved.
    ColumnSet cols = new ColumnSet();

    // Set the properties of the column set.
    cols.Attributes = new string [] {"name", "accountid"};

    // Create the ConditionExpression.
    ConditionExpression condition = new ConditionExpression();

    // Set the condition for the retrieval to be when the city in the account's address is Sammamish.
    condition.AttributeName = "address1_city";
    condition.Operator = ConditionOperator.Like;
    condition.Values = new string [] {"Sammamish"};

    // Create the FilterExpression.
    FilterExpression filter = new FilterExpression();

    // Set the properties of the filter.
    filter.FilterOperator = LogicalOperator.And;
    filter.Conditions = new ConditionExpression[] {condition};

    // Create the QueryExpression object.
    QueryExpression query = new QueryExpression();

    // Set the properties of the QueryExpression object.
    query.EntityName = EntityName.account.ToString();
    query.ColumnSet = cols;
    query.Criteria = filter;

    // Create the request object.
    RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

    // Set the properties of the request object.
    retrieve.Query = query;
         
    // Execute the request.
    RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);

     

    详细信息查sdk

     

    2008年12月9日 12:36
    版主
  • 你可以建一个实体new_parameter,在里面建参数的属性, 然后用Webservice Retrieve这个实体,从而可以获取到参数的值.

     

    实体在数据库也是对应一个表的,但是你不能直接去操作数据库,需要通过Webservice 去获取这个表的记录.

     

     

    2008年12月10日 2:24
    版主

全部回复

  • 是否是要调用webservice查找某写条件的记录呢?

    你可以用RetrieveMultiple Message

    可以设置查询条件,跟在数据库写sql一样,你可以设置where条件,然后还可以进行分页等功能.

    Sample:

    [C#]
    // Set up the CRM Service.
    CrmAuthenticationToken token = new CrmAuthenticationToken();
    // You can use enums.cs from the SDK\Helpers folder to get the enumeration for Active Directory authentication.
    token.AuthenticationType = 0;
    token.OrganizationName = "AdventureWorksCycle";

    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Create the column set that indicates the fields to be retrieved.
    ColumnSet cols = new ColumnSet();

    // Set the properties of the column set.
    cols.Attributes = new string [] {"name", "accountid"};

    // Create the ConditionExpression.
    ConditionExpression condition = new ConditionExpression();

    // Set the condition for the retrieval to be when the city in the account's address is Sammamish.
    condition.AttributeName = "address1_city";
    condition.Operator = ConditionOperator.Like;
    condition.Values = new string [] {"Sammamish"};

    // Create the FilterExpression.
    FilterExpression filter = new FilterExpression();

    // Set the properties of the filter.
    filter.FilterOperator = LogicalOperator.And;
    filter.Conditions = new ConditionExpression[] {condition};

    // Create the QueryExpression object.
    QueryExpression query = new QueryExpression();

    // Set the properties of the QueryExpression object.
    query.EntityName = EntityName.account.ToString();
    query.ColumnSet = cols;
    query.Criteria = filter;

    // Create the request object.
    RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

    // Set the properties of the request object.
    retrieve.Query = query;
         
    // Execute the request.
    RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);

     

    详细信息查sdk

     

    2008年12月9日 12:36
    版主
  • 恩,CRM里面关于自定义参数一般是怎么处理的?

    2008年12月9日 12:43
  • 不大理解你的问题,什么自定义参数?

     

    2008年12月9日 12:57
    版主
  • 比如我使用一个参数表,里面的字段全部是一些我自定义的设置,我可以加一个bool类型的类似于开关一样的字段,然后在别的地方检测这个值是否为true等等,在别的系统中就是一个表的问题,在crm中怎么处理?

    2008年12月10日 1:19
  • 你可以建一个实体new_parameter,在里面建参数的属性, 然后用Webservice Retrieve这个实体,从而可以获取到参数的值.

     

    实体在数据库也是对应一个表的,但是你不能直接去操作数据库,需要通过Webservice 去获取这个表的记录.

     

     

    2008年12月10日 2:24
    版主
  •  

    恩,不过总觉得建一个实体比建一个表开销大很多,还会生成许多没有的form什么的。可能这些也没什么影响吧,有些不习惯。呵呵!
    2008年12月10日 2:28
  • 你可以可以做一个xml,把参数放xml中,然后在pluginin总调用这个xml文件

     

    2008年12月10日 2:30
    版主
  •  

    但是这样的话只能在后台操作这个文件,而不能让用户客制化。不过对于一些比较固定的参数,倒是可以
    2008年12月10日 2:33