要求设计一个定票的流程图,大致题目如下:
利用YAWL主要设计control-flow,data type, resource,同时还有路径定义。
设计的control-flow如下:
这里主要注意的是利用了cancel region,也就是当有hotel,flight,car 这三个task返回了false进入cancel这个task时,就会取消掉剩下的hotel,fligth,car的task;如何设置可以查看YAWL的使用手册:http://www.yawlfoundation.org/manuals/YAWLUserManual3.0.pdf
data type在YAWL中是用XSD来设计的,可以通过YAWL中的左边栏中的Properties->Specification->Data Defintions中进行编写和设置各种数据类型,这个类型主要是用于net variables和task variables的变量设定,与在egine启动后进行reource 分配后进入网站的task表单格式有关,比如有如下type的task:
在egine启动后,进入网站后当轮到有如此type(而且只有一个type)的type进行start任务后就会有如下的表单:
相关的语法可以参考:http://www.cnblogs.com/newsouls/archive/2011/10/28/2227765.html
在YAWL进行模型建立时,免不了会有multiple choice的情况,这时就要根据相关的数据的值进行分支条件的判断。那么如何定义这个分支条件呢?在YAWL中是在Propertites->Task->Split Predication这里,设置的相关截图如下:
路径的设定在YAWL中是用xPath语言进行设定的。上述语句中进入pay task的情况是,net 中的bookHotel 这个type中的canBook选择了true(后面的text是将true转化为‘true’),这个bookHotel,是在hotel task(内部有一个task variables是Book类型的,而与之对应也有一个net varibles变量是Book,两者要进行Data Bind(这里的hotel task的Book变量是output类型也就是将task中的变量内空复制到了net中)。相关的截图如下: