1 流程中触发其他工作流的原理
在工作流中触发其他的流程是很常见的一种情况,其原理就是通过容器 触发其他的工作流。
事件发生器应用如图:
图1-1
2 流程中触发相同对象的其他工作流
在流程中触发相同对象的其他工作流,即是这两个工作流都是构建在同一个对象的基础上。这种情况比较简单,只要在触发另外一个工作流时把当前的对象传入并指定触发事件即可。参加图1-1。
3 流程中触发不同对象的其他工作流
在流程中触发不同对象的其他工作流,即是这两个工作流不是构建在同一个对象的基础上。这种情况相对来说复杂一些,不能通过把当前对象直接传入到另外一个工作流(两个工作流的对象完全不一样)。因此,需要构建一个新的符合另外工作流传入的对象。
我们可以写一个后台程序,实现创建符合要求的对象。然后传入到工作流容器中,再传入到事件发生器容器中。此后的操作和图1-1所示就一样了。创建新对象的参考代码如下:
*定义对象
DATA: zobject TYPE swc_object.
*定义对象的objkey
DATA: objkey LIKE swotobjid-objkey.
DATA: BEGIN OF wa_test,
*.........
END OF wa_test.
objkey = wa_test.
*创建新对象,XXXXXX代表创建的对象类型
swc_create_object zobject 'XXXXXX' objkey.
*把对象设置到容器中
swc_set_element container 'YYYYYY' zobject.