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. 怎样在Linux下通过ldapsearch查询活动文件夹的内容

    从Win2000開始.微软抛弃NT域而採用活动文件夹来管理Windows域.而活动文件夹就是微软基于遵守LDAP协议的文件夹服务.假设用扫描器扫描的话能够发现活动文件夹的389port是打开的.并且微 ...

  2. F5 root密码恢复

    使用串口线缆链接F5的串口和PC相连接,调节串口的波特率为12000,重启F5 后在启动菜单上和linux 单用户模式一样操作即可.

  3. sql大小转换函数

    将字段值转换成大写 UPDATE t SET [name]=UPPER([name]) 将字段值转换成小写 UPDATE t SET [name]=LOWER([name])

  4. Hello World 之 控制台版本(Console Application)

    原文:Hello World 之 控制台版本(Console Application) 先来介绍下Hello, World   "Hello, World"程序指的是只在计算机屏幕 ...

  5. Maven 中配置 Urlrewrite 基本配置

    1. 在maven项目的pom.xml文件里加入: <!-- URL Rewrite --> <dependency> <groupId>org.tuckey< ...

  6. MFC控件(15):Tooltip

    在各种软件产品中我们经常碰到把鼠标放到一个控件上时会弹出关于该控件的一些提示信息.这就是tooltip. 在MFC中使用该功能可以使用类CToolTipCtrl.假如要让鼠标放到按钮IDC_BTN上时 ...

  7. Unix/Linux周边环境C编程新手教程(1) Solaris 11 64bit环境结构

    Unix/Linux许多的版本号.我们推荐Unix/Linux刚開始学习的人选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位而且配置好C/C++开发 ...

  8. 每日回顾Shell —cat,tail,head

    Shell中常常会用到cat命令.可是总是不是特别清楚: cat命令的用途是连接文件或标准输入并打印. 这个命令经常使用来显示文件内容.或者将几个文件连接起来显示.或者从标准输入读取内容并显示,它常与 ...

  9. Windows Phone开发(42):缓动动画

    原文:Windows Phone开发(42):缓动动画 前面在讨论关键帧动画的时候,我有意把几个带缓动动画的关键帧动画忽略掉,如EasingColorKeyFrame.EasingDoubleKeyF ...

  10. UE4编码规范

    翻译原文为Unreal 的官方!自己看着总结了一下,不一定每条都能对上.不足之处,请多多不吝赐教! 原文地址:  unreal CodingStandard UE4编码规范 在Epic,有简单几条代码 ...