第1章初识低代码开发 视频讲解 1.1什么是低代码开发 低代码开发通常是指基于可视化的应用开发工具,采用“拖拉拽”组件的方式,实现软件应用的开发模式。低代码开发更多的是面向业务团队,而非专业的IT开发工程师,能够帮助业务团队把“idea(想法)”快速变为现实,从而改变了原有软件开发的模式,大大提升了软件开发的效率,降低了软件开发成本。 低代码开发平台对业务开发过程中常见的表单、角色权限、流程、自定义页面等组件进行了提炼和封装,从而降低了对业务编码层面的要求。同时,借助容器化、微服务、数据库、中间件等底层技术能力,确保了低代码应用的安全性、可靠性以及运行性能,而这些复杂的底层技术对于低代码开发者来说都是“不可见”的,从而使低代码开发者可以更加聚焦于业务逻辑实现。 “低代码”一词最早由Forrester在2014年提出,在接下来的2~3年里,国内外涌现出了一些优秀的低代码开发平台,例如,2017年阿里巴巴发布了旗下的宜搭平台,吹响了国内低代码开发平台高速发展的号角。经过几年的发展(截至2023年年初),目前国内外已经有上百个成熟的低代码开发平台进入商用阶段。 低代码开发平台凭借其低成本、低门槛、易落地的特点,成为了中小微企业信息化转型的利器,无须招聘专业的软件开发工程师,企业内部的业务部门也可以快速推进企业的信息化建设,从而覆盖企业管理的各个领域,例如,人力资源、客户营销、项目管理、财务管理、采购等方方面面。 1.1.1低代码开发与无代码开发介绍 在传统的应用软件开发过程中,每个功能都需要经历需求调研、功能设计、代码编码、联调测试、部署发布等环节。软件开发工程师与业务团队针对需求的沟通效果,是一款应用软件开发成败的关键,一旦沟通不够充分,对需求的理解有偏差,就有可能造成返工的情况发生,此时,已经投入的开发人力将被白白浪费,同时业务上线的时间也将被推迟。需求理解的准确性之所以是软件研发的重点以及难点,是因为软件开发工程师很难用业务团队的视角或思维去理解需求,但传统的软件开发工作,又是一项技术专业性很高的工作,通常不能由单一的技术人员独立完成,而是需要产品经理、交互设计师、前端开发工程师、后端开发工程师、测试工程师以及运维工程师多岗位协同完成。 低代码开发的出现重新定义了软件开发的生产关系。使用低代码开发技术进行应用软件的开发,业务团队成为开发的“主力”,使用拖曳组件的方式搭建应用界面,直接用“所见即所得”的模式来实现业务需求,从而免去了与开发工程师反复沟通需求的环节,能够快速地把需求转化为可见的应用,并在使用过程中持续完善。而开发工程师变为了“辅助”角色,主要解决业务团队在搭建低代码应用过程中的一些复杂功能,这些复杂功能通常需要使用一些“代码”才能够实现。 当读者在学习低代码开发的时候,也会不可避免地遇到无代码开发。无代码开发有时也被称为零代码应用开发,即在整个应用开发过程中不涉及编程工作,其使用门槛比低代码开发更低,但在应对复杂功能的实现方面要弱于低代码开发。如表11是纯代码开发、低代码开发以及无代码开发的一些对比。 表11纯代码开发、低代码开发与无代码开发对比 对 比 维 度 纯代码开发 低代码开发 无代码开发 学习难度 高 中 低 定制开发能力 强 中 低 适用人群 开发工程师 业务团队为主,开发工程师为辅 业务团队 适用企业规模 大型企业 中小微企业 小微企业 适用场景 业务复杂度高,对软件定制要求较高 对企业信息化建设有一定诉求,需要IT系统快速低成本搭建 企业的信息管理主要使用少量且固定的Excel表格即可满足 使用成本 高,要配备专业的软件开发部门 较低 低 开发效率 低,遵循软件工程开发过程 高,所见即所得 高,所见即所得 运行稳定性 相对较低,依赖于开发工程师的研发质量 高 高 易维护性 低,需要长期依赖开发工程师 较高,代码部分需要由开发工程师维护 高 与外部系统的互联互通能力 高,通过开发接口实现数据的互联互通 中,基于低代码开发平台提供的集成能力可以实现与外部系统的数据互通 较低,数据更多在无代码平台内部管理 1.1.2低代码开发适用场景 中小微企业在我国国民经济中扮演着重要角色,特别是在吸纳就业方面,全国1.4亿家中小微企业贡献了85%以上的城镇劳动就业岗位,而中小微企业的发展往往受制于人才、资金、管理等多方面因素,因此,帮助中小微企业降本增效,将大大有利于我国经济发展的稳定性,而推进产业数字化转型是提升中小微企业管理水平的重要措施之一。近年来,随着移动互联网的发展,中小微企业对于信息化建设的诉求越发迫切,但另一方面,高水平的软件开发工程师在供给侧存在不足的情况,客观上出现了人才供不应求、薪酬居高不下的情况,从而制约了中小微企业信息化转型的前进步伐。据统计,截至2022年,我国IT从业人员的平均年薪已经超过17万元。对中小微企业来说,招聘高水平的软件开发工程师,变得越发困难。 低代码开发的出现,很好地填补了中小微企业信息化发展的迫切诉求与高昂软件开发成本之间的鸿沟。相对于传统的软件开发模式,低代码开发有如下优点: (1) 使用低成本。企业无须组建专职的“软件开发团队”,仅由业务团队即可完成软件应用的开发工作; 企业也无须一次性购买服务器等硬件资源,低代码开发平台可以实现“开箱即用”,按需付费。 (2) 维护低门槛。只需关注于业务功能的搭建,无须关注底层的云计算、容器、数据库等专业技术。 (3) 应用开发可视化。通过拖曳组件,构建功能表单即可完成应用的开发,会使用Excel就会使用低代码开发平台完成应用搭建。 (4) 适合中小微企业。中小微企业由于人员不多,因此要求员工都能够对企业的某个业务领域具备端到端的能力,即对业务的理解能力要求很高,而低代码开发平台的目标人群,恰恰契合了中小微企业的人员特征。 (5) 开放与融合程度高。目前国内主流的低代码开发平台均能够与钉钉等企业办公平台进行无缝融合,打通钉钉平台的人员、组织、岗位、角色等。同时,也提供了开放接口,与企业自建应用进行整合,实现了数据的互联互通。 1.1.3国内外典型低代码开发平台介绍 目前,在国内外低代码开发领域涌现出了众多成熟的平台,比较典型且应用广泛的有如下一些平台(排名不分先后)。 1. Power Platform 微软打造的Power Platform基于微软的Microsoft Azure云平台,主要包括Power BI、Power Apps和Power Automation三大套件,并且可与微软的Office进行无缝集成。微软的Power Platform平台,其优点在于国际化程度比较高,是全球通用的低代码开发平台,在外企的应用比较广泛,而其缺点在于使用成本比较高。 2. 宜搭 宜搭(YiDA)是阿里巴巴自主研发的低代码开发平台,经过阿里巴巴公司内部的广泛使用,其灵活性、安全性和稳定性均有较高的保障,并且与阿里巴巴的钉钉平台能够天然融合。作为国内发展起来的低代码开发平台,宜搭在功能设计方面充分考虑了中国企业的特点,具有较强的本土化特色。在使用成本方面充分考虑了国内中小微企业的特点,提供了多种梯度的收费标准,满足不同规模企业的使用需求。 3. 氚云 氚云是深圳奥哲网络科技有限公司旗下品牌,是一款面向数字化管理员的开发工具, 与阿里钉钉深度整合,拥有可视化表单、自动化流程、智能报表、丰富API(Application Programming Interface,应用程序接口)接口等强大功能,通过“拖拉拽”的积木搭建方式,让企业快速实现管理与业务移动在线,提升业务效率,降低管理成本,助力企业实现一站式数字化管理。 4. 简道云 简道云是帆软旗下的无代码开发平台,借助其低门槛、灵活易用等优势,帮助企业和组织通过全民开发的模式,“多快好省”地开展数字化转型。简道云除了提供表单引擎、流程引擎、仪表盘、数据工厂之外,还提供文档协作的知识库,提供基于API接口的开放平台,以及种类丰富的行业解决方案中心。 由于本书面向的读者主要是中小微企业用户,综合考虑平台成熟度、使用门槛以及成本等多方面的因素,接下来会选用宜搭低代码开发平台(后简称“宜搭平台”)展开相关介绍。 1.2宜搭平台使用简介 在使用宜搭平台进行企业应用搭建之前,低代码开发者首先需要掌握宜搭平台的一些基本操作。这些基本操作既是在使用宜搭平台过程中必须掌握的内容,同时也是使用频率最高的一些操作。本节选取了对每一位低代码开发者来说最常使用的功能展开介绍,读者掌握其使用后,即可从0到1独立搭建低代码应用。 鉴于清华大学出版社已经出版了一册由诸葛斌等老师编著的《钉钉低代码开发零基础入门》书籍,该书中已经对于宜搭平台的基础使用进行了详细的介绍,因此本书不再对宜搭平台的基础使用做过多的介绍,本节只选取其中最常用的一些功能进行重点介绍。 视频讲解 1.2.1宜搭平台的注册与界面介绍 1. 注册钉钉账号 在使用宜搭平台之前,需要提前注册一个钉钉账号,钉钉账号也是宜搭平台账号。如图11所示,在浏览器中打开钉钉官网,单击“注册钉钉”按钮,按照页面提示即可完成钉钉账号的注册。 图11注册钉钉账号页面 钉钉账号注册完毕后,需要下载钉钉手机客户端以及桌面客户端,下载页面如图12所示。 图12下载钉钉客户端 在后续使用宜搭平台进行低代码开发的时候,可以使用桌面客户端,但推荐使用Chrome浏览器,更便于应用的开发和调试操作。建议读者下载最新版本的Chrome浏览器。 2. 登录宜搭平台 在浏览器中访问宜搭平台官网,如图13所示,单击“登录”按钮,即可跳转到登录页面。由于第一步已经注册了钉钉账号,可以使用钉钉App中的“扫一扫”功能,扫描登录页面的二维码,即可完成用户的登录验证。 图13登录宜搭平台 由于一个钉钉账号可能存在多个组织,因此需要选择其中一个组织,来搭建归属于该组织的低代码应用。 3. 宜搭平台界面介绍 登录宜搭平台后,可以看到所有功能都集成在图14所示的页面内。接下来对每个功能模块进行简要介绍。 图14宜搭平台功能模块 (1) 开始。登录宜搭平台后,默认打开“开始”页面。在该页面中,提供了一些常用功能的快捷入口,例如,创建应用、访问最近使用的应用、推荐应用、通知公告等。 (2) 我的应用。“我的应用”页面是低代码开发者最常使用的页面,在开发低代码应用的时候,就是从该入口进入,然后对低代码应用进行相关开发以及管理工作。 (3) 应用中心。“应用中心”页面提供了一个访问已发布状态低代码应用的入口,当需要使用低代码应用,而非开发低代码应用的时候,则从“应用中心”入口进入。在该页面中,可以显示本组织内的所有应用,也可以把一些常用的应用添加到快捷访问工具栏中。 (4) 模板中心。“模板中心”页面集成了一些精选的低代码应用,相当于手机中的应用市场,可以免费下载应用并使用。同时,下载到本企业的应用,还可以根据实际需求进行定制化的二次开发,从而满足企业的业务需求。模板中心提供了根据场景、行业、角色、功能等多个维度检索模板的能力。对于低代码开发者来说,在开发低代码应用之前,先在模板中心搜索一些同类应用进行借鉴和学习,可以加快开发进度,降低开发难度。 (5) 解决方案。“解决方案”页面中,精选了由官方认证的服务商提供的行业解决方案,并且服务商能够根据企业的需求提供定制化开发服务。 (6) 版本信息。“版本信息”中展示了当前组织订购的宜搭平台版本信息。目前,宜搭平台提供了体验版、标准版、尊享版、混合云版4种套餐,不同套餐提供了不同的服务内容,企业可以根据自身的需求,按需选择不同的版本。初次使用宜搭平台或者学习宜搭平台的低代码开发者,可以先选择体验版,除了少部分高级功能未开放之外,已经能够满足体验和学习的使用要求。标准版适合绝大多数中小微企业的日常使用。尊享版与标准版相比,提供了一些高级功能,例如,附件在线编辑、高级流程设计、服务端逻辑编排等。混合云版的最大特点在于数据可以存储在企业自有的存储空间,适合对于数据安全性要求比较高的企业或单位,例如,政府机关、医院等。 (7) 任务中心。“任务中心”页面提供了一个快捷访问待办事务的入口,可以直达待审批的工作任务。 (8) 平台管理。“平台管理”页面是本企业宜搭平台的设置中心,对宜搭平台的账号、权限、角色以及与开发相关的系统设置提供了统一管理页面。平台管理中的配置项会对整个平台的应用产生全局性的影响,因此相关配置项的修改一定要相对慎重,不建议开放给企业内的所有人员,而应该仅仅开放给低代码开发平台的管理员使用。 (9) 帮助中心。“帮助中心”页面集合了宜搭平台的使用说明文档,除了文字类的资料外,还提供了视频培训资料。当低代码开发者在开发过程中遇到问题时,可以在该页面根据关键词搜索相关的技术资料。 (10) 组织切换。“组织切换”页面中可以切换用户所在的不同组织。 (11) 个人信息。“个人信息”页面能够展示当前登录用户的基本信息,以及执行退出登录操作。 视频讲解 1.2.2创建应用及开发环境介绍 1. 创建应用 低代码开发的第一步,需要首先创建一个应用。在首页中单击“创建应用”,即可创建一个新的应用。如图15所示,平台提供了3种创建应用的方法: (1) 从空白创建。使用该模式创建应用时,将创建一个全新空白的应用,所有的表单、流程等均需要低代码开发者自行创建。该模式的自由度最高,也是最常使用的创建模式。 (2) 从模板创建。选择该选项后,会跳转到模板中心,低代码开发者可以根据企业的业务需要,选择一些由官方或者第三方厂家提供的应用模板。选择该模式,会复制一套跟模板一模一样的应用,低代码开发者可以直接使用,或者在该模板应用的基础上进行定制化开发。 (3) 从Excel创建。如果企业已有的一些业务是使用Excel工具进行数据管理的,那么可以基于该Excel数据表格创建应用,平台会自动解析Excel中的字段并创建一个表单。 图15选择创建应用的类型 2. 开发环境介绍 应用创建完成后,平台会引导用户根据用途创建一个页面,如图16所示。对于每种页面的用途和用法,将在后续的章节中单独介绍。此处,先选择“新建普通表单”,创建一个普通表单。 图16选择创建页面的类型 普通表单创建成功后,会进入应用开发环境中。不论是选择何种类型的表单,开发环境都由如图17所示的几个区域构成。 图17普通表单开发环境 (1) 顶部控制区。顶部控制区可以切换下方页面的显示内容,不同的表单类型显示的内容会略有差别。以普通表单为例,显示的内容主要包括表单设计、页面设置、页面发布、数据管理4个选项,而流程表单除了上述4个选项外,还多出了流程设计选项,用于配置该表单的审批流程。 (2) 左侧控制区。左侧控制区主要包括如下功能: 大纲树(以树状结构显示该页面上所有组件的层次结构)、组件库(显示系统提供的功能组件,可以拖曳到页面搭建区)、数据源(通过配置接口获取用于该页面的外部数据)、动作面板(使用JavaScript语言在页面上实现复杂的定制功能)、国际化面板(用于国际化语言适配)。 (3) 页面搭建区。从组件库中拖曳选中的组件,会显示在页面搭建区。低代码开发者需要在本区域内完成页面布局的搭建和调整。 (4) 属性配置区。当选中页面搭建区的组件时,在右侧的属性配置区会显示该组件的属性设置。不同的组件会显示不同的属性,属性除了能够通过属性配置区提供的可视化配置方式进行设置之外,还可以在动作面板中使用代码设置,也可以通过绑定变量的方式进行设置。 视频讲解 1.2.3常用的组件 每个低代码应用的表单页面都是由若干组件构成的,例如,可以输入手机号的输入框、可以输入文字和图片的富文本框、可以执行某个动作的按钮等。在宜搭平台中,也提供了数十种用于搭建应用页面的组件,能够满足绝大多数应用页面的布局需求。但对于低代码开发者来说,并不需要掌握所有组件的使用方法,而只需要重点掌握一些常用的组件,即可完成绝大多数页面的搭建工作。在本节选取了部分常用的组件进行介绍,在介绍组件功能的同时,也会重点介绍该组件最核心的一些配置属性用法。 1. 输入类组件 (1) 单行文本组件。如图18所示,单行文本组件是页面搭建中最常使用的组件,使用单行文本组件能够输入文字或数字,其特点是只占一行,不支持换行。适合输入内容不多的信息,例如,姓名、电话、邮箱地址等。同时,单行文本组件也常用于显示一些不可编辑的信息,此时需要设置单行文本组件的状态为“只读”。单行文本组件常用的一些属性如表12所示。 图18单行文本组件 表12单行文本组件的常用属性 属性名称 说明 标题 用于输入该组件显示的标题 占位提示 默认值为“请输入”,可以输入一些提示信息,引导用户正确输入 状态 普通: 默认状态,支持用户输入信息; 禁用: 组件能够显示,但用户不能输入任何信息; 只读: 用户可见但不能编辑,可以通过给单行文本组件赋值,显示一些动态信息; 隐藏: 该状态下组件对于用户不可见。常见的用法是预先设置该组件为隐藏状态,在使用过程中通过其他组件的选项值、代码或流程来控制该组件的隐藏或显示状态 必填 勾选该属性后,用户在提交表单时,会校验该组件的输入内容不能为空 (2) 数值组件。如图19所示,与单行文本组件相比,数值组件向用户提供一个专门用于输入数字的输入框。如果仅仅是显示数字,那么选择单行文本组件和数值组件都可以满足需要; 但当需要对一些数值进行计算操作时,应优先使用数值组件。数值组件常用的一些属性如表13所示。 图19数值组件 表13数值组件的常用属性 属性名称 说明 标题 用于输入该组件显示的标题 占位提示 默认值为“请输入”,可以输入一些提示信息,引导用户正确输入 单位 用户输入的数值,系统会自动给该数值添加上单位信息,例如,元、个、公里、%等 小数位数 该数值的小数位数,如果是整数则输入0。例如,当数值是表示金额时,可以设置2位小数,精确到分 最小值/最大值 对用户输入的数值大小进行校验,例如,当该数值组件代表的含义为百分比时,可以设置最小值为0,最大值为100,当用户输入的数值不在该区间范围时,系统会给出错误提示 (3) 下拉选择类组件。如图110所示,下拉选择类组件包括下拉单选组件以及下拉复选组件,均可以为用户提供若干个可选项。例如,性别可以提供男、女两个可选项。下拉选择类组件使用的重点在于其可选项的设置,以及通过不同可选项控制其他组件的显示/隐藏状态。下拉选择类组件常用的一些属性如表14所示。 图110下拉选择类组件(含下拉单选组件及下拉复选组件) 表14下拉选择类组件的常用属性 属性名称 说明 标题 用于输入该组件显示的标题 占位提示 默认值为“请选择”,可以输入一些提示信息,引导用户正确输入 默认值 默认值中提供了数据联动选项,该选项通常使用的场景是: 根据表单中其他字段的值,自动为该下拉选择类组件进行赋值 选项类型 平台提供了如下5种选项类型。 1. 自定义: 常用。该下拉选择类组件的可选项均由用户自行配置。 2. 关联其他表单数据: 常用。选择其他表单中的某个字段的值,作为可选项; 例如,可以从存储客户信息的“客户表”中选择客户名称这个字段的值,作为该下拉选择类组件的可选项,当用户单击该下拉选择类组件时,会自动把“客户表”中的所有客户名称作为可选项。 3. 数据联动: 常用。选择一张数据关联表,并设置一个条件过滤规则,当满足条件规则时,把下拉选择类组件联动显示为关联表单某个字段的值。 4. 网关数据: 不常用。输入一个URL地址,从外部网关获取选项值。 5. 搜索数据源: 不常用 (4) 日期类组件。如图111所示,日期类组件主要用于输入一个特定的时间,日期格式可以通过格式属性进行配置,支持多种格式,例如,年/月/日、年/月/日/时/分/秒等。需要注意一点,平台提供了日期组件和日期区间组件,两者的区别在于: 日期区间组件可以在一个组件中输入开始、结束两个日期,而日期组件只能输入一个日期。当需要实现输入开始日期、结束日期时,既可以使用一个日期区间组件来实现,也可以使用两个日期组件来实现。日期类组件常用的一些属性如表15所示。 图111日期类组件 表15日期类组件的常用属性 属性名称 说明 标题 用于输入该日期组件显示的标题 占位提示 默认值为“请选择”,可以输入一些提示信息,引导用户正确输入 默认值 对于日期组件来说,默认值常用的一个场景就是选择使用公式获取当前日期 格式 系统提供了5种格式样式,分别为年、年月、年月日、年月日 时: 分、年月日 时: 分: 秒 (5) 富文本组件。如图112所示,与单行文本组件以及多行文本组件相比,富文本组件可以对输入的文字样式进行设置,并且可以插入图片、表格等元素,可以理解为一个高级的文本编辑器,支持复杂的文本样式。 图112富文本组件 (6) 上传类组件。如图113所示,平台提供了两种上传类组件,分别为上传文件组件以及上传图片组件,二者的区别在于上传文件组件支持上传.doc、.docx、.pdf等格式的文件,上传图片组件除了支持上传图片文件外,还支持使用手机拍照上传。这两个组件的使用方法比较类似,其常用的一些属性如表16所示。 图113上传类组件 表16上传类组件的常用属性 属 性 名 称 说明 标题 用于输入该组件显示的标题 最大上传文件个数 设置最大允许上传的文件个数 单文件最大上传大小(MB) 设置单个上传文件的最大限制 上传文件类型 设置允许上传文件的类型,例如,可以设置只允许上传.pdf格式的文件 2. 布局类组件 (1) 分组组件。如图114所示,分组组件相当于文章的“段落”,在一个表单中,可以按照字段的用途进行归类,相同用途的字段统一放到同一个分组中集中显示,这样可以使表单的布局更加清晰明了,有助于提升用户的使用体验。另外,分组可以设置隐藏状态,当分组状态设置为隐藏后,该分组内的所有组件都会被隐藏,其优先级要高于组件自身的状态,这也是分组组件的一种常见使用场景。其常用的一些属性如表17所示。 图114分组组件 表17分组组件的常用属性 属性名称 说明 状态 普通: 分组中所有的组件都使用其各自的状态 隐藏: 分组以及分组中所有的组件都被隐藏 分组标题 设置该分组组件显示的标题,同时可以通过“显示头部”开关来控制分组标题的显示与隐藏 (2) 布局容器组件。如图115所示,“布局”从字面意思上理解就是对组件进行排布,为了使表单上的所有组件能够有序排布,就需要提前规划在表单上可以放置组件的“坑位”,每个“坑位”都有其位置和大小,组件添加到“坑位”里面后,就会显示在“坑位”所在的位置并且撑满整个坑位。布局容器组件是搭建表单页面过程中必不可少的组件,其作用就是定义其他组件的位置和大小,并且能够用于适配不同分辨率的屏幕,包括PC端以及移动端。布局容器组件的每一行可以使用“列比例”进行划分,每一行的列比例总和为12即可,例如,当设置为6∶6时,布局容器组件会显示为2个等宽的容器; 当设置为4∶4∶4时,布局容器组件会显示为3个等宽的容器; 当设置为4∶8时,布局容器组件会显示为2个容器,但这两个容器的宽度不同,右侧容器宽度是左侧容器宽度的2倍。其常用的一些属性如表18所示。 图115布局容器组件 表18布局容器组件的常用属性 属 性 名 称 说明 列比例 用于设置布局的显示比例 3. 关联类组件 基于关联类组件,平台通过接口方式提供了与钉钉或者其他表单进行数据互通的能力。 (1) 成员组件与部门组件。如图116所示,成员组件与部门组件使宜搭平台可以选择钉钉中已经配置的企业人员以及部门信息,其常用的一些属性如表19所示。 图116成员组件与部门组件 表19成员组件和部门组件的常用属性 属性名称 说明 标题 用于输入该组件显示的标题,例如,可以设置为负责人、项目经理、所在小组等 默认值 默认值的默认选项为“自定义”,即由用户自己选择成员或部门。在实际使用过程中,也经常使用“公式编辑”,可以使用平台提供的函数来自动获取当前登录人以及当前登录人所在的部门 显示员工ID 仅用于成员组件。当选择员工后,除了显示员工姓名,还可以显示员工在钉钉中设置的工号 是否展示部门全路径 仅用于部门组件。选择“否”时,只显示最末级的部门名称; 选择“是”时,会显示完整的部门信息 (2) 关联表单组件。如图117所示,关联表单组件可以在表单中选择其他表单,并提供了把其他表单中的信息填充到本表单中的能力。关联表单组件除了支持关联本应用内的表单之外,还支持关联本组织内其他应用的表单(跨应用关联),从而实现了数据层面的互通。关联表单组件在页面搭建中的使用非常普遍,因为一个复杂多环节多步骤的业务流程中,每个环节都会有其上下游,通过关联表单组件,可以避免数据的重复输入。例如,在企业采购下单之前,通常需要先签署采购合同,因此在采购订单中,就可以使用关联表单组件关联已经签署的采购合同,并把合同中的一些关键信息,如合同金额、付款方式等自动显示在采购订单中。关联表单组件常用的一些属性如表110所示。 图117关联表单组件 表110关联表单组件的常用属性 属性名称 说明 标题 用于输入该关联组件显示的标题 关联表单 设置该关联表单组件所关联的表单信息,支持关联本应用内的表单,也支持关联本组织内其他应用的表单 显示设置 主要信息: 选中关联表单的某条记录后,所显示的字段信息,通常是该条记录的核心字段之一,具有唯一性; 次要信息: 用于辅助提示用户的次要信息,例如,关联合同信息表,可以设置合同编号作为主要信息,合同名称作为次要信息 数据筛选 通过设置一些条件,对关联表单的数据进行过滤。例如,可以设置只有“执行中”状态的合同才能选择,而“已完成”或“中止执行”的合同不允许被选择 数据填充&填充条件 选中某条记录后,可以把该记录的字段自动填写到本表单中。需要注意的是,组件的类型需要保持一致,例如,单行文本组件的内容只能填写到单行文本组件中,不能填写到成员组件中 4. 子表单组件 当需要在一个表单中再嵌入一个表单时,可以使用子表单组件,如图118所示。例如,在采购申请表单中,可以使用子表单逐条列出申请采购的物品列表; 又例如,在合同审批表单中,可以使用子表单逐条列出该合同的付款计划。子表单本身不具备任何组件,低代码开发者需要在子表单中添加不同的信息字段来显示在子表单中需要展示的信息。子表单组件除了支持上述“表格”展示形式之外,还支持“平铺”展示形式。同时,用户可以根据需要,单击“新增一项”按钮来逐条增加子表单记录,也可以单击“批量导入”按钮来批量导入子表单记录。子表单组件常用的一些属性如表111所示。 图118子表单组件 表111子表单组件的常用属性 属性名称 说明 标题 用于输入该子表单组件显示的标题 排列方式 支持“平铺方式”和“表格方式”两种展示形式,“表格方式”更加常用 左侧列冻结 类似Excel中的冻结列功能,当表单列较多时,冻结前面的N列 批量导入 是否打开批量导入功能 视频讲解 1.2.4表单 宜搭平台中提供了两种类型的表单: 普通表单和流程表单。这两种类型的表单,在功能上80%都是一致的,区别在于流程表单多出了流程配置功能。在使用过程中,普通表单可以用于存储数据,相当于数据库中的表,借助平台提供的应用程序接口,对普通表单中的数据进行增删改查操作。流程表单主要用于审批,也正因如此,不建议对流程表单中的数据进行人为修改,特别是审批后的数据具备“存证”的效果,人为修改会影响相关效力,因此对于流程表单,只推荐进行增加和查询操作,删除和修改操作不做推荐。 1. 普通表单 图119普通表单顶部控制区 低代码开发者创建一个普通表单后,如图119所示,在顶部会有表单设计、页面设置、页面发布和数据管理4个选项,这4个选项的主要功能分别为: (1) 表单设计。表单设计主要用于设计表单的样式,前面已经做了介绍,此处不再赘述。 (2) 页面设置。页面设置中集成了表单的所有配置信息,主要包括基础设置、消息通知、打印设置(可以基于表单数据创建存档的纸质台账)、关联列表、权限设置(常用于对表单的访问权限进行配置,例如,只能访问本人创建的表单)、内置变量、二维码标签。 (3) 页面发布。页面发布提供了“仅面向组织内部发布表单”以及“面向互联网公开发布”的选项。对于仅限企业内部使用的应用来说,建议选择组织内发布,但对于一些需要公开收集信息的表单,如调查问卷,可以设置为公开发布。 (4) 数据管理。如图120所示,数据管理是用来管理该表单中所有数据的页面。当用户每次创建一个表单实例的时候,在数据管理页面中就会增加一条记录。该页面主要提供给系统管理员使用,对已经创建的数据进行查看、修改和删除操作,同时支持对数据进行批量新增或修改。由于相关操作具有一定的风险,因此不建议开放给普通用户使用。 图120“数据管理”页面 2. 流程表单 流程表单适用于申请、审批等场景,通过流程设置让任务在不同的流程负责人之间进行审批,完成任务的流转。如图121所示,与普通表单相比,流程表单多出了流程设计选项,低代码开发者可以在“流程设计”中开发本表单的审批流,流程设计的具体用法,将在后续章节单独介绍。 图121流程表单顶部控制区 3. 数据管理页 通过前面的介绍,不论是普通表单,还是流程表单,都有数据管理选项用于向低代码开发者提供一个数据管理的页面,但是对于普通用户来说,也需要提供一个数据汇总页面,提供数据的查询、管理等功能。为了满足上述的要求,可以创建“数据管理页”。如图122所示,在每个普通表单以及流程表单的右上角,都有一个“生成数据管理页”的按钮,单击该按钮后,即可生成面向普通用户的数据管理页。 图122生成数据管理页 在数据管理页中,低代码开发者可以针对数据管理页做如下设置: (1) 设置显示列以及显示顺序。例如,可以设置重要字段显示在前面,并隐藏一些非重要字段。 (2) 设置数据排序的规则。可以设置根据某个字段的升序或降序进行排序。 (3) 设置访问权限。设置该数据管理页面的可见范围,以及每个操作的使用人等。 视频讲解 1.2.5流程设计 流程设计只应用于流程表单中,流程表单在完成表单设计后,还需要配置一个流程来驱动各个审批人完成审批工作,如图123所示。在审批过程中,有可能涉及根据表单的内容选择不同的审批分支,例如,当合同金额大于100万元时,需要总经理审批,合同金额小于100万元时只需要部门主管审批即可。审批完成后,有时还需要去更新一些数据表的信息,例如,当一张合同付款申请单执行完成后,需要去更新对应的采购合同中累计已付款的总金额。上述的这些操作,都需要在“流程设计”中实现。本节主要介绍流程设计中的一些核心操作,便于低代码开发者快速掌握流程设计的核心用法。 图123流程设计样例 1. 人工节点 人工节点是流程审批中最常用的一种节点,即该环节由设定的审批人完成审批,并将流程推进至下一个节点。人工节点主要包括审批人、执行人和抄送人3种类型,其中审批人和执行人都具备推进流程的能力,即流程推进需要审批人完成审批或执行人完成执行,抄送人不参与流程的审批,只是在该环节(通常是最后一个环节)通知抄送人知晓该流程的相关信息。 (1) 审批人/执行人。如图124所示,审批人节点中提供了多种设置审批人的方式,常用的包括指定人员、指定角色、部门主管、表单内成员字段等。当审批人不唯一时,即存在多个审批人,平台提供了会签(需所有审批人同意)、或签(其中一名审批人同意即可)、依次审批(按顺序依次审批)3种选项,从而灵活支持多审批人审批的场景。 图124审批人设置 (2) 审批按钮。如图125所示,审批人在审批时,可以利用审批按钮进行各种操作,不同类型的按钮可以对该流程产生不同的推进策略。平台支持7种按钮,其用法和含义如表112所示。 图125审批按钮 表112审批按钮功能介绍 按钮名称 功 能 介 绍 同意 该节点审批通过,进入下一节点,流程继续推进 拒绝 审批不通过,整个流程结束,后续的节点都不再执行 保存 暂时保存审批表单中输入的内容,不执行任何审批操作,流程依然停留在当前节点 转交 当前审批人把审批权限转交给另一个人,由转交人进行审批,转交后流程依然停留在当前节点 加签 加签包括前加签和后加签两种,前加签是指由当前审批人指定一个前加签人审批后,再由当前审批人审批; 后加签是指当前审批人审批完成后,还要由后加签审批人完成审批,本节点才完成审批 退回 通过退回操作可以指定该流程回退到某个指定的审批节点,通常适用于需要对前置审批节点的内容进行重新修改后,继续审批。对于流程比较长的审批来说,退回操作可以避免因后续节点拒绝审批而重新发起整个流程的情况发生 撤销 撤销整个流程,流程实例状态为已终止,但审批结果为空,即没有审批结果(既没有同意,也没有拒绝) (3) 设置字段权限。设置字段权限用于设置当流程推进至该节点时,审批人对于表单字段的可操作性权限。如图126所示,系统提供了可编辑、只读和隐藏3种权限。在流程的发起节点,通常设置字段的状态与表单设计中的字段状态保持一致。随着流程的逐步推进,默认隐藏或只读状态的字段可以设置为可编辑状态。 图126设置字段权限 (4) 高级设置。如图127所示,高级设置中提供了自动审批和超时处理两种操作。其中,自动审批用于简化审批操作,例如,当审批过程中出现发起人时,则流程自动审批,避免发起人二次审批。超时处理中可以设置一些超时规则,当触发超时规则时,流程自动完成通过、拒绝、转交等操作。 图127高级设置 2. 分支节点 分支节点可以根据设置的条件使流程走向不同的后续分支,如图128所示。设置的条件通常可以有如下场景: 图128分支节点样例 (1) 通过条件规则设置分支。如图129所示,当审批结果组件的选项为“通过”时,流程会推进到后续的分支。 图129通过条件规则设置分支 (2) 通过公式设置分支。如图130所示,当表单中数值组件的值大于1000时,流程会推进到后续分支。例如,在实际的企业应用中存在如下场景: 当报销额度小于或等于1000元时,部门经理审批; 当报销额度大于1000元时,需要总经理审批。 图130通过公式设置分支 3. 数据节点 流程设计中的数据节点,通常用于根据流程的推进结果对数据表中的数据进行增删改查操作。例如,当某个合同的付款申请流程结束后,可以更新该合同表中的累计已付款金额数据,这就涉及到在付款申请流程中修改合同表数据的应用场景。 (1) 新增数据。在“新增数据”节点中,可以在指定的表单或子表中,新增单条或多条数据。以新增单条数据为例,在“字段设置”中,左侧选择目标表格中的字段,右侧选择流程表单中的字段,如图131所示。 图131新增数据设置样例 (2) 获取单条数据。当对数据进行更新或删除操作之前,需要在流程中预先获取该条数据,这就需要使用到获取单条数据节点。获取单条数据节点的主要配置如表113所示。 表113获取单条数据节点的主要配置 配置 功 能 介 绍 获取方式 设置获取数据的来源,平台提供了从普通表单中获取、从数据节点中获取、从关联表单中获取、从数据工厂中获取、从子表中获取5种方式 数据过滤 当需要获取单条数据时,通常需要设置一个查询条件,通过该查询条件可以获取到唯一一条数据。例如,可以使用合同编号来获取唯一一条合同信息 排序规则 获取单条数据节点,原则上通过设置数据过滤条件只能获取唯一一条数据,假如因为数据存在错误或索引不唯一时,则会获取到多条数据。由于获取单条数据返回的只有一条信息,那么就需要对获取到的多条数据进行规则排序,从而取得其中的第一条数据作为节点返回的数据。目前排序规则支持: 不排序、升序和降序3种排序规则 (3) 更新数据。在更新数据节点之前,一定要预先配置一个数据获取节点,然后才能够对获取到的数据进行更新操作。在“更新数据”配置中,可以对获取到的数据进行修改,支持同时修改多个字段的值。当未获取到数据时,通常可以选择“跳过当前节点”,如图132所示。 图132更新数据设置样例 4. 全局设置 全局设置是针对整个流程的通用设置,与某个具体的审批节点无关,如图133所示。 图133流程设计全局设置样例 (1) 节点提交规则。如图134所示,节点提交规则通常应用于针对审批节点在执行提交操作前,增加一些逻辑处理规则,主要包括关联操作和校验规则两种。比较常用的是校验规则,即当某个节点提交前,可以在校验规则中对表单中的数据进行一些校验,从而确保信息填写的正确性,如果信息填写有误,则可以“中断”提交操作,提示用户修改错误信息后,再次提交。关联操作可以支持对提交的数据进行二次处理,例如,基于流程表单中数据进行一些额外的增加、删除、修改操作,当然此类操作借助官方提供的“集成&自动化”功能,也可以实现同样的功能。 图134节点提交规则设置样例 图135审批摘要效果预览 (2) 自动审批规则。全局设置中的自动审批规则,与单个审批节点中的自动审批规则用法一致。 (3) 审批摘要设置。审批摘要设置,用于配置用户收到提醒时,提醒模板中所包含的信息。默认情况下,用户收到的提醒模板只包含流程名称以及操作按钮,通过配置审批摘要模板,可以把流程表单中包含的关键字段信息显示在提醒模板中,方便审批人审批。如图135为审批摘要效果预览。 (4) 手写签名。手写签名可以设置在某个指定审批节点,需要审批人在手机上完成手写签名的录入。手写签名目前只支持移动端,不支持PC端,在PC端操作会提示审批人使用手机扫码签字。第一次签字后,系统会自动保存第一次的签名,后续审批默认自动填入该签名,也可以重签。 5. 版本设置 由于流程可能根据业务变更需要经常修改,所以平台提供了针对流程的版本管理功能,每次针对流程的修改,平台都会为低代码开发者自动保存一个流程版本,历史版本也可以恢复为线上版本。如图136所示,目前,平台对流程的版本提供了3种状态。 图136流程版本状态样例 (1) 启用中。线上版本,当创建新流程时,会使用启用中状态的流程版本进行推进审批。 (2) 设计中。设计中的版本,可以进行修改,修改完成后,需要进行发布操作,才能够成为启用中状态的线上版本。 (3) 历史。历史版本,不可使用状态,可以重新发布使其成为启用中状态的线上版本。 由于平台对流程提供了多版本管理,当低代码开发者启用新流程版本时,假如还存在未结束的审批流程,这些流程依然会使用创建时所启用的流程版本进行推进,并不会切换为最新的审批流程,这个要点需要低代码开发者关注。 视频讲解 1.2.6自定义页面的使用 普通表单主要用于信息收集、信息存储,流程表单主要用于业务审批、任务协同,针对普通表单及流程表单,宜搭平台虽然也提供了“数据管理页”功能,但在实际的企业应用中,通常需要更加复杂的数据管理功能,因此,针对单表的数据管理页就不能满足这种场景的要求,而是需要使用“自定义页面”来搭建复杂页面。“自定义页面”主要用于信息展示、数据管理以及企业门户搭建等场景。相对于普通表单及流程表单,“自定义页面”提供了更加丰富的功能以及组件,低代码开发者可以使用这些组件以及编写少量代码,实现复杂的企业数据管理功能。 1. 整体介绍 (1) 新建自定义页面。登录平台,单击左上角加号,选择“新建自定义页面”,在弹出的对话框中,选择“从空白新建”,即可创建一个空白的自定义页面。 (2) 自定义页面的整体功能布局。如图137所示,自定义页面的开发环境布局与表单类似,包括左侧控制区、顶部控制区、页面搭建区以及属性设置区。在左侧控制区可以查看组件大纲树、添加组件、管理数据源、编写JavaScript代码等操作,在顶部控制区可以对页面整体样式进行设置,在页面搭建区可以通过拖拉拽组件来搭建页面,在属性设置区可以对某个组件的属性进行详细设置。 图137自定义页面的整体功能布局 2. 大纲树 单击左侧控制区的“大纲树”,会展示当前自定义页面的层级结构,使低代码开发者可以更清晰地看到页面的组件布局。如图138所示,每个自定义页面都包括“页面头”“页面内容”“页面尾”三大部分,每个部分中都包含了由低代码开发者添加的组件。 图138自定义页面的大纲树 3. 组件库 自定义页面中的组件库对比普通表单以及流程表单,增加了“选项卡”“对话框”“表格”“查询”等多个高级组件,如图139所示,这些都是在开发复杂自定义页面过程中经常使用的组件。 图139自定义页面的组件库 4. 数据源 数据源通常用来从其他表单或外部系统获取数据,并显示在自定义页面中。如图140所示,在数据源中可以选择“变量”“新建远程API”“连接器”选项。