-

TLv8 流程设计

首先添加一个开始环节,点中流程设计器上方的“开始环节”,开始环节就加到流程图中了。如图所示:

点击帮助会跳出流程设计的帮助文档,帮助流程图的设计,如图所示:

然后再增加新的环节,如图所示增加一个新的环节请假申请:

如图所示可以选择此环节的执行页面:

如图所示选择处理人:

按照上面的方法来画流程图,最终流程图如下图所示:

常用函数

在平台中,常用的函数按照作用可分为:默认值表达式函数、条件表达式函数、执行者表达式函数四种;按照类型又可分为:通用函数、数据函数、模型函数、组织函数和流程函数五类。在实际使用中,这两种分法会出现交叉,但并不影响对表达式的理解和使用。

  • 默认值表达式函数用于设置关系的默认值,例如生成订单编号;
  • 条件表达式主要用于条件的比较判断,比如流程中条件分支环节就需要条件表达式来判断;
  • 执行者表达式主要用于流程中获取执行者和执行者范围,主要使用组织函数。

平台中提供的函数,既可以单独使用,又可以组合使用;有的函数是无参数的,有的函数是有参数的。根据具体的需求,选择或者组合使用适当的表达式。

表达式编辑器

使用表达式编辑器完成选择函数,输入参数的工作。表达式编辑器功能十分强大,既可以直接选择函数使用,也可以进行表达式的编辑。表达式编辑器如下图所示:

自定义函数

平台中的函数由Java文件、Fn文件组成,Java文件作为函数功能的底层实现,提供Java方法接口,Java文件又分为动态和静态两种,分别存放在WEB-INF/fn和src目录下;Fn文件是xml格式的文件,对Java方法进行了包装,提供非Java的外部使用的接口。平台提供的函数就是通过这种方式实现的。

表达式配置代码:

<?xml version="1.0" encoding="UTF-8"?>
			<root>
				<item id="others" isParent="true" name="其他">
					<function pId="others" id="getSupplieridActivity" name="获取供应商对应的采购员"
						param="supplycede" paramvalue=""
						javacode="com.tlv8.flw.other.getActivitySupplyId.getSupplyerActivity"
						helper="根据当前供应商获取对应的采购员 ">
					</function>
					<function pId="others" id="judgeIsNotSypplyerActivity" name="判断是否是采购员"
						param="" paramvalue=""
						javacode="com.tlv8.flw.other.judgeIsNotSypplyer.judgeIsNotSypplyerActivity"
						helper="根据当前登录者判断是否是采购员 ">
					</function>
					<function pId="others" id="locateCustomerOperator" name="获取当前客户的业务员"
						param="customid" paramvalue=""
						javacode="com.tlv8.flw.other.locateCustomerOperatorname.locateCustomerOperator"
						helper="说明:根据当前客户的ID获得其业务员 <br/>参数说明:<br/>customid【必填】:客户的ID">
					</function>
				</item>
			</root>

表达式Java代码:

public class judgeIsNotSypplyer {
			public static String judgeIsNotSypplyerActivity() {
				String result = "";
				String forgid = new UserController().getContext().getCurrentOrgID();
				String sqlsupplycode = "select fid,fsuppliercode,fsuppliername from dyscmapp.DYSCM_SUPPLIER where forgid='"
					+ forgid + "' ";
				try {
					List list = DBUtils.execQueryforList("system", sqlsupplycode);
					if (list.size() > 0) {
						result="false";
					} else {
						result="true";
					}
		
				} catch (Exception e) {
					// TODO: handle exception
					e.printStackTrace();
				}
				return result;
			}
		}

Powered By layui