背景:工程实际当中涉及到指标公式计算,一般需要IT人员来固化逻辑,但业务人员对本行业的知识体系、理论公式、业务逻辑是最了解的。为了提高业务人员逻辑变更的时效性,减少IT人员与业务人员沟通交流的成本,需要业务人员对工作流具有更强的参与能力;否则,业务人员需要将业务层面的需求翻译给产品经理,产品经理还需要将其转化为可供开发的需求文档,IT人员进行开发,还需要测试,兼容,这里面的时间和人力成本太过高昂。这里介绍了一种借助KNIME的实现方式,通过脚本固化业务人员的知识和经验,他们对脚本具有干预和调整的能力,形成算法资源和资产,便于复用、分享、维护、拓展,可以有效地形成组织层面的革新,提高人与人,人与机器的协同能力。
方案:使用KNIME的Java Snippet节点来完成指标公式计算,固化业务逻辑。在Java Snippet节点当中,可以从与其连接的输入表格中获取计算参数,也可以定义输出参数,并通过Java语法来定义输出参数和输入参数之间的关系(计算公式体系)。在Java Snippet节点的可视化交互环境下,这样的计算逻辑定义工作是非常容易完成的,最后可以将整个计算逻辑保存成脚本文件。将脚本文件使用文档管理系统管理起来,就可以作为算法资产,固化成千上万的计算逻辑。对于新的计算需求,可以在文档管理系统中按图索骥,找到对应的脚本资源,在工作流里拖入新的Java Snippet节点,加载下载的脚本文件,就可以完成相应的计算,IT人员的开发工作效率得以大大提升。脚本里保存的计算逻辑,算法资源,可以由业务人员加以维护、更新,形成了新的人力资源组织模式,新的人与机器的协同模式,最终达到高效完成需求的目的。算法资源被有效复用,更新维护的时效性高,成本低,提升企业的竞争力。
本例(视频介绍请移步B站,搜索Up:“星汉长空”,视频:KNIME案例(272)业务逻辑脚本):
步骤1. 为了使用KNIME的Java Snippet节点,通过业务人员固化了业务逻辑的脚本文件来完成指标公式计算,首先需要建立相应的脚本模板文件。建立脚本模板文件的主体是业务人员,使用的工具可以是多样的,可以根据业务人员的使用习惯来进行设计。比如基于Excel模板,界面工具,前端网页,工作流,手机移动端等等。这里的例子是借助KNIME工作流的方式来完成。接着,在KNIME工作流中拖入Table Creator节点,允许业务人员对输出参数进行设置,比如例子里面的周长、体积等等。使用Line Reader节点,读取一个通用的脚本框架,对其中的语句进行拆分,将业务人员设置的输出参数拼入其中,就形成了一个“实例化”的模板。
步骤2. 在KNIME中拖入Java Snippet节点,使用菜单栏中的File->Load Settings,加载步骤1生成的空白的“实例化”模板。将输入参数表格与Java Snippet节点相连,打开Java Snippet节点,可以在Column List框里发现输入参数列表。到此为止,准备工作就绪,业务人员接下来可以在这样的空白Java Snippet的代码框里完成计算逻辑固化,写下输出参数与输入参数的关系,计算公式体系(遵循Java语法规则,虽然是编程,大体等同于正常的公式书写,几无难度。)
步骤3. 业务人员完成计算公式体系固化工作之后,可以随时通过Java Snippet节点菜单栏中的File->Load Settings,打开自己建立的脚本文件,对其中的计算逻辑进行更新、维护、拓展。无论是新建还是更新,都可以通过菜单栏中的File->Save Settings加以保存。将保存好的xml格式脚本文件,上传文档管理系统,进行审阅,发布,形成计算资源。这样其他业务人员,IT人员,都可以通过登录文档管理系统,对脚本进行下载,复用,甚至可以协同更新、多人维护、远程协作,都是可以想象和设计的。
步骤4. 关于脚本文件应用前的准备工作,首先针对计算需求,登录文档管理系统,下载相应的计算脚本;其次,使用工作流读取输入参数条件表格,一般为时序参数表格,内含批量参数条件,需要进行批量指标参数的计算。这样的表格里,参数的名字极有可能是有特殊含义的,比如含有项目名称,设备编号等等信息,并不通用。我们之前建立的脚本文件,为了通用性,参数名字的定义是具有普遍意义的,为了协调二者的关系,可以为输入条件表格的列进行临时的扩充,通过重新命名,保证可以调用脚本进行计算。例子里是使用了Column Expressions节点来完成列的新建和命名。
步骤5. 关于脚本文件的应用,其他工程人员,在KNIME中,拖入Java Snippet节点,在菜单栏中选择File->Load Settings,加载脚本文件。可以发现,输出参数和计算公式都被正确地加载进来,如果有需求变更,也可以对加入的计算逻辑进行修正(最好将修正结果,再次进行保存,将来上传至文档管理系统,进行版本管理)。设置完毕之后,在KNIME主界面上运行工作流,就可以看到指标的计算结果。
解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。
解释2. 如果业务人员不会使用KNIME,不接受工作流模式怎么办?其实工作流的目的就是为了生成脚本,将业务人员的计算逻辑加以固化,围绕这样的本质目的,手段是可以灵活多变的。假设业务人员习惯使用Excel,可以允许他们将计算逻辑固化在Excel当中,由工作流读取Excel公式,再写入脚本当中。当然,IT人员也可以使用工作流或者其他开发工具,甚至是前端界面,来帮助业务人员生成这样的脚本,都是可以的。而且脚本的语言类型也可以是多样化的,都可以因地制宜加以设计,实现IT人员和业务人员的有效协作。
解释3. 当一切流程固化以后,IT人员貌似就没有什么工作可做了,是不是这样呢?实则不然,实际的需求是千变万化、异常复杂的,业务逻辑的计算逻辑主要由业务人员完成,但也需要IT人员的协助,有些复杂的计算,库的调用,还是需要IT人员参与的,他们之间的协作关系会变得更加紧密。同时,工作流也不是一成不变的,当需求发生变更的时候,工作流的搭建,工作流功能的拓展,都需要IT人员帮助,他们可以把时间和精力发挥到更能有效产生价值的领域当中去。人员之间,人与机器之间的联系更加紧密,解决需求的效率将大大提升。