当前位置: 首页 > news >正文

大千科技网站建设wordpress 伪静态化

大千科技网站建设,wordpress 伪静态化,做拍卖网站有哪些,买购网中国10大品牌网是微软Dynamics 365 Power Platform方面的工程师罗勇#xff0c;也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP)#xff0c;欢迎关注我的微信公众号 MSFTDynamics365erLuoYong #xff0c;回复380或者201911…是微软Dynamics 365 Power Platform方面的工程师罗勇也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP)欢迎关注我的微信公众号 MSFTDynamics365erLuoYong 回复380或者20191124可方便获取本文同时可以在第一间得到我发布的最新博文信息follow me! 前面的博文讲了些客户端编程但是对于重要的数据一般需要服务器端再做一次校验常用的手段就是插件和实时工作流今天我讲一下插件官方文档请参考 Write a plug-in 和 Register a plug-in 等。 首先需要创建一个 .NET Framework 的 Class Library项目记得 Framework选择 .NET Framework 4.6.2 。当然为不同版本的Dynamics 365 Customer Engagement选择的Framework不尽相同请根据官方文档说明我这个示例是为 V9.X 版本做的示例。 首先通过NuGet添加对Microsoft.CrmSdk.CoreAssemblies的引用如下图当然也要选择合适的版本。如果不能上网的话就需要添加对 Microsoft.Xrm.Sdk.dll 和 Microsoft.Crm.Sdk.Proxy.dll 的引用。 一般我会删除生成的Class1.cs文件而是使用固定的命名方式来命名。比如我这个插件步骤将会注册在ly_WorkOrder实体的Create消息的Pre阶段我就会新建一个 PreWorkOrderCreate.cs 的文件来撰写业务逻辑当然这个类必须继承 Microsoft.Xrm.Sdk.IPlugin 接口我使用的代码如下常见的是获取组织服务和跟踪服务其中插件日志的使用请参考我的博文Dynamics CRM 2015/2016新特性之三十四有了插件日志调试插件so easy! 若要使用映像(Image)请参考我的博文Dynamics 365 CE Update消息PostOperation阶段Image的尝试  和  Dynamics 365 CE在Pre Delete插件中应用Image 。记得若要抛出用户可见可理解的异常文本请使用throw new InvalidPluginExecutionException。 using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; using System; using System.ServiceModel; using System.Text;namespace PluginDemo {public class PreWorkOrderCreate : IPlugin{public void Execute(IServiceProvider serviceProvider){//获取日志服务ITracingService tracingService (ITracingService)serviceProvider.GetService(typeof(ITracingService));//写一些日志方便跟踪tracingService.Trace($Enter PreWorkOrderCreate on {DateTime.UtcNow.ToString()});IPluginExecutionContext context (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));if (context.InputParameters.Contains(Target) context.InputParameters[Target] is Entity){//插件针对的当前实体记录对于Pre Create来讲该对象包括了所有设置的字段值若字段没有设置值在该对象中会不存在Entity currentEntity (Entity)context.InputParameters[Target];//获取组织服务IOrganizationServiceFactory serviceFactory (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));IOrganizationService orgSvc serviceFactory.CreateOrganizationService(context.UserId);int provinceValue Int32.MaxValue;int cityValue Int32.MaxValue;string buName string.Empty;//首先获取要做校验的值//记得先确认该属性存在值再获取其值否则容易引发异常if (currentEntity.Contains(ly_province)){provinceValue currentEntity.GetAttributeValueOptionSetValue(ly_province).Value;}if (currentEntity.Contains(ly_city)){cityValue currentEntity.GetAttributeValueOptionSetValue(ly_city).Value;}var userEntity orgSvc.Retrieve(systemuser, context.UserId, new ColumnSet(businessunitid));//每个系统用户肯定都设置了业务部门我这里只是例行检查这个字段存在值if (userEntity.Contains(businessunitid)){buName userEntity.GetAttributeValueEntityReference(businessunitid).Name;if(buName Demo){//省份字段用户选择了值才校验if(provinceValue ! Int32.MaxValue){if(provinceValue ! 430000){throw new InvalidPluginExecutionException($省份字段值选择有误!);}else{//城市字段用户选择了值才做校验if(cityValue ! Int32.MaxValue){if (cityValue provinceValue cityValue provinceValue 10000){tracingService.Trace($城市字段选择了值且属于正确的省份!);}else{throw new InvalidPluginExecutionException($城市字段值选择有误!);}}}}}else if(buName Sub Unit){//省份字段用户选择了值才校验if (provinceValue ! Int32.MaxValue){if (provinceValue ! 440000){throw new InvalidPluginExecutionException($省份字段值选择有误!);}else{//城市字段用户选择了值才做校验if (cityValue ! Int32.MaxValue){if (cityValue provinceValue cityValue provinceValue 10000){tracingService.Trace($城市字段选择了值且属于正确的省份!);}else{throw new InvalidPluginExecutionException($城市字段值选择有误!);}}}}}}else{throw new InvalidPluginExecutionException($系统异常当前用户(userid{context.UserId})的业务部门没有设置!);}}tracingService.Trace($Leave PreWorkOrderCreate on {DateTime.UtcNow.ToString()});}} } 记得一定要给该插件/自定义工作流活动程序集签名在Visual Studio中右击该项目选择属性(Properties)   签名(Signing)选中 Sign the assembly我这里新建一个Key file。 Key file我的设置如下为了简便我就不设置密码保护了保存后编译插件项目确定没有编译错误。 然后需要使用插件注册工具将其注册到Dynamics 365中工具的下载请参考我的博文 下载Dynamics 365 Customer Engagement 工具 。双击其中的 PluginRegistration\PluginRegistration.exe 文件。点击【CREATE NEW CONNECTION】以便连接到Dynamics 365下面这个截图是连接到我自己的做了面向互联网部署(IFD)的环境示例。 如果是连接到Dynamics 365 Customer Engagement Online,请参考下图 点击【Register】 【Register New Assembly】。 选择前面步骤编译生成的插件程序集Isolation Mode一般建议选择Sandbox而且Dynamics Customer Engagement Onine也只能选择Sandbox强烈建议选择存储到Database点击【Register Selected Plugins】按钮如果看不到该按钮是你的电脑分辨率太低所致就用Tab键盘来辅助操作吧。 如果没有错误的话会弹出类似如下对话框 还需要右击创建的Plugin选择【Register New Step】按钮。 我这里设置如下是注册在lw_workorder的Create消息的PreOperation阶段其余的就不一一解释了请参考官方文档点击【Register New Step】按钮。 注册成功后可以看到最终的结果类似如下 剩下的工作就是测试了使用InvalidPluginExecutionException抛出的异常信息在界面显示效果如下
http://www.zqtcl.cn/news/535565/

相关文章:

  • 网站建设公司广告标题语网站设计主题有哪些
  • 网站推广方式主要通过做网站所需的知识技能
  • 我想在阿里巴巴网站开店_怎么做app建设网站公司
  • 西安做百度网站的制作网站公司选 择乐云seo
  • 网站优化建设河南手机模拟器
  • 网站建设运维标准深圳企业vi设计公司
  • 做网站怎么挣钱中小型企业网站建设
  • 深圳如何搭建建网站学校网站的建设与应用
  • 免费推广网站入口2023燕wordpress看图插件
  • 网站做不做301四川省住建设厅网站
  • 优化方案官网电子版一个网站做两个优化可以做吗
  • 企业网站排名提升软件智能优化上海网站制作的费用
  • 建分类信息网站西安高端模板建站
  • 南昌做网站哪家好成都三合一网站建设
  • 中国市政建设局网站做外单网站
  • 做本地网站赚钱吗wordpress 预约系统
  • 国外做名片网站优化网站最好的刷排名软件
  • 江西建设部网站网易企业邮箱密码格式
  • 网站哪个服务器好软装设计培训机构
  • 夜间正能量网站入口免费下载2022最新泛站群程序
  • 网站建设个人简历wordpress手写字体
  • 专门做商标的网站有哪些wordpress新文章加new
  • 全国商务网站大全木樨园网站建设公司
  • 网站搜索排名和什么有关系嘉兴建设局网站
  • 创建免费网站注意事项电商网站建设价格低
  • 网站开发接私单企业软文范例
  • 浙江省建设培训中心网站首页wordpress如何修改上传文件大小
  • 网站建设需要什么语言学完html怎么做网站
  • 国内外网站建设wordpress评论嵌套样式修改
  • 广州网站制作系统市场监督管理局投诉电话