华为云用户手册

  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 参数解释: 新建自定义对象的名称。 约束限制: 创建后不可修改。 取值范围: 必须以英文字母开头,只能由英文字母,数字和单下划线组成,不允许下划线结尾,且长度不能超过63个字符。 默认取值: 不涉及。 label 否 String 参数解释: 对象的别名,创建后可以修改。 约束限制: 不涉及。 取值范围: 1~80个字符。 默认取值: 不涉及。 description 否 String 参数解释: 对象的描述信息。 约束限制: 不涉及。 取值范围: 1~80个字符。 默认取值: 不涉及。 fields 是 Array of field object 参数解释: 对象的字段列表,字段参数请参见表2。 约束限制: 不涉及。 view 是 Object of layout object 参数解释: 是一个对象,其中包含ObjectDetailLayout对象和ObjectRecordsLayout对象。创建自定义对象后,系统会自动创建对象的Detail和Records标准页面,ObjectDetailLayout对象和ObjectRecordsLayout对象分别对应这两个标准页面的对象信息。 约束限制: 不涉及。 表2 fields字段参数 参数 是否必选 参数类型 描述 label 是 String 参数解释: 新建字段的标签。 约束限制: 不涉及。 取值范围: 1~80个字符。 默认取值: 不涉及。 name 是 String 参数解释: 新建字段的名称。 约束限制: 创建后不可修改。 取值范围: 必须以英文字母开头,只能由英文字母,数字和单下划线组成,不允许下划线结尾,且长度不能超过63个字符。 默认取值: 不涉及。 dataType 是 String 参数解释: 新建字段的类型。 约束限制: 创建后不可修改。 取值范围: 文本:允许用户输入任何字母和数字的组合,最多可输入255个字符。 密文:允许用户输入任何字母和数字的组合,并且以加密格式存储,最多可输入111个字符。 文本区:允许用户输入多行文本,最多可输入1,048,576字符。 数字:允许用户输入任何数字,会删除前置零。 百分比:允许用户输入百分比数字(例如"10"),并自动向数字添加百分号。 电话:允许用户输入任何电话号码,系统会自动将其转换为电话号码格式。 币种金额:允许用户输入其他币种金额,并将字段自动转换为币种金额格式。此功能在将数据导出到Excel或其它电子表格时非常有用。 日期:允许用户输入日期或从弹出式日历中选择日期。 日期/时间:允许用户输入日期和时间,或从弹出式日历中选择日期。当用户单击弹出式日历中的某个日期后,该日期和当前时间将输入到“日期/时间”字段。 电子邮件:允许用户输入电子邮件地址,对其进行验证以确保格式正确。如果对一个联系人和潜在客户指定了此字段,则用户单击“发送电子邮件”时可以选择地址。自定义电子邮件地址无法用于批量电子邮件。 复选框:允许用户选择“真”(选取)或“假”(不选取)值。 选项列表:允许用户从定义的列表中选择值。 选项列表(多项选择):允许用户从定义的列表中选择多个值。 URL:允许用户输入任何有效的网址。当用户单击该字段时,该 URL 将在单独的浏览器窗口中打开。 查找关系:创建一个将此对象链接到另一对象的关系。 自动编号:使用用户定义的格式生成序列编号。该编号对于每条新记录会自动递增。 公式:使用用户定义的公式表达式生成只读字段。任何表达式中使用的源字段有所更改,本字段值将更新。 主从关系类型:在一个对象和另一个对象之间创建一种特殊类型的父子关系。详细记录的所有权是由主记录决定的。当用户删除主记录时,所有详细记录都将被删除。 多语言:允许用户从自定义资源表中选择多种语言内容。 附件:允许用户保存多个上传文件的地址,支持图片、文档等类型。 默认取值: 不涉及。
  • 请求示例 创建Object对象实例。 POST https://华为云Astro轻应用 域名 /u-route/baas/metadata/v1.0/Object { "label": "VehicleType", "name": "VehicleType__ CS T", "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" ] } } }
  • 请求示例 根据object_id为Object添加字段。 POST https://华为云Astro轻应用域名/u-route/baas/metadata/v1.0/Object/cust000000aKoa6I4E6K/Field { "label":"test", "name":"CNAME1__test__CST", "inlineHelpText":"dsf", "description":"fsdf", "dataType":"text", "dataLength":255, "defaultValue":"vfdsg", "caseSensitive":true, "isRequired":true, "isUnique":true, "isSearchable":true, "profiles":[ { "profile":"000T0000000000000002", "readable":true, "editable":true }, { "profile":"000T0000000000000003", "readable":true, "editable":true }, { "profile":"000T0000000000000004", "readable":true, "editable":true }, { "profile":"000T0000000000000006", "readable":true, "editable":true }, { "profile":"000T000000Tiq6fUQhjK", "readable":true, "editable":true }, { "profile":"000T000000Tiq6lJCs2y", "readable":true, "editable":true }, { "profile":"000T000000W1a8iTFglU", "readable":true, "editable":true } ], "layouts":[ "000D000000aKoa6OJOxk" ], "view":{ "000D000000aKoa6OJOxk":{ "fields":[ "name", "test__df__CST", "test__sdadsd__CST", "test__sdd__CST" ] } } }
  • 请求参数 表2 请求body参数 参数 是否必选 参数类型 描述 name 是 String 参数解释: 新增字段的名称。 约束限制: 创建后不可修改。 取值范围: 必须以英文字母开头,只能由英文字母,数字和单下划线组成,不允许下划线结尾,且长度不能超过63个字符。 默认取值: 不涉及。 label 是 String 参数解释: 新增字段的标签。 约束限制: 不涉及。 取值范围: 1~80个字符。 默认取值: 不涉及。 inlineHelpText 否 String 参数解释: 新增字段的帮助说明。 约束限制: 不涉及。 取值范围: 1~255个字符。 默认取值: 不涉及。 dataLength 是 Int 参数解释: 新增字段的长度。 约束限制: 不涉及。 取值范围: 1~64个字符。 默认取值: 不涉及。 dataType 是 String 参数解释: 新增字段的类型。 约束限制: 创建后不可修改。 取值范围: 文本:允许用户输入任何字母和数字的组合,最多可输入255个字符。 密文:允许用户输入任何字母和数字的组合,并且以加密格式存储,最多可输入111个字符。 文本区:允许用户输入多行文本,最多可输入1,048,576字符。 数字:允许用户输入任何数字,会删除前置零。 百分比:允许用户输入百分比数字(例如"10"),并自动向数字添加百分号。 电话:允许用户输入任何电话号码,系统会自动将其转换为电话号码格式。 币种金额:允许用户输入其他币种金额,并将字段自动转换为币种金额格式。此功能在将数据导出到Excel或其他电子表格时非常有用。 日期:允许用户输入日期或从弹出式日历中选择日期。 日期/时间:允许用户输入日期和时间,或从弹出式日历中选择日期。当用户单击弹出式日历中的某个日期后,该日期和当前时间将输入到“日期/时间”字段。 电子邮件:允许用户输入电子邮件地址,对其进行验证以确保格式正确。如果对一个联系人和潜在客户指定了此字段,则用户单击“发送电子邮件”时可以选择地址。自定义电子邮件地址无法用于批量电子邮件。 复选框:允许用户选择“真”(选取)或“假”(不选取)值。 选项列表:允许用户从定义的列表中选择值。 选项列表(多项选择):允许用户从定义的列表中选择多个值。 URL:允许用户输入任何有效的网址。当用户单击该字段时,该 URL 将在单独的浏览器窗口中打开。 查找关系:创建一个将此对象链接到另一对象的关系。 自动编号:使用用户定义的格式生成序列编号。该编号对于每条新记录会自动递增。 公式:使用用户定义的公式表达式生成只读字段。任何表达式中使用的源字段有所更改,本字段值将更新。 主从关系类型:在一个对象和另一个对象之间创建一种特殊类型的父子关系。详细记录的所有权是由主记录决定的。当用户删除主记录时,所有详细记录都将被删除。 多语言:允许用户从自定义资源表中选择多种语言内容。 附件:允许用户保存多个上传文件的地址,支持图片、文档等类型。 默认取值: 不涉及。 description 否 String 参数解释: 新增字段的描述信息。 约束限制: 不涉及。 取值范围: 1~80个字符。 默认取值: 不涉及。 defaultValue 否 String 参数解释: 新增字段的默认值。 约束限制: 格式需符合字段类型(dataType)中所配置类型的规则。 取值范围: 不涉及。 默认取值: 不涉及。 caseSensitive 否 Boolean 参数解释: 大小写是否敏感,例如,“ABC”和“abc”为相同值,表示大小写不敏感,“ABC”和“abc”为不同值,则表示大小写敏感。 约束限制: 不涉及。 取值范围: true:表示大小写敏感。 false:表示大小写不敏感。 默认取值: false。 isRequired 否 Boolean 参数解释: 字段是否必填。 约束限制: 不涉及。 取值范围: true:表示字段必填。 false:表示字段不必填。 默认取值: false。 isUnique 否 Boolean 参数解释: 字段中数据是否允许重复。 约束限制: 不涉及。 取值范围: true:表示字段唯一。 false:表示字段不唯一。 默认取值: false。 profiles 否 Array 参数解释: 权限分配。字段级安全配置,配置每个权限对该字段是否可见/可编辑。 约束限制: 不涉及。 layouts 否 Array 参数解释: 对象字段布局页面的名称。 约束限制: 不涉及。 view 否 Object 参数解释: 每项为一个String数组,名为包含该字段的Layout,内容为该Layout包含的字段。 约束限制: 不涉及。 isSearchable 否 Boolean 参数解释: 是否支持使用search语句搜索该字段。 约束限制: 不涉及。 取值范围: true:表示字段可搜。 false:表示字段不可搜索。 默认取值: false。
  • 请求示例 更新一个记录,例如更新“TestProject__testForObject__CST”对象,记录ID为“cfw0000000aKin6AQgfQ”的数据。 PUT https://华为云Astro轻应用域名/u-route/baas/data/v1.0/bobject/TestProject__testForObject__CST/cfw0000000aKin6AQgfQ { "setValue": { "name": "newName" } }
  • 创建对象 根据请求URI和请求方法,明确请求如下: POST https://华为云Astro轻应用域名/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" }
  • 自定义字段 根据请求URI和请求方法,明确请求如下,其中“cust000000aHYAsrPh4K”为对象ID: POST https://华为云Astro轻应用域名/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" ] }
  • 模型相关 获取data model= model_1实例的数据。 API:$model.ref("model_1").getData() 设置data model= model_1实例的数据,入参data和model_1定义结构一致,当改变整个模型数据时使用。 API:$model.ref("model_1").setData(data) 设置data model= model_1实例的字段值,只改变已有模型数据某个字段值时使用。 API:$model.ref("model_1").setValue(field, value)
  • Tab页相关 仅支持平台的运行态使用,可使用portal框架暴露的API来实现,平台运行态会暴露一个 bingo 全局变量供使用,标准页面由于在 iframe 内,需要使用 window.parent.bingo 访问: 打开tab页,返回tabId。 API:openTab(name, url) 切换tab页。 API:switchTab(tabId) 关闭指定Tab页。 API:removeTab(tabId) 当前Tab页。 API:getCurrentTab() 默认Tab页。 API:getDefaultTab() 打开指定Tab。 API:open({type:'Tab', id: tabId}) 打开指定Tab。 API:openTabByMenuName(menuName) 返回上一个路由。 API:back()
  • 对象操作 获取对象 API:context.object(objectName) 入参:objectName,对象名称。 出参:对象。 示例如下: let _object = context.object("objectName") 查询对象所有数据 API: _object.query().then(function (response) { // TODO: Your business logic }) 查询满足条件数据 例如,查询满足name = 'test' 条件的对象数据,代码如下: let _condition = {conjunction: 'AND', conditions: [{ field: 'name', operator: 'eq', value: 'test' }] } _object.query({condition:_condition}).then(function (response) { // TODO: Your business logic }) 统计满足条件的对象数据数量 API:_object.count(_condition) 其中,“_object”为对象名称。 入参:_condition,查询条件,可选。 出参:Promise。 示例: // 统计所有数据 _object.count().then(function (response) { // TODO: Your business logic }) // 统计满足条件数据 _object.count(_condition).then(function (response) { // TODO: Your business logic }) 查询满足条件数据, 且只查询部分字段 let _fields = 'id,name' _object.query({condition:_condition}, _fields).then(function (response) { // TODO: Your business logic }) 查询满足条件数据, 且只查询部分字段, 支持分页和排序 例如,根据name字段降序排序,跳过前10条记录分页,每页最多显示10条数据。示例代码如下: let _fields = 'id,name' let _options= {'skip': 10,'limit': 10,'orderby': [{'field': 'name','order': 'desc'}]} _object.query({condition:_condition}, _fields, _options).then(function (response) { // TODO: Your business logic }) 通用对象数据查询 API:_object.query({condition:_condition}, fields: string) 入参:_condition,查询条件,可选,参考如下结构。 { conjunction: 'AND', // 条件连接符,AND 或 OR conditions: [ { field: 'name', // 条件字段 operator: 'eq',// 条件比较符 value: 'test' // 条件值 }, { condition: { // 嵌入条件 conjunction: 'OR', conditions: [ { field: 'status', operator: 'eq', value: '1' }, { field: 'status', operator: 'eq', value: '2' } ] } } ] } 以上示例表达内容为:name = 'test' && ( status = '1' || status = '2') fields:查询字段(只返回指定的字段),多个字段以逗号分隔,可选。 出参:Promise。 插入对象数据,支持批量操作 API:_object.insert(data: Object[]) 入参:data,待插入数据,对象数组。 出参:Promise,返回新插入数据的记录ID。 示例: let data = [{ name: 'test', label: 'test' }] _object.insert(data).then(function (response){ if (response && '0' === response.resCode) { let _id = response.result[0].id}}) 根据记录ID更新对象数据 API:_object.updateByID(_id: string, data: Object) 入参:id表示记录ID,data表示对象更新内容。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID更新数据 _object.updateByID(_id, { label: 'test2' }).then(function (response) { // TODO: Your business logic }) 根据记录ID查询对象数据 API:_object.queryByID(_id: string) 入参:id表示记录ID。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID查询单条数据 _object.queryByID(_id).then(function (response) { // TODO: Your business logic }) 根据记录ID删除对象数据 API:_object.deleteByID(_id: string) 入参:id表示对象记录ID。 出参:Promise。 示例: let _id = '{{ id }}' // 根据记录ID删除数据 _object.deleteByID(_id).then(function (response) { // TODO: Your business logic }) 根据记录ID批量查询对象数据 API:_object.batchQueryByIDs(_ids: string, fields: string) 入参:ids表示记录ID,多个ID以逗号分隔。fields表示查询字段,多个字段以逗号分隔,可选。 出参:Promise。 示例: _object.batchQueryByIDs('id1,id2,id3').then(function (response) { // TODO: Your business logic }) 根据记录ID批量删除对象数据 API:_object.batchDeleteByIDs(_ids: string) 入参:ids表示记录ID,多个ID以逗号分隔。 出参:Promise。 示例: _object.batchDeleteByIDs('id1,id2,id3').then(function (response) { // TODO: Your business logic }) 批量插入或更新对象数据 API:_object.batchUpsert(data: Object[]) 入参:data,待插入或更新的数据对象,包含id时表示进行更新。 出参:Promise。 示例: let data = [{id: '1538033158273005', label: 'test'}, {name: 'test', label: 'test'}] _object.batchUpsert(data).then(function (response) { // TODO: Your business logic })
  • 脚本操作 初始化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 示例: // 初始化Flow let _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: Your 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: Your 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: Your 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: Your 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: Your 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: Your 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: Your 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 });
  • BPM相关(原子级) context.$bp和context.$bpm的区别在于后者保证了操作的原子性。例如,调用context.$bp.submitTask (variables:object)数据提交成功时,会有弹框提示且点击“确定”按钮会自动关闭当前页面。而调用context.$bpm.submitTask (variables:object)提交时,只会提交任务而不会有后续的弹框提示等操作;并且当不在BPM上下文环境中提交任务时(即当BPM实例没有运行时提交任务),会有相关提示信息。推荐使用context.$bpm。 获取参数信息 API:context.$bpm.loadVariables() 入参:无。 出参:参数对象。 示例: context.$bpm.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.$bpm.putVariables (variables:object, instId: string) 入参:“variables”为参数对象,必选;“instId”为实例ID,可选。 出参:执行结果。 示例: context.$bpm.putVariables({ LoanRequest: "test" }); 数据提交到BPM API:context.$bpm.submitTask (variables:object) 入参:“variables”为参数对象,必选。 出参:无。 示例: var data = context.$model.ref("loanRequestData").getData(); context.$bpm.submitTask({ LoanRequest: data });
  • 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);
  • 页面类 获取当前页面 API:context.$page.current 当前页面绑定的数据模型 API:context.$page.getModel() 页面URL参数 API:context.$page.params.paramName 示例: // 假设当前页面URL为:https://localhost:8080/besBaas/page#/std_1?a=1&b=2, 则获取URL参数方式如下: let paramA = context.$page.params.a let paramB = context.$page.params.b 在新的导航条打开页面 API:context.$page.open(url: string, queryString: string) 入参:url表示页面地址。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.open('https://localhost:8080/besBaas/page#/std_2', 'a=1&b=2') 在当前导航条打开页面 API:context.$page.load(url: string, queryString: string) 刷新当前页面 API:context.$page.reload() 在新的导航条打开标准页面 API:context.$page.openStdPage(pageName: string, queryString: string) 入参:pageName表示页面名称。queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 示例: context.$page.openStdPage('std_2', 'a=1&b=2') 在当前导航条打开标准页面 API:context.$page.loadStdPage(pageName: string, queryString: string) 在新的导航条打开高级页面 API:context.$page.openAdvPage(pageName: string, websiteName:string, queryString: string) 入参:pageName表示页面名称。websiteName表示为高级页面的站点名称,queryString表示查询参数(URL参数),格式为“key=value”,多个参数用“&”符号连接。 在当前导航条打开高级页面 API:context.$page. loadAdvPage (pageName: string, websiteName:string, queryString: string) 关闭当前页面 API:window.close()
  • 表单类 获取当前表单 API:context.$component.form 如果当前组件为表单,则直接返回。否则,根据组件上下文向上查找最近的表单组件。 根据组件Key值获取表单 API:context.getFormByKey(_formKey: number) 入参:表单组件的Key值,类型为number。 校验整个表单 API:_form.formValidate() _form为已获取的表单组件,返回promise。 API:_form. formValidateUnPromise 非promise,返回true/false。 表单的单字段校验: API:_form.validateField(prop, callback) 参数prop为需校验的属性,参数callback为检验完回调函数,返回错误信息。 示例: _form.validateField("name",function(errorMsg){ console.log("validate field", errorMsg) }); 表单重置 API:_form.resetFields() _form为已获取的表单组件。 表单提交 API:_form.formSave() _form为已获取的表单组件。API内部实现已先进行表单校验,校验成功后进行提交保存操作。
  • 表格类 获取当前表格 API:context.$component.table 如果当前组件为表格,则直接返回。如果当前组件有关联的表格,则返回对应的表格(如表格查询条件、分页等)。否则,根据组件上下文向上查找最近的表格组件。 获取查询条件 API:_table.getCondition() _table为已获取的表格组件,返回表格绑定的查询条件。 设置查询条件 API: // 先获取条件,再进行赋值 var condition = _table.getCondition(); // 字段满足单个条件,默认操作是contains condition.queryInfo = { "fieldName": "1" } // 字段满足单个条件,使用自定义操作 condition.queryInfo = { "fieldName": { operator: "contains", value: "1" } } // 字段满足多个条件 condition.queryInfo = { "fieldName": [{ operator: "contains", value: "1" }, { operator: "contains", value: "2" }] } // 分页条件 condition.pageInfo: { "pageSize": 10, "curPage": 1 } 其中,“_table”为已获取的表格组件。 入参:表格查询条件。 执行查询 API:_table.doQuery() 其中,“_table”为已获取的表格组件。 初始化行数据 API:_table.rowInit() 其中,“_table”为已获取的表格组件,初始化一条新的行数据,此方法执行后,数据并未添加到表格。 添加行数据 API:_table.addrow(newRowData: object) 其中,“_table”为已获取的表格组件,此方法将初始化好的行数据添加到表格,此方法执行后,数据仅在前端表格保存,并未持久化到后端。 入参:行数据。 获取表格当前选中的行数据 API: _table.getSelectedData() 其中,“_table”为已获取的表格组件。 删除表格行数据 API:_table.doDelete(rows: array) 其中,“_table”为已获取的表格组件。 入参:表格行数据列表。 示例: // 当前表格 let _table = context.$component.table // 获取当前选中的行 let rows = _table.getSelectedData() // 删除选中行 _table.doDelete(rows) 获取表格修改的数据(新增、修改、删除) API:_table.getOperatedData() 其中,“_table”为已获取的表格组件。 保存表格数据 API:_table.doSave(operatedData: object) 其中,“_table”为已获取的表格组件,此方法将当前表格做的修改操作进行持久化操作。 入参:修改的表格数据。 示例: // 当前表格 let _table = context.$component.table // 获取修改的数据 let operatedData = _table.getOperatedData() // 提交表格修改 _table.doSave(operatedData)
  • 组件类 获取当前组件 context.$component.current 根据KEY获取组件 API:context.$component.get(_compKey: number) 入参:组件KEY,类型为number。 出参:Component。 示例如下: let _compKey = 1546395654403000 let _component = context.$component.get(_compKey) 根据名称获取组件 API:context.$component.get(_compName: string) 示例如下: let _compName = 'input_1' let _component = context.$component.get(_compName) 获取组件绑定的模型 API:_component.getDataModel() _component为当前操作的组件。 示例如下: let _component = context.$component.current let _model = _component.getDataModel()
  • 请求示例 已创建好OBS类型连接器,连接器实例名称为“命名空间__TestOBS”,执行如下请求,列举OBS桶中“a/b/c”路径下文件,起始文件为“1.txt”。 GET https://华为云Astro轻应用域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/listdir?dir=a/b/c&max-keys=1000&marker=a/b/c/1.txt
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": [{ "name": "test.zip", "isDir": false, "size": 833154 }, { "name": "图片_20201220181511.png", "isDir": false, "size": 78530 }, { "name": "月度总结.txt", "isDir": false, "size": 824 } ] }
  • URI GET 华为云Astro轻应用域名/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/listdir?dir=path&max-keys=A&marker=B 表1 路径参数 参数 是否必选 参数类型 描述 connector_type 是 String 参数解释: 连接器的类型。 约束限制: 不涉及。 取值范围: obs:与OBS对接的连接器。 minio:与MINIO对接的连接器。 objectstorageproxy:对象存储代理类型。 默认取值: 不涉及。 connector_name 是 String 参数解释: 连接器实例的名称,即创建连接器时设置的连接器实例名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 dir 是 String 参数解释: 要列举的目录,如果目录为空或者“/ ”,则代表列举根目录。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 max-keys 否 Number 参数解释: 最大访问文件个数,最大支持1000个,缺省值为“1000”。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 marker 否 String 参数解释: 起始访问位置文件,注意起始位置文件并不会包含到返回结果中,且起始访问文件必须是全路径的,即包含目录。 如果不指定,则从头开始。 示例:marker=a/b/c/1.txt。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
  • 响应参数 表2 响应参数说明 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 成功返回“成功”,其他情况会返回具体的错误信息。 result Array of objects 参数解释: 返回目录的文件列表,列表中元素字段含义如下: name:文件名或目录路径。 isDir:是否为目录。 size:文件大小。
  • 请求示例 删除两个记录,例如删除“TestProject__testForObject__CST”对象,记录ID为“cfw0000000aKmGskAsDo”和“cfw0000000aKmGskAsDp”的数据。 DELETE https://华为云Astro轻应用域名/u-route/baas/data/v1.0/bobject/TestProject__testForObject__CST?records=cfw0000000aKmGskAsDo,cfw0000000aKmGskAsDp
  • 响应参数 表1 响应参数 参数 参数类型 描述 resCode String 参数解释: 返回码。 取值范围: 如果返回“0”代表请求成功,其他错误码说明请参考错误码。 resMsg String 参数解释: 返回消息。 取值范围: 成功返回“成功”,其他情况会返回具体的错误信息。 result result object 参数解释: 在成功请求时会有内容返回。 表2 result参数说明 参数 参数类型 描述 name String 参数解释: 服务编排的公式名称。 取值范围: 不涉及。 category String 参数解释: 服务编排公式的类别。 取值范围: 不涉及。 format String 参数解释: 服务编排公式的调用格式。 取值范围: 不涉及。 description String 参数解释: 服务编排公式的描述信息。 取值范围: 不涉及。
  • 响应示例 { "resCode": "0", "resMsg": "成功", "result": { "active": false, "application": null, "belongTo": "000f000001DHIByJ3nKC", "belongTo.__objectType": "Application", "belongTo.name": "", "createdBy": "10gd000001DHHEwmE1NQ", "createdBy.__objectType": "User", "createdBy.name": "test00xx", "createdDate": "2024-05-22 16:02:55", "custom": true, "customStyle": null, "description": null, "events": [{ "action": "[{\"type\":\"$core.execJSCode\",\"options\":{\"content\":\"// Current Component\\r\\nlet _component = context.getCurrentComponent()\\r\\n\\r\\n// Current Form\\r\\nlet _form = _component.getForm()\\r\\n\\r\\n_form.formSave()\\r\\n\"}}]", "belongTo": null, "createdBy": "10gd000001DHHEwmE1NQ", "createdBy.__objectType": "User", "createdBy.name": "test00xx", "createdDate": "2024-05-22 16:02:55", "custom": true, "id": "003h000001DHkGa8bjhA", "installedPackage": null, "lastModifiedBy": "10gd000001DHHEwmE1NQ", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test00xx", "lastModifiedDate": "2024-05-22 16:02:55", "name": "button_0_click", "owner": "10gd000001DHHEwmE1NQ", "owner.__objectType": "User", "owner.name": "test00xx", "protectMode": 0, "view": "003g000001DHkGa4LkkC", "view.__objectType": "View", "view.name": "__layout__Test__ApprovedResource__CST__detail", "visibility": 0 }, { "action": "[{\"type\":\"$core.execJSCode\",\"options\":{\"content\":\"// Current Component\\r\\nlet _component = context.getCurrentComponent()\\r\\n\\r\\n// Current Form\\r\\nlet _form = _component.getForm()\\r\\n\\r\\n_form.resetFields()\\r\\n\"}}]", "belongTo": null, "createdBy": "10gd000001DHHEwmE1NQ", "createdBy.__objectType": "User", "createdBy.name": "test00xx", "createdDate": "2024-05-22 16:02:55", "custom": true, "id": "003h000001DHkGa8tKpE", "installedPackage": null, "lastModifiedBy": "10gd000001DHHEwmE1NQ", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test00xx", "lastModifiedDate": "2024-05-22 16:02:55", "name": "button_1_click", "owner": "10gd000001DHHEwmE1NQ", "owner.__objectType": "User", "owner.name": "test00xx", "protectMode": 0, "view": "003g000001DHkGa4LkkC", "view.__objectType": "View", "view.name": "__layout__Test__ApprovedResource__CST__detail", "visibility": 0 } ], "id": "003g000001DHkGa4LkkC", "installedPackage": null, "label": "Test__ApprovedResource__CST Detail", "lastModifiedBy": "10gd000001DHHEwmE1NQ", "lastModifiedBy.__objectType": "User", "lastModifiedBy.name": "test00xx", "lastModifiedDate": "2024-05-22 16:02:55", "layer": "null", "libraries": "[]", "lockTime": "", "lockUser": "", "logo": null, "name": "__layout__Test__ApprovedResource__CST__detail", "overridable": true, "owner": "10gd000001DHHEwmE1NQ", "owner.__objectType": "User", "owner.name": "test00xx", "pageType": null, "protectMode": 0, "referencePageId": null, "type": "Page", "version": "1.0.1", "viewData": "{\"key\":1,\"type\":\"DesignerPage\",\"props\":{\"name\":\"DesignerPage_1\"},\"elements\":[{\"key\":1538107283948000,\"type\":\"form\",\"props\":{\"labelPosition\":\"top\",\"labelWidth\":120,\"name\":\"form_0\",\"dataSource\":\"Test__ApprovedResource__CST\",\"dataSourceType\":\"Entity\",\"layout\":{\"key\":\"one_one_one\",\"value\":[8,8,8]},\"dataSourceId\":\"Test__ApprovedResource__CST\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1535715199303019,\"type\":\"title\",\"props\":{\"text\":\"ApprovedResource\",\"value\":\"ApprovedResource\",\"class\":\"form-title-container\",\"name\":\"title_1\"},\"attrs\":{},\"on\":{},\"elements\":[]},{\"key\":1535715199303039,\"type\":\"container\",\"props\":{\"name\":\"container_1\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1535715199303036,\"type\":\"layoutgrid\",\"props\":{\"name\":\"layoutgrid_1\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1888001472428500,\"type\":\"row\",\"props\":{\"layout\":{\"pc\":{\"key\":\"one_one_one\",\"value\":[8,8,8]},\"pad\":{\"key\":\"pad1\",\"value\":[24]},\"phone\":{\"key\":\"phone1\",\"value\":[24]}},\"name\":\"row_0\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1888001472428501,\"type\":\"col\",\"props\":{\"align\":\"left\",\"lg\":8,\"md\":8,\"sm\":24,\"xs\":24,\"name\":\"col_3\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1888001472428502,\"dataBinding\":{\"default\":{\"model\":[\"form_0\",\"name\"]}},\"type\":\"input\",\"props\":{\"type\":\"text\",\"dataField\":\"name\",\"dataFieldType\":\"xs_string\",\"label\":\"{\\\"en_US\\\":\\\"Name\\\",\\\"zh_CN\\\":\\\"名称\\\"}\",\"name\":\"input_1716364974936\",\"readonly\":false}}]}]}]},{\"key\":1535946611880038,\"type\":\"container\",\"props\":{\"align\":\"center\",\"class\":\"form-buttons-container\",\"name\":\"container_1\"},\"attrs\":{},\"on\":{},\"elements\":[{\"key\":1535946611880036,\"type\":\"button\",\"props\":{\"text\":\"{\\\"en_US\\\":\\\"Save\\\",\\\"fr_FR\\\":\\\"\\\",\\\"ja_JP\\\":\\\"\\\",\\\"zh_CN\\\":\\\"保存\\\"}\",\"style\":\"margin-right:20px;\",\"type\":\"primary\",\"name\":\"button_0\"},\"attrs\":{},\"on\":{\"click\":{\"actions\":[{\"type\":\"$core.execJSCode\",\"options\":{\"content\":\"// Current Component\\r\\nlet _component = context.getCurrentComponent()\\r\\n\\r\\n// Current Form\\r\\nlet _form = _component.getForm()\\r\\n\\r\\n_form.formSave()\\r\\n\"}}],\"graph\":\"\",\"serviceList\":[]}},\"elements\":[]},{\"key\":1535946611880037,\"type\":\"button\",\"props\":{\"text\":\"{\\\"en_US\\\":\\\"Reset\\\",\\\"fr_FR\\\":\\\"\\\",\\\"ja_JP\\\":\\\"\\\",\\\"zh_CN\\\":\\\"重置\\\"}\",\"style\":\"\",\"name\":\"button_1\"},\"attrs\":{},\"on\":{\"click\":{\"actions\":[{\"type\":\"$core.execJSCode\",\"options\":{\"content\":\"// Current Component\\r\\nlet _component = context.getCurrentComponent()\\r\\n\\r\\n// Current Form\\r\\nlet _form = _component.getForm()\\r\\n\\r\\n_form.resetFields()\\r\\n\"}}],\"graph\":\"\",\"serviceList\":[]}},\"elements\":[]}]}]}],\"dataBinding\":{\"default\":{\"model\":[\"form_0\"]}}}],\"dependencies\":[{\"names\":{\"extendNames\":[],\"pageMasterNames\":[],\"cardNames\":[]}}],\"version\":\"1.0.2\"}", "viewModel": "{\"form_0\":{\"mapping\":[{\"bindType\":\"object\",\"bindName\":\"Test__ApprovedResource__CST\",\"include\":\"ALL\",\"exclude\":\"\"}],\"fields\":[{\"name\":\"form_0\",\"label\":\"form_0\",\"type\":\"object\",\"isRequired\":false,\"defaultValue\":{},\"expand\":false,\"orign\":[{\"type\":\"Test__ApprovedResource__CST\",\"name\":\"Test__ApprovedResource__CST\",\"mappingField\":\"Test__ApprovedResource__CST\"}],\"rootInstanceId\":\"form_0\",\"_uid\":0},{\"name\":\"name\",\"label\":\"{\\\"en_US\\\":\\\"Name\\\",\\\"zh_CN\\\":\\\"名称\\\"}\",\"type\":\"xs_string\",\"orign\":[{\"type\":\"object\",\"name\":\"Test__ApprovedResource__CST\",\"mappingField\":\"name\"}],\"parentId\":\"form_0\",\"expand\":false,\"rootInstanceId\":\"form_0\",\"_uid\":1}],\"actions\":[{\"name\":\"query\",\"type\":\"object\",\"method\":\"query\",\"uri\":\"Test__ApprovedResource__CST\",\"input\":[],\"output\":[{\"fieldName\":\"name\",\"mappingField\":\"name\"}]},{\"name\":\"save\",\"type\":\"object\",\"method\":\"save\",\"uri\":\"Test__ApprovedResource__CST\",\"output\":[],\"input\":[{\"fieldName\":\"name\",\"mappingField\":\"name\"}]},{\"name\":\"delete\",\"type\":\"object\",\"method\":\"delete\",\"uri\":\"Test__ApprovedResource__CST\",\"output\":[],\"input\":[{\"fieldName\":\"name\",\"mappingField\":\"name\"}]},{\"name\":\"count\",\"type\":\"object\",\"method\":\"count\",\"uri\":\"Test__ApprovedResource__CST\",\"input\":[],\"output\":[]}]}}", "visibility": 0 } }
  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 fields 否 String 参数解释: 指明要查询的BPM实例信息的字段,多个字段名之间以英文逗号分隔。如果不指明字段,则返回缺省的字段。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 orderField 否 String 参数解释: 用于排序的字段名。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 orderType 否 String 参数解释: 排序类型。 约束限制: 不涉及。 取值范围: asc:升序。 desc:降序。 默认取值: 不涉及。
  • URI GET 华为云Astro轻应用域名/u-route/baas/bp/v2.0/runtime/instances?states={X} 表1 路径参数 参数 是否必选 参数类型 描述 states 是 String 参数解释: BPM实例状态。 约束限制: 不涉及。 取值范围: New Running Waiting for user interaction Waiting for page event Completed OK Paused Broken Suspended User Terminated Terminated Dispatched CompletedOkWait 默认取值: 不涉及。
  • 响应示例 { "resCode":"0", "resMsg":"Success", "result":[ { "bpStage":"Stage 1", "bpStatus":"begin", "bpStep":"Transfer 1", "businessKey":"BK001", "createdBy":"10gd0000003T2E10UTfk", "createdBy.__objectType":"User", "createdBy.name":"ecommerce", "createdDate":"2018-08-13 16:21:17", "curElement":"", "description":"Transfer 1", "endTime":"2018-08-17 14:40:09", "id":"002N000000IpNGFfNvm4", "label":"TestFSM2 2018-08-13 16:21:17", "lastHandler":null, "lastModifiedBy":"10gd0000003T2E10UTfk", "lastModifiedBy.__objectType":"User", "lastModifiedBy.name":"ecommerce", "lastModifiedDate":"2018-08-17 14:40:09", "name":"TestFSM2", "owner":"10gd0000003T2E10UTfk", "owner.__objectType":"User", "owner.name":"ecommerce", "startTime":"2018-08-13 16:21:17", "state":"Completed OK", "suspended":false, "title":"Hello, this is a title", "type":"BP", "urgency":0, "version":"0.0.1" } ] }
共100000条