工作流更新后 老的工作流还能撤销售后申请还能申请吗

当前位置:
/ 希望能加入“自定义bug状态和工作流”的功能
禅道看起来很不错,我很想说服老板来用它,但是我查了下文档和Q&A,似乎现在最新版也还不支持后台管理时自定义bug状态吧。
对于bug管理来说,自定义bug状态和这些状态之间互相转换的工作流规则是非常有用的,例如开源的bugzilla就可以这样做。
我很担心,如果禅道没有这样的功能,恐怕很难说服同事们转用禅道。
请问,可不可以加入这样的功能呢?
4.1 操作系统
Windows 7客户端浏览器
提问者: Parn 悬赏:10 日期:
16:35:26 答案:1 点击 1021
不考虑。bug的状态是会参与程序运算的,所以不允许增加和删除,可以修改显示的名称(升级到5.3版本可以在后台-自定义修改);工作流没有计划。
您好,我使用的是ZenTaoPMS.9.1.2,bug状态只有激活、已解决、已关闭,太少了,可以增加吗,怎么增加?比如我要新建、解决中,测试不通过,等等等
@杨文辉:后台-自定义 可以对应bug的解决方案,可以通过 状态+解决方案 体现bug的进展。后使用快捷导航没有帐号?
提示关闭姓名:请输入您的真实姓名*必填手机:请输入有效的电话号码*必填邮箱:请输入有效的邮箱号码*必填您的身份:请选择你的身份合作机构非服务期用户服务期用户金蝶认证伙伴金蝶机构员工金蝶总部员工请选择你的身份申请理由:请输入申请理由*必填暂不申请提交申请
社区账号/云之家账号
记住登录状态
使用合作账号登录
快速安全登录
请使用云之家APP扫描二维码
通过WebService、WebAPI等集成方式,撤销提交,如果已经启动了工作流,撤销提交工作流。
撤销(CancelAssign)操作本身仅仅处理单据状态切换,并不撤销终止工作流实例,必须要通过空操作 + 插件实现。
如下示例代码,用于演示如何判断单据是否启动了工作流,并据此进行撤销提交处理(本地验证通过):
using System.Collections.G
using System.L
using System.T
using Kingdee.BOS;
using Kingdee.BOS.U
using Kingdee.BOS.O
using Kingdee.BOS.Core.DynamicF
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.A
using Kingdee.BOS.C
using Kingdee.BOS.A
// Kingdee.BOS.Workflow.Contracts.dll
using Kingdee.BOS.Workflow.C
// Kingdee.BOS.Workflow.Models.dll
using Kingdee.BOS.Workflow.Models.T
using Kingdee.BOS.Workflow.Models.EnumS
using Kingdee.BOS.Workflow.Models.ServiceA
namespace JDSample.ServicePlugIn.Operation
& & /// &summary&
& & /// 演示在单据的空操作(DoNothing)上,自动撤销工作流
& & /// &/summary&
& & [Description(&演示自动撤销工作流&)]
& & public class S150901AutoCancalAssignOpPlug : AbstractOperationServicePlugIn
& && &&&public override void OnAddValidators(AddValidatorsEventArgs e)
& && && && &// 要求操作结束后,显示提示信息
& && && && &this.OperationResult.IsShowMessage =
& && &&&/// &summary&
& && &&&/// 操作完成后,事务未提交时,触发此事件
& && &&&/// &/summary&
& && &&&/// &param name=&e&&&/param&
& && &&&public override void EndOperationTransaction(EndOperationTransactionArgs e)
& && && && &// 工作流撤销,不支持批量处理
& && && && &string formId = this.BusinessInfo.GetForm().Id;
& && && && &string billId = Convert.ToString(e.DataEntitys[0][0]);
& && && && &// 首先判断单据是否已经有未完成的工作流
& && && && &IProcInstService procInstService = Kingdee.BOS.Workflow.Contracts.ServiceFactory.GetProcInstService(this.Context);
& && && && &bool isExistWFProcInst = procInstService.CheckUnCompletePrcInstExsit(this.Context, formId, billId);
& && && && &IOperationResult cancelR
& && && && &if (isExistWFProcInst == false)
& && && && &{// 未启动工作流,进行普通的撤销
& && && && && &
& && && && && & cancelResult = this.SetStatusOnly(billId);
& && && && &}
& && && && &else
& && && && &{// 启动了工作流,需要撤销工作流提交
& && && && && & cancelResult = this.AbortProcInst(formId, billId);
& && && && &}
& && && && &// 合并处理结果
& && && && &if (cancelResult.IsSuccess == true)
& && && && &{
& && && && && & // 自动撤销成功,显示空操作本身的成功提示即可
& && && && &}
& && && && &else
& && && && &{
& && && && && & cancelResult.MergeValidateErrors();
& && && && && & if (cancelResult.OperateResult == null)
& && && && && & {// 操作失败,但是并没有返回提示信息
& && && && && && &&&throw new KDBusinessException(&AutoCancel-001&, &未知原因导致自动撤销失败!&);
& && && && && & }
& && && && && & else
& && && && && & {
& && && && && && &&&StringBuilder sb = new StringBuilder();
& && && && && && &&&sb.AppendLine(&自动撤销失败,失败原因:&);
& && && && && && &&&foreach (var operateResult in cancelResult.OperateResult)
& && && && && && &&&{
& && && && && && && && &sb.AppendLine(operateResult.Message);
& && && && && && &&&}
& && && && && && &&&// 通过抛出错误的方式,中断操作,提示出失败原因
& && && && && && &&&throw new KDBusinessException(&AutoCancel-002&, sb.ToString());
& && && && && & }
& && && && &}& && &
& && &&&/// &summary&
& && &&&/// 未提交工作流,直接调用普通的状态切换服务
& && &&&/// &/summary&
& && &&&/// &param name=&billId&&&/param&
& && &&&private IOperationResult SetStatusOnly(string billId)
& && && && &// 构建操作可选参数对象:忽略交互性的警告提示
& && && && &OperateOption cancelOption = OperateOption.Create();
& && && && &cancelOption.SetIgnoreWarning(true);
& && && && &
& && && && &// 构建单据主键参数
& && && && &List&KeyValuePair&object, object&& pkEntityIds = new List&KeyValuePair&object, object&&();
& && && && &pkEntityIds.Add(new KeyValuePair&object, object&(billId, &&));
& && && && &// 调用撤销操作:单据必须配置CancelAssign操作
& && && && &ISetStatusService setStatusService = ServiceHelper.GetService&ISetStatusService&();
& && && && &IOperationResult cancelResult = setStatusService.SetBillStatus(this.Context,
& && && && && && && && &this.BusinessInfo,
& && && && && && && && &pkEntityIds,
& && && && && && && && &null,
& && && && && && && && &&CancelAssign&,
& && && && && && && && &cancelOption);
& && && && &return cancelR
& && &&&/// &summary&
& && &&&/// 提交了工作流,撤销工作流实例
& && &&&/// &/summary&
& && &&&/// &param name=&formId&&&/param&
& && &&&/// &param name=&billId&&&/param&
& && &&&private IOperationResult AbortProcInst(string formId, string billId)
& && && && &// 读取待撤销的流程实例
& && && && &// using Kingdee.BOS.Workflow.Models.ServiceA
& && && && &GetCancelAssignsArgs getCancelAssignsArgs = new GetCancelAssignsArgs();
& && && && &getCancelAssignsArgs.GetByBill(formId, billId);
& && && && &IAssignmentService assignService = Kingdee.BOS.Workflow.Contracts.ServiceFactory.GetAssignmentService(this.Context);
& && && && &assignService.GetCancelAssigns(this.Context, getCancelAssignsArgs);
& && && && &// 判断工作流实例是否允许被撤销:如已经被处理,则不允许撤销
& && && && &if (getCancelAssignsArgs.ProcInstCanCancelAssigns.Count == 0)
& && && && &{
& && && && && & throw new KDBusinessException(&AutoCancel-003&, &未找到允许撤销的工作流实例!&);
& && && && &}
& && && && &else if (getCancelAssignsArgs.ProcInstCanCancelAssigns[0].CanAbortInstance == false)
& && && && &{
& && && && && & throw new KDBusinessException(&AutoCancel-004&, &提交的工作流已经被处理,不允许撤销!&);
& && && && &}
& && && && &string procInstId = getCancelAssignsArgs.ProcInstCanCancelAssigns[0].ProcessInstanceId;
& && && && &// 构建操作可选参数对象:忽略交互性的警告提示
& && && && &OperateOption cancelOption = OperateOption.Create();
& && && && &cancelOption.SetIgnoreWarning(true);
& && && && &// 设置撤销原因
& && && && &cancelOption.SetVariableValue(&canceldisposition&, string.Empty);
& && && && &// 撤销工作流实例
& && && && &IProcInstService procInstService = Kingdee.BOS.Workflow.Contracts.ServiceFactory.GetProcInstService(this.Context);
& && && && &IOperationResult cancelResult = procInstService.AbortProcInst(
& && && && && && && && &this.Context,
& && && && && && && && &new string[] { procInstId },
& && && && && && && && &cancelOption);
& && && && &
& && && && &return cancelR
联系我们 (服务) (销售) -9(投诉) (邮箱)金蝶社区移动端关于我们金蝶社区作为金蝶产品官方服务互动门户,服务于金蝶产品用户及伙伴,分享行业知识及优秀案例,推动开放共赢企业生态圈的建立。金蝶版权所有 (C)
Kingdee Software (China) Inc. All Rights Reserved 粤ICP备号-18工作流常见问题指南(汇总)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
工作流常见问题指南(汇总)
&&工作流常见问题指南(汇总)
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢所有回答(8)
今天刚刚学习了有关K2.Net2007产品培训,虽然不是开源的,但是功能非常强大,你可以在Google上搜索看看,很多,而在百度上是搜索不到有关信息的!
园豆:3151
OSworkflow,源自java,简单易扩展。
MS也有,Windows workflow foundation,但是感觉不大成熟。
k2倒是功能强大,也是庞大一点。
所以,选什么看就得看使用环境了。
NetBPM是JBpm移植到.net平台下的一款开源工作流软件。NetBpm可以很容易和.Net应用程序集成在一起,可以创建,执行和管理工作流程序。
Bpm Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
目前开源的用.net的感觉只有 NetBPM了,但是用于正式项目中有没有实际的案例
VS2008上面应该就有工作流方面的开发项目模板。你可以去看下。。。。
我觉得用wf还是可以的,除了设计器不太习惯外。
NetBPM吧,.net下开源的Workflow很少
可以考虑ccflow 啊。
& 开源免费的。
产品名称: 驰骋asp.net工作流程引擎. 英文名称: chicheng workflow engine 简&&& 称: ccflow& 版&&& 本: 4.5 开发历史: 年. 性&&& 质: 开源软件 许可协议: LGPL. URL: 官方网站: http://ccflow.org 流程引擎源代码:/svn/ccflow/ 运行环境: bs 结构. windows xp, windows server. IIS6.0以上. .net4.0. Office2007 (如果需要单据打印.) 开发语言: VS2010. .net4.0 c#.net. 客 户 端: FireFox 3.0以上. E 6.0 以上,或者使用IE内核的浏览器. 组成部分: 流程图形设计器(有:cs版本与bs版本)/流程前台运行程序(BS结构)/流程服务(CS)/web的方式的表单设计器/BRP工具 基本功能: 图形化流程设计/智能表单web定义定义免程序开发/级联下拉框/流程轨迹/单据自定义打印/邮件短信工作到达通 知/自动任务分配/支持sdk模式开发/简洁集成/消息侦听/丰富事件接口/报表定义/工作量分析/绩效考核/手机访问/支持sqlserve,oracle,access 数据库 应用范围: 1,有管理活动的地方就需要ccflow. 2,部,省,洲地市、区县行政与事业单位. 3,集团公司,企业.
&&&您需要以后才能回答,未注册用户请先。}

我要回帖

更多关于 撤销售后申请还能申请 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信