泛微Ecology 9代码块开发框架

背景

公司使用泛微的Ecology 9系统作为OA系统,以满足公司内部的流程审批、业务数据存储与使用等内部管理需求。

代码块,是OA系统提供的自定义Web前端代码的功能,可以在流程布局、建模布局、建模查询页面中编写自定义的HTML代码(在HTML中又可以通过<style>和<script>编写CSS和JS代码),实现自定义功能。即,这是一种二次开发机制。

原始开发模式

刚起步时,我们的开发模式非常原始:

  1. 在OA后台中,打开代码块编辑界面(需多次点击)。
  2. 编辑代码块,编写CSS和JS代码(一般不写HTML,而是在JS中动态控制DOM)。
  3. 保存代码块。
  4. 打开/刷新代码块所在的页面。
  5. 运行代码,查看效果。

因为代码总是要多次修改才能写好,所以上述整个过程都要不断循环。开发过程图示如下:

原始开发模式的开发过程图示

缺点:

可见,在这种原始开发模式下,我们很难有效地完成开发任务。

本质上,这些问题跟在Web古早时期直接手写一个个HTML文件是一样的,Web后来发展出了前端工程,通过前端开发框架解决种种开发时的问题。受此启发,我设计出了如下开发框架。

开发框架

目标

解决开发模式的问题,简化代码的开发、部署、管理过程,提高开发效率。

思路

业务代码的开发过程

  1. 启动开发框架,框架会在本地运行起Web服务器,并持续构建代码。
  2. 在开发环境的OA系统的代码块中不直接编写CSS和JS代码,而是通过<script src="..."></script>引用本地的成品JS文件。
  3. 在开发框架内编写代码(可用IDE),每次保存都会自动重新构建成品JS代码。
  4. 打开/刷新代码块所在的页面。
  5. 运行代码,查看效果。

改进后的开发过程图示如下:

改进开发模式的开发过程的图示

可见,循环缩短了,繁琐的OA后台操作变成了一次性工作,循环中只剩下了开发本身最必不可少的编写和运行操作。

业务代码的部署过程

将成品JS文件上传至生产环境的OA服务器,然后在OA系统中将<script>的src改为服务器上的地址即可。

实践成果

实践表明,此开发框架显著提高了开发效率。通过不断解决实际遇到的问题,开发框架已经能够支持复杂、大型的业务需求的开发。