Sitecore 实用的一些方法
Sitecore 自动设置Item 所在workflow 的最后一步
public static void SetWorkflowFinalState(Item item){try{Database master = Factory.GetDatabase("master");IWorkflow workflow = master.WorkflowProvider.GetWorkflow(item);if (workflow != null && !workflow.IsApproved(item)){Item workflowItem = master.GetItem(new ID(workflow.WorkflowID));if (workflowItem != null){Item final = workflowItem.Children.FirstOrDefault(x => x.Fields["Final"] != null && ((CheckboxField)x.Fields["Final"]).Checked);using (new EditContext(item)){item[FieldIDs.WorkflowState] = final?.ID.ToString();}}}}catch (Exception ex){}}
Sitecore 自动publish Item
public static void PublishItem(Item item, bool deep, bool smart, bool related){var publishingTargets = Sitecore.Publishing.PublishManager.GetPublishingTargets(item.Database);foreach (var publishingTarget in publishingTargets){var targetDatabaseName = publishingTarget["Target database"];if (string.IsNullOrEmpty(targetDatabaseName))continue;Database targetDatabase = Factory.GetDatabase(targetDatabaseName);if (targetDatabase == null)continue;foreach (Language language in LanguageManager.GetLanguages(item.Database)){PublishOptions publishOptions = new PublishOptions(item.Database, targetDatabase, PublishMode.SingleItem, language, DateTime.Now.ToLocalTime()){RootItem = item,Deep = deep,PublishRelatedItems = related,CompareRevisions = smart};//VIP 通道, 不过依然是有排队机制//if (fast)//{// Logger.Debug("Fast Publish");// Publisher publisher = new Publisher(publishOptions);// publisher.PublishWithResult(); //這個直接發佈,不會在publish queue内,常用會讓server resources較高,建議在重要的item才使用(必需及時發佈)//}//else//{var result = PublishManager.Publish(new PublishOptions[] { publishOptions }); //跟CM admin使用publish一樣,會排隊PublishManager.WaitFor(result); // 线程安全//while (!PublishManager.WaitFor(result))//{//}; // 强制等待,但是有可能会有 死循环的风险// var temp = PublishManager.GetStatus(result);Log.Info($"Publish success,[{item.ID}][{item.Name}]",this);//}}}}
自动提交WorkFlow
public static bool WorkFlow_SubmitDraft(Item item, string comment, string commandName = "Submit"){try{var master = item.Database;IWorkflow workflow = master.WorkflowProvider.GetWorkflow(item);if (workflow != null){string defaultWorkflow = item.Fields[Sitecore.FieldIDs.DefaultWorkflow].Value;if (!string.IsNullOrEmpty(defaultWorkflow)){if (string.IsNullOrWhiteSpace(item[Sitecore.FieldIDs.WorkflowState])){workflow.Start(item); //if workflow no state,must be ini state}WorkflowCommand command = workflow.GetCommands(item[FieldIDs.WorkflowState]).FirstOrDefault(c => c.DisplayName.Equals(commandName, StringComparison.OrdinalIgnoreCase));if (command != null){return workflow.Execute(command.CommandID, item, comment, false).Succeeded;}Helper.Logger.Info("Can not found workflow command.");}elseHelper.Logger.Info("Can not found dafault workflow.");}elseHelper.Logger.Info("Can not found workflow." + item.ID);return false;}catch (Exception ex){Helper.Logger.Info("Submit WorkFlow failed." + ex.ToString() + ex.InnerException);return false;}}
Sitecore 实用的一些方法相关推荐
- 10个实用的 ES6 方法
毫无疑问,JavaScript 是Web开发中最流行的编程语言之一. 无论使用的是 React,Vue 还是Angular,都只是 JavaScript. JS围绕着广阔而至关重要的生态系统发展,提供 ...
- java 类型转换方法_Java中的实用类型转换的方法
Java中的实用类型转换的方法 1, 类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...
- 删除文件过一会又回来_手机文件误删除如何恢复?教你实用的找回方法!
手机文件误删除如何恢复?很多时候大家都有过不小心删除文件的经历,尤其是存在于手机中的文件,很容易在使用手机管家清理内存的时候,顺手把一些文件给清理掉了,很多文件对于我们来说都是有重要的作用的,那么有很 ...
- Ubuntu 16.04系统实用插件安装方法
Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...
- Verilog——Chipscope简单实用的使用方法(基于ISE14.7 )
Verilog--Chipscope简单实用的使用方法(基于ISE14.7 ) FPGA程序设计也避免不了需要进行在线调试工作,XILINX的ISE提供了Chipscope工具进行在线调试. 但之前查 ...
- 单片机固件自更新,可靠实用的一个方法
点击上方"小麦大叔",选择"置顶/星标公众号" 福利干货,第一时间送达 汽车软件Boot程序的主要作用是刷新App程序.在在一个具体客户项目中,Boot也是客户 ...
- 微信文件删除了怎么恢复,3个实用有用的方法
起初微信是一个简单的通讯工具,当用户量越来越大的时候,群聊或者企业的使用量也日渐增加,所以日常发送小文件是必不可少的,而且上班通常都是在电脑上登录微信,那么,微信文件删除了怎么恢复?小编找到3个实用有 ...
- PDF转WORD,分享两个实用免费的方法!
因为PDF存在着不容易编辑的特点,所以很多时候需要把PDF进行转换然后再进行编辑,所以今天就给大家分享两个实用免费的PDF转WORD工具给大家,完全免费,转换的效果也相对是比较好的. 方法一:在线工具 ...
- 免费数据恢复方法有哪些?分享这几种简单又实用的恢复方法(2023年最新)
很多时候,我们使用电脑总是容易误删一些数据.比如使用电脑,误删了办公资料:使用SD卡,出现照片没有办法打开的情况:使用移动硬盘,出现文档误格式化等问题. 不必要的数据被删除那就没问题,如果是急用且很重 ...
最新文章
- NEJM:益生菌LGG治疗肠胃炎无效,Immunity|LGG促进生骨
- android支付宝插件,GitHub - DmcSDK/cordova.plugin.alipay: cordova 支付宝支付插件,支持IOS Android。...
- linux下运行yolo,deepin(linux)编译安装yolo v4测试效果
- 小学生计算机舞蹈,最近“泼水成画”很火?舞蹈生VS体育生,看到计算机:你是来添乱的?...
- 用Redis存储Tomcat集群的Session
- RocketMQ消息存储结构分析及相对于Kafka的优势
- Matlab语音倍速播放
- libc.so.6被删后导致系统无法使用的原因及解决方法
- groupby java_Java流-在GroupBy之后获取内部元素
- HashMap底层查找的时间复杂度
- Artlantis studio 2021 for Mac(三维渲染工具)
- 如何在一场面试中展现你对Python的coding能力?
- Mysql存储过程中使用cursor
- 一次非常成功的项目经验分享和糟糕项目的对比
- 信噪比的定义及计算方法
- 计算机丢失d3dx934,d3dx9_34.dll
- 1965:【14NOIP普及组】珠心算测验
- springBoot做后台实现微信小程序图片上传和下载
- FME教程:GIS建筑面转CAD格式JMD,还原房屋建筑结构、层数、地物样式,shp转CAD,GIS转dwg
- rgb的颜色转换以及十六进制转为十进制的那些事
热门文章
- WC 2019 颓废记
- Jetty9.2.X 迁移 9.4.X 记录
- 百战天虫 for Mac 经典好玩动作策略游戏
- IO多路复用器 select, epoll发展历程,工作原理,区别
- 如何一直后台运行,可靠,安卓9 ,p30 亲测
- CSS页面优化构建一个注册页面
- kaldi基础介绍(一)在说话人识别中的数据准备
- python tqdm_tqdm:Python代码进度显示工具
- [搜片神器]之DHT网络爬虫的代码实现方法
- ac ap方案 华为_今天给大家总结下AC+AP架构使用过程中的若干问题及解决办法