华为云用户手册

  • 3. 关键岗位检测 关键岗位检测开关:是否开启关键岗位检测告警,默认值为1,表示开启。0表示不开启。 在岗最小人数:关键岗位检测区域的最少人数,取值范围为[1, 100],默认值为2人。 检测周期:关键区域检测周期,单位为秒。取值范围为[1, 3600],默认值为1s。当时间到达检测周期整数倍时,触发算法检测在岗人数。 告警触发阈值:单位为检测周期个数。取值范围为[1, 3600],默认值为60。假设告警触发阈值为N,当连续N个检测周期时间内检测结果都不满足最小在岗人数,则触发告警。触发告警或满足在岗人数则重新开始计数,直到再次达到告警阈值。 图片压缩比:取值范围[20, 100],默认为90,表示图片压缩比为90%。 检测区域设置:表示检测区域,该字段为JSON格式的字符串,例如:{"polygons":[{"data":[[84,389],[1840,349],[1824,526],[78,526]]}]}。未设置检测区域时,默认区域为整个视频帧中间的1/4。
  • 8. 工服工帽检测 工帽检测开关:默认值为1,表示检测。0表示不检测。 工服检测开关:默认值为1,表示检测。0表示不检测。 目标框渲染开关:输出图像是否绘制告警目标边框,默认为0,表示不绘制。1表示用红色绘制告警目标边框。 检测区域渲染开关:输出图像是否绘制检测区域,默认为0,表示不绘制。1表示用黄色绘制用户设定区域。 图片压缩比:取值范围[20, 100],默认为90,表示图片压缩比为90%。 检测区域设置:表示检测区域,该字段为JSON格式的字符串,例如:{"polygons":[{"data":[[84,389],[1840,349],[1824,526],[78,526]]}]}。未设置检测区域时,默认全屏都是检测区域。
  • 15. 排队状态分析 排队状态分析开关:1表示开启,0表示不开启。默认值为1。 检测结果渲染开关:输出图像是否绘制告警目标边框,默认为0,表示不绘制。1表示用红色绘制告警目标边框。 检测区域渲染开关:输出图像是否绘制检测区域,默认为0,表示不绘制。1表示用黄色绘制用户设定区域。 检测区域设置:表示检测区域,该字段为JSON格式的字符串,例如:{"polygons":[{"data":[[84,389],[1840,349],[1824,526],[78,526]]}]}。未设置检测区域时,默认区域为整个视频帧。 图片压缩比:取值范围[20, 100],默认值为90,表示图片压缩比为90%。
  • 边缘算法使用流程 图2 边缘算法使用流程 表1 边缘算法使用流程 流程 子任务 说明 详细指导 准备输入输出 接入视频数据 您在使用视频接入分析服务的算法服务前,需要先接入视频数据,才能用算法服务对接入的视频进行分析,获取结果。 边缘算法支持接入Edge Camera、Edge Restful、VCN三种视频数据来源。 接入视频数据 准备结果输出通道 请提前准备好作业分析结果的输出通道。 准备结果输出通道 创建边缘运行池 边缘运行池是一组处理服务作业的边缘节点。在创建服务作业前,要求先创建边缘运行池。 创建边缘运行池 创建分析作业 创建作业 创建作业的过程中需要配置输出数据的类型。 创建作业 配置算法参数 创建作业的过程中需要设置相应的算法参数。不同的算法服务,对应的参数不同。 配置算法参数 查看分析结果 查看作业状态 作业创建成功后,观察作业的运行状态,待运行成功后,获取作业分析结果。 查看作业状态 获取作业结果 您可以根据设置的输出数据类型,采用对应的方式获取作业分析结果。 获取作业结果
  • 云上算法使用流程 图3 云上算法使用流程 表2 云上算法使用流程 流程 子任务 说明 详细指导 准备输入输出 接入视频数据 您在使用视频接入分析的算法服务前,需要先接入视频数据,才能用算法服务对接入的视频进行分析,获取结果。 云上算法支持的接入视频数据来源有VIS。 接入视频数据 准备结果输出通道 请提前准备好作业分析结果的输出通道。 准备结果输出通道 创建分析作业 创建作业 创建作业的过程中需要配置输出数据的类型。 创建作业 配置算法参数 创建作业的过程中需要设置相应的算法参数。不同的算法服务,对应的参数不同。 配置算法参数 查看分析结果 查看作业状态 作业创建成功后,观察作业的运行状态,待运行成功后,获取作业分析结果。 查看作业状态 获取作业结果 您可以根据设置的输出数据类型,采用对应的方式获取作业分析结果。 获取作业结果
  • 查看作业状态 您可以在“作业”页面查看所有作业的状态、数据源、对应的视觉服务和创建时间。您也可以通过作业的创建时间、状态、名称和ID查找指定作业。 图1 作业列表 您还可以单击作业名称,查看作业的详细信息,包括作业结果的输出路径。 当作业状态处于运行中或运行成功时,表示作业运行状态正常。当创建的作业处理运行成功后,按照创建作业时选择的输出类型和路径查看作业结果。 算法服务创建的作业运行状态,如表1所示。 表1 作业运行状态 状态类型 说明 运行中 作业正常运行过程中。 调度中 资源调度进行中。 启动中 等待资源调度过程。 运行成功 作业运行成功。 运行失败 作业运行失败。 创建失败 作业创建失败。 删除中 作业正常删除过程中。 删除失败 作业删除失败。 等待中 作业没有申请到资源,排队等待过程。 更新中 作业处于自动升级状态。 冻结中 用户欠费时,会冻结正在运行的作业,作业处于冻结过程中。 已冻结 作业已经在边缘节点删除成功,在保留期内用户充值补交欠费后会重新启动。 父主题: 管理作业
  • Step2 获取具体的分析结果 在设置的输出路径下,查看分析结果。 DIS 登录DIS控制台。 单击相应的DIS通道,查看输入流是否有数据。 通过DIS转储任务获取分析的结果数据,具体操作请参见DIS用户指南。 Webhook 服务使用post请求将作业的运行结果,包括告警结构化数据和图片数据,以JSON数据流的形式输出到用户指定的Webhook URL。 例如运行Webhook Service中的示例脚本将接收到的Webhook消息写在与脚本同目录的post.txt文件中。 以入侵检测算法为例,算法输出的JSON结果示例如下,表示识别出视频中在指定区域有人入侵。 { "event_type":196609, "timestamp":1581753322, "stream_id":"44000000581314000234#15#9f63890660f24175871c861b345e852d", "message_id":"849D1326-4FC8-11EA-8F73-0242AC110004", "image_base64":"/9j/4AAQSkZJRgA...", "task_id":"63eac48bf3704e8bb30af7f244fdcf3d", "data":{ "event_set":[ { "start_position":"in", "end_position":"in", "bounding_box":{ "y":327, "h":216, "x":876, "w":105 }, "category":0, "detection_id":"83BFC020-4FC8-11EA-9F93-0242AC110004" } ] }} 表1 JSON结果字段解释 字段 说明 task_id 表示作业ID data data中的内容表示算法作业运行输出的识别结果。 bounding_box 告警输出对象的矩形框。 x:矩形框左上角横坐标 y:矩形框左上角纵坐标 w:矩形框宽度 h:矩形框高度 detection_id 告警目标对应的UUID。 category 告警目标的类型: 0:人 1:车 2:其他 start_position 表示入侵开始位置: 如果是过线入侵,则是入侵开始所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵开始在区域里面。 out:表示入侵开始在区域外面。 end_position 表示入侵结束位置: 如果是过线入侵,则是入侵结束所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵结束在区域里面。 out:表示入侵结束在区域外面。
  • 创建边缘运行池 登录视频分析服务管理控制台,在页面左侧导航栏中选择“边缘运行池”。 在“边缘运行池”页面,单击“新增”,创建边缘运行池。 图1 新增边缘运行池 在创建边缘运行池页面配置相关参数。 表1 创建边缘运行池参数说明 参数 参数说明 名称 边缘运行池名称。 只能由中文、英文字母(a~z, A~Z)、数字(0~9)、中划线(-)、下划线(_)组成,长度范围为[1, 100]。 描述 自定义边缘运行池描述信息,以便记忆和区分。 资源类型 目前只支持边缘节点类型。 服务实例ID 可选参数。使用IEF铂金版时,需要先填写服务实例ID,才能绑定相应的边缘节点。 服务实例ID获取请参见获取IEF服务实例ID。 边缘节点 选择接入的边缘节点,可以选择多个。 说明: 此处选择的边缘节点必须处于运行状态中,具体参考查看边缘节点运行状态。 如果还未接入边缘节点,请参考注册边缘节点在智能边缘平台IEF上添加。 容器挂载路径 可选参数。当服务的输出方式选择Local Path时,需要填写容器挂载路径。 此路径必须是在边缘节点上存在的真实路径。用于存储服务检测出来的图片和JSON结构数据,检测的原始图片和JSON结构数据。 服务功能 选择需要在此边缘运行池上运行的视频接入分析服务的算法。 可以选择多个算法。 API标识 选择服务功能后,系统会自动显示该服务对应的API标识。 功能版本 选择服务功能后,系统会自动选择3.0版本。 最大视频流路数 该算法服务可以接入的最大视频路数,不能超过购买算法包时设置的视频路数。 配置完成后,单击“立即创建”。 可在“边缘运行池”页面查看创建的边缘运行池信息。
  • 接入视频数据 您在使用视频接入分析的算法服务前,需要先接入视频数据,然后才能对接入的视频进行分析,获取结果。 视频接入分析支持接入的视频数据如表1所示。视频格式的要求请参见约束与限制。 表1 算法支持接入的视频数据来源 算法类型 输入视频数据来源 说明 待准备的信息 操作参考 边缘算法 Edge Camera 表示从指定的边缘摄像头中读取视频数据。 注册边缘节点并纳管 创建边缘摄像头 具体的操作步骤请参见IEF服务配置。 Edge Restful 表示从用户自定义的流媒体服务器中读取视频数据。 REST接口的URL地址。 - VCN 表示从视频云(Video Cloud Node,简称VCN)中读取视频数据。 VCN服务器的IP地址 端口号 用户名 密码 摄像头ID 从VCN管理员获取。 云上算法 VIS 表示从视频接入服务(Video Ingestion Service,简称VIS)中读取视频数据。 VIS的视频流名称 云上算法可以通过VIS接入实时视频数据,需要选择VIS数据流名称。
  • 配置输入数据 视频接入分析服务支持从以下来源接入视频数据,具体配置说明如下: Edge Camera:视频数据来自边缘摄像头,数据源需要选择摄像头。在操作栏单击“选择”,可以选择单个或多个摄像头。如果无可选择数据源,请参考IEF服务配置创建边缘摄像头。 图2 Edge Camera类型输入数据 Edge Restful:视频数据来自客户自定义的流媒体服务器,需要提供URL地址、rtsp地址相对位置、请求消息头。 图3 Edge Restful类型输入数据 表2 Edge Restful参数解释 参数 说明 示例 HTTPS证书校验 打开开关时,算法作业会对输入的https请求进行证书校验。平台侧仅对其进行输入校验,不涉及业务逻辑。 关闭开关时,算法作业不对输入的https请求进行证书校验。 - URL 获取Edge Restful流的rest请求,格式http(s)://ip:port/xxx, http(s)://ip:port/xxx rtsp地址相对位置 返回body体中Edge Restful流地址的路径,符合正则表达式。 data/url 请求头 获取Edge Restful流的rest请求携带的请求头,格式为key:value,取值均为用户设置。 最多允许10组请求头。 - VCN:视频数据来自VCN时,需要填写VCN服务器的IP地址、端口号、用户名、密码、摄像头ID和码流类型。有多个摄像头时,可以单击添加摄像头ID。VCN的参数信息请联系VCN管理员获取。 图4 VCN类型输入数据 VIS:视频数据来自VIS时,在操作栏单击“选择”,可以选择单个或多个数据源。也可以单击“输入方式”,输入VIS名称。输入的VIS名称必须已经在VIS平台创建,具体操作方式参见VIS服务使用指南。 图5 VIS类型输入数据
  • 配置输出数据 视频接入分析的算法作业运行成功后,可以通过DIS或Webhook输出分析结果。DIS和Webhook的具体配置如下: DIS:当输出数据类型为DIS时,作业的运行结果会发送到DIS通道中。此处需要选择具体的通道名。若无可选择通道时,单击“创建通道”,进入DIS的管理控制台,购买DIS接入通道。 图6 DIS输出类型 通过DIS通道输出原图时,请使用DIS高级通道,以免因通道带宽过小而丢失原图数据。 Webhook:当输出数据类型为Webhook时,服务使用post请求将作业的运行结果直接发送给用户设置好的Endpoint。用户需要对Webhook的URL和请求头进行配置。 图7 Webhook输出类型
  • 响应示例 { "id": "001L000000Peuw1Q318a", "config": { "cancelable": false, "noCancelAfterElem": "" }, "dataMappers": [ { "assignmentItems": [ { "assignTo": "dateList", "name": "", "operator": "add", "value": "2019-03-04", "valueType": "" }, { "assignTo": "dateList", "name": "", "operator": "add", "value": "2020-01-02", "valueType": "" } ], "connector": "userTask", "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L1\",\"points\":[\"619 125\",\"643 125\",\"662.5 125\",\"662.5 100\",\"682 100\",\"706 100\"]}", "description": "", "label": "Data Mapper", "locationX": 575, "locationY": 125, "name": "dataMapper", "connectors": [] } ], "description": "", "label": "SimpleBP", "laneSet": { "label": "", "lanes": [ { "elements": [ "userTask", "userTask1", "dataMapper", "start" ], "height": 201.35220031738282, "label": "lane", "name": "lane", "role": "LoanRequest.Applicant", "width": 1080 } ], "name": "" }, "name": "SimpleBP", "slas": [ { "active": true, "criteria": "", "deadlineDays": 0, "deadlineHours": 0, "deadlineIncreaseUrgencyBy": 2, "deadlineMinutes": 0, "deadlineOnlyBusinessDays": false, "goalActions": [ { "action": "", "criteria": "{!IsMatched} && {!Owner}", "name": "sla-act", "type": "Notify Manager" } ], "goalDays": 0, "goalHours": 0, "goalIncreaseUrgencyBy": 1, "goalMinutes": 0, "goalOnlyBusinessDays": false, "label": "userTask1_sla", "name": "userTask1_sla", "startWhen": "", "variable": "", "actions": [] }, { "active": true, "criteria": "", "deadlineDays": 0, "deadlineHours": 0, "deadlineIncreaseUrgencyBy": 2, "deadlineMinutes": 0, "deadlineOnlyBusinessDays": false, "goalActions": [ { "action": "NotifyBPManager", "criteria": "", "name": "sla-act1", "type": "Notify Manager" } ], "goalDays": 1, "goalHours": 0, "goalIncreaseUrgencyBy": 1, "goalMinutes": 0, "goalOnlyBusinessDays": false, "label": "userTask_sla", "name": "userTask_sla", "startWhen": "", "variable": "", "actions": [] } ], "startEvents": [ { "connector": "dataMapper", "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L0\",\"points\":[\"151.5 100\",\"175.5 100\",\"341.25 100\",\"341.25 110.5\",\"507 110.5\",\"531 110.5\"]}", "label": "Start", "locationX": 125, "locationY": 100, "name": "start", "type": "Start", "startType": "", "renderType": "", "render": "", "document": "", "description": "" } ], "startStage": null, "startType": "", "status": "Warning", "status.name": "Warning", "userTasks": [ { "approvalType": "Single", "connector": "userTask1", "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L1\",\"points\":[\"794 100\",\"818 100\",\"875 100\",\"875 100\",\"932 100\",\"956 100\"]}", "description": "wuli desc", "groupAsSingleParticipant": false, "inputAssignments": [ { "input": "$Task.Title", "name": "", "value": "{!$GlobalConstant.EmptyString}", "valueType": "" } ], "label": "User Task", "locationX": 750, "locationY": 100, "name": "userTask", "participants": [ { "type": "user", "value": "ecommerce6" } ], "preActions": [ { "action": "{!$GlobalConstant.EmptyString}", "criteria": "", "name": "action", "type": "Set Status" } ], "render": "SimpleBP$Form1$form", "renderType": "Form", "routeType": "Name and Expressions", "router": { "defaultRouteTo": "", "defaultRouteType": "", "name": "" }, "title": "wu li tu cao", "usingSLA": "userTask_sla", "routeTo": "", "faultConnector": "", "boundaryEvents": [], "outputAssignments": [], "document": "", "priority": 3 }, { "approvalType": "Single", "groupAsSingleParticipant": false, "label": "User Task", "locationX": 1000, "locationY": 100, "name": "userTask1", "priority": 3, "render": "SimpleBP$ut1$form", "renderType": "Form", "routeType": "Last Assignee In Lane", "router": { "defaultRouteTo": "", "defaultRouteType": "", "name": "" }, "title": "T2", "routeTo": "", "connector": "", "faultConnector": "", "boundaryEvents": [], "inputAssignments": [], "outputAssignments": [], "document": "", "description": "" } ], "variables": [ { "currencyFactor": 0, "dataType": "checkBox", "defaultValue": "{!$GlobalConstant.True}", "defaultValueType": "", "description": "", "extNS": "", "extType": "", "isCollection": false, "isInput": false, "isNested": false, "isOutput": false, "name": "IsMatched" }, { "currencyFactor": 0, "dataType": "text", "defaultValue": "Hello", "defaultValueType": "", "description": "", "extNS": "", "extType": "", "isCollection": false, "isInput": false, "isNested": false, "isOutput": false, "name": "Owner" }, { "currencyFactor": 0, "dataType": "date", "defaultValue": "", "defaultValueType": "", "description": "", "extNS": "", "extType": "", "isCollection": false, "isInput": false, "isNested": false, "isOutput": false, "name": "dateVar" }, { "currencyFactor": 0, "dataType": "date", "defaultValue": "", "defaultValueType": "", "description": "", "extNS": "", "extType": "", "isCollection": true, "isInput": false, "isNested": false, "isOutput": false, "name": "dateList" }, { "currencyFactor": 0, "dataType": "extStruct", "defaultValue": "", "defaultValueType": "", "description": "", "extNS": "SimpleBP", "extType": "Form1Form", "isCollection": false, "isInput": false, "isNested": false, "isOutput": false, "name": "Form1Form" } ], "version": "1.0.1", "usingSLA": ""}
  • 请求示例 创建服务编排对象实例,服务编排对象的标签为 "das",名称为"t__das"。 POST https://AstroZero域名/u-route/baas/metadata/v1.0/Flow{ "label": "das", "name": "t__das", "processType": "Autolaunched Flow", "localUrl": "/run/t__das", "startElement": "", "event": "", "eventCriteria": "", "interviewLabel": "das {!$Flow.CurrentDateTime}"}
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": { "errors": [ "Flow(t__das) 的startElement为必选属性, 必须输入" ], "id": "000y000000aM8XixTN0S", "warnings": [] }}
  • 请求参数 表1 请求参数 参数 是否必选 参数类型 描述 name 是 String 服务编排的名称。 label 是 String 服务编排的标签。 processType 是 String 服务编排的类型,有两种可选“ Event Trigger”和“Autolaunched Flow”。 startElement 否 String 服务编排的起始元素。 interviewLabel 否 String 服务编排实例的标签。 localUrl 是 String 本地url。 event 否 String 服务编排涉及的事件。 variables 否 Array 如果服务编排类型是“Event Trigger”,则可以填写绑定具体事件。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "active": false, "config": "{\"cancelable\":false,\"noCancelAfterElem\":\"\",\"noCancelAfterElemLabel\":\"\"}", "description": "", "id": "001L000000Peuw1Q318a", "label": "SimpleBP", "name": "SimpleBP", "status": "Warning", "version": "1.0.1" } ]}
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "boID": null, "catalogue": "Out", "createdBy": "testUserId", "createdBy.__objectType": "User", "createdBy.name": "test0xx", "createdDate": "2019-08-04 16:21:58", "custom": true, "description": "Updated Description", "id": "000y000000aM8XixTN0S", "installedPackage": null, "lastModifiedBy": "testUserId", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test0xx", "lastModifiedDate": "2019-08-04 16:22:58", "name": "testName", "namespace": "testSpace", "owner": "testUserId", "owner.__objectType": "User", "owner.name": "test0xx", "protectMode": 0, "structMembers": [ { "createdBy": "testUserId", "createdBy.__objectType": "User", "createdBy.name": "test0xx", "createdDate": "2019-08-04 16:21:58", "currencyFactor": 1, "custom": true, "dataType": "text", "defaultValue": null, "defaultValueType": null, "description": null, "id": "000y000000bM2XixVA0P", "ignoreNull": true, "installedPackage": null, "isCollection": true, "isNested": false, "lastModifiedBy": "testUserId", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test0xx", "lastModifiedDate": "2019-08-04 16:21:58", "name": "testName", "namespace": null, "owner": "testUserId", "owner.__objectType": "User", "owner.name": "test0xx", "parent": "testId", "parent.__objectType": "ExtStruct", "parent.name": "TestName", "picklistValues": null, "protectMode": 0, "required": true, "structType": null } ] } ]}
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": { "active": false, "catalogue": "", "compilerVersion": 0, "createdBy": "testUserId", "createdBy.__objectType": "User", "createdBy.name": "test0xx", "createdDate": "2019-08-03 18:19:13", "custom": true, "description": "", "event": "", "eventCriteria": "", "id": "testId", "installedPackage": null, "interviewLabel": "", "label": "A Brand New Label", "lastModifiedBy": "testUserId", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test0xx", "lastModifiedDate": "2019-08-04 17:57:29", "localUrl": "", "lockUser": "", "name": "testName", "owner": "testUserId", "owner.__objectType": "User", "owner.name": "test0xx", "private": false, "processType": "", "protectMode": 0, "reserved": 0, "startElement": "", "status": "Error", "usingSLA": null, "version": "1.0.1" }}
  • 请求参数 表2 请求Body体参数 参数 是否必选 参数类型 描述 name 是 String 字段校验器名。 label 否 String 字段校验器标签。 description 否 String 字段校验器描述。 active 是 String 设置激活状态,如果存在该参数的情况下,会忽略其他参数,即激活/冻结时,不能同时修改其他属性。 errorExpression 否 String 校验器判断的规则表达式。 errorMessage 否 String 错误信息。 errorLocation 否 String 错误信息出现的位置。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": { "tableInfo": { "id": "cust000000aKtFZpERvc", "keyPrefix": "cRvc", "name": "test__dfg__CST", "category": 3, "label": "dfg", "pluralLabel": "dfgs", "version": 0, "contextSetup": 0, "trackFieldHistory": false, "allowReports": false, "allowActivities": false, "allowChatter": false, "allowStreamingApiAccess": false, "allowBulkApiAccess": false, "allowSearch": false, "allowSharing": false, "sharingMode": 0, "deploymentStatus": 0, "properties": "", "status": 0, "createdBy": "10gd000000SDyqaQW6uu", "createdDate": "2020-05-28 17:01:02", "lastModifiedBy": "10gd000000SDyqaQW6uu", "lastModifiedDate": "2020-05-28 17:01:02", "description": "", "objectType": 0, "protectMode": 0, "installedPackage": "", "createdBy.name": "test0xx", "lastModifiedBy.name": "test0xx" }, "childObjects": null, "parentObjects": [ { "parentObject": "stad00000000000000GD", "cascadeDelete": false }, { "parentObject": "stad00000000000000GG", "cascadeDelete": false }, { "parentObject": "stup000000000000002I", "cascadeDelete": false }, { "parentObject": "stup000000000000003L", "cascadeDelete": false } ] }}
  • URI GET AstroZero域名/u-route/baas/data/v1.0/bobject/{objectName}/{recordId}?fields={f1,f2} 表1 路径参数 参数 是否必选 描述 objectName 是 数据对象的名称。 recordId 是 记录ID,可通过调用按条件查询对象数据接口查看(响应消息中的“id”)。 fields 否 对象显示的字段,多个字段则用逗号分隔。如果该字段不为空,则仅返回显示的字段和必要信息(如数据记录拥有者信息和id);为空则返回整个记录数据。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [ { "TestProject__address__CST": null, "createdBy": "10gd000000SDzgxNSckK", "createdBy.__objectType": "User", "createdBy.name": "test0xx", "createdDate": "2020-05-28 14:34:40", "currencyIsoCode": "", "id": "cfw0000000aKin6AQgfQ", "installedPackage": null, "lastModifiedBy": "10gd000000SDzgxNSckK", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test0xx", "lastModifiedDate": "2020-05-28 14:34:40", "name": "testd", "owner": "10gd000000SDzgxNSckK", "owner.__objectType": "User", "owner.name": "test0xx" } ]}
  • 创建对象 根据请求URI和请求方法,明确请求如下: POST https://appcube.cn-north-4.huaweicloud.com/u-route/baas/metadata/v1.0/object 设置请求消息头。 表1 请求消息头 消息头名称 描述 是否必选 Content-Type HTTP协议中设定的一个参数,用于标识返回的内容用什么格式去解析,此处必须配置为“application/json”。表示浏览器将返回内容解析为json对象。 是 access-token 当用户登录系统鉴权成功后,后台会生成一个token,在响应消息中携带,并存在浏览器中。下次再调用请求后,会带上这个token,表示这个用户已经被鉴权过。 是 构造请求消息体。 { "label": "VehicleType", "name": "VehicleType__CST", "description": "", "fields": [ { "label": "Name", "name": "name", "dataType": "Name" } ], "view": { "ObjectDetailLayout": { "name": "__layout__VehicleType__CST__detail", "fields": [ "name" ] }, "ObjectRecordsLayout": { "name": "__layout__VehicleType__CST__records", "fields": [ "name" ] } }} 返回如下响应,表示成功创建对象,记录“result”字段取值“cust000000aHYAsrPh4K”,为对象ID。 { "resCode": "0", "resMsg": "成功", "result": "cust000000aHYAsrPh4K"}
  • 请求示例 更新一个记录,例如更新“TestProject__testForObject__CST”对象,记录ID为“cfw0000000aKin6AQgfQ”的数据。 PUT https://AstroZero域名/u-route/baas/data/v1.0/bobject/TestProject__testForObject__CST/cfw0000000aKin6AQgfQ{ "setValue": { "name": "newName" }}
  • 自定义字段 根据请求URI和请求方法,明确请求如下,其中“cust000000aHYAsrPh4K”为对象ID: POST https://appcube.cn-north-4.huaweicloud.com/u-route/baas/metadata/v1.0/object/cust000000aHYAsrPh4K/fields 设置请求消息头。 表2 请求消息头 消息头名称 描述 是否必选 Content-Type HTTP协议中设定的一个参数,用于标识返回的内容用什么格式去解析,此处必须配置为“application/json”。表示浏览器将返回内容解析为json对象。 是 access-token 当用户登录系统鉴权成功后,后台会生成一个token,在响应消息中携带,并存在浏览器中。下次再调用请求后,会带上这个token,表示这个用户已经被鉴权过。 是 构造请求消息体,创建“VehicleType”、“VehicleNumber”字段。 { "fields": [ { "label": "VehicleType", "name": "VehicleType__CST", "dataType": "text", "dataLength": 255, "caseSensitive": false, "isRequired": false, "isUnique": false, "isSearchable": false }, { "label": "VehicleNumber", "name": "VehicleNumber__CST", "dataType": "text", "dataLength": 255, "caseSensitive": true, "isRequired": false, "isUnique": true, "isSearchable": false } ]} 返回如下响应,表示成功创建字段。 { "resCode": "0", "resMsg": "成功", "result": [ "cust000000aHaE6S3mim", "cust000000aHaE6TlNVA" ]}
  • BPM相关(非原子级) 获取参数信息 API:context.$bp.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bp.loadVariables().then(function (data) { context.$model.ref("loanRequestData").setData(data.result.LoanRequestData); context.$model.ref("statusUpdates").setData(data.result.Status); context.$model.ref("negotiateCount").setData(data.result.NegotiateCount);}); 设置BPM中的变量 API:context.$bp.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bp.putVariables({ LoanRequest: "test"}); 数据提交到BPM API:context.$bp.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData();context.$bp.submitTask({ LoanRequest: data});
  • 其他 启动定时任务 API:context.timerTask(_timerHandler, _timeout, _executionCondition); 入参:分别是定时执行的业务逻辑、任务时间间隔、执行条件。 示例: // 任务间隔时间,毫秒var _timeout = 1000;// 定时执行业务逻辑var _timerHandler = function() { // TODO: Your business logic };// 执行条件var _executionCondition = function() { return true;};// 启动定时任务context.timerTask(_timerHandler, _timeout, _executionCondition);
  • 脚本操作 初始化Script API:context.script(scriptName) 入参:scriptName,表示Script名称。 出参:Script 示例: // 初始化脚本let _script = context.script('{{ scriptName }}') 运行Script API:_script.run() 入参:无。 出参:Promise。 示例: // 初始化脚本let _script = context.script('{{ scriptName }}')// 运行脚本_script.run().then(function(response) { // TODO: Your business logic})
  • 服务编排相关 初始化Flow API:context.flow(flowName) 入参:flowName表示Flow名称。 出参:Flow 示例: // 初始化Flowlet _flow = context.flow("flowName") 设置Flow版本号 API:_flow.version(version: string) 入参:version表示flow版本号。 出参:Flow。 示例: // 设置Flow版本号_flow.version("0.0.1") 运行Flow API:flow.run(params: Object) 入参:params,输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 适用于一次调用,Flow即完成的场景// 运行Flow_flow.run({ param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 启动Flow API:_flow.start(params: Object) 入参:params,输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 以下适用于多步操作的业务场景_flow.start({ param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 执行Flow下一步 API:_flow.next(interviewID: string, params: Object) 入参:interviewID为Flow运行实例ID,params为输入参数。 { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 下一步_flow.next("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 返回Flow上一步 API:_flow.back(interviewID: string, params: Object) 入参:interviewID为Flow运行实例ID,params为输入参数。 { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 上一步_flow.back("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 正常完成Flow API:_flow.finish(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 完成Flow_flow.finish("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 恢复Flow运行 API:_flow.resume(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 恢复Flow_flow.resume("{{ interviewID }}", { param1: 'param1' }).then(function (res) { // TODO: Youre business logic}) 删除Flow实例 API:_flow.terminate(interviewID: string, params: Object) 入参:interviewID表示Flow运行实例ID;params:输入参数,如下示例: { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } } 出参:Promise。 示例: // 删除Flow_flow.terminate("{{ interviewID }}", { param1: 'param1', param2: { param21: 'param21', param22: 'param22' } }).then(function (res) { // TODO: Youre business logic})
  • 服务请求 调用服务的API API:context.service('{{url}}').run(_inputParams) 入参:“url”为服务接口的URL,在APP或者BO视图下单击“服务”,可查看到封装Flow、脚本或者对象操作接口的URL。“_inputParams”为输入参数。 示例: var _inputParams = {};// 调用服务context.service('{{ url }}').run(_inputParams).then(function(response) { // TODO: Your business logic});
共100000条