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 实用的一些方法相关推荐

  1. 10个实用的 ES6 方法

    毫无疑问,JavaScript 是Web开发中最流行的编程语言之一. 无论使用的是 React,Vue 还是Angular,都只是 JavaScript. JS围绕着广阔而至关重要的生态系统发展,提供 ...

  2. java 类型转换方法_Java中的实用类型转换的方法

    Java中的实用类型转换的方法 1,              类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...

  3. 删除文件过一会又回来_手机文件误删除如何恢复?教你实用的找回方法!

    手机文件误删除如何恢复?很多时候大家都有过不小心删除文件的经历,尤其是存在于手机中的文件,很容易在使用手机管家清理内存的时候,顺手把一些文件给清理掉了,很多文件对于我们来说都是有重要的作用的,那么有很 ...

  4. Ubuntu 16.04系统实用插件安装方法

    Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...

  5. Verilog——Chipscope简单实用的使用方法(基于ISE14.7 )

    Verilog--Chipscope简单实用的使用方法(基于ISE14.7 ) FPGA程序设计也避免不了需要进行在线调试工作,XILINX的ISE提供了Chipscope工具进行在线调试. 但之前查 ...

  6. 单片机固件自更新,可靠实用的一个方法

    点击上方"小麦大叔",选择"置顶/星标公众号" 福利干货,第一时间送达 汽车软件Boot程序的主要作用是刷新App程序.在在一个具体客户项目中,Boot也是客户 ...

  7. 微信文件删除了怎么恢复,3个实用有用的方法

    起初微信是一个简单的通讯工具,当用户量越来越大的时候,群聊或者企业的使用量也日渐增加,所以日常发送小文件是必不可少的,而且上班通常都是在电脑上登录微信,那么,微信文件删除了怎么恢复?小编找到3个实用有 ...

  8. PDF转WORD,分享两个实用免费的方法!

    因为PDF存在着不容易编辑的特点,所以很多时候需要把PDF进行转换然后再进行编辑,所以今天就给大家分享两个实用免费的PDF转WORD工具给大家,完全免费,转换的效果也相对是比较好的. 方法一:在线工具 ...

  9. 免费数据恢复方法有哪些?分享这几种简单又实用的恢复方法(2023年最新)

    很多时候,我们使用电脑总是容易误删一些数据.比如使用电脑,误删了办公资料:使用SD卡,出现照片没有办法打开的情况:使用移动硬盘,出现文档误格式化等问题. 不必要的数据被删除那就没问题,如果是急用且很重 ...

最新文章

  1. NEJM:益生菌LGG治疗肠胃炎无效,Immunity|LGG促进生骨
  2. android支付宝插件,GitHub - DmcSDK/cordova.plugin.alipay: cordova 支付宝支付插件,支持IOS Android。...
  3. linux下运行yolo,deepin(linux)编译安装yolo v4测试效果
  4. 小学生计算机舞蹈,最近“泼水成画”很火?舞蹈生VS体育生,看到计算机:你是来添乱的?...
  5. 用Redis存储Tomcat集群的Session
  6. RocketMQ消息存储结构分析及相对于Kafka的优势
  7. Matlab语音倍速播放
  8. libc.so.6被删后导致系统无法使用的原因及解决方法
  9. groupby java_Java流-在GroupBy之后获取内部元素
  10. HashMap底层查找的时间复杂度
  11. Artlantis studio 2021 for Mac(三维渲染工具)
  12. 如何在一场面试中展现你对Python的coding能力?
  13. Mysql存储过程中使用cursor
  14. 一次非常成功的项目经验分享和糟糕项目的对比
  15. 信噪比的定义及计算方法
  16. 计算机丢失d3dx934,d3dx9_34.dll
  17. 1965:【14NOIP普及组】珠心算测验
  18. springBoot做后台实现微信小程序图片上传和下载
  19. FME教程:GIS建筑面转CAD格式JMD,还原房屋建筑结构、层数、地物样式,shp转CAD,GIS转dwg
  20. rgb的颜色转换以及十六进制转为十进制的那些事

热门文章

  1. WC 2019 颓废记
  2. Jetty9.2.X 迁移 9.4.X 记录
  3. 百战天虫 for Mac 经典好玩动作策略游戏
  4. IO多路复用器 select, epoll发展历程,工作原理,区别
  5. 如何一直后台运行,可靠,安卓9 ,p30 亲测
  6. CSS页面优化构建一个注册页面
  7. kaldi基础介绍(一)在说话人识别中的数据准备
  8. python tqdm_tqdm:Python代码进度显示工具
  9. [搜片神器]之DHT网络爬虫的代码实现方法
  10. ac ap方案 华为_今天给大家总结下AC+AP架构使用过程中的若干问题及解决办法