using System;

    using Microsoft.Xrm.Sdk;

    using Microsoft.Crm.Sdk.Messages;

/// <summary>

    /// 视图

    /// </summary>

    public class UserQueryHelper

    {

        public static readonly string entityName = "userquery";

        public Guid viewid = Guid.Empty;

        public IOrganizationService service;

/// <summary>

        /// 创建视图

        /// </summary>

        public void Create()

        {

            #region fetchXml

            string fetchXml =@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>

                        <entity name='opportunity'>

                        <order attribute='estimatedvalue' descending='false' />

                        <filter type='and'>

                            <condition attribute='statecode' operator='eq'

                            value='0' />

                        </filter>

                        <attribute name='name' />

                        <attribute name='estimatedvalue' />

                        <attribute name='estimatedclosedate' />

                        <attribute name='customerid' />

                        <attribute name='opportunityratingcode' />

                        <attribute name='closeprobability' />

                        <link-entity alias='opportunitycustomeridcontactcontactid'


                            name='contact' from='contactid' to='customerid'

                            link-type='outer' visible='false'>

                            <attribute name='emailaddress1' />

                        </link-entity>

                        <attribute name='opportunityid' />

                        </entity>

                    </fetch>";

            #endregion

            #region layoutXml

            string layoutXml = @"<grid name='resultset' object='3' jump='name' select='1' preview='1' icon='1'>

                                    <row name='result' id='opportunityid'>

                                    <cell name='name' width='150' />

                                    <cell name='customerid' width='150' />

                                    <cell name='estimatedclosedate' width='150' />


                                    <cell name='estimatedvalue' width='150' />

                                    <cell name='closeprobability' width='150' />

                                    <cell name='opportunityratingcode' width='150' />


                                    <cell name='opportunitycustomeridcontactcontactid.emailaddress1'


                                        width='150' disableSorting='1' />

                                    </row>

                                </grid>";

            #endregion

            Entity en = new Entity() { LogicalName = entityName };

            en["name"] = "自己定义商机视图";

            en["returnedtypecode"] = "opportunity";

            en["querytype"] = 0;

            en["fetchxml"] = fetchXml;

            en["layoutXml"] = layoutXml;

            en["querytype"] = 0;

            viewid = service.Create(en);

        }

/// <summary>

        /// 将用户查询分派给还有一用户或团队

        /// </summary>

        /// <param name="assignee">用户或团队引用</param>

        public void Assign(EntityReference assignee)

        {

            AssignRequest request = new AssignRequest();

            request.Target = new EntityReference() { LogicalName = entityName,Id = viewid };

            request.Assignee = assignee;

            AssignResponse response = (AssignResponse)service.Execute(request);

        }

/// <summary>

        /// 运行由 ID 指定的先前保存的查询

        /// </summary>

        public void ExecuteByIdUserQuery()

        {

            ExecuteByIdUserQueryRequest request = new ExecuteByIdUserQueryRequest();

            request.EntityId = new EntityReference() { LogicalName = entityName,Id = viewid };

            ExecuteByIdUserQueryResponse response = (ExecuteByIdUserQueryResponse)service.Execute(request);

            string result = response.String;

        }

/// <summary>

        /// 删除指定安全主体(用户或团队)对用户查询的全部訪问权限

        /// </summary>

        /// <param name="revokee">用户或团队引用</param>

        public void RevokeAccess(EntityReference revokee)

        {

            RevokeAccessRequest request = new RevokeAccessRequest();

            request.Target = new EntityReference() { LogicalName = entityName, Id = viewid };

            request.Revokee = revokee;

            RevokeAccessResponse response = (RevokeAccessResponse)service.Execute(request);

        }

/// <summary>

        /// 删除视图

        /// </summary>

        public void Delete()

        {

            service.Delete(entityName, viewid);

        }

}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

crm操作观点的更多相关文章

  1. crm操作业务部门

    using System;     using System.Linq;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messag ...

  2. crm操作货币实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...

  3. crm操作权限

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using System.Colle ...

  4. crm操作知识库文章实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  5. crm操作安全角色

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using System.Co ...

  6. crm操作产品实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...

  7. crm操作电子邮件

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  8. crm操作销售订单实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using Microsoft.Cr ...

  9. crm操作约会实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

随机推荐

  1. Hibernate实体对象继承策略

    Hibernate继承策略总共同拥有三种,一种是共用一张表:一种是每一个类一张表,表里面储存子类的信息和父类的信息:另一种是通过表连接的方式.每一个类都有一张表,可是子类相应的表仅仅保存自己的信息,父 ...

  2. Android圆弧形ListView的实现

    本文带大家来实现ListView的圆弧形的分布排列,原理非常easy,就是依据ListView的每个Item的高度来对每个item进行偏移. 首先自己定义一个LinearLayout,这是ListVi ...

  3. 【JS】依据表格ID进行排序(附凝视)

    分享一个前端做的依据表格ID进行排序的方法哈,贴码例如以下: HTML: <input type="button" id="btn1" value=&qu ...

  4. mysql-定时调用存储过程

    mysql定时调用存储过程,对表数据集表结构进行备份 存储过程实例: BEGIN DECLARE tname varchar(64); set @tname = CONCAT('RENAME TABL ...

  5. Android开发之Buidler模式初探结合AlertDialog.Builder解说

          什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得相同的构建过程能够创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它同意用户能够仅仅通过指定复杂对象 ...

  6. hibernate 大对象类型hibernate制图

    基础知识: 在 Java 在, java.lang.String 它可以用来表示长串(超过长度 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中 ...

  7. 初窥Linux 之 文件权限

    一.用户与用户组 为了更好地理解文件权限,我们需要先有用户和用户组的概念.因为在Linux里面,任何一个文件都具有“User(用户).Group(用户组)及Others(其他用户)”3种身份的个别权限 ...

  8. bellman_ford算法

    给定一个源点,求最短路径,那么存在以源点为根的最短路径树因为最短路径具有最优子结构的性质,所以我们可以先求出树的第一层,然后再求出树的第二层,以此类推bellman_ford算法就是按照这种思想求最短 ...

  9. 简述负载均衡&CDN技术(转)

    曾经见到知乎上有人问“为什么像facebook这类的网站需要上千个工程师维护?”,下面的回答多种多样,但总结起来就是:一个高性能的web系统需要从无数个角度去考虑他,大到服务器的布局,小到软件中某个文 ...

  10. 【ThinkingInC++】61、非成员运算符

    非成员运算符 当操作者的左侧是不同的类时.运算符重载不可能是正确的类中. IostreamOperatorOverloading.cpp /** * 书本:[ThinkingInC++] * 功能:非 ...