华为云用户手册

  • 开启日志监控 选择以下任意一种方式,进入日志跟踪页面。 方式一:在AstroZero经典版应用设计器中,单击左下角的,进入日志跟踪页面。 图1 在App开发页面开启日志跟踪 方式二:在AstroZero经典版环境配置中,单击页面右下角的,进入日志跟踪页面。 图2 进入日志跟踪页面 单击,可以开启十分钟内的AstroZero的后台日志追踪。 如果需要停止跟踪,可单击,将停止追踪且不会获取日志文件。 图3 开启日志跟踪 表1 日志跟踪参数说明 参数 说明 日志级别 日志级别,取值说明如下: 会话级:只打印当前会话的日志。 租户级:打印租户所有会话的日志。 日志类型 日志类型,取值说明如下: 业务日志:输出业务相关的跟踪日志。 完整日志:输出业务日志,以及数据库、中间件等的详细日志,主要用于AstroZero问题定位。 下载日志文件。 单击下载,可下载日志文件。下载后会自动停止跟踪,日志格式为“时间|操作ID|业务部件|动作描述”。 单击,可从新窗口打开日志跟踪页面。 单击,可最小化显示日志跟踪页面。 单击最小化图标后,日志跟踪页面将会被隐藏。在AstroZero管理中心页面的右下角,可以看到日志跟踪剩余时间。单击该时间,将重新弹出日志跟踪页面。 图4 日志跟踪时间
  • 创建空白脚本 参考登录经典应用设计器中操作,登录经典版应用设计器。 将光标放在某个文件夹(例如Logic)上,单击,选择“脚本”。 图1 选择创建图标“+” 选择“创建一个新脚本”,设置脚本名称(如httpTest),单击“添加”,进入脚本编辑器。 图2 新增脚本 在脚本编辑器中,将以下脚本代码粘贴到代码编辑区。 import * as http from 'http' // 导入http库 let client = http.newClient() // 实例化 let resp = client.get("https://www.example.com/")// 请求网址 console.log(resp.headers) // 打印返回headers 单击页面上方的,保存脚本。 运行测试脚本。 单击编辑器上方的,执行脚本。 在页面底部单击测试窗口右上角的,返回消息头信息。 { Age: [ '10309' ], Cache-Control: [ 'no-store' ], Content-Type: [ 'text/html; charset=utf-8' ], Date: [ 'Thu, 01 Dec 2022 03:41:39 GMT' ], Expires: [ 'Wed, 30 Nov 2022 22:01:57 GMT' ], Pragma: [ 'no-cache' ], Processtime: [ '0.049' ], Server: [ 'PAAS-WEB' ], Set-Cookie: [ 'HMF_CI=596020aa4dbe4b6***42343ba04a; Expires=Sat, 31-Dec-22 03:41:39 GMT; Path=/' ], Strict-Transport-Security: [ 'max-age=31536000' ], Ws-S2h-Acc-Level: [ '1' ], X-Content-Type-Options: [ 'nosniff' ], X-Download-Options: [ 'noopen' ], X-Frame-Options: [ 'SAMEORIGIN' ], X-Powered-By: [ 'ASP.NET' ], X-Via: [ '1.1 PSjsczsxga60:2 (Cdn Cache Server V2.0), 1.1 uzhoudianxin101:13 (Cdn Cache Server V2.0), 1.1 wdx18:10 (Cdn Cache Server V2.0)' ], X-Ws-Request-Id: [ '63882273_wdx18_41265-37840' ], X-Xss-Protection: [ '1; mode=block' ] } 以上步骤已完成了一个简单脚本的编写,如果后续其他脚本、服务编排、编译打包等需要继续使用该脚本,则必须单击页面上方的,启用该脚本。如果未启用,其他组件无法查询到该脚本,查询时会报错该脚本不存在或未启用。 后续在新版本功能中如果需要更新该脚本,可单击编辑器上方的,选择“新建版本”,在新建的版本中更改脚本并保存、测试及启用。单击编辑器上方的,选择对比版本,可将当前版本与历史版本进行比对。
  • 使用说明 AstroZero通过对接软件开发生产线(CodeArts)和代码托管(CodeArts Repo),提供应用代码托管、代码检查、代码编译、验证、部署、发布功能,实现软件持续集成(Continuous Integration,简称CI)和持续交付(Continuous Delivery,简称CD)。 软件开发生产线(CodeArts)是集华为近30年研发实践、前沿研发理念、先进研发工具为一体的一站式云端DevOps平台,面向开发者提供的云服务,即开即用,让开发者快速而又轻松地开启云端开发之旅。更多介绍,请参见软件开发生产线(CodeArts)产品文档。 代码托管CodeArts Repo(原CodeHub)源自华为千亿级代码管理经验,基于Git,提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线 代码托管服务 ,包括代码克隆/下载/提交/推送/比较/合并/分支/Code Review等功能。更多介绍,请参见代码托管(CodeArts Repo)帮助文档。
  • 步骤3:进行代码托管 将AstroZero上开发的应用代码元数据归档到代码仓库。这里以归档某开发环境某个应用为例进行说明,您可对多个配置代码库的AstroZero环境的多个应用进行代码托管。 返回AstroZero经典版开发环境首页,单击某一需要归档代码的应用,进入应用开发页面。 参考图11和图12,在左侧单击。 首次归档应用代码,所有代码显示在“未暂存的更改”下,单击后面的“+”,再单击。设置归档描述信息,单击“确认”,即可归档该应用所有代码。支持选择部分代码归档,在需要归档的代码目录后,单击“+”进行操作即可。 图11 归档代码 图12 设置归档描述 单击“源代码管理”后的,打开代码仓库首页。 图13 提交代码 在代码仓库“文件”页签下,单击“Application”,可查看应用的归档代码。 图14 查看归档应用 图15 查看应用代码 代码仓库“提交网络”页签是以流向图的形式展现了某条分支或标签的整个提交(commit)历史(包括动作、时间、提交者、提交系统生成备注和手动填写备注)以及提交历史的关系。
  • 应用的生命周期 应用的开发阶段 应用是一个工程,可以创建对象模型,编辑标准页面和高级页面,开发服务编排和脚本逻辑,开发商业应用业务流程等。在AstroZero的开发环境中,可以快速实现底层逻辑的开发。 应用的部署阶段 应用是一个可安装的包,可以实现不同账号间和不同环境间的迁移,用户只要下载和导入这个应用包就可以部署应用。 应用的运行阶段 应用是一个可预览的运行界面。业务用户获取应用访问地址后,即可登录并使用应用。
  • 支持创建的应用类型 标准应用 标准应用是可独立运行的管理类应用,是一个实现了某种业务管理的可运行应用程序。AstroZero低代码平台为了降低应用开发成本,提高应用开发效率,内置了丰富的应用模板,当业务与应用模板中的场景相似度较高时,可以尝试使用应用模板创建,并在模板应用的基础上继续改造应用。 扩展应用 当需要基于已有应用或解决方案(不是单一的应用,某一解决方案会涉及到多个应用)进行定制时,可选择创建扩展类型的应用。通过该方式创建的应用,可复用已有资产,可乐高式搭建组装后,稍加定制便可满足业务需求,大大提高开发效率。 扩展应用和BO的区别:扩展应用基于的原有应用可理解为一个基础的类,被扩展后相当于重写了其中的一些方法。而BO则像一个库,等待其他应用的引入。 BO 业务对象(BO)是封装了完整的数据模型、业务逻辑、页面展现的软件单元。一个BO提供一个完整场景的服务,为上层应用提供特定服务。不同用户可以开发各自的BO,在BO里创建逻辑使其具有特定的业务功能,开发好后制作成用户包并进行发布。下载用户包给其他用户,其他用户安装BO包后,在上层应用(需要使用该BO服务的应用)里导入发布好的BO,即导入特定的业务功能进行使用。 例如,设备BO,为上层应用提供对设备的统一语义,对设备自身能力进行抽象封装,不包含对设备的运营运维管理能力。告警BO,对园区的所有告警提供统一语义,从各个子系统和上层应用获取告警数据,统一模型统一展现。GIS服务BO,提供对GIS子系统的租户管理、地图管理、位置服务接口的封装和标准化接口。您可以基于设备BO、告警BO以及GIS服务BO等多种BO资产,创建智能烟雾感应应用,完成设备数据的接入、处理分析以及告警监控功能。 原生服务 开发者线下开发了一些服务,服务运行在Docker容器中。开发者希望可将线下开发的这些服务集成到AstroZero上,供AstroZero内部应用或者其他第三方系统调用时,此时可通过创建原生服务引入线下开发的原生服务。
  • 检查页面性能 打开要进行性能检查的高级页面,在浏览器 开发者工具 中,勾选“Disable cache”属性。 在Chrome浏览器中,按下“F12”或者“Ctrl + Shift + I”,开启开发者工具。 在“Network”页签,勾选“Disable cache”属性(即禁用缓存)。 在进行页面性能检查时,如果不勾选该选项,性能检查会读取缓存中的数据,导致性能检查结果不准确。 图1 勾选“Disable cache”属性 在已发布的高级页面上方,单击“性能分析”,进入页面性能分析报告页面。 开发者工具请保持打开状态,关闭后“Disable cache”属性会自动不勾选。同时请确保高级页面已发布,如果未发布,单击高级页面上方的,发布页面。 图2 查看性能分析报告 在页面性能报告中,单击各指标后的“展开”,可查看性能指标详情。 图3 查看性能指标详情
  • 基本属性 流式布局 容器组件默认弹性布局未开启,处于流式布局的状态,如图5所示。 图5 流式布局 在流式布局中,组件默认为块级(Block)元素,即不论组件宽度是多少,默认占据全部父级元素的宽度。如图6所示,向画布中拖拽一个“容器”组件,再向“容器”组件中拖入两个“标题”组件,“标题”组件为块级元素,默认占据全部父级元素宽度,即外层“容器”的宽度,第二个“标题”组件会在第一个“标题”组件的下方。 图6 流式布局中组件为块级元素 流式布局中,组件由上至下依次排布,可以通过“水平对齐方式”对容器内组件进行水平位置调整,如图7、图8所示。 图7 居中水平对齐 图8 靠右水平对齐 弹性布局 将“容器”组件属性面板中的“弹性布局”开启后,布局由流式布局切换到弹性布局。在弹性布局的属性配置中,会出现“排列方向”、“水平对齐方式”和“垂直对齐方式”,如图9所示。 图9 弹性布局 为了方便说明弹性布局,向画布中拖拽一个“容器”组件,再向“容器”组件中拖入五个“容器”组件,将每个“容器”组件的宽度和高度设置为100px,并为每个“容器”组件设置不同的背景颜色,在每个“容器”中加入一个“标题”组件,分别显示A、B、C、D、E。 默认弹性布局下,排列方向为“行”,水平对齐方式为“起点对齐”,垂直对齐方式为“起点对齐”,如图10所示。 图10 弹性布局默认效果 排列方向属性决定了容器内组件的排列方向。当排列方向为“行”时,容器内组件从左到右排布。排列方向为“列”时,容器内组件从上到下排布,如图11。 图11 排列方向“列” 水平排列方式属性,决定了容器主轴方向排列方式。当容器排列方向为“行”时,水平排列方式属性作用于水平方向。当容器排列方向为“列”时,水平排列方式属性作用于垂直方向。排列方向为行时起点为左,水平对齐方式选择“中间对齐”和“终点对齐”时,如图12、图13所示。 图12 水平对齐方式选择“中间对齐” 图13 水平对齐方式选择“终点对齐” 垂直排列方式属性决定了容器交叉轴方向排列方式。当容器排列方向为“行”时,垂直排列方式属性作用于垂直方向。容器排列方向为“列”时,垂直排列方式属性作用于水平方向。当容器排列方向为行时起点为上,垂直对齐方式选择“中间对齐”和“终点对齐”时,如图14、图15所示。 图14 垂直对齐方式选择“中间对齐” 图15 垂直对齐方式选择“终点对齐” 通过对弹性布局属性的不同组合配置,实现用户想要实现的布局效果。例如,将排列方向设置为“行”,水平对齐方式和垂直对齐方式设置成“中间对齐”,实现居中布局的效果,如图16所示。 图16 弹性布局实现居中
  • 数据绑定 将容器组件的某个属性,如隐藏、样式、弹性布局等与具体的模型字段相绑定,绑定后组件的属性随模型字段的值变化而变化,类似Vue的v-bind。 在“数据绑定”中,单击“属性值绑定”后的“+”。 图2 单击添加图标 在“属性”下拉框中,选择容器的某个属性。 在模型字段中,单击,进入选择模型页面。 图3 选择设置图标 单击“新增模型”,进入新增模型页面。 设置模型名称与来源,单击“下一步”。 图4 定义模型 AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。 表1 模型来源说明 分类 模型说明 模型参数的定义 模型方法的定义 API调用方法 自定义 开发者自行定义的模型。 由开发者自定义,可以添加子节点。 开发者自定义方法。 $model.ref("modelName").actionName(); 对象 由Object对象表映射生成,关于对象模型的详细介绍,请参见对象。 系统自动获取Object所有的字段,开发者可以从中选择部分字段作为参数。 系统自动生成查询、保存、删除和统计四个方法。 $model.ref("modelName").query(param); $model.ref("modelName").save(); $model.ref("modelName").delete(); $model.ref("modelName").count(); 服务 服务模型由后台服务映射生成,当前支持与服务编排或脚本映射。关于服务模型的详细介绍,请参见服务编排和脚本。 参数根据后台服务的入参、出参,映射生成为inputParam和outputParam节点。 系统自动生成run方法 ,用于执行模型关联的服务编排或脚本。 $model.ref("modelName").run(); 事件 事件模型由后台事件的字段映射生成,并且支持websocket刷新模型数据。 参数根据后台事件的字段映射生成。 直接使用 直接使用 除了在模型中定义的方法,低代码平台还提供了如下标准API,适用于所有的模型。 获取模型数据:$model.ref("modelName").getData(); 设置模型数据:$model.ref("modelName").setData(); 设置模型字段值:$model.ref("modelName").setValue(key,value); 在新建模型“设置”页面,执行如下操作。 如果上一步来源选择“自定义”,需要添加子节点自定义参数及类型。 如果上一步来源选择“对象”,需要配置模型关联的对象以及字段。 如果上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。 如果上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。 单击“下一步”,设置方法。 方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。 设置完成后,单击“确定”。
  • 应用安装场景 应用开发编译发布成应用包后,可在开发环境、沙箱环境和运行环境中安装使用。应用包典型安装场景,有如下两种: 应用包的开发者租户,可以在当前租户的运行环境以及沙箱环境安装应用资产包,安装后进行测试或直接部署运行该应用。 其他租户可以在开发环境安装应用源码包,进行二次开发、参考或查看。在沙箱环境、运行环境中安装应用资产包,进行测试或直接部署运行该应用。 什么是源码包?与资产包有什么区别,详细介绍请参见导入导出应用源码包。
  • 安装应用有哪些方式 AstroZero低代码平台提供了如何通过导入方式安装应用和如何在我的仓库安装应用两种应用安装方式,请根据实际操作场景,选择安装应用的方式。应用安装场景及对应的安装方式介绍,如表1所示。 表1 应用安装场景及方式 场景 应用包来源 安装方式 安装环境 用途 安装当前租户 我的仓库 我的仓库 沙箱、运行环境 测试、部署运行 线下获取的应用资产包 导入方式 沙箱、运行环境 测试、部署运行 安装其他租户的应用 线下获取的应用源码包/资产包 导入方式 开发环境 二次开发、参考或查看 说明: 导入应用源码包支持二次开发,导入资产包只支持查看。如何编译应用包,请参见导入导出应用源码包。 线下获取的应用资产包 导入方式 沙箱、运行环境 测试、部署运行
  • 样式 针对有丰富前端开发经验的用户,可通过“样式”面板对页面进行更深度的个性化布局定制。 布局:设置组件的宽度、高度等。 字体:设置字体大小、字体样式、颜色等。 背景:设置背景颜色、透明度。 边框:设置边框颜色、宽度等,支持的单位有px、em和%。 阴影:设置阴影颜色、模糊、扩散等,支持的单位有px、em和%。 高级设置:在高级设置中,直接编写 CSS 代码作用于当前元素。 样式源码:组件具体样式代码,组件样式设置后,样式代码将自动显示在“样式源码”中,也可以自定义样式代码,对组件进行详细配置,自定义代码支持多行输入,并高亮显示样式参数。 样式类:当前组件使用的 CS S样式类名,可在CSS代码中进行引用。
  • 数据绑定 通过建立不同类型的视图模型,将各种数据源和组件的返回值或者属性值进行关联,实现动态数据效果。 值绑定:值绑定类似vue中的v-model语法,组件上创建双向数据绑定。值绑定会根据组件类型,自动选取正确的方法来更新元素。同时,负责监视各类引起绑定数据变化的事件以更新数据。 在“数据绑定”中,单击“值(value)绑定”中的,进入选择模型页面。 单击“新增模型”,进入新增模型页面。 设置模型名称与来源,单击“下一步”。 图2 定义模型 AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。 表1 模型来源说明 分类 模型说明 模型参数的定义 模型方法的定义 API调用方法 自定义 开发者自行定义的模型。 由开发者自定义,可以添加子节点。 开发者自定义方法。 $model.ref("modelName").actionName(); 对象 由Object对象表映射生成,关于对象模型的详细介绍,请参见对象。 系统自动获取Object所有的字段,开发者可以从中选择部分字段作为参数。 系统自动生成查询、保存、删除和统计四个方法。 $model.ref("modelName").query(param); $model.ref("modelName").save(); $model.ref("modelName").delete(); $model.ref("modelName").count(); 服务 服务模型由后台服务映射生成,当前支持与服务编排或脚本映射。关于服务模型的详细介绍,请参见服务编排和脚本。 参数根据后台服务的入参、出参,映射生成为inputParam和outputParam节点。 系统自动生成run方法 ,用于执行模型关联的服务编排或脚本。 $model.ref("modelName").run(); 事件 事件模型由后台事件的字段映射生成,并且支持websocket刷新模型数据。 参数根据后台事件的字段映射生成。 直接使用 直接使用 除了在模型中定义的方法,低代码平台还提供了如下标准API,适用于所有的模型。 获取模型数据:$model.ref("modelName").getData(); 设置模型数据:$model.ref("modelName").setData(); 设置模型字段值:$model.ref("modelName").setValue(key,value); 在新建模型“设置”页面,执行如下操作。 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。 上一步来源选择“对象”,需要配置模型关联的对象以及字段。 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。 单击“下一步”,设置方法。 方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。 设置完成后,单击“确定”。 属性值绑定:将容器组件的某个属性,如隐藏、样式、弹性布局等与具体的模型字段相绑定,绑定后组件的属性随模型字段的值变化而变化,类似Vue的v-bind。 在“数据绑定”中,单击“属性值绑定”后的“+”。 在“属性”下拉框中,选择容器的某个属性。 在模型字段中,单击,进入选择模型页面。 单击“新增模型”,进入新增模型页面。 设置模型名称与来源,单击“下一步”。 AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。详细介绍,请参见表1。 图3 定义模型 在新建模型“设置”页面,执行如下操作。 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。 上一步来源选择“对象”,需要配置模型关联的对象以及字段。 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。 单击“下一步”,设置方法。 方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。 设置完成后,单击“确定”。
  • 创建聚合对象并通过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 - - -
  • 操作步骤 参考登录经典应用设计器中操作,登录经典版应用设计器。 将鼠标放在应用的某个文件夹上(如Logic),单击“+”,选择“决策表”。 设置决策表的标签和名称,单击“添加”。 图1 创建决策表 设置输入参数和输出参数,并配置规则。 单击输入参数或者输出参数后的“+” ,可增加参数。 单击参数后的,可设置数据类型和描述信息。 图2 设置数据类型 单击“添加规则”,可设置输入参数和输出参数之间的值映射规则,从下拉框选择配置逻辑。 图3 添加规则 图4 设置后效果 单击页面上方的,保存决策表。 单击页面上方的,启用决策表。
  • 通过REST接口调用连接器 可以通过调用REST接口,完成表1中功能。如何调用接口,请参见连接器API。 表1 调用连接器 接口 说明 上传文件 将本地文件上传到存储中。使用该API上传文件,默认只会上传到连接器下配置的第一个桶中。待上传的文件可以是任何类型,如文本文件、图片、视频等。 下载文件 从存储中下载文件。 删除文件 从存储中删除无用的文件。 删除目录 从存储中删除某目录。如果目录下不为空,删除目录的同时也会删除该目录下文件。 列举目录下文件 列举存储中某目录下文件。 分段上传 对于较大文件上传,可以切分成段上传。用户可以在如下的应用场景内(但不仅限于此),使用分段上传的模式: 上传超过100MB大小的文件。 网络条件较差,和OBS等存储服务端之间的链接经常断开。 上传前无法确定将要上传文件的大小。 获取endpoint,即文件存储地址的前缀 endpoint为文件存储地址的前缀,该前缀加上传对象的路径,是实际访问对象的全路径。 分享Token 获取临时Token,用户只要使用该临时Token即可访问文件,不用再使用access-token进行鉴权。
  • 前提条件 使用OBS前,需要拥有一个华为账号或一个可用于访问OBS的 IAM 用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已在华为OBS上,创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,请记录创建桶时选择的区域。
  • 如何使用记录创建图元 在基本中,拖拽“记录创建”图元至画布中。 选中记录创建图元,单击,设置基本信息。 表1 基本信息参数说明 参数 参数说明 标签 记录创建图元的标签,用于在页面显示。系统会自动填入该值,格式为RecordCreate序号,序号从“0”开始,表示同类型图元序号。 名称 该图元的标识,请确保在当前服务编排中唯一。 描述 该图元的描述信息。 使用快速创建模式 是否启用快速创建模式。 若勾选该参数,表示为快速模式。该模式可以创建一条或者多条记录,仅需要配置对象的对象变量(与对象关联的变量)或对象变量数组。该图元负责将对象变量或对象变量数组的值写入数据库。当对象变量为数组时,则实现创建多条记录。创建成功后,返回的记录ID自动保存在对象变量中。创建记录的各个字段的值为对象变量中的值,因此一般需要在创建记录之前先给对象变量进行赋值。 不勾选,表示为普通模式。该模式下每次执行到该图元仅创建一条记录,需要配置要创建记录的对象名,对象中字段的值,返回的记录ID保存到变量名中。 默认不勾选。 单击,在“记录创建”页面进行配置。 若上一步勾选“使用快速创建模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的值创建新记录。如下图所示,使用“accountCreate”对象变量的值创建新记录。 图1 快速创建模式 表2 快速创建模式参数说明 参数名 参数说明 变量 预先定义的对象变量或对象变量数组,使用该对象变量或者对象变量数组的值创建新记录。 从全局上下文拖拽或直接输入对象变量/对象变量数组。 当前服务编排出现错误时回滚 勾选表示在服务编排中,当后续图元失败的情况下,就可以回滚到上一个流程。 不勾选,在服务编排中,当出现后边图元失败的情况下,对象记录操作的图元就不回滚。 默认为勾选。无特殊要求,请不要更改设置。 若上一步未勾选“使用快速创建模式”,则需要指定对象并为对象的字段赋值来创建记录。如下图所示,为“Account”对象新增“name”为“Lily”的数据记录,在变量“var_record_id”中保存新建的记录ID。 图2 普通创建模式 表3 普通创建模式参数说明 参数 参数说明 对象 指定的具体对象。 当前服务编排出现错误时回滚 当前服务编排出现错误时,回滚到上一个流程。 默认为勾选。无特殊要求,请不要更改设置。 赋值 选中对象后,该赋值区域“目标”列会出现该对象的字段。如果需要给多个字段赋值,则单击“新增行”,定义其他字段的值。 在“目标”中选择需要赋值的对象字段,“源”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 变量 将创建的记录ID分配到该变量中,以便在服务编排中引用。 从全局上下文拖拽或直接输入文本类型变量。
  • 调用脚本 当流程到达“调用脚本”任务时,系统自动执行脚本,执行完成后继续执行后续路线。使用该图元时,需要选择具体调用的脚本,配置输入输出参数。 图14 调用脚本配置页面 工作流中只允许调用当前应用工程下的资源(例如脚本、服务编排),即调用脚本中可供选择的脚本和该工作流都处于同一应用下。 例如,工作流A中需要调用脚本B,请确保A和B处于同一应用中。如果需要调用的资源不在同一应用中,请在工作流A所在的应用中新建脚本B,或选择“使用已有脚本”导入脚本B。再在工作流A中,使用“调用脚本”图元调用该脚本。 图15 使用已有脚本
  • 记录删除 “记录删除”图元能够删除平台对象的实例记录,类似于数据库中的DELETE命令。系统提供了以下两种模式,删除对象实例记录: 对象模式:需要先单击,在“对象变量”中定义一个对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的记录ID删除对应的对象记录。 图12 对象模式 条件模式:需要指定对象并在条件中设置指定对象部分字段的值,根据条件删除符合条件的对象记录。 图13 条件模式
  • 邮件 当流程到达“邮件”任务时,系统自动发送邮件,执行完成后继续执行后续路线。 使用邮件图元,需要提前配置租户的默认邮件服务器,具体操作请参考服务编排、BPM、脚本中发送邮件功能不可用。 图20 调用邮件页面 邮件配置:支持“直接编辑”手动设置邮件信息或“基于模板”选择邮件模板。 主题:当“邮件配置”设置为“基于模板”时,需要选择邮件模板。 内容:当“邮件配置”设置为“直接编辑”时,需要配置邮件内容。 模板:当“邮件配置”设置为“基于模板”时,需要选择邮件模板。 地址:设置接收人的邮箱地址。 文本:直接输入邮箱地址,多个地址请用分号分隔,或者从全局上下文拖拽变量代表一个接收人的邮箱地址。 集合:可以从全局上下文拖拽集合变量,集合变量即数组型变量,表示多个接收人的邮箱地址。在定义变量时,勾选“是否为数组”,则该变量被定义为集合变量。 图21 集合变量 抄送:抄送人的邮箱地址。 密送:密送人的邮箱地址。 是否同步发送:是否开启同步发送功能。
  • 子流程 子流程任务是一个特殊的自动化容器任务,其内在包含了对子流程(Sub Process)的创建、启动和调度管理。 当流程到达子流程任务时,按照配置策略自动启动子流程实例,父流程的该分支中断,在这里等待子流程实例全部结束后继续执行后续路线。 子流程模型可以再包含调用子流程,成为每层嵌套的多级流程。 图23 子流程实例 调用活动和子流程图元都是工作流的内嵌子流程,区别在于: 调用活动把子流程当做一个黑盒(不需要关注子流程是怎么实现的),通过参数传递进行调用。 内嵌子流程则直接在当前流程中规划出一个子流程,子流程可共享父流程的变量。可用于流程步骤的划分、封装和复用。 内嵌子流程中使用“终止”事件,只终止当前内嵌子流程。
  • 规则 该图元根据决策表的配置生成一定的规则,后续根据规则的输出连接网关路由到不同的其他图元节点,当流程到达“规则”任务时,系统根据该规则路由到不同的路线。 图17 调用规则配置页面 规则实现 实现类型:规则基于决策表生成,请选择决策表类型。 引用:决策表的输入参数名称。此处只能使用当前项目依赖BO中,公开的及全局的已启用的决策表。 输入参数 目标:决策表的输入参数名称,直接在下拉框中选择即可。 源:工作流中的变量,为目标赋值。可以直接填写,也可以拖入全局上下文变量,将工作流中的变量赋值给决策表中的输入参数。 输出参数 目标:决策表的输出参数名称,直接在下拉框中选择即可。 源:工作流中的变量,将决策表中的输出参数赋值给工作流中的变量。 例如,在问题单流程中,问题单的工作流设计流程如下,业务的流转通过规则图元(即“步骤选择”)驱动,不同的规则输出不同的步骤取值,根据步骤取值路由到不同的步骤中。 图18 问题单流程
  • 记录创建 “记录创建”图元用于新增平台对象的实例记录,类似于数据库中的INSERT INTO命令。系统提供了以下两种模式,新增对象实例记录: 对象模式:需要先单击,在“对象变量”中定义一个对象变量或者对象变量数组,将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的值,创建实例记录。 图6 对象模式创建 条件模式:需要先指定对象并为对象的字段赋值,来创建记录。如下图所示,为“Account”对象新增实例记录,在变量“id”中保存新建的记录ID。 图7 条件模式创建
  • 记录更新 “记录更新”图元用于更新平台对象的实例记录,类似于数据库中的UPDATE命令。系统提供了以下两种模式,更新对象实例记录: 对象模式:需要先单击,在“对象变量”中定义一个对象变量或对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,即可根据对象变量中的记录ID将对象变量更新到数据库中,更新的值来源于对象变量中的值。如下图所示,根据对象变量数组“account”中的记录ID,将对象变量中的值更新到数据库中。 图10 对象模式 条件模式:需要指定对象并在条件中设置指定对象部分字段的值,在赋值中设置需要更新的目标字段及更新值,最后根据条件查找符合条件的对象记录并将赋值中的值更新到数据库中。 图11 条件模式
  • 记录查询 “记录查询”图元用于根据条件查询平台对象的实例记录,类似于数据库中的SELECT命令。系统提供了以下两种模式,查询对象实例记录: 对象模式:需要先单击,在“对象变量”中定义一个对象变量或者对象变量数组,将该对象变量或对象变量数组拖拽到“变量”输入框中,并设置条件以及选择排序方式,即可实现根据条件和排序方式,将查询结果保存在对象变量中。如下图所示,根据条件查询对象数据,并将查询结果保存在对象变量数组“account”中。 图8 对象模式查询 条件模式:需要指定对象并在条件中设置指定对象部分字段的值,根据条件查询符合条件的对象记录,并赋值到设置的变量上。 图9 条件模式查询 对象:查询的具体对象名,直接在下拉框中选择。 剔重:如果查询记录有重复值,是否需要删掉重复记录只保留一条记录。 条件:选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置查询数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 排序字段/顺序:使查询结果根据某个字段进行升序或者降序排序。 记录行的偏移量:分页,跳过前“n”条记录,从第“n+1”条记录开始。 记录行的最大数目:分页,每页最多显示的记录数。 记录的总行数存入变量:限定查询出来的总记录数,存入变量中。 (输出)源/目标:输出的结果。其中,“源”为需要查询的字段,查询结果需要保存到设置的变量中,“目标”为设置的变量。 无记录时配置空值:当根据条件查询无记录时,则变量为空值。
  • 用户任务 用户任务用来表示,业务流程中由用户参与完成的工作。当引擎处理到该节点时,给指定的用户(参与者)或者一组用户(如某泳道的工作队列)创建待处理的任务项,等待用户的处理。 用户任务配置:在用户任务配置界面,配置任务接收人和活动界面。 图1 用户任务配置页面 任务标题:显示在任务界面的标题。 任务描述:显示在任务界面的任务描述。 优先级:在下拉框中,选择任务的优先级,如正常、高和低等。 渲染类型:用户处理的界面,可以是标准页面、标准表单或高级页面。当配置为标准表单时,需要配置用户可执行的动作(例如同意或拒绝)。如何创建标准表单,请参见创建标准表单。 类型:待处理任务的用户类型。 当前泳道:设置为“当前泳道”,将泳道和工作队列绑定,则处于该泳道的用户任务图元,由该泳道对应工作队列中的成员去处理。工作队列中的成员可以是多个用户、业务用户、公共组中成员、角色或带有下属的角色中成员。 流程发起人的主管:设置为“流程发起人的主管”时,需要配置“部门经理层级”,即主管所属的部门。 名称和表达式:设置为“名称和表达式”时,可以通过“表达式”、“用户”和“组”三种方式分配该任务的参与者。这时,泳道中的工作队列配置不起作用。 基于规则:当配置为该类型时,需要配置具体的“规则”。 参与者:当类型为“名称和表达式”时,该参数才会显示。参与者类型可以是用户、业务用户、组或者表达式。 用户:在“取值”中,选择接收该任务的用户,不包括业务用户。 业务用户:在“取值”中,选择接收该任务的业务用户。 组:在“取值”中选择公共组,则该任务由公共组的成员去处理。公共组的成员可以是用户、业务用户、其他公共组的成员、角色或带有下属的角色中成员。如何创建公共组,请参见管理应用中的公共组。 表达式:将参与者类型配置为“表达式”时,实际是一个变量。在“取值”中,可设置变量的值,变量值支持以下几种: 用户的用户名或用户ID,其中用户名前需要加“user:”前缀。 业务用户的用户名或业务用户ID,其中业务用户名前需要加“puser:”前缀。 公共组名称或者公共组ID,其中公共组名称前需要加“group:”前缀。 角色名称或者角色ID,其中角色名称前需要加“role:”前缀。 例如,分配任务接受者为用户名为“PortalUser1”的业务用户、用户名为“User1”的用户、用户ID为“10XX000000XXXXXXX”的用户、公共组名称为“group1”和角色名称为“role1”的合集,则取值为“"puser:PortalUser1,user:User1,10XX000000XXXXXXX,group:group1,role:role1"”。多个取值之间用英文逗号“,”分隔,取值外加英文双引号。 规则:接收人满足的规则。类型为“基于规则”时,该参数才会显示。 审批类型:选择审批的类型。 如果选择了“或签:任一个分配人均可审批”,则只需要接收人中的某一用户完成了审批,即可推动任务流程,走向下一个任务。 如果选择了“会签:每个分配人都需要审批”,则需要接收人中的用户群体满足您设置的审批条件才可推动任务流程,走向下一个任务。 如果审批人中包含群组,则群组中任意一人审批即认为该群组已经审批。当审批类型为“会签:每个分配人都需要审批”时,该参数才会显示。 勾选,表示如果审批人中包含群组,则群组中任意一人第一个审批即认为该群组已经审批,不需要其他用户再进行审批,该群组只算一个有效审批人数。 不勾选,选表示如果审批人中包含群组,则群组中每个人都需要审批,都计算在有效审批人数内。 投票结果门槛:该参数取值表示百分比,如果达到设置的百分比,审批结果中最高的得票结果将覆盖 “$BP.TaskOutcome”系统变量,即将执行最高得票的审批结果。 默认结果:审批百分比(已审批的人数/总的有效审批人数)未达到“投票结果门槛”百分比时,默认的审批结果。当审批类型为“会签:每个分配人都需要审批”时,该参数才会显示。 结果触发方式:当审批类型为“会签:每个分配人都需要审批”时,该参数才会显示。 当最小百分比满足时,立即触发投票结果。 等待所有投票完成,触发投票结果。 审批动作:设定一些候选的动作,作为默认审批结果。 当存在以下动作时立即终止任务:当存在设定的某个或者某些动作时,立即终止任务。 自动审批:AstroZero支持用户任务自动审批功能,例如设置“主管审核”任务自动审批。在用户任务配置界面,指定该任务具体接收人,可使用表达式的形式将任务指派给某一用户,在自动审批中进行设置。 图2 自动审批设置 流程触发人自动通过:如果勾选该选项,任务接收人是流程触发人时,该用户任务会被自动审批。 已审批过该流程的审批人自动通过:如果勾选该选项,任务接收人在当前工作流实例中已审批过其他用户任务,则该用户任务会被自动审批。 当任务接收人设置为“当前泳道”对应的工作队列或用户组时,将无法使用自动审批功能。只有任务接收人设置为某一用户时,才可以进行自动审批。 自动审批时默认选择的动作:勾选自动审批时,可以设置自动审批默认选择的动作。 动作配置:为该用户任务配置前置或者后置动作。 图3 动作配置 前置动作:流程执行该用户任务前执行的动作。 触发条件:触发该动作的条件表达式。 动作类型:满足触发条件时,执行的具体动作。 通知经理:发邮件通知经理。 通知分配人:发邮件通知任务分配人。 调用服务编排:调用已启用的服务编排。 调用脚本:调用已激活的脚本。 发送事件:发送某一事件。 转移:将该用户任务转移给其他用户或工作队列中的用户处理。 设置状态:设置该用户任务的状态。 完成任务:完成某一任务,超期会自动完成任务。 后置动作:流程执行该用户任务后,执行的动作,请参考“前置动作”进行配置。 数据映射:对该用户任务的输入输出参数,进行数据映射。 图4 数据映射 SLA:为用户任务设置定时器,时间逾期可增加紧急程度并执行相应动作。 图5 启用SLA定期器 开始时间:定时器的开始时间。 任务创建后:设置任务创建的时间作为定时器开始的时间。 由变量指定:通过指定时间变量,来确定开始时间。 由表达式指定:通过表达式指定开始时间,例如支持特定时间的相对时间,设置为“STRING2TIME('yyyy-MM-dd hh:mm:ss.S', {!variable1})”。动态指定时间的相对时间,设置为“TIMEADD({!$Flow.CurrentDateTime}, 100)”。 目标期限:任务在目标期限内且即将过期时,满足触发条件后触发一个指定的动作。 截止限期:任务过期,满足触发条件后触发一个指定的动作。 紧急程度:定时器的紧急程度。 动作:时间逾期后执行的相应动作。单击“添加”,可以新增动作。 触发条件:触发该动作的条件表达式。 动作类型:满足触发条件时,执行的具体动作。 通知经理:发邮件通知经理。 通知分配人:发邮件通知任务分配人。 调用服务编排:调用已启用的服务编排。 调用脚本:调用已激活的脚本。 发送事件:发送某一事件。 转移:将该用户任务转移给其他用户或工作队列中的用户处理。 设置状态:设置该用户任务的状态。 赋值:给用户的任务赋值。 完成任务:完成某一任务,超期会自动完成任务。
  • 前提条件 开发呼吸机申请服务,首先需要创建呼吸机资源对象Respirator,作为呼吸机申请服务处理的对象。 表1 Respirator对象自定义字段 字段名 字段类型 字段含义 status 文本 呼吸机当前状态,“空闲”或“使用中”。 hospital 文本 呼吸机当前所在医院。 参考经典应用开发工作台介绍中操作,登录经典版应用设计器。 将鼠标放在某个应用的目录上(例如,Model文件夹上),单击 “+”,选择“对象”。 设置对象的标签和名称为“Respirator”,单击“添加”。 图2 添加Respirator对象 在“自定义字段”页签,单击“新建”。 字段类型选择“文本”,单击“下一步”。 设置字段标签和名称为“status”,“数据长度”设置为“255”,单击“下一步”。 设置字段的访问权限,即哪些Profile可以查看或修改该字段,单击“下一步”。 添加到页面布局保持默认,即默认该字段加入所有布局,单击“保存”。 参考3~8中操作,新建“hospital”字段。
  • 场景描述 实现场景:根据查询到的呼吸机资源,数据判断资源是否充足,并修改相关资源信息。 实现方案:提前创建好呼吸机资源对象Respirator,使用服务编排实现上述场景功能。 通过循环图元对传入的数组对象变量RespiratorInfos(即空闲状态下的呼吸机资源数组)进行遍历,并将数组中的每个元素放置到对象变量RespiratorInfo(空闲状态下的呼吸机资源数组元素)中。 通过“赋值”图元,设置参数。 将当前遍历的对象变量元素,添加到此次申请的原始呼吸机资源数组中,并对计数进行加一操作。将当前遍历的对象变量元素的字段医院信息修改为发起呼吸机申请的医院信息,将呼吸机状态修改为“使用中”,并添加到申请后的呼吸机资源数组中。 通过“决策”图元,判断资源是否充足。 走“ResourceEnough1”分支:在空闲状态下的呼吸机资源满足申请数量时,跳出循环,返回信息“资源充足,申请呼吸机成功!”。 走“ResourceNotEnough1”分支:循环遍历全部元素后仍未满足申请数量,将走Finish连线进行资源是否充足的判断: 走“ResourceEnough2”分支:资源充足情况下,返回“资源充足,申请呼吸机成功!”。 走“ResourceNotEnough2”分支:当此次申请的呼吸机资源数组中,实际存在的资源数量比申请的数量少时,代表申请的资源不足,返回信息“资源不足,申请失败!”。 图1 总体编排流程
共100000条