华为云用户手册

  • 场景描述 本示例以新建一个学生成绩管理对象为例,为您介绍对象间关联的相关内容。本示例中对象里的班级对象是通过Lookup(字段类型)关联学生、班主任对象,学生对象通过LooKup关联课程成绩对象。请参见创建自定义数据对象和定义自定义对象的字段(Fields)新建下面的Class__CST、HeadTeacher__CST、Student__CST、Grades__CST对象和它们分别对应的自定义字段。 表1 对象说明 自定义对象名 自定义字段名 字段类型 对象中的字段说明 Class__CST number__CST Number 班级编号。 HeadTeacher__CST class__CST Lookup 班级编号。 该字段的取值来源于“Class__CST”对象。 Student__CST class__CST Lookup 班级编号。 该字段的取值来源于“Class__CST”对象。 Grades__CST student__CST Lookup 学生信息。 该字段的取值来源于“Student__CST”对象。 course__CST text 课程。 score__CST Number 成绩分数。 对象“Class__CST”这种类型的名字前面一般带命名空间,如“XXX__Class__CST”。name字段是标准字段,在对象创建之后,已经存在,不需要手动创建: 班级Class__CST的name字段,如20届一班、二班、三班。 班主任HeadTeacher__CST的name字段,如王老师、李老师、陈老师。 学生Student__CST的name字段,如小明、小红、小兰。
  • 什么是校验器和触发器 对象校验器:在向对象中录入记录数据时,为了保证对象数据的有效性,可以定义一些校验规则,对字段值以及各字段之间的逻辑关系进行校验。例如,name字段不能为空,MinPrice字段不能大于maxPrice字段等。 对象触发器:与数据库中的触发器类似,可以为对象定义触发器。在增/删/改对象的记录数据时,自动触发自定义的TypeScript脚本执行。脚本的执行结果将会影响主操作(即增删改记录)的结果,系统保证主操作与触发器在一个事务中执行,要么都成功,要么都失败。
  • 为对象配置内嵌触发器 AstroZero支持用户给对象增加内嵌触发器,实现在增/删/改对象的记录数据时,自动执行内嵌触发器脚本(该脚本由用户自定义,其实就是一段普通的TypeScript脚本,没有输入输出参数)。例如,在对象记录插入前、记录插入后、记录更新前、记录更新后、记录删除前或者记录删除后,自动执行内嵌触发器脚本。 下面以之前创建的对象“CNAME__Class__CST”为例,创建一个记录删除后的触发器,实现在删除一条“CNAME__Class__CST”对象的记录后,把相应的“name”、“CNAME__number__CST”数据记录到日志对象“CNAME__log__CST”中。在此需要提前创建如下的日志对象“CNAME__log__CST”,如何创建请参考上一节中对象“CNAME__Class__CST”的创建过程。 表2 “CNAME__log__CST”对象的字段 对象 字段来源 字段名称 字段数据类型 CNAME__log__CST 自定义字段,手动创建 CNAME__operator__CST 文本,数据长度36。 自定义字段,手动创建 CNAME__className__CST 文本 自定义字段,手动创建 CNAME__classNumber__CST 数字,表示班级编号。 在对象“CNAME__Class__CST”配置页面,单击“内嵌触发器”页签,再单击“新建”。 图5 新建内嵌触发器 输入触发器的基本信息,单击“保存”。 图6 输入信息 表3 内嵌触发器参数说明 参数 参数说明 标签 内嵌触发器在用户界面展示的名称。 名称 内嵌触发器的名称,单击后默认自动生成,与“标签”值保持一致。 事件触发时机 内嵌触发器在什么时候生效,可直接在下拉框中选择。即在系统执行如下某动作时,自动执行触发器的脚本: 插入前:记录插入操作前触发。 修改前:记录更新操作前触发。 删除前:记录删除操作前触发。 插入后:记录插入操作后触发。 修改后:记录更新操作后触发。 删除后:记录删除操作后触发。 描述 内嵌触发器的描述。 编写触发器的脚本,其中对象名称、字段名称和之前创建的保持一致。 对象的内嵌触发器脚本,其实就是一段普通的TypeScript脚本,没有输入输出参数。在脚本中可以通过“对象名.字段名”,来访问当前记录的具体字段值。针对“事件触发时机”为“修改前”或者“修改后”的触发器(即触发器脚本执行条件是对象记录更新前、记录更新后),脚本代码中通过“对象名.字段名”获取到的都是当前记录的具体字段值,目前不支持获取更新前的记录值。 //test_delete_triggerimport * as db from 'db';import * as context from 'context';let name = CNAME__Class__CST.name;let CNAME__number__CST = CNAME__Class__CST.CNAME__number__CST;let logObj = db.dynamicObject('CNAME__log__CST');logObj.insert({ "CNAME__operator__CST": context.getUserId(), "CNAME__className__CST": name, "CNAME__classNumber__CST": CNAME__number__CST,}); 关于脚本的更多说明,请参考脚本开发。 编辑后单击上方的,进行保存。 保存成功后,单击,启用脚本。 启用后在内嵌触发器列表,可查看到当前触发器状态为“ON”,表示当触发条件满足时,AstroZero会自动执行该触发器脚本。 图7 启用触发器 验证触发器。 在对象“CNAME__Class__CST”配置页面,单击“布局”页签,在“Class Records”后单击。 “对象名 Records”显示对象数据的记录列表。预览该页面可增、删、改、查对象数据。 在布局的预览页面,单击“添加”,新增并保存,增加数据,为下一步删除数据做准备。 图8 如何新增数据 单击数据所在列的“删除”,删除数据。 图9 删除数据 在对象“CNAME__log__CST”配置页面,单击“布局”页签,在“log Records”后单击。 图10 预览Records页面 查看到对象“CNAME__log__CST”数据列表中,已记录一条刚删除的“CNAME__Class__CST”数据,触发器生效。 图11 触发器脚本新增的一条数据
  • 创建常量 参考如何开发服务编排中操作,进入服务编排编辑器页面。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“常量”后的加号。 图3 单击常量后的加号 单击新增常量后的“...”,选择“设置”。 设置页面参数,单击“保存”。 图4 配置常量 表2 常量参数说明 参数 参数说明 名称 新建常量的名称。 数据类型 常量的数据类型,直接在下拉框中选择即可。 值 新建常量的取值。 描述 该常量的描述信息。
  • 创建公式变量 公式变量主要用于变量赋值,表达式计算,参数传递等。 参考如何开发服务编排中操作,进入服务编排编辑器页面。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“公式”后的加号。 图5 单击公式后的加号 设置页面参数,单击“保存”。 图6 配置公式变量 表3 公式变量参数说明 参数 参数说明 名称 新建公式变量的名称。 数据类型 公式变量的数据类型,直接在下拉框中选择即可。 描述 新增公式变量的描述信息。 表达式 设置新增变量的表达式。 若表达式中需要运用公式,可根据需要双击“公式”区域中系统预置的公式,该公式会显示在右侧“表达式”区域中。当表达式中需要有变量参数时,可从变量区域中直接选择变量拖入到表达式中。
  • 创建普通变量或者集合变量 参考如何开发服务编排中操作,进入服务编排编辑器页面。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“变量”后的加号。 图1 创建变量 单击新增变量后的“...”,选择“设置”。 设置页面参数,单击“保存”。 图2 配置变量 表1 变量参数说明 参数 参数说明 名称 新建变量的名称。 数据类型 新建变量的数据类型,直接在下拉框中选择即可。 默认值 变量的默认取值。 描述 新建变量的描述信息。 是否为数组 是否为数组型变量即集合变量。
  • 如何使用选项列表 选项列表创建后,可以在对象模型、标准页面和决策表中使用。 当对象的某字段类型为“选项列表”或“选项列表(多项选择)”时,可引入已有的选项列表。 在“值”下方选中“全局选项列表”后,可以在右侧的选项列表里选中当前应用下定义或者导入的选项列表。 图3 在对象中使用 标准页面下拉框组件中,设置选项列表。 在下拉框“属性”下的“选项列表”中,单击齿轮图标,在弹窗中搜索需要用到的选项列表,单击“确定”。 图4 在下拉框中使用 在标准页面与在对象中调用不一致的内容:在对象中能选择的选项列表是应用级的,即当前应用下配置里的选项列表可用;但是在标准页面里是可以选择全局选项列表的,如果标准页面里选中的全局选项列表,需要在配置里导入或者定义,否则在打包应用时,可能会因为选项列表的缺失而导致下拉框空白现象。 BPM中决策表的出参、入参类型为选项列表时,可引入已有的选项列表。 图5 在BPM中使用
  • 创建聚合对象并通过Lookup关联子节点对象 参考如何登录经典应用设计器中操作,进入应用的经典版设计器。 鼠标放在应用的文件夹旁,单击加号,选择“聚合对象”。 选择“创建新的聚合对象”,输入基本信息后单击“添加”。 图1 新建聚合对象 表2 新建聚合对象参数说明 参数 参数说明 标签 聚合对象的在页面显示的名称。 名称 聚合对象的名称,是在系统中的唯一标识。 描述 聚合对象的描述信息。 在“根节点”中,选择根节点对象。 根节点对象为该聚合对象的基础对象。这里根节点对象设置为“Product__CST”。选择根节点对象后,该节点对象的所有字段详情会显示在右下侧区域空白处。 图2 设置根节点对象 单击节点对象详情框中的“+”,选择与根节点关联的对象“Price__CST”,添加关联对象,只能向子对象进行关联。 图3 选择关联对象 选择两个对象之间的关联字段“product__CST”。 两个关联对象之间,可能会有多个字段进行关联。此处,请选择希望进行关联的具体字段。 图4 选择关联字段 选择关联字段后,关联对象“Price__CST”的所有字段详情会显示在区域中。两个关联对象之间会有连线,连线上显示关联的具体字段标签。 图5 关联结果 参考5~6,添加与根节点关联的对象“Stock__CST”。 图6 添加关联对象“Stock__CST” (可选)您可单击节点名称,在右侧“Properties”区域设置“Label”参数取值,设置节点名称,以区分不同节点。 表3 节点名属性区域参数说明 参数 参数说明 标签 节点在界面的展示名称。 名称 节点的名称,是节点在系统中的唯一标识。 实体对象 节点的对象名。 对象字段 所用到的,该节点对象的字段。目前只能选该对象全部字段,不支持选择部分字段。 父对象 节点对象的父对象。 子对象 节点对象的子对象。 单击页面上方的,保存该聚合对象的设置。
  • 场景描述 新建一个订单聚合对象,该聚合对象中产品对象通过Lookup关联价格、库存子节点对象,并基于该订单聚合对象定义增加操作。再通过属性配置,关联客户对象。 表1 对象说明 对象名 自定义字段名 字段类型 字段说明 Product__CST description__CST text 产品描述。 Price__CST product__CST Lookup 产品描述。该字段的取值来源于“Product__CST”对象。 price__CST Currency 产品价格。 Stock__CST remain__CST Number 库存数量。 product__CST Lookup 产品描述。该字段的取值来源于“Product__CST”对象。 Customer__CST - - -
  • 应用模板的分类 应用模板涵盖了疫情防控、人事管理、行政办公、项目管理、通用应用、行业应用等领域,您可以直接使用应用模板快速创建应用。基于应用模板创建应用后,用户还可快速定制和扩展应用,满足自身业务的个性化诉求。 低代码平台典型的应用模板如下所示,其他模板介绍请以界面提供的为准。 应用页面支持PC和Phone适配,本文截图以PC端展示为例进行说明。 绩效管理 助力企业或者组织管理者完成员工绩效管理,绩效管理包括员工自评、主管审核、绩效结果确定一系列活动。 调查问卷 为企业和个人提供问卷模板,用于收集资料或管理问题记录。该模板以对Astro轻应用开发者展开调查问卷为例,您可基于该模板快速自定义调查问卷内容。 健康打卡 助力企业或者组织管理者完成员工健康打卡管理,健康打卡包括每日健康打卡、发烧情况跟进、健康打卡管理和发烧跟进管理。 出差 帮助企业快速创建出差申请及审批流程,提高出差审批效率。 财务报销 帮助企业用户,快速处理财务报销流程及业务。 在线投票 快速创建在线投票轻应用。 项目进度跟踪 可跟踪项目中每项任务的进展情况,团队可基于此定时项目管理轻应用。 设备维修管理 快速创建设备(电梯)维修管理轻应用,适用于各类维修工单场景。
  • 应用的生命周期 应用的开发阶段 应用是一个工程,可以创建对象模型,编辑标准页面和高级页面,开发服务编排和脚本逻辑,开发商业应用业务流程等。在应用的开发环境里,可以快速实现底层逻辑。 应用的部署阶段 应用是一个可安装的包,可以实现不同租户间和不同环境间的迁移,用户只要下载和导入这个应用包就可以部署应用。 应用的运行阶段 应用是一个可预览的运行界面。在工程能力中,将详细介绍应用的工程能力、部署打包等能力。
  • 使用应用模板创建应用 为了降低应用开发成本,让您通过拖拽的方式,低代码快速完成应用的搭建,AstroZero低代码平台提供了典型场景的应用模板,您可以根据不同的业务场景,直接使用应用模板快速创建应用。本节为您介绍如何使用应用模板,创建一个新应用。 参考如何进入经典开发环境中操作,进入经典版开发环境。 在开发环境首页的“项目”页签下,单击“轻应用”或“行业应用”。 轻应用:轻应用下的应用模板一般为轻量级应用,不涉及复杂化的代码,轻应用模板涵盖了人事管理、办公管理、问卷调查、项目管理领域。例如系统提供了“调查问卷”、“健康打卡”等典型的轻应用模板。 图1 轻应用模板 行业应用:行业应用下的应用模板,功能更加丰富,使用了AstroZero低代码平台提供的各种能力组件,为低码或多码化模式构建的应用模板。 图2 行业应用模板 查看应用模板,将鼠标放在某个需要使用的应用模板上,模板上显示“查看模板”和“使用模板”图标,单击“使用模板”。 首次创建应用时,需要先定义专有的命名空间。 在提示框中,单击“创建”,输入“命名空间”后(例如“CNAME”),单击“创建”。 由于租户间的数据可打包共享,为了避免数据(例如对象、应用、服务编排等)命名的重复,租户在创建应用前需要定义一个命名空间(所有租户下的命名空间唯一,且每个租户只能创建一个命名空间)。 命名空间一旦创建,不能修改和删除,创建前请确认好相关信息。建议使用公司或团队的缩写作为命名空间。 后续创建的应用、应用元素(例如对象、脚本、服务编排、页面等)的名称前,系统会为其自动增加命名空间。例如,将命名空间定义为“CNAME”,后续创建的所有应用、应用元素(对象、脚本、页面等)都将以“CNAME__”开头。 图3 输入命名空间 命名空间创建完成后,将自动进入创建应用页面。 根据选择的模板类型,将跳转到“创建轻应用”或“创建行业应用”页面,在基本信息页中,填写应用标签和名称,单击“创建”即可。 “标签”后续可以修改,“名称”则是应用在AstroZero低代码平台中的唯一标识,创建后,不支持修改。 图4 创建轻应用 表1 创建轻应用页面参数说明 参数 参数说明 添加图标 新建轻应用的图标。 标签 轻应用的展示名称。 名称 轻应用在系统内的唯一标识。输入标签值后单击该参数的输入框,系统会自动生成轻应用的名称。系统会自动在该名称前添加命名空间__。应用创建后不支持修改应用名称,只能修改标签。 分类 应用所属的分类。设置分类后,工程列表和库列表都可以根据应用或BO的分类进行筛选。 描述 轻应用的描述信息。 运行时版本 开发的资产包依赖所选择的运行时版本,若线下运行版本不一致,可能产生不兼容。 展开“高级设置”时,才会显示该参数。 系统会自动创建该轻应用,创建后,显示页面如下。 图5 创建完成后的模板应用 在应用开发页面左侧,单击,即可预览该应用,进行体验。 基于应用模板创建应用后,还可进行简单配置,快速定制和扩展应用,满足自身业务的个性化诉求,更多操作请参见调查问卷轻应用开发。
  • 如何设置数据系列 选择基本柱图组件,单击鼠标右键选择“高级设置”。 展开数据系列配置,单击旁边的“+”,添加数据系列。 图5 配置数据系列 在右侧“数据”页签,配置该数据系列的数据。 例如,在使用系统预置的静态数据基础上,添加如下加粗标红字体代码,配置新增数据系列的数据。也可以使用“动态数据”调用后台接口URL返回如下结构模型数据。 {"resCode": "0","resMsg": "成功","result": [{"order": {"dataX": ["保洁","安管","工程","绿化","消杀","特约"],"dataValue": [{"title": "工单总数","value": [411,965,427,630,85,800]},{"title": "费用","value": [500,1065,327,730,185,1000]}]}}]} 配置添加的数据系列柱状条颜色、柱状条宽度、柱条边框圆角、数值是否显示,柱状图上显示的数值对应上述静态数据中的数值。 设置完成后,单击“确定”。
  • 属性 在属性中,设置基本柱图组件的位置、边框、背景等。 图2 属性 基础 组件标题:设置组件的标题。 组件名称:设置组件的名称。 位置 距离左端:组件到页面左侧的距离,单位为px。 距离顶端:组件到页面顶部的距离,单位为px。 宽度:组件的宽度,单位为px。 高度:组件的高度,单位为px。 堆叠顺序:设置组件层叠显示顺序。组件的堆叠顺序默认都是“1”,数字越大,显示越靠前。当需要让组件置底时,可设置堆叠顺序为“0”。 自适应高度:组件的高度是否随宽度改变。 边框:设置组件的边框样式,如全边框或角边框。 背景 样式:设置背景的样式,如普通、居中、拉伸等。 图片链接:背景图片URL。 颜色:设置背景的颜色。
  • 另存版本后进行定制 此处以基于服务编排“testFlow”的基线“1.0.1”版本另存一个“1.0.2”的定制版本为例,进行说明。 单击已创建好的服务编排“testFlow”,进入该服务编排设计页面。 单击页面上方的,禁用该服务编排。 单击页面上方的,进入另存为页面。 “类型”选择“新版本”,设置服务编排标签,单击“保存”。 保存后,系统默认进入“1.0.2”的新版本服务编排设计页面。 图1 另存为新版本 标签:服务编排的标签,用于在页面展示。 名称:服务编排的名称,和基线版本的服务编排名称保持一致。 类型:另存为的类型。 新版本:另存为新版本,适用于新建的服务编排,基础服务编排仍可使用。 新服务编排:是将原服务编排重新另存并命名,新保存后为另一服务编排,与选择“新版本”场景不同,适用于新建的服务编排,基础服务编排仍可使用。 服务编排类型:服务编排的类型,在创建基础服务编排时配置的类型,不可更改。 Autolaunched Flow:自启动服务编排,在接口调用后会立即执行服务编排模型定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时才会开始执行服务编排模型定义的逻辑。 展示标签:服务编排实例的展示标签,系统自动填充为“标签值{!$Flow.CurrentDateTime}”。 描述:服务编排的描述信息。 在“1.0.2”版本服务编排设计页面,按需进行定制。 单击页面上方的,保存服务编排。 保存成功后,单击,运行服务编排,检查服务编排运行结果是否符合预期。 单击页面上方的,启用新版本服务编排。 在此方式下,当基线版本升级时,系统默认启用和使用服务编排的定制版本。升级造成的基线服务编排原有图元变化,定制服务编排可继承。升级造成的基线服务编排新增图元,定制服务编排无法继承。
  • 基于预留扩展点进行定制 此处以“createOrder”接口为例进行介绍,基线“createOrder”接口中预留了一个扩展点。 这个扩展点是一个空的子服务编排“AfterSaveOrder”,将这个子服务编排另存一个定制版本“AfterSaveOrder_0419”,实现新的业务逻辑。子服务编排另存为定制版本的操作方法,请参见另存版本后进行定制。 在此方式下,定制内容在基线接口预留节点中,该接口还是属于基线接口,可以随版本升级使用。 图2 定制示例
  • 使用说明 页面间组件的交互,除了需要事件-动作机制,还需要用到低代码中的页面宏。本章节通过具体示例,为您介绍页面间组件交互的方法。如图1所示,高级页面Page1中包含示例组件widgetEventTemplate,高级页面Page2中包含示例组件widgetPageMacroTemplate,单击Page1页面中的OK按钮,输入框中的数据会通过页面宏传递给Page2。 图1 页面间组件交互场景示例 页面间的组件交互原理如下图所示,在配置事件时,选择“默认”类别中的页面跳转,并通过新增动作参数将事件的参数传给页面宏,在跳转的目标页面中读取页面宏数据。 图2 Page传值原理 主要实现原理如下: widgetPageMacroTemplate 在widgetPageMacroTemplate.editor.js文件中定义页面宏数据。 propertiesConfig: [ { config: [ { "type": "text", "name": "pageMacro", "label": "Page Macro", "value": "${pm.pageMacro}", "validation": { "rules": {} } }]}]; 表1 页面宏数据配置项说明 配置项 参数说明 propertiesConfig 配置组件的自定义属性。 type 配置项的数据类型,本例中配置为text(文本)。 name 配置项的变量名称,本例中设置为“pageMacro”。通过获取组件自定义配置属性的API,来获取该值。 label 配置项的展示标签。 value 配置项的默认值,本例中设置为${pm.pageMacro}。 其中,pageMacro为页面宏变量名,${pm.}为低代码平台定义的固定语法。 validation 无需关注此配置项。 在widgetPageMacroTemplate.js文件中读取页面宏数据,并将其显示到页面中。 var widgetProperties = thisObj.getProperties();//获取该组件自定义配置属性的API。...var pageMacro = widgetProperties.pageMacro || "";$("#macro",elem).html(pageMacro); 上述示例代码中widgetProperties.pageMacro的PageMacro,即表1中name配置项设置的变量名称。 widgetEventTemplate:关于widgetEventTemplate的介绍,请参见同页面内组件的交互。
  • 高级设置 在高级设置中,可设置轮播时长、切换方式等。 图3 高级设置 轮播设置 切换方向:广告图片的轮播切换样式,支持横向滚动切换、右下角滚动切换和纵向滚动切换。 加载自动播放:是否自动轮播。开启后,支持设置图片轮播时间间隔(不大于24秒)。 切换方式:设置图片切换时,展示的样式,如淡出、推出等。 定位标志:设置分页图标样式。 图片管理:对图片进行管理,并支持为图片配置跳转链接。 单击“添加”,在“选择图片/视频”页面,单击目录后的和,可管理图片目录。单击“上传图片/视频”,可上传图片。 选中图片,单击,可删除图片。 单击,可编辑图片跳转链接。
  • 属性 在属性中,设置轮播组件的位置、边框、连接器等。 图2 属性 基础 组件标题:设置组件的标题。 组件名称:设置组件的名称。 位置 距离左端:组件到页面左侧的距离,单位为px。 距离顶端:组件到页面顶部的距离,单位为px。 宽度:组件的宽度,单位为px。 高度:组件的高度,单位为px。 堆叠顺序:设置组件层叠显示顺序。组件的堆叠顺序默认都是“1”,数字越大,显示越靠前。当需要让组件置底时,可设置堆叠顺序为“0”。 自适应高度:组件的高度是否随宽度改变。 边框:设置组件的边框样式,如全边框或角边框。 背景 样式:设置背景的样式,如普通、居中、拉伸等。 图片链接:背景图片URL。 颜色:设置背景的颜色。 自定义属性列表:显示组件的自定义属性。 图片源设置:图片来源是否取自OBS连接器。 勾选使用连接器,表示取自OBS连接器。当连接器中图片过多时,可能会导致读取图片缓慢,且打包该页面时,由于图片地址为绝对地址,打包安装后,图片地址不可用,需要重新上传图片并进行配置。 不勾选使用连接器,表示图片来源取自平台接口。选择图片后实际存储的是图片id,页面随应用打包时会将图片一起打包,在新环境安装后无需重新上传配置。 连接器设置 选择连接器:选择有存储功能的OBS类型连接器。OBS连接器配置完成后,才可以进行图片的查询、上传等操作,连接器的配置方法请参见对接OBS云对象存储实例。 选择桶:连接器的存储桶。
  • 初识事件-动作 查看组件可配置事件列表。 以雷达图组件为例,在画布中拖入并选中雷达图组件,在右侧“组件属性设置”栏中选择“事件”页签,会显示当前组件可配置的事件列表。 图1 事件配置示例 表1 预置事件列表 事件名称 事件说明 点击 通过鼠标左键,单击该组件时触发。 双击 通过鼠标左键,双击该组件时触发。 右击 通过鼠标右键,单击该组件时触发。 右双击 通过鼠标右键,双击该组件时触发。 鼠标滑过 鼠标光标滑过该组件时触发。 组件加载 组件加载完成后触发。 单击组件标题 单击组件标题时触发。 当点击图例时 单击图例时触发。 当点击数据时 单击数据时触发。 图1所示的“跳转页面”事件,并非低代码平台预置的事件,而是在“雷达图”组件中注册的事件,当单击该组件标题时触发。即事件列表中也会展现该组件注册的事件,用于配置。组件中如何注册事件,请参见同页面内组件的交互。 事件在开发态(高级页面编辑页面)不能触发,只有在页面的运行态(应用运行状态或预览页面)才能触发生效。 配置事件触发时的响应动作。 单击事件名称后的,在弹出的“事件编辑”页面,可配置该事件触发时的响应动作。 图2 配置事件示例 “事件编辑”弹窗说明 如下图所示,其中标签1“新建动作”按钮,可为当前事件添加响应动作,标签2为当前事件已配置的动作列表,可在列表中操作列对其再次编辑或删除。 图3 事件编辑弹窗 预置动作说明 图4 动作列表示例 如上图所示,当单击“新建动作”按钮后,可展现当前事件可配置的动作列表。 表2 预置动作列表 动作类别 动作名称 详细说明 默认 页面跳转 跳转至其他页面,配置参数说明: 页面类型:设置待跳转的页面是当前应用中的标准页面、高级页面或外部页面。 高级页面、标准页面、外部页面:选择高级页面、标准页面或输入外部页面的地址。 动作参数:通过页面宏传递参数,可暂且不关注。 页面打开方式:设置跳转页面的打开方式,可选项包含当前浏览器窗口打开或新窗口打开。 自定义 自定义动作 自定义动作可通过代码,实现响应动作的逻辑。 //var flag=true //{widgetxxx}.flag=flag;console.log('测试自定义动作'); BPM动作 提交实例 详细介绍,请参见在高级页面中与工作流交互。 提交任务 转派任务 更改变量 图4中所示的“满月饼图”动作,并非低代码平台预置的动作,而是在“满月饼图”组件中注册的动作,即动作列表中也会展现在画布中所有组件注册的动作,用于配置。组件中如何注册动作,请参见同页面内组件的交互。 配置完成后,单击页面上方的,保存页面。 单击,进入预览页面,查看已配置的事件和动作是否能正常触发。
  • 操作步骤 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击事件后的,进入添加事件页面。 选择创建事件的方式,设置基本信息,单击“添加”。 创建新事件 图1 添加事件 标签:新建事件的标签名,用于在页面展示。 名称:事件在系统中的唯一标识,取值为“命名空间__标签__e”。 描述:新建事件的描述信息,建议设置为事件的功能。 导入已有事件:基于系统中已有的事件,添加一个新事件。 图2 导入事件 在事件详情页面的“自定义参数”中,新增自定义参数。 自定义参数用于记录有意义的事件状态变化,可以根据需要自行创建。例如,在本章节中创建的是记录应聘者是否被录用状态变化的事件,需要新增应聘者姓名“EmployName”和招聘结果“Result”两个参数字段。 在自定义参数中,单击“新建”,进入新增参数页面。 标签和名称设置为“EmployName”,字段类型选择“文本”,单击“保存”。 图3 设置参数 标签:新建参数的标签名,用于在页面中展示。 名称:新增参数在系统中的唯一标识,创建后不可修改。 字段类型:新建参数的字段类型,如数字、文本、日期等。 描述:新建参数的描述信息,建议配置为参数的功能。 是否必填:参数是否必填,勾选后,表示必填字段。 参考上述操作,新增标签和名称为“Result”,字段类型为“布尔”的“Result”参数。 图4 新增Result参数 图5 自定义参数列表 在“基本信息”页签,单击“启用”,启用该事件。
  • 事件分类 在业务流程中,有意义的状态变化都可称为事件。自定义好事件后,可基于该事件实现事件发送、事件订阅,对发送的事件数据进行分析处理等功能。低代码中的事件,分为标准事件和自定义事件两种。 标准事件是系统定义好的事件,可直接订阅。标准事件目前有几下几种: Absolute Time Alert:定时器发送的系统事件。 EV_FLOW_STARTED:流程启动,用于记录工作流的启动。 EV_FLOW_TERMINATED:流程终止,用于记录工作流的流程结束。 EV_FLOW_REVOKED:流程撤回,用于记录工作流的撤回。 EV_TASK_STARTED:任务启动,用于记录人工任务启动。 EV_TASK_TERMINATED:任务终止,用于记录人工任务结束。 自定义事件是指用户根据自身业务需求,自行定义的事件。例如,在某个公司招聘场景中,招聘人员A和招聘经理B负责面试,招聘经理B负责决定该应聘者是否被录用,录用后,人事部C来给新员工办理各种手续。需要进行软件设计,一旦应聘者被录用后,不需要招聘经理自己去通知人事部,而是创建一个记录应聘者录用结果状态的事件,通过订阅该事件,系统根据状态结果自动发邮件给人事部,通知人事部是否办理入职手续。
  • 在脚本中调用连接器 在脚本中,调用已创建的连接器,实现与SMTP的对接。 参考开发一个简单脚本实例中操作,创建一个空白脚本。 图5 新建空白脚本 在脚本编辑器中,输入如下代码。 // 导入连接器import * as connector from 'connector';//新建SMTP邮件连接器,第一个参数固定是emailsmtp,第二个参数是连接器的名称let client = connector.newClient("emailsmtp","命名空间__smtp01");//构建请求消息头,包括收件人地址、邮件主题、邮件正文(主题和正文不能同时为空)//按内容发送let req ={"address":"test@huawei.com","subject":"SMTP功能验证-脚本","body":"使用SMTP发送邮件"};//按模板发送,如果有template模板参数,则主题和正文配置无效,按邮件模板中的内容发送//let req={"address":"test@huawei.com","template":"smtptt1."}//发送邮件,其中第一个参数不用填写,第二个参数为消息体let resp = client.invoke("",req); 其中,connector.newClient中“命名空间__smtp01”为连接器的名称,“address”为收件人,“subject”为主题,“body”为邮件内容。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,执行脚本。 2中已设置入参,故此处不需要再设置,直接单击测试窗口右上角的。 检查收件人是否收到邮件。 收到邮件,表示成功调用连接器,如图6。 图6 接收邮件内容 单击脚本编辑器页面上方的,启用脚本。
  • 配置流程介绍 触发器以图形表示的方式,将业务流程呈现给用户。触发器配置好后,用户不必手动执行这些操作,系统会自动执行。在开始配置触发器业务前,需要了解相关概念、配置流程等信息。 图1 配置流程图 新建触发器,设定该触发器关联的对象,触发器名称等信息。 进入触发器编辑页面,配置规则条件。 根据不同的条件设定各个动作。 (可选)添加规则条件,设定各动作。 启用创建的触发器。 测试流程,确保该触发器符合预期场景。 父主题: 触发器
  • 属性 数据绑定:通过建立不同类型的视图模型,将各种数据源和组件的返回值或者属性值进行关联,实现动态数据效果。 值绑定:设置组件绑定的数据模型,数据模型一般有以下几种。更多介绍,请参见值绑定。 自定义:由用户自定义的前端模型,可以在模型树上快速创建自定义字段。 对象:由后台对象模型映射创建,支持选择字段。 服务:由后台服务的出入参数模型创建,分别生成inputParam和outputParam节点。 事件:由后台事件的字段映射创建,并且支持websocket刷新模型数据。 属性值绑定,用于对该组件所有属性的动态设置。当某一属性被动态绑定时,以绑定值为准。更多介绍,请参见属性绑定。 基本属性:基本属性通过数据绑定后,在运行时以数据绑定的值为准。 内容或链接:设置扫描二维码后,要展示的文本内容或者跳转的链接地址。 宽度:二维码的宽度,单位像素。默认值为150。 容错级别:二维码被遮挡或残破时依然能被识别的几率,容错级别越高抗残破或遮挡的能力就越强。 空白间距:四周空白间距,单位像素。 前景色:二维码的颜色。 背景色:背景颜色。 中间Logo:二维码中间Logo图片,可不用设置。设置Logo后,如果扫描二维码识别失败,可以调高容错级别或调大二维码。 Logo大小:设置Logo的大小,单位像素。 公共 控件名称:当前组件的名称。 隐藏:是否隐藏该组件,此方式为静态配置该组件的隐藏。还可以将该组件属性值“隐藏”配置为布尔类型模型字段,在自定义JS代码中来控制模型字段取值,从而设置该组件是否隐藏,这种动态设置优先级是最高的。 样式 布局:设置组件的宽度、高度等。 字体:设置字体大小、字体样式、颜色等。 背景:设置背景颜色、透明度。 边框:设置边框颜色、宽度等,单位为px。 阴影:设置阴影颜色、模糊、扩散等,单位为px。 高级设置 样式源码:组件具体样式代码,组件样式设置后,样式代码将自动显示在“样式源码”中,也可以自定义样式代码,对组件进行详细配置,自定义代码支持多行输入,并高亮显示样式参数。 样式类:当前组件使用的CSS样式类名,可在CSS代码中进行引用。
  • 处理办法 查看OBS桶与ModelArts是否在同一个区域。 查看创建的OBS桶所在区域。 登录OBS管理控制台。 进入“对象存储”界面,可在搜索框中输入已经创建的桶名称或者桶名称列表栏,找到您创建的OBS桶。 在“区域栏”可查看创建的OBS桶的所在区域,如图1所示。 图1 OBS桶所在区域 查看ModelArts所在区域。 登录ModelArts控制台,在控制台左上角可查看ModelArts所在区域。 比对您创建的OBS桶所在区域与ModelArts所在区域是否一致。务必保证OBS桶与ModelArts所在区域一致。
  • Terminal重启后,其中安装的数据丢失如何处理? Terminal重启,如果出现Terminal中安装的数据丢失,可能原因是该数据没有保存指定目录导致。为避免该问题出现,可参照如下步骤进行处理。 Notebook实例会自动同步到“~work”目录下,如果是相关代码数据,需要您将代码数据指定到该目录。 为避免重启,请勿在开发环境中进行重型作业训练,如大量占用CPU、GPU或者内存的作业。 父主题: OBS操作相关故障
  • 排查办法 根据错误信息判断,报错原因来源于用户代码。 您可以通过以下两种方式排查: 线上环境调试代码(仅适用于非分布式代码) 在开发环境(notebook)申请相同规格的开发环境实例。 在notebook调试用户代码,并找出问题的代码段。 通过关键代码段 + 退出码尝试去搜索引擎寻找解决办法。, 通过训练日志排查问题 通过日志判断出问题的代码范围。 修改代码,在问题代码段添加打印,输出更详细的日志信息。 再次运行作业,判断出问题的代码段。
  • 解决方案 在转换模型任务的“模型输出目录”中存在算子评估结果文件“eval_report.json”,从对应的OBS目录获取该文件,并使用json格式化工具将评估结果文件进行格式化。 文件格式化之后,您可以在文件中查看哪个算子不支持, 建议可以使用哪个算子做替换, 示例如下: {"fail": 1,"name": "SSD_VGG_640x640","op": [{"name": "conv1_1","result": "success","type": "Convolution"}, {"cause": [{"code": 8,"message": "The type is ambiguous. Please choose from the following candidate list [FSRDetectionOutput, SSDDetectionOutput, YoloDetectionOutput]."}],"name": "detection_out","result": "failed","type": "DetectionOutput"}],"pass": 86,"result": "failed","total": 87} 如果需要继续转换模型,您需要完成算子映射。 在“模型输入目录”下添加算子映射文件 , 文件必须以“opmap.txt”命名, 在这个文件里面写入算子映射,格式为“不支持算子:替换算子”,如下所示: DetectionOutput:SSDDetectionOutput 在ModelArts管理控制台,再次提交模型转换任务。
  • 原因分析 日志显示训练进程的退出码为137。训练进程表示用户的代码启动后的进程,所以这里的退出码是用户的训练作业代码返回的。常见的错误码还包括247、139等。 退出码137或者247 可能是内存溢出造成的。请减少数据量、减少batch_size,优化代码,合理聚合、复制数据。 请注意,数据文件大小不等于内存占用大小,需仔细评估内存使用情况。 退出码139 请排查安装包的版本,可能存在包冲突的问题。
共100000条