华为云用户手册

  • 用户任务 用户任务用来表示业务流程中由用户参与完成的工作。当引擎处理到该节点时,给指定的用户(参与者)或者一组用户(如某泳道的工作队列)创建待处理的任务项,等待用户的处理。 下面介绍如何配置用户任务。 您可在用户任务配置界面配置任务接收人和活动界面。 图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”系统变量,即将执行最高得票的审批结果。 默认结果 当审批类型为“会签:每个分配人都需要审批”时,该参数才会显示。 审批百分比(已审批的人数/总的有效审批人数)未达到“投票结果门槛”百分比时,默认的审批结果。 结果触发方式 当审批类型为“会签:每个分配人都需要审批”时,该参数才会显示。取值如下: 当最小百分比满足时立即触发投票结果 等待所有投票完成触发投票结果 候选动作 您可以设定一些候选的动作为默认审批结果。 当存在以下动作时立即终止任务 当存设定的某个或者某些动作时立即终止任务。 自动审批 该用户任务是否自动审批。 流程触发人自动通过:通过接收人“类型”和“参与者”已设置用户任务的接收人后,若勾选自动审批中“流程触发人自动通过”,接收人正好是流程触发人时,该用户任务会被自动审批。 已审批过该流程的审批人自动通过:通过接收人“类型”和“参与者”已设置用户任务的接收人后,若勾选自动审批中“已审批过该流程的审批人自动通过”,接收人在当前BPM实例中已审批过其他用户任务,则该用户任务会被自动审批。 说明:当前自动审批功能只支持接收人为某一用户。可使用表达式的形式指派某一具体用户,使用自动审批功能。 自动审批时默认选择的动作 勾选自动审批时,可设置自动审批默认选择的动作。 您可为该用户任务配置前置或者后置动作。 表2 动作配置页面参数 区域 参数 说明 前置动作 - 流程执行该用户任务前执行的动作。 可单击“添加”新增动作。 触发条件 触发该动作的条件表达式。 动作类型 动作的类型,有以下几种: 通知经理:发邮件通知经理。当选择该类型时,需要配置“邮件模板”。 通知分配人:发邮件通知任务分配人。当选择该类型时,需要配置“邮件模板”。 调用服务编排:调用服务编排。当选择该类型时,需要配置具体的服务编排以及输入参数。 调用脚本:调用脚本。当选择该类型时,需要配置具体的脚本。 发送事件:发送某一事件。当选择该类型时,需要配置具体的事件。 转移:将该用户任务转移给其他用户或者工作队列的用户处理。当选择该类型时,需要配置“接收者类型”以及“接收者”。 设置状态:设置该用户任务的状态。当选择该类型时,需要配置具体的状态。 完成任务:完成某一任务,超期会自动完成任务。 后置工作 - 流程执行该用户任务后执行的动作。 可单击“添加”新增动作。 请参考“前置动作”进行配置。 您可对该用户任务的输入输出参数进行数据映射。 您还可为用户任务设置定时器,时间逾期可增加紧急程度并执行相应动作。 图2 启用SLA定期器 表3 SLA参数说明 参数 说明 开始时间 定时器的开始时间,分以下几种: 任务创建后。 由变量指定:通过指定时间变量来确定开始时间。 由表达式指定:开始时间支持表达式,例如:支持特定时间的相对时间,设置为“STRING2TIME('yyyy-MM-dd hh:mm:ss.S', {!variable1})”;动态指定时间的相对时间,设置为“TIMEADD({!$Flow.CurrentDateTime}, 100)”。 目标期限 任务在目标期限内且即将过期时,满足触发条件后触发一个指定的动作。 截止限期 任务过期,满足触发条件后触发一个指定的动作。 紧急程度 定时器的紧急程度。 动作 时间逾期后执行的相应动作。单击“添加”新增动作。 触发条件:触发该动作的条件表达式。 动作类型:动作的类型,有以下几种: 通知经理:发邮件通知经理。当选择该类型时,需要配置“邮件模板”。 通知分配人:发邮件通知任务分配人。当选择该类型时,需要配置“邮件模板”。 调用服务编排:调用服务编排。当选择该类型时,需要配置具体的服务编排以及输入参数。 调用脚本:调用脚本。当选择该类型时,需要配置具体的脚本。 发送事件:发送某一事件。当选择该类型时,需要配置具体的事件。 转移:将该用户任务转移给其他用户或者工作队列的用户处理。当选择该类型时,需要配置“接收者类型”以及“接收者”。 设置状态:设置该用户任务的状态。当选择该类型时,需要配置具体的状态。 完成任务:完成某一任务,超期会自动完成任务。
  • 结果验证 配置和开发完成后,触发告警事件,可将告警消息推送至高级页面monitor中显示。此案例触发验证有两种方法。方法1为直接触发事件验证,仅用于事件简单调测;方法2为服务编排触发事件验证。下面分别对这两种方法进行介绍。 若使用方法1验证:在进行验证前,请确保WebSocketAlarmEvent事件已启用(参考步骤1),且monitor预览页面已打开。 若使用方法2验证:请确保WebSocketAlarmEvent事件已启用(参考步骤1),WebSocketAlarmFlow告警服务编排已激活(参考步骤2),且monitor预览页面已打开。 方法1 直接触发事件验证 在Logic文件夹下,单击并打开WebSocketAlarmEvent事件,在事件详情右侧,单击“基本信息”下“发送事件”按钮,弹出“发送事件测试”窗口,输入参数信息(AlarmDate会自动获取系统日期时间,也可手工编辑修改),单击“发送”按钮。 { "AlarmTitle": "设备告警", "AlarmContent":"设备C1 本地数据库出错", "AlarmDate":"2020-12-12 17:09:20"} 图12 直接触发事件验证 图13 测试发送 切换到monitor预览页面,可观察到monitor页面已接收并显示该告警消息。 图14 直接触发事件验证效果图 方法2 服务编排触发事件验证 单击APP下Logic文件夹下的WebSocketAlarmFlow服务编排,单击运行该服务编排,在弹出的页签输入参数“{}”中输入如下AlarmTitle和AlarmContent参数值,单击“运行”,界面提示“结果: 成功”。 "AlarmTitle": "设备告警", "AlarmContent":"设备C1 本地数据库出错" 图15 服务编发触发事件验证 切换到monitor预览页面,可观察到monitor页面已接收并显示该告警消息。 图16 服务编发触发事件验证效果图
  • 前提条件 已创建温度监控设备对象“Conditioner__CST”,对象中id字段用于标识具体某设备(用户也可自定义某字段用于标识具体某设备,该字段必须是unique,即能够唯一标识一条记录),“current”字段用于标识设备记录的温度。 已创建温度监测事件“temperature_obtain__e”,该事件中自定义参数为“dev_id”(该字段必须为“Is Required”,用于匹配对象记录,字段类型需要和设备对象“Conditioner__CST”中标识具体某设备的id字段类型相同)和Number类型“temperature”,分别表示该区域的温度监控设备id和温度。具体操作步骤请参考如何自定义事件。 已创建高温报警事件“fire_alarm__e”,该事件中自定义参数为String类型“positionalarm”和Number类型“temperaturealarm”,分别表示高温报警位置和温度。具体操作步骤请参考如何自定义事件。
  • 结果验证 在状态机编辑页面单击,在右侧输入测试参数。 图9 测试 表3 测试参数说明 参数 说明 事件 该状态机接收的事件,配置为“temperature_obtain__e”。 事件信息 该事件的输入参数。示例如下: { "temperature": 35, "dev_id": "c01v000000JzvtESDJFw"} 单击“发送”,如果高温报警事件“fire_alarm__e”,状态处于“High”,表示测试成功。
  • 前提条件 使用OBS之前,您需要拥有一个华为云帐号或一个可用于访问OBS的IAM用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 参考获取AK/SK获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对。 在华为OBS上创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,并记录创建桶时选择的区域。
  • 调用连接器 可以通过调用REST接口完成如下功能,具体请参考连接器API。 接口 说明 上传文件 可以将本地文件往存储中上传。使用该API上传文件,默认只会上传到连接器下配置的第一个桶中。待上传的文件可以是任何类型:文本文件、图片、视频等。 下载文件 从存储中下载文件。 删除文件 从存储中删除无用的文件。 删除目录 从存储中删除某目录。如果目录下不为空,删除目录的同时也会删除该目录下文件。 列举目录下文件 列举存储中某目录下文件。 分段上传 对于较大文件上传,可以切分成段上传。用户可以在如下的应用场景内(但不仅限于此),使用分段上传的模式: 上传超过100MB大小的文件。 网络条件较差,和OBS等存储服务端之间的链接经常断开。 上传前无法确定将要上传文件的大小。 获取endpoint,即文件存储地址的前缀 endpoint为文件存储地址的前缀,该前缀加上传对象的路径,是实际访问对象的全路径。 分享Token 获取临时Token,用户只要使用该临时Token即可访问文件,不用再使用“access-token”进行鉴权。
  • 背景信息 CSS (Cloud Search Service):即云搜索服务,是一个基于Elasticsearch且完全托管的在线分布式搜索服务,为用户提供结构化、非结构化文本的多条件检索、统计、报表。完全兼容开源Elasticsearch软件原生接口。它可以帮助网站和App搭建搜索框,提升用户寻找资料和视频的体验;还可以搭建日志分析平台,在运维上进行业务日志分析和监控,在运营上进行流量分析等等。 云搜索服务的使用流程和数据库类似。 更多Elasticsearch说明可参考Elasticsearch官方网站。
  • 结果验证 创建一个服务编排“fire_alarm”,创建后启用该服务编排,实现当kafka中出现高温报警事件时,AppCube需要接收该事件,再向第三方系统发送该告警邮件。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“服务编排”。 系统弹出“添加服务编排”的对话框,选择“创建一个新的服务编排”,标签和名称填入“fire_alarm”,单击“添加”。 在服务编排编辑器页面左侧,拖拽“逻辑”下“等待”图标至画布中,松开鼠标左键。 单击,在“可编辑的事件”区域单击“新增”,新增“event0”分支,配置该分支事件为高温报警事件,当系统中出现该事件时,则会执行该分支。 图9 配置等待图元 拖拽“基本”下“发送邮件”图标至画布中,松开鼠标左键。 单击,设置发送邮件参数。配置高温报警邮件的主题和内容,地址填入第三方系统的邮件接收地址。 图10 配置发送邮件图元 表8 邮件发送参数说明 参数名称 参数说明 如何配置 直接编辑 手动设置邮件信息。 选中单选按钮。 “直接编辑”和“基于模板”两者择一。 默认选中“直接编辑”。 基于模板 基于同一租户或基线里已有的邮件模板设置邮件主题和内容。 方便用户增加效率。 模板 当选中“基于模板”时,您需要选择邮件模板。 在下拉框里选择。 主题 邮件标题。 当选中“直接编辑”时,您需要配置邮件标题。 当选中“基于模板”时,该参数配置区域置灰。 当选中“直接编辑”时,您需要直接输入邮件标题。 当选中“基于模板”时,不用配置。 内容 邮件内容。 当选中“直接编辑”时,您需要配置邮件内容。 当选中“基于模板”时,该参数配置区域置灰。 当选中“直接编辑”时,您需要直接输入邮件内容。 当选中“基于模板”时,不用配置。 自定义变量 当选中“基于模板”时,您需要配置模板中的参数,在“值”中进行赋值。 在“值”中直接输入参数取值或者从全局上下文拖拽变量。 地址 接收人的邮箱地址。 字符串:表示直接输入分号分隔的字符串或者从全局上下文拖拽变量。 集合:表示可以从全局上下文拖拽集合变量。 抄送 抄送人员的邮箱地址。 直接输入分号分隔的字符串或者从全局上下文拖拽变量。 密送 秘密发送人员的邮箱地址。 直接输入分号分隔的字符串或者从全局上下文拖拽变量。 按照下图连接所有图元,等待图元和发送邮件图元之间选择“event0”分支。 图11 连接所有图元 单击,保存服务编排。 单击,启用服务编排。 创建一个服务编排“send_fire_event”,将温度监测事件“temperature”中位置参数“position”赋值为仓储公司某区域,温度“temperature”赋值为70度,启用该Flow,用于模拟事件发送。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“服务编排”。 系统弹出“添加服务编排”的对话框,选择“创建一个新的服务编排”,标签和名称填入“send_fire_event”,单击“添加”。 在服务编排编辑器页面左侧,拖拽“基本”下“发送事件”图标至画布中,松开鼠标左键。 单击,设置发送事件参数。 图12 配置发送事件图元 表9 发送事件参数说明 参数名称 参数说明 如何配置 事件 请选择待发送的事件。 从下拉框选择“temperature__e”。 分区字段 可选配置。从事件中选择一个自定义参数用作Kafka的分区字段,则根据该字段值进行路由,相同的值将路由到同一个Kafka分区;如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。 从下拉框选择。 该示例不用配置。 发送到外部 系统内部有配置与AppCube相连Kafka的固定Topic“__BINGO_SYS_TOPIC”。 若不勾选“发送到外部”,表示将事件数据发到默认的Topic上;若勾选“发送到外部”,则表示将事件数据发送到与AppCube相连Kafka的其他Topic上,您需要配置其他的Topic。 默认不勾选。 去掉勾选。 延迟到事务结束(提交或回滚)后才发送 是否延迟到该服务编排事务结束后才发送事件。 默认不勾选。表示流程执行到该图元时立即发送事件。 勾选或者去掉勾选。 主题 当勾选“发送到外部”时,该参数才会显示,表示非系统配置的默认Topic。 不用配置。 目标/源 配置事件数据。为该事件自定义参数赋值,将“源”取值赋值到“目标”中。 请单击“新增行”添加并进行赋值。 “目标”请从下拉框中选择事件的自定义参数“temperature”和“position”,在“源”中给目标赋值。 按照下图连接所有图元。 图13 连接图元 单击,保存服务编排。 单击,启用服务编排。 在“事件流”列表页面该事件流程所在行单击,运行该事件流程。 单击服务编排“send_fire_event”编辑器上方的,执行服务编排。不用输入任何输入参数,单击“运行”。 参考上一步,执行服务编排“fire_alarm”。不用输入任何输入参数,单击“运行”。 打开第三方系统邮箱,成功收到高温警报邮件,验证成功。
  • 操作步骤 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“事件流”。 您需要联系运维开启事件流License权限。开启后,才会有新建事件流的入口。 单击“新建”,进入“事件流”页面。 在“事件流”页面右侧单击“设置”,进行数据配置。 图2 设置页面 表1 参数说明 参数名称 参数说明 窗口长度 流处理的数据采集时间间隔,单位为分钟。建议时间间隔不要配置过小,否则系统频繁的建表和执行SQL语句,会影响系统性能。例如:配置为“1”表示spark streaming每隔1分钟去kafka获取事件数据。 在“事件流”页面右侧单击“图元”,拖拽“输入源”中Kafka图标至左侧画布区域,并配置基本信息,单击“保存”。 输入源中Kafka图标表示数据来自Kafka。 图3 数据来源Kafka基本信息页面 表2 数据来源Kafka基本信息页面参数说明 参数名称 参数说明 标签 该数据源Kafka的显示标签名。长度不超过64个字节。 名称 该数据源Kafka的名称,系统自动生成。 事件 需要订阅的事件。 例如:配置为温度监测事件“temperature”。 从外部接收 是否从外部Kafka接收事件。 若关闭该开关,表示从与AppCube相连的Kafka接收事件;若打开该开关,表示从外部Kafka接收事件,需要配置“Kafka集群地址”和“订阅主题”。 Kafka集群地址:数据源Kafka集群地址。 多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:可以通过登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下“server.properties”中“listeners”取值获取。例如:10.136.104.56:9092 订阅主题:获取的事件数据来源,即来自于kafka集群的哪个Topic。 例如:__BINGO_PROD_SYS_TOPIC 该章节示例中关闭该开关,使用与AppCube相连的Kafka。 从“图元”中拖拽“投影”图标至左侧画布区域数据源Kafka下方,并在弹出的“添加投影器”页面配置基本信息。单击“保存”。 图4 “添加投影器”页面 表3 “添加投影器”页面参数说明 参数名称 参数说明 标签 该投影的显示标签名。长度不超过64个字节。 名称 该投影的名称,系统自动生成。 输入字段 订阅事件的所有事件参数。 请从中选择需要的参数单击,选中的参数会出现在“输出字段”中。 输出字段 从订阅事件中的事件参数进行筛选后,用到的事件参数。 从“图元”中拖拽“过滤”图标至左侧画布区域投影下方,并在弹出的“添加过滤器”页面配置基本信息和过滤条件。单击“保存”。 图5 设置过滤条件 表4 过滤条件页面参数说明 参数名称 参数说明 标签 该Filter的显示标签名。长度不超过64个字节。 名称 该Filter的名称,系统自动生成。 条件设置 过滤条件。 字段:上一步筛选后的事件参数。 比较符:操作符,下拉选择。 值:字段值。 例如:上图中的配置表示提取温度大于60度的事件。 单击“新增行”可以新增条件。 (可选)从“图元”页面中拖拽“分组”图标至左侧画布区域过滤器下方,并在弹出的“添加分组器”页面配置基本信息和分组条件。单击“保存”。 图6 “添加分组器”页面配置 表5 分组条件页面参数说明 参数名称 参数说明 标签 该GroupBy的显示标签名。长度不超过64个字节。 名称 该GroupBy的名称,系统自动生成。 分组设置 分组条件。 例如上图中配置表示按照相同位置的大于60度的温度取温度平均值。 在“图元”页面右侧拖拽输出源中的Kafka图标至左侧画布区域最下方,设置spark streaming输出事件和输出事件数据的接收方。单击“保存”。 您可拖拽多个Sink中的Kafka图标,设置多个事件接收方。 图7 数据接收方配置 表6 数据接收方配置参数说明 参数名称 参数说明 标签 数据接收方Kafka的显示标签名。长度不超过64个字节。 名称 数据接收方Kafka的名称,系统自动生成。 事件 spark streaming输出的事件。并设置订阅事件和输出事件的参数对应关系。 这里配置为高温报警事件“fire_alarm”。温度监测事件“temperature”的“position”对应高温报警事件“fire_alarm”中的“positionalarm”,温度监测事件的“temperature”对应高温报警事件“fire_alarm”中的“temperaturealarm”。 发送到外部 是否发送到外部Kafka。 若关闭该开关,表示发送到与AppCube相连的Kafka;若打开该开关,表示发送到外部Kafka,需要配置“Kafka集群地址”和“订阅主题”。 Kafka集群地址:接收事件的Kafka集群地址。 多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:可以通过登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下“server.properties”中“listeners”取值获取。 例如:10.136.14.56:9092 说明:接收事件的kafka集群不需要一定配置为和AppCube相连。 订阅主题:接收事件数据的kafka Topic。 例如:__BINGO_PROD_SYS_TOPIC 该章节示例中关闭该开关,使用与AppCube相连的Kafka。 事件属性/属性、值 配置输出事件与接收事件中已定义参数的对应关系。 单击“新增”可添加多行。 单击页面右上方保存按钮。设置该“事件流”基本参数。 图8 该“事件流”基本参数页面 表7 “事件流”基本参数 参数名称 参数说明 标签 该“事件流”的显示标签名。长度不超过64个字节。 名称 该“事件流”的名称,系统自动生成。 描述 描述信息。 单击页面上方图标启用“事件流”。
  • 背景信息 首先,您需要理解以下概念: kafka:是由Apache开发的一个开源流处理平台,是分布式发布、订阅消息系统。它主要用于处理活跃的流数据。一般kafka部署为集群模式。 Topic:用来区分kafka集群中不同类型消息的主题。例如应用程序A订阅了Topic1,应用程序B订阅了Topic2而没有订阅Topic1,那么发送到Topic1中的数据将只能被应用程序A读到,而不会被应用程序B读到。 spark streaming:大规模流式数据处理工具,第三方工具。
  • 初识工作流 在新版应用设计器中,单击左侧导航栏中的“流程”。单击“工作流”后面的“+”,设置工作流的标签和名称后,单击“添加”,即可进入工作流设计界面。 图1 添加工作流 工作流设计界面由上方按钮区域、左侧面板图元区域、中间画布工作区域和右侧属性配置区域四部分组成。 图2 工作流设计界面 表1 工作流设计界面说明 分类 功能说明 按钮区域 功能按钮区域,包括锁定、解锁、启用(或者禁用)、保存、另存为新版本或者新工作流、运行、操作回退、撤销回退、启用流跟踪器以及切换版本的操作。支持快捷键操作,即可脱离鼠标直接用键盘操作。 面板图元区域 工作流的组成图元,详细介绍请参见工作流图元。 画布工作区域 工作流设计操作区域,在该区域可对工作流进行具体流程设计、组件放置。 选中图元或者泳道按“Delete”,可进行删除操作。 属性配置区域 整个工作流、泳道(Lane)或图元属性设置区域。 当选择工作流中图元时,右侧配置区域为该图元的属性设置区域。 当选择工作流中空白区域时,右侧配置区域为该工作流的设置区域。 当选择泳道左侧标签时,右侧配置区域为该泳道的属性设置区域。
  • 使用SOAP服务调用SOAP协议接口 当系统需要调用第三方提供的SOAP协议接口时,可以通过配置SOAP Service来实现。SOAP Service是第三方系统提供的Soap服务,是一组模块化的SOAP接口(SOAP Action),系统可以通过配置第三方提供的SOAP服务的URL进行调用。Action是对第三方接口的一个元数据描述,将第三方接口转换成AppCube可识别的定义,方便AppCube调用第三方接口。 创建SOAP Service 创建并启用SOAP Action 父主题: 如何调用第三方接口
  • 使用Rest服务调用Rest协议接口 当系统需要调用第三方提供的Rest协议接口时,可以通过配置Rest Service来实现。Rest Service是第三方系统提供的Rest服务,是一组模块化的Rest接口(Rest Action),系统可以通过配置第三方提供的Rest服务的URL进行调用。Action是对第三方接口的一个元数据描述,将第三方接口转换成AppCube可识别的定义,方便AppCube调用第三方接口。 创建Rest Service(自定义连接器) 创建并启用Rest Action 父主题: 如何调用第三方接口
  • 脚本中调用连接器 您可以在脚本中调用连接器实现调用IEF的接口,脚本样例如下: export interface IEFClient { /* @param projectID */ getProjectNode(projectID: string): IdentifierInfo /* @param projectID */ getProjectDevice(projectID: string): IdentifierInfo /* @param projectID @param nodeID */ getNode(projectID: string, nodeID: string): IdentifierInfo /* @param projectID @param deviceID */ getNodeDevice(projectID: string, deviceID: string): IdentifierInfo /* @param nodeID @param topic @param msg */ getMSG(nodeID: string, topic: string, msg: string): IdentifierInfo} 这里以新建一个脚本实现查询边缘节点列表为例进行举例说明。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。 选择“创建一个新脚本”,输入基本信息,单击“保存”。 编辑代码如下: import { Decimal } from 'decimal';import { Error } from 'error';import * as ief from 'ief';export class Input { @action.param({ type: "String", required: true, description: "type" }) project_id: string; // @action.param({ type: "String", required: true, description: "the operation value 2" }) // node_id: string;}export class Output { @action.param({ type: "Object", required: true }) result: Object;}export class Calculator { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): Output { let output = new Output(); let cli = ief.newClient("ief_test"); output.result = cli.getProjectNode(input.project_id); //console.log(output.result); return output; }} 其中ief.newClient("ief_test")中“ief_test”为连接器的名称。 单击代码编辑页面上方保存图标,保存脚本。 运行测试脚本。 单击编辑器上方执行图标。 在页面底部“输入参数”页签输入请求参数项目ID,单击测试窗口右上角图标。 { "project_id":"XXXXXXXXXXX"} 检查输出,显示出边缘节点列表,表示执行脚本成功。 单击代码编辑页面上方图标,启用脚本。
  • Script中调用连接器 您可以在脚本中调用连接器实现与MSGSMS的对接,这里以新建一个脚本实现发送短信为例进行举例说明。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。 选择“创建一个新脚本”,输入基本信息,单击“保存”。 编辑代码如下: //导入该脚本所依赖的标准库文件。msgsms是系统预置的标准库。import * as sms from 'msgsms'; @action.object({type: "method"}) export class ActionDemo { @action.method({ label: 'greeting something', description: 'greeting something.', input: 'ActionInput', output: 'ActionOutput' }) public greet(){ console.log('`````````````````````test new sms`````````````````````') let client = sms.newClient("MSGSMS_Test") let res = client.sendByName("Test1","130XXXXXXXX","[\"6612\"]") console.log(res) console.log('`````````````````````test new sms end`````````````````````') } } 其中sms.newClient("MSGSMS_Test")中“MSGSMS_Test”为连接器的名称。client.sendByName("Test1","130XXXXXXXX","[\"6612\"]")中携带的是模板名称、接收者号码和模板参数。 单击代码编辑页面上方保存图标,保存脚本。 运行测试脚本。 单击编辑器上方执行图标。 在页面底部单击测试窗口右上角图标。 检查接收者是否收到短信。 收到短信表示成功调用连接器。 单击代码编辑页面上方图标,启用脚本。
  • 配置流程介绍 触发器以图形表示的方式将业务流程呈现给用户,触发器配置好后,用户不必手动执行这些操作,系统会自动执行。在开始配置触发器业务前,您需要了解相关概念、配置流程等信息。 图1 配置流程图 新建触发器,设定该触发器关联的对象,触发器名称等信息。 进入该触发器编辑页面,配置规则条件。 根据不同的条件设定各个Action动作。 (可选)添加规则条件,设定各Action动作。 启用创建的触发器。 测试流程,确保该触发器符合预期场景。 父主题: 触发器
  • 调用连接器 您可以在脚本中调用连接器实现用户登录微信公众号,这里以新建一个脚本为例进行举例说明。 若想获取系统预置的接口说明,请单击脚本主要用什么语言和库。 在微信客户端的H5页面发起AJAX请求,用于获取code。 请求如下所示。 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。 在AppCube上,鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。 选择“创建一个新脚本”,输入基本信息,单击“保存”。 编辑代码如下: import * as wechat from 'wechat';let connectorID = "whchat"let code = "xxxxx" // 该code值从步骤1获取let client = wechat.NewClient(connectorID)let res = client.GetAccessToken(code)console.log(res) 其中“connectorID”取值为连接器的名称,“code”取值为1获取的code取值。 单击代码编辑页面上方保存图标,保存脚本。 运行测试脚本。 单击编辑器上方执行图标。 不用输入请求报文,直接单击测试窗口右上角图标。 检查日志页签,由日志可看出已获取“access_token”和“openid”,可用于登录微信公众号。 { "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE"}
  • 添加目录 登录新版应用设计器。 在左侧导航栏中,选择“逻辑”。 在右侧的触发器中,可查看该应用拥有的所有触发器。 单击触发器后的,进入添加目录页面。 设置目录名称,单击“保存”。 目录创建后,您可以执行如下操作。 单击目录后的,可新建触发器。 单击目录后的,可新建子目录。目录创建后,可直接拖拽触发器到目录中。 单击后,选择“编辑”,可修改目录名称。 单击后,选择“移动”,可移动页面、数据、逻辑、流程、触发器等到其他应用。 单击后,选择“删除”,可删除目录。删除目录前,请确保当前目录为空。
  • 异常处理 当数据源类型选择的是ROMA Connect,配置完数据接入后,MQS平台收不到消息,业务设置的EventTrigger没有拉起Flow。现象、原因分析以及解决方法如下: 问题现象:ROMA Connect消息轨迹是灰色的,可能是MQS服务地址配置错误或者没有配置。解决方法为:检查iotgateway容器的“roma-server”参数是否配置,若没有配置,请配置该参数或联系运维添加正确的“roma-server”地址(端口为“9776”),确认网络正常以及MQS服务器正常,兼容客户端版本。 问题现象:ROMA Connect消息轨迹是红色的,则可能是MQS的source定义错误。解决方法为:在ROMA Connect平台查看应用ID和对应的密钥是否一致,查看该应用是否订阅了主题。配置错误时会导致鉴权失败。 问题现象:ROMA Connect消息轨迹是绿色的, 表示MQS接收成功,并成功发送到Kafka,AppCube也收到了对应的消息,但是可能没成功拉起Flow。解决方法为:查看iotgateway的“flume.log”日志,确认MQS是否接收成功,通过“kafka-console-cumer”确认消息是否转换成功,通过AppCube的日志跟踪功能或者AppCube后台日志确认(日志关键字为“OnEvent”)平台是否收到事件。如果没有对应的服务编排或者脚本日志,可以确定Flow未拉起,联系华为工程师解决。
  • 操作步骤 在开发环境修改数据接入的任意配置数据(包括所有图元的配置信息),在打包时,可配置是否覆盖新环境中的同名数据接入配置。具体配置可参考应用打包发布。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“数据接入”。 单击“新建”,进入“数据接入”创建页面。 从页面右侧“图元”的输入源中拖拽OneNET图标至左侧画布区域,并配置外部数据源基本信息,单击“保存”。 Source中不同的图标表示不同的第三方数据源,支持以下几种数据源。 OneNET 图1 OneNET配置信息页面 图2 OneNET元数据定义页面 表1 数据来源OneNET基本信息页面参数说明 参数名称 参数说明 标签 该数据源OneNET的显示标签名。长度不超过64个字节。 名称 该数据源OneNET的名称,单击参数值后系统可根据“标签”取值自动生成。 协议 通信协议。 Token 数据签名,即令牌,由OneNET提供。 报文加密 对传输过来的报文内容是否进行加密,勾选表示加密。如果设置为加密的,则需配置“Aeskey”。 Aeskey 解密密钥,由OneNET提供。 元数据 源数据的元数据定义。如果为空的{},您只能传送原始数据,无法使用拦截器对数据进行处理。 定义好的元数据将会显示在右侧区域中。 单击“格式化Json”,可对元数据进行Json格式化处理。 元数据定义示例如下: { "notifyType": "STRING", "requestId": "STRING", "timestamp": "STRING", "eventTime": "datetime", "deviceId": "STRING", "gatewayId": "STRING", "deviceService": { "name": "STRING" }, "service": { "serviceType": "STRING", "serviceId": "STRING", "body": "OBJECT", "data": { "battery_low": "number", "light": "STRING" } }} 数据接入对接中移物联OneNET平台的认证,是按照中移物联给出的对接标准,需根据配置的Token(令牌)、报文中的随机数、报文内容拼接后获取MD5摘要,并和报文中的摘要做比对,如果一致则认为报文是正常的报文。目前中移物联只支持MD5算法获取数据摘要。参见OneNET平台开发文档。 同时,对于报文内容来说,OneNET平台支持对报文内容进行加密后上报。AppCube要使用跟OneNET平台一致的加密算法进行解密,获取的加密向量要跟OneNET平台一致。因此,使用了Aeskey(解密密钥)的前16位作为加密向量。 设备接入 IoTDA(该产品之前名为“Ocean Connect”) 图3 设备接入 IoTDA配置信息页面 表2 数据来源设备接入 IoTDA基本信息页面参数说明 参数名称 参数说明 标签 该数据源设备接入 IoTDA的显示标签名。长度不超过64个字节。 名称 该数据源设备接入 IoTDA的名称,单击参数值后系统可根据“标签”取值自动生成。 数据格式 设备上报数据的格式。 数据传输的协议支持http或者https,由IoTDA决定。 Access Key 单击“生成AK/SK”,该值会自动生成。请将生成的Access Key保存到本地,开发人员通过该值在设备侧生成鉴权属性“authorization”。 Secret Key 单击“生成AK/SK”,该值会自动生成。请将生成的Secret Key保存到本地,开发人员通过该值在设备侧生成鉴权属性“authorization”。 元数据 源数据的元数据定义。如果为空的{},您只能传送原始数据,无法使用拦截器对数据进行处理。 定义好的元数据将会显示在右侧区域中。 单击“格式化Json”,可对元数据进行Json格式化处理。 元数据定义示例如下: { "notifyType": "STRING", "requestId": "STRING", "timestamp": "STRING", "eventTime": "datetime", "deviceId": "STRING", "gatewayId": "STRING", "deviceService": { "name": "STRING" }, "service": { "serviceType": "STRING", "serviceId": "STRING", "body": "OBJECT", "data": { "battery_low": "number", "light": "STRING" } }} 上报的合法数据示例如下: { "notifyType": "deviceDataChanged", "requestId": "45678", "timestamp":"1900012929922992", "eventTime":"20151212T121212Z", "deviceId":"8b3979fc-b072-433b-b3f6-673072e1bc04", "gatewayId":"XXX", "deviceService":{"name":"buttery"}, "service": { "serviceType": "", "serviceId": "", "data":{ "battery_low":444, "light":"99", "authorization":"Bingo bDTKFSGi:ZwGnN+bb*****************************TjFRMA=" } }} 其中“authorization”值根据AK/SK、上报URL和Body数据生成。 π平台 图4 π平台配置信息页面 表3 数据来源π平台基本信息页面参数说明 参数名称 参数说明 标签 该数据源的显示标签名。长度不超过64个字节。 名称 该数据源的名称,单击参数值后系统可根据“标签”取值自动生成。 字段 请填写输入源的数据字段,不同的字段以逗号进行分隔,例如“id,name,age”。 协议 数据传输的协议。 Access Key 单击“生成AK/SK”,该值会自动生成。请将生成的Access Key保存到本地,并将该值填写到对应的物联网平台中。 Secret Key 单击“生成AK/SK”,该值会自动生成。请将生成的Secret Key保存到本地,并将该值填写到对应的物联网平台中。 ROMA Connect 图5 ROMA Connect配置信息页面 表4 数据来源ROMA Connect基本信息页面参数说明 参数名称 参数说明 标签 该数据源的显示标签名。长度不超过64个字节。 名称 该数据源的名称,单击参数值后系统可根据“标签”取值自动生成。 APP ID MQS平台应用ID。应用ID能够引用一个本平台定义的系统参数,引用位置不限制。示例:{!roma_app_prefix}other_roma_app_id。 密钥 MQS平台应用请求密钥。 主题 MQS主题。主题能够引用一个本平台定义的系统参数,引用位置不限制。示例:{!roma_topic_prefix}other_roma_topic。 标签 设置订阅消息的标签,可以指定消费某一类型的消息。默认*表示消费所有类型的消息,可以写多个,用“||”隔开,例如“tag1 || tag2 || tag3”。 通道加密 数据是否加密。若勾选,表示MQS数据传输采用TLS协议。 消费位置 若勾选,停止数据接入任务,后续重新运行数据接入时,停止和重新运行期间ROMA Connect发来的消息会被完全丢弃。若停止与运行数据接入之间时间间隔在十分钟之内,消息可能不会丢失。 注意:存在数据丢失风险,请谨慎勾选。 默认不勾选。 元数据 源数据的元数据定义。如果为空的{},您只能传送原始数据,无法使用拦截器对数据进行处理。 定义好的元数据将会显示在右侧区域中。 单击“格式化Json”,可对元数据进行Json格式化处理。 元数据定义示例如下: { "notifyType": "STRING", "requestId": "STRING", "timestamp": "STRING", "eventTime": "datetime", "deviceId": "STRING", "gatewayId": "STRING", "deviceService": { "name": "STRING" }, "service": { "serviceType": "STRING", "serviceId": "STRING", "body": "OBJECT", "data": { "battery_low": "number", "light": "STRING" } }} Kafka 图6 添加Kafka 表5 数据来源Kafka基本信息页面参数说明 参数名称 参数说明 标签 该数据源Kafka的显示标签名。长度不超过64个字节。 名称 该数据源Kafka的名称,单击参数值后系统可根据“标签”取值自动生成。 连接外部Kafka AppCube支持从平台内部Kafka或者外部Kafka采集数据,从内部Kafka采集的数据不能再输出到内部Kafka中。勾选该项,表示从外部Kafka采集数据,则需要配置“Kafka集群地址”和“订阅主题”;默认不勾选,表示从平台内部Kafka采集数据。 Kafka集群地址 当勾选“连接外部Kafka”时,该参数才会出现。表示Kafka集群地址,多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:可以通过登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下“server.properties”中“listeners”取值获取。 例如:10.10.10.1:9091,10.10.10.2:9092 订阅主题 当勾选“连接外部Kafka”时,该参数才会出现。表示采集数据所属的Kafka主题。 主题是消息存储和发布的类名,通过主题您可以分类传输和处理事件。 开启SASL_SSL 当勾选“连接外部Kafka”时,该参数才会出现。开启SASL_SSL后,访问外部Kafka需要提供用户名和密码进行认证,且数据会加密传输。需要根据外部Kafka服务端的实际情况配置。 默认不勾选。 用户名 当勾选“开启SASL_SSL”,该参数才会出现。表示访问外部Kafka需要的用户名。 密码 当勾选“开启SASL_SSL”,该参数才会出现。表示访问外部Kafka需要的密码。 元数据 当勾选“连接外部Kafka”时,会出现“元数据定义”页签,选择该页签,配置源数据的元数据定义。如果为空的{},您只能传送原始数据,无法使用拦截器对数据进行处理。 定义好的元数据将会显示在右侧区域中。 单击“格式化Json”,可对元数据进行Json格式化处理。 元数据定义示例如下: { "notifyType": "STRING", "requestId": "STRING", "timestamp": "STRING", "eventTime": "datetime", "deviceId": "STRING", "gatewayId": "STRING", "deviceService": { "name": "STRING" }, "service": { "serviceType": "STRING", "serviceId": "STRING", "body": "OBJECT", "data": { "battery_low": "number", "light": "STRING" } }} 事件 当不勾选“连接外部Kafka”时,该参数才会出现。表示从平台内部Kafka采集数据时,数据所关联的具体事件。 5G消息 图7 5G消息配置信息 图8 5G消息元数据定义 表6 数据来源5G消息配置参数说明 参数名称 参数说明 标签 该数据源的显示标签名。长度不超过64个字节。 名称 该数据源的名称,单击参数值后系统可根据“标签”取值自动生成。 协议 数据传输的协议。这里所选的协议必须与在5G消息云服务平台选择的传输协议一致。 数据格式 设备上报数据的格式。 APP ID 设备ID。这里填写的APP ID必须与在5G消息云服务平台填写的保持一致。 支持引用变量。变量在应用开发界面左下角“设置”里“系统参数”页签进行设置。 密钥 5G网关请求密钥。 需要引用变量时,请勾选“引用变量”。变量在应用开发界面左下角“设置”里“系统参数”页签进行设置。 元数据类型 该参数在“元数据定义”页签。为元数据类型,说明如下: 上行消息:5G消息云服务平台向业务应用转发的终端用户上行消息。 状态报告通知消息:业务应用通过5G消息云服务平台向用户发送消息后,5G消息云服务平台向业务应用发送的结果状态报告(即回执消息)。 媒体审核通知:业务应用向5G消息云服务平台上传多媒体内容文件后,文件会送运营商的MAAP平台审核,审核后,5G消息云服务平台向业务应用通报媒体文件审核结果。 消息撤回通知:业务应用发送5G消息给使用5G消息云服务的用户,希望撤回消息。业务应用发起撤回动作到5G消息云服务平台,5G消息云服务平台发送到终端用户,撤销成功后返回5G消息云服务平台,5G消息云服务平台发送消息撤回状态通知给业务应用。 在页面右侧拖拽拦截器中适当的图标,对源数据进行数据拦截。配置后单击“保存”。 拦截器中包含以下图标。 投影:数据选择器。可从源数据中选择部分数据进行发送。 图9 投影配置 表7 投影配置参数说明表 参数名称 参数说明 标签 该投影的显示标签名。长度不超过64个字节。 名称 该投影的名称,单击参数值后系统可根据“标签”取值自动生成。 字段选择器 左侧为外部数据源传入的全部元数据,勾选所需数据字段,单击将所选数据移到右侧输出字段中。 赋值:数据赋值器。可将缓存中的对象数据、传入的外部数据源数据、某个常量数据或者数据取表达式值赋值给某参数。 图10 赋值器配置 表8 赋值器配置参数说明表 参数名称 参数说明 标签 该赋值器的显示标签名。长度不超过64个字节。 名称 该赋值器的名称,单击参数值后系统可根据“标签”取值自动生成。 新增字段 被赋值的参数。 源 源数据。支持以下几种类型。 Cache:缓存中的对象数据。需要提前在设置中单击“新增缓存”进行添加。 reference:传入的外部数据源元数据。 formula:数据取表达式值。格式为“XXX(数据源参数)”。 constant:某常量。格式为“常量值”。 在设置中单击“新增缓存”添加缓存对象数据时,设置如下图所示。 图11 “新增缓存”配置 表9 “新增缓存”参数说明 参数名称 参数说明 标签 该Cache的显示标签名。长度不超过64个字节。 名称 该Cache的名称,单击参数值后系统可根据“标签”取值自动生成。 对象 映射的对象名。 高级配置 高级配置,开关打开后需要配置如下参数。 缓存上限:最大缓存记录数。 过期时间:缓存超时时间。 默认不打开,采用系统默认配置。 字段选择器 左侧为该对象的全部字段,勾选所需数据字段,单击将所选字段移到右侧输出字段中。 键 与外部元数据关联的对象字段。 选择源字段 传入的外部数据源元数据中与该对象关联的数据字段。 过滤:数据过滤器。您可通过配置一定的过滤条件对外部元数据进行数据过滤。 图12 过滤器配置 表10 过滤器配置参数说明表 参数名称 参数说明 标签 该过滤器的显示标签名。长度不超过64个字节。 名称 该过滤器的名称,单击参数值后系统可根据“标签”取值自动生成。 条件设置 过滤条件配置。 单击“新增”可添加多个过滤条件。 在页面右侧拖拽通道中“内存通道”图标至左侧画布区域Onenet下方,并配置数据通道的基本信息,单击“保存”。 通道中“内存通道”表示普通的数据通道,当数据较多时可选择“文件通道”图标进行拖拽。 图13 内存通道配置 表11 内存通道配置参数说明 参数名称 参数说明 标签 该内存通道的显示标签名。长度不超过64个字节。 名称 该内存通道的名称,单击参数值后系统可根据“标签”取值自动生成。 高级配置 高级配置,开关打开后需要配置如下参数: 通道容量:通道数据最大条数。 最大传输量:发到单个输出源的数据最大条数。 默认不打开,采用系统默认配置。 在页面右侧拖拽Sink输出源中的图标至左侧画布区域最下方,设置输出事件和输出事件数据的接收方。 当接收方是Kafka时,配置如下。 您可拖拽多个Sink中的Kafka图标,设置多个事件接收方。 图14 数据接收方配置页签 表12 数据接收方配置参数说明 参数名称 参数说明 标签 数据接收方Kafka的显示标签名。长度不超过64个字节。 名称 数据接收方Kafka的名称,单击参数值后系统可根据“标签”取值自动生成。 事件 输出的事件。 发送到外部 是否发送到外部Kafka。若打开该开关,需要配置“Kafka集群地址”和“订阅主题”。 Kafka集群地址:接收事件的kafka集群地址,多个节点服务器地址可用“,”间隔,格式为“Kafka节点1的ip:节点1端口号,Kafka节点2的ip:节点2端口号,...”。 获取Kafka的IP和端口号方法:可以通过登录每台Kafka节点服务器,查看“${KAFKA_HOME}/config”目录下“server.properties”中“listeners”取值获取。 例如:10.136.14.56:9092 说明:接收事件的kafka集群不需要一定配置为和AppCube相连。 订阅主题:接收事件数据的kafka Topic。 例如:__BINGO_PROD_SYS_TOPIC 是否开启SASL_SSL:当发送到外部Kafka时,该参数才会出现。表示是否开启SASL_SSL认证,开启后,访问外部Kafka需要提供用户名和密码进行认证,且数据会加密传输。需要根据外部Kafka服务端的实际情况配置。默认勾选。 默认不打开该开关,表示输出到与AppCube相连的Kafka。 事件属性/作为分区Key 是否将事件中的参数字段作为Kafka的消息头,用于事件分发时发送到不同的Kafka分区。建议选择有区分度的关键字段。 事件属性/属性、值 配置传输的数据与事件中已定义参数的对应关系。 单击“新增行”可添加多行。 当接收方是ROMA Connect,配置如下。 图15 数据接收方ROMA Connect配置页签 表13 ROMA Connect基本信息页面参数说明 参数名称 参数说明 标签 该接收方的显示标签名。长度不超过64个字节。 名称 该接收方的名称,单击参数值后系统可根据“标签”取值自动生成。 APP ID MQS平台应用ID。应用ID能够引用一个本平台定义的系统参数,引用位置不限制。示例:{!roma_app_prefix}other_roma_app_id。 密钥 MQS平台应用请求密钥。 主题 MQS主题。主题能够引用一个本平台定义的系统参数,引用位置不限制。示例:{!roma_topic_prefix}other_roma_topic。 标签 设置订阅消息的标签,可以指定消费某一类型的消息。默认*表示消费所有类型的消息,可以写多个,用“||”隔开,例如“tag1 || tag2 || tag3”。 加密传输 数据是否加密。 单击页面上方保存按钮,设置该“数据接入”基本参数。单击“保存”。 表14 “数据接入”参数说明 参数名称 参数说明 标签 该“数据接入”的显示标签名。长度不超过64个字节。 名称 该“数据接入”的名称,单击参数值后系统可根据“标签”取值自动生成。 描述 描述信息。 单击页面上方图标启用。 单击页面上方图标运行该“数据接入”。 Kafka接收到数据,表示设置成功。 在数据接入编辑页面上方单击停止图标,可停止运行。 在运行成功的提示框中复制数据推送地址,并进行保存。 也可在该数据接入运行后,单击页面上方复制数据推送地址。 在第三方外部数据源侧配置AppCube提供的数据推送地址,具体操作请参考第三方文档。 可选,可执行该步骤进行调试或故障定位。在数据接入编辑页面上方单击下载图标,下载日志,查看日志进行定位。 当数据源或者输出源配置信息有误时,可通过下载日志进行定位。 可选,进行消息跟踪。在数据接入编辑页面右侧选择“消息跟踪”页签,单击“启动”,可启动消息跟踪。 可实时查看上报的报文处理情况。 图16 消息跟踪 消息跟踪在一个周期(默认30分钟)后自动关闭。
  • 操作步骤 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“触发器”。 系统出现“增加触发器”弹框,在该页面中填写基本信息,单击“添加”。 “对象”设置为“Employee__CST”,设置触发器名称、标签,触发类型配置为“插入或更新记录时”。 图1 新建触发器 单击“添加条件”,进入创建规则条件页面,进行配置,单击“保存”。 参数说明如表1所示。 表1 条件参数说明 参数 参数说明 条件名称 该条件规则的名称。 执行操作条件 进入该条件规则的条件。配置为“当条件满足时”。 设置条件 设定具体条件。字段配置为“name”,操作符配置为等于,类型配置为常量值配置为“"syw"”。 因为具体条件只有一个,所以不用设置与或关系。 条件中当字段是数字、百分比、币种金额类型时,取值不用加“""”;其他字段类型取值请加“""”。 单击“添加操作”,设置满足规则条件后执行的动作,单击“保存”。 图2 创建动作 表2 操作类型说明 参数 参数说明 操作类型 动作类型,设置为“邮件告警”。 操作名称 该动作名称。 电子邮件告警 选择配置好的邮件告警。 单击进行启用。
  • 常见问题 问题:是否有执行触发器设定的操作权限,取决于触发器的创建人还是触发人? 回答:是否有执行触发器设定的操作权限,取决于触发者本人是否有相关权限,和触发器创建人无关。例如某个触发器关联了对象“D__CST”,触发类型是“插入或更新记录时”,触发时执行脚本C,即对象“D__CST”数据有新增或者更新时,会触发该触发器,从而执行脚本C。用户A是触发器的创建人,没有对象“D__CST”的操作权限和脚本C的执行权限,用户B有“D__CST”的操作权限和脚本C的执行权限,当用户B更新“D__CST”对象数据时,会触发该触发器,执行脚本C。
  • 操作步骤 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“触发器”。 填写基本信息,单击“添加”。 对象:选择“Travel_Information_CST”表示将触发器与对象关联。 标签:定义为“TravelProcess”。触发器显示名称。 名称:系统根据Lable取值自动生成“TravelProcess”。系统其它地方调用触发器时所引用的唯一标识。 触发类型:配置了触发器的启动条件。 仅在插入记录时:当系统创建某条记录时。 仅在更新记录时:当系统更新某条记录时。 插入或更新记录时:当系统创建或更新某条记录时(本任务中选择该选项)。 被别的触发器调用时:被其他触发器所调用时。 收到平台事件时:被事件(event)触发。选中该条件时请在“事件”中配置具体事件。 图1 新建触发器 当编辑已有触发器时,为防止编辑时多人篡改,编辑前请单击进行锁定。 单击“添加条件”,进入创建规则条件页面,进行配置,并单击“保存”。 图2 创建规则条件 参数说明如表1所示。 表1 条件参数说明 参数 参数说明 条件名称 该条件规则的名称。 执行操作条件 进入该条件规则的条件。有以下三种类型: 当条件满足时:只有满足以下设定条件时。 当满足条件表达式时:支持手写的规则条件,自定义逻辑。 没有条件,直接执行:无条件进入该分支。 设置条件 当进入该条件规则勾选的是“当条件满足时”时,您需要设定具体条件。通过设定该触发器涉及对象的某个或某些字段取值的与或关系,来控制进入该触发器的条件。 单击“新增”可添加多个字段取值条件。 条件中当字段是数字、百分比、币种金额类型时,取值不用加“""”;其他字段类型取值请加“""”。 支持在条件中引用旧记录字段的取值,可判断字段级变化。 构建公式 当进入该条件规则勾选的是“当满足条件表达式时”时,您需要手写的规则条件。 系统会对输入的规则条件进行简单的校验。 条件 当进入该条件规则勾选的是“当满足条件表达式时”时且设置的多个条件时,多个条件的关系。 满足所有条件(AND):与关系,必须满足所有条件。 满足部分条件(OR):或关系,只要满足条件之一即可。 单击“添加操作”,设置满足规则条件后执行的动作,并单击“保存”。 图3 创建动作 表2 操作类型说明 参数 参数说明 操作类型 操作类型:动作类型,分以下几种: 创建记录:创建一条记录。 更新记录:更新记录。 邮件告警:发送邮件告警。 触发器:调用子触发器。 脚本:调用Script脚本。 服务编排:调用服务编排。 BPM:调用BPM。 发送事件:发送事件。 操作名称 该动作名称。 (可选)若需要设定多个规则或者多个分支动作,请单击“添加条件”、“添加操作”进行配置。 在触发器开发页面单击启用触发器。
  • 脚本中调用 您可以在脚本中调用刚创建的Rest Action,这里以新建一个脚本为例进行举例说明。 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。 选择“创建一个新脚本”,输入基本信息,单击“添加”。 编辑代码如下,其中“LT927__test”表示连接器名称,“test1”为3配置的认证信息名称,“LT927__flapRefund”为3配置的动作名称。 // Here's your code.import * as connector from "connector";let client = connector.newClient("LT927__test", "test1");let result = client.invoke("LT927__flapRefund", {});console.log(result) 单击代码编辑页面上方保存图标,保存脚本。 运行测试脚本。 单击编辑器上方执行图标。 在页面底部“输入参数”页签输入请求参数,单击测试窗口右上角图标。检查脚本编辑页面下方“日志”页签打印的日志。
  • 栅格容器 栅格容器用于对页面区域按照行列布局划分,先分为多个分栏,每个分栏再分为多栏。 在页面中拖入一个栅格容器,选择栅格容器页签,右侧显示属性配置面板。单击“新增行”后的或者,可在栅格容器中“分栏”上方或者下方新增分栏(即新增行)。 图5 栅格容器属性面板 选择栅格容器中“分栏”,右侧显示分栏的属性配置面板。 图6 选择分栏 其实,栅格容器相比较分栏组件来说,只是外面嵌套了一层div元素,栅格容器是AppCube较早提供的容器类页面布局,分栏是AppCube后续单独提供的组件。推荐您使用分栏组件完成页面行列布局的划分。
  • 查看运行态报表 报表运行态可以对报表进行进一步的数据筛选和可视化呈现,也是对报表的一种预览和检查。 在报表列表页面单击需要查看运行态的报表后面的运行报表。 单击右上角“显示图表”,可以设置报表的展示样式。 您需要在创建报表时设置分组字段(参考4.b),该界面才会有“显示图表”。 图10 设置报表的展示样式 式样与类型:可以为数据选择合适的图表类型,如柱状图、堆叠图、折线图、饼图、仪表图、漏斗图、散点图等,不同的图表有不同的选项,可以在“设置”页签中配置。 柱状图、堆叠图、折线图的设置页签配置如下: 图例位置:图例的位置。 X轴:选择一个分组字段作为X轴。 X轴标签:X轴显示名称。 次级分组:可以额外地指定一个分组字段作为次级分类,在同一个柱状图上显示,或者作为堆叠图中的堆叠。 Y轴:选择一个公式字段(默认记录计数)作为Y轴。 Y轴标签:Y轴显示名称。 显示参考线:在图中显示一个参考线,以便比较不同分组的Y轴的值。 显示数值:显示每个柱状的数值。 饼图的设置页签配置如下: 图例位置:图例的位置。 值:可以指定一个公式字段(默认位记录计数)。 切片:可以指定一个分组字段。 显示数值:显示每个饼的数值。 仪表图:仪表图是一种相对简单的图表,用于展示一个具体数值,以及该数值在3 段范围内的状态(最小、中等、最差)。仪表图的设置页签配置如下: 测量:可以指定一个公式字段(默认位记录计数)。 最小值:指定一个度量的最小值。 最大值:指定一个度量的最大值。 漏斗图的设置页签配置如下: 值:选择一个公式字段作为数值度量。 着色依据:选择一个分组字段作为分组度量。 显示数值:显示每层的数值。 散点图的设置页签配置如下: X轴:指定一个公式度量。 Y轴:指定一个公式度量。 详情:指定一个分组度量。 显示数值:显示每点的数值。 调色板:可以为图表选择不同的配色方案,以便制作出个性化的图表。 运行报表界面上的操作仅为用户提供一种快速的数据探索的途径,并不会保存到数据库中。 单击齿轮图标,设置展示数据。 可以对数据进行过滤展示。 图11 数据过滤展示 显示细节:显示分组的详细记录信息。 分组汇总:是否显示每个分组的汇总信息。 整体汇总:在表格底部显示汇总信息。
  • 属性值绑定 在列表视图的“属性”页签,单击“数据绑定”中的,绑定数据模型。 模型实例化必须为数组,详情请参见绑定数据模型、增加查询条件、工具栏。 图2 绑定数据模型 向列表视图中拖入栅格容器,将栅格容器设置为6行2列,再向前5行中拖入标签组件,并设置标签属性。 属性值绑定。 选择第一行、第二列中的标签,单击右侧“属性值绑定”的“+”,新增属性值绑定。 其中,“属性”设置为“文本内容”,再单击,添加模型字段,将模型字段绑定到当前标签上。 重复上一步,为其他行的标签组件进行属性值绑定。 在第6行拖入一个按钮,设置为“Handle”。 单击,保存页面,再单击,进行预览 ,预期效果如图3。 进行属性值绑定的标签组件,显示绑定的模型字段内容。 图3 通过属性值绑定获取模型中的数据
  • 选择或上传图片 您可以直接从配置的OBS库或者SFTP库中选择一张已存在的图片,也可以直接从本地上传图片。 在图片组件属性“基本属性”中单击“图片地址”后的齿轮图标,出现“选择图片”弹窗。 在“图片库”中,选择图片库类型。 选择或上传图片。 在当前图片库下,单击某图片,即可选中此图片。如果图片库中还没有图片,可以选择上传一个图片。 单击“上传图片”,在本地选择一张图片,完成后该图片将默认上传到当前图片库。 单击“确定”完成图片选择,返回页面设计视图。
  • 分页 当数据量较多时,可以使用分页组件,快速进行数据切换。 分页组件一般与表格组合使用时,分页组件可以对表格数据进行分页显示、数据切换,系统内置的表格组件中已包含了分页组件。 向页面中拖入一个分页组件,单击“分页”页签,显示属性配置面板。 表1 分页组件属性 属性 说明 配置 默认分页大小 默认每页条数(分页大小)。 数值型,例如:10 每页条数切换的配置 每页条数切换的配置。 数组型,例如:[10,20,30,40] 显示跳转 是否显示跳转,显示后可设置快速跳转到某一页。 例如:打开开关 显示分页 是否显示分页,显示后可设置具体的分页大小。 例如:打开开关 大小 分页显示大小,可选值为small(迷你版)或不填(默认)。 例如:small 简洁版 是否简洁版显示分页样式。 例如:打开开关 AUI风格 是否展示AUI风格。 例如:打开开关 表2 分页组件事件说明 事件名称 说明 数据改变 单击、或切换每页数据显示量()以及输入跳转页后,触发事件的相关业务。 每页条数改变 在切换每页数据显示量()后触发。 父主题: 平台标准组件介绍
  • 模态框 模态框组件作为一个模态对话框的容器,支持向模态框中拖入各种组件,用于在模态框弹出时,用户必须先响应模态框后,才能对其他对象进行操作的场景。 模态对话框功能:当一个模态对话框弹出时,用户想要对模态框以外的应用程序进行操作时,必须先对该对话框进行响应,例如单击“确定”或“取消”按钮等将该对话框关闭。 属性 说明 标题 模态框的标题。 确定按钮文字 模态框的“确定”按钮上的文字。 取消按钮文字 模态框的“取消”按钮上的文字。 显示Loading 开启后,确定按钮显示loading状态。 显示遮罩层 开启后,显示遮罩层。 点击遮罩层关闭 开启后,允许点击模态框外的遮罩层关闭模态框。 关闭后,必须先对该模态框进行响应才能将该模态框关闭,例如单击模态框中的按钮(“确定”、“取消”)以及图标。 可拖动 开启后,该容器可拖动。 不显示底部 开启后,隐藏“确认”和“取消”按钮区域。 显示取消按钮 开启后,显示取消按钮。 确定按钮在前 开启后,确认按钮在前。 确定按钮禁用 开启后,确认按钮被禁用。 如果模态框高度太大,无法正常显示,可在页面的“样式代码”里添加以下样式代码,即先在样式代码里设置滚动条,然后再将高度改小,如图1所示。 .ivu-modal-body {overflow:auto;} 图1 模态框样式 父主题: 平台标准组件介绍
共100000条