1、启用workflow

wf_engine.startprocess(itemtype => l_item_type, itemkey => l_item_key);

internal name:就是itemtype     itemkey是自己随意取的,一般都是有流水码,防止重复

itemkey一般要记录下来,因为以后我们要对此 workflow修改的时候需要用到此itemkey

2、取消wf

wf_engine.abortprocess(itemtype => 'JW_SHIP', itemkey => l_item_key);

用的也是itemtype and itemkey,如果此wf已经取消或其他,再次取消会报错,

所以我们取消前最好有一个判断select * from wf_items,此表中会记录此itemtype,itemkey的结束时间

如果结束时间有了我们就不需要再去取消了

3、推动wf

wf_engine.completeactivity(itemtype => 'JW_SHIP',
                             itemkey  => v_attribute3,
                             activity => 'JW_OM_PROCESS:JW_OM_NOTIFICATIONS',
                             RESULT   => 'APPROVE');
     
       wf_engine.completeactivity(itemtype => 'JW_SHIP',------审批拒绝
                             itemkey  => v_attribute3,
                             activity => 'JW_OM_PROCESS:JW_OM_NOTIFICATIONS',
                             RESULT   => 'REJECT');

同样,用的还是itemtype,itemkey,activity:

冒号后面是此notifications的internal name,result 是此通知的result code

这样我们就相当于在审核的时候点了那个按钮一样,用代码实现。

4、functions返回值问题

在wf中调用一个function时如果直接向下走我们结尾用

resultout := 'COMPLETE';说明完成了

但是如果一个函数的result type :Yes/No

就是说一个function调用完成后可能因为不同的结果走向不同

我们就要用

resultout := wf_engine.eng_completed || ':' || 'Y' ;

resultout := wf_engine.eng_completed || ':' || 'N' ;去判断走向

5、wf or 和and的功能

这个我们字面看意思就知道or就是有一个条件满足就继续走,and就是所有条件满足才继续走

应该很明了:or就是要么审批了,要么确认了,只要有一个满足此单就结束

and就是要两个同时满足此单才会结束

eg:wf的一些标准function:or and我们需要从standard.wft中拖过来使用,完整的代码可参考我之前的记录

WorkFlow常用的一些情形相关推荐

  1. SAP ABAP常用TABLES底表

    T100: SAP能用到的消息都应该在此表中找到. T160M :MM模块相关消息表,此表可完全直接维护.就是说只要记住它,MM的消息配置直接使用SE16就可以. T100C: FI模块中用户自定义的 ...

  2. 整理oracle 树形查询

    为什么80%的码农都做不了架构师?>>>    http://blog.csdn.net/wupd2014/article/details/52502806 sql树形递归查询是数据 ...

  3. 有监督、无监督与半监督学习【总结】

    概念 有监督学习:训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签. 无监督学习(unsupe ...

  4. 机器学习笔记(九)聚类

    9.聚类 有必要回顾下前文所涉及的机器学习主流分类,有监督学习中根据预测结果离散和连续属性分为分类和回归两大类,常见的算法有:线性模型.决策树.神经网络.支持向量机.贝叶斯分类器以及集成学习. 本文开 ...

  5. Qt中的QFileDialog

    文章目录 1 Qt中的QFileDialog 1 Qt中的QFileDialog 文件对话框常用于以下情形: Open Mode:应用程序中需要用户打开一个外部的文件. Save Mode:应用程序中 ...

  6. python 写txt 换行_python中写入txt文件需要换行,以及\r 和\n

    在Python中,用open()函数打开一个txt文件,写入一行数据之后需要一个换行 如果直接用 f.write('\n') 只会在后面打印一个字符串'\n',而不是换行' 需要用 f.write(' ...

  7. java构建xml参数_Java中使用XML创建EMAIL模板

    邮件模板 让我们来看看邮件模板的格式.模板是XML文件,它包含一个根元素和一系列根的子元素.根元素是.必要的子元素是, , 和 .可选的子元素是 , , 和 .如果你使用过邮件系统,那么你可以推导出这 ...

  8. 无监督学习 | KMeans与KMeans++原理

    文章目录 1. 原型聚类 1.1 KMeans 1.1.1 最小化成本函数 1.1.2 实例 1.2 KMeans++ 1.2.1 KMeans++ 初始化实例 2. 在线可视化 KMeans 参考资 ...

  9. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(9):无监督学习技术

    · Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, by Aurélien Géron ...

最新文章

  1. iphone 一些小游戏.
  2. go mysql recover_golang recover后怎么返回
  3. 第二天——hibernate讲完了
  4. Pytorch 配置 Tensorboard 可视化学习(一)
  5. ppt录制宏_Word中录制宏,学会后成大神
  6. python入门——P49乱入:生成器
  7. [Java] 蓝桥杯BASIC-14 基础练习 时间转换
  8. 硬件电子c语言笔试,电子类常见笔试试题
  9. java 24种设计模式
  10. 计算机对用户的操作做出反应,云南省计算机二级VB考试真题题库
  11. 微信开发者工具之WXS和简单组件
  12. mysql类exadata功能_Exadata:Smart Scan(一)
  13. if...else 语句双分支结构 计算分段函数
  14. 关于SketchUp 2017版本安装之后一打开就会发送错误报告的问题
  15. C++刷题知识点总结2
  16. 《大江大河2》里这段精彩的博弈:没有对错,只有权衡
  17. 追梦的过程很开心,但结果却令人遗憾
  18. 程序员数学(9)--不等式与不等式组
  19. IE if注释判断( [if gte IE 8] )的解释网上的完全乱七八糟啊!
  20. 〖Python自动化办公篇④〗- 文件自动化管理 - 文件查找与基于文件内容查找文件

热门文章

  1. 广义回归神经网络GRNN:Matlab实现多输入多输出广义回归神经网络GRNN (含例子及代码)
  2. 数据中心:全面云化的新一代互联网基础笔记
  3. Java List按大小分片,平均切分
  4. Google官方详解 Activity【项目实例不容错过!】
  5. 5.17黄金跌破2000还会涨吗?多单被套怎么办?
  6. 淘集集活动的报名的链接怎么显示是大于300字呢
  7. Arm架构和x86架构
  8. Unity——小地图实现的办法
  9. mysql运行信息(SHOW STATUS)详情
  10. hexo教程:搜索SEO+阅读量统计+访问量统计+评论系统