云服务器内容精选

  • 沙箱环境 在应用正式发布上线前,需要在测试环境进行测试,包含数据配置。AstroZero一般以沙箱(Sandbox)环境,来作为测试环境。沙箱环境默认域名为“appcubesandbox.cn-north-4.huaweicloud.com”。 使用沙箱环境前,首先需要了解什么是沙箱。沙箱是一种安全机制,为运行中的程序提供的隔离环境。通常作为一些来源不可信、具破坏力或无法判定程序意图的程序,提供实验之用。沙箱是一种按照安全策略,限制程序行为的执行环境。在沙箱中,网络访问、对真实系统的访问、对输入设备的读取,通常被禁止或是严格限制的。沙箱属于虚拟化的一种,沙箱中的所有改动对操作系统不会造成任何损失。
  • 标准页面 标准页面基于Vue技术栈,平台预置丰富基础组件,也可以支持扩展,多用于表格表单等后端管理页面的快速开发。 标准页面开发界面提供图形化、无码化在线页面开发功能,通过标准页面开发界面能够快速构建各种复杂表单表格页面、以及其他一些灵活布局页面。支持在开发界面中将组件面板上的页面组件拖拽至页面工作区域,并对组件的属性、事件进行设置,再配合事件编排完成复杂的业务功能。支持用户以积木组装的方式快速构建应用页面,提升开发效率和质量,及时响应业务需求和价值实现。
  • 命名空间 由于不同租户间的数据可打包共享,为了避免数据命名的重复(例如数据对象、应用、服务编排等),租户在首次创建应用前,需要先定义一个命名空间。 命名空间唯一且每个租户只能创建一个命名空间。命名空间一旦设定不能修改,请慎重定义,建议使用公司或团队的缩写作为命名空间。命名空间创建后,后续创建的应用、数据对象、脚本、服务编排、页面等应用元素的名称前,系统会为其增加命名空间。例如,将命名空间定义为“CNAME”,后续创建的所有应用、应用元素(数据对象、脚本、页面等)都将以“CNAME__”开头。
  • AstroZero服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚? 如果脚本中涉及数据增/删/改等操作,默认是脚本图元后的图元失败的情况下,脚本中的操作进行回滚。如果脚本中,单独写了独立事务transaction,则不进行回滚。 独立事务的具体写法如下:如下红框中的内容,如果脚本中存在,则表示开启了独立事务,即使引用它的服务编排失败,事务操作也不会回滚。 父主题: 应用后端开发
  • 解决方法 自定义组件(widget)上传新的版本后,需要在“页面设置”中,对插件进行升级更新。升级后,js文件才能生效。 登录经典版应用设计器。 在应用设计器菜单栏下方,单击“页面设置”,再选择“插件”页签。 找到需要更新的组件(例如userLogin),单击组件所在行右侧的“查看详情”按钮,进入组件详情页。 图1 页面设置下的组件列表 单击“更新”,进入组件更新页面。 图2 选择更新按钮 单击“上传”,上传本地的组件zip包,再点击更新。 图3 更新组件 在“插件”页签,单击,获取锁。 单击刚上传组件(userLogin)后的,升级组件。 升级成功后,单击,保存升级。 单击,发布组件。 图4 升级并发布组件
  • 如何彻底删除AstroZero对象目录树中的数据? 目录树只是一个视图,在应用视图目录树中删除只是删除了引用,并没有删除实体。要彻底删除实体,需要进入左侧栏的页签,选择对应的资源进行删除。 图1 删除自定义对象 图2 删除服务编排 标准页面对应对象的layout布局页,需要进入对象详情内的“布局”页签进行删除。 图3 删除标准页面对应对象的layout 删除组件,需要进入组件详情页面,先禁用组件后,再执行删除操作。 图4 删除Widget 父主题: 应用后端开发
  • 解决方法 参考什么是对象中操作,进入对象配置页面。 图1 进入对象配置页面 在标准页面,单击,获取锁。 从组件中,拖拽“按钮”组件到画布中,并设置按钮显示名称为“刷新”。 图2 拖入按钮组件 选中“刷新”按钮组件,在“事件”页签中,单击事件后的“+”。 图3 设置按钮 编辑事件代码为“context.$page.reload()”,单击“创建”,调用预置接口刷新当前页面。 单击页面上方的,保存页面。
  • AstroZero系统预置的owner字段,用于记录什么用户? AstroZero为所有自定义对象预置了owner字段,如图1所示。 图1 预置的owner字段 owner字段记录的数据,主要包括如下几种: 用户通过前台页面录入的对象数据,owner字段记录的是录入数据用户的用户ID。 图2 通过页面添加数据 通过定时任务执行服务编排或脚本触发的对象数据录入,owner字段记录的是任务创建者的用户ID。 通过事件触发的对象数据录入,owner字段记录的是系统用户ID“00000000000000000001”。 在数据调试(开发环境)中,执行SQL语句“select 命名空间_对象名.owner from 命名空间_对象名;”,可获取owner的值。 图3 查询owner取值 父主题: 应用后端开发
  • 处理方法 首先查看数据对应的对象,查看数据列的字段名。 若需要构造如图1所示的数据,在新建对象,请新增图3中的自定义字段。自定义字段后,打开布局页签,选中“对象名Records”数据记录页,新增图1所示的数据。 图3 自定义字段 在标准页面选中表格组件,新增模型,设置为对象模型,选中上一步的对象,设置表格数据源。 图4 设置数据绑定 图5 设置对象模型 图6 设置关联字段 图7 选中模型 在标准页面选中表格组件,开启“树形数据”并设置如下参数。 图8 开启树形数据并设置对应参数 预览该页面,即可查看到如图2所示层级关系。
  • 方式一:使用组件导航,选中目的组件 当页面中组件过多,不易选择某个组件时,可以先选择该组件附近的某个子组件,当选中子组件后,“组件导航”上将显示它的html标签层级。直接单击标签层级,即可快速切换组件。 如图1所示,当不易选择栅格容器时,可以先任意选择栅格容器中的某个子组件,当选中子组件后,“组件导航”上可以显示子组件“多行输入框”之前的组件层级,在“组件导航”上,直接单击“栅格容器”,即可快速选中该栅格容器。
  • 解决方法 当组件中定义的桥接器属性设置的model值和桥接器中定义的model值相同时,桥接器实例选项可选到这些桥接器。 例如,查看组件editor.js文件中model值为“SingleRepireDataViewModel”,查看“折柱图数据桥接器”和“柱状图和折线图数据桥接器”的“packageinfo.json”文件中model值同样为“SingleRepireDataViewModel”。 图2 组件中model值 图3 桥接器包中model值
  • 操作步骤 创建BO,将需要调用的资源封装为BO中的公共接口。 参考创建BO中操作,创建一个标签和名称为“BOTest”的BO。 在BO中,新建需要调用的资源“命名空间__FlowC”,并启用。 新建“命名空间__FlowC”后,该资源可见性默认为“公开”,表示在其他应用中可调用该资源。 参考图1和图2,在BO中新建公共接口,该接口用于封装“命名空间_FlowC”。 在BO开发页面中,单击左下角的“服务”新建API时,需要指定版本号,且接口区分“公共接口”和“私有接口”。 “公共接口”是提供REST接口给第三方系统或者内部系统调用。“私有接口”是提供SDK接口给内部系统调用。本示例选择“公共接口”。 图1 新建公共接口 图2 封装“命名空间__FlowC” 进入需要调用资源的应用,引入BO,在应用的服务编排中使用BO图元调用接口,从而调用资源。 进入需要调用资源的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“BO服务”,添加“BOTest”。 添加后,在该应用的服务编排中,才可以调用BO服务。 “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去。 “External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。 图3 应用中添加BO服务 图4 选择BO 参考图5,在服务编排“命名空间__FlowA”中使用BO图元,调用该公共接口,注意API类型选择“REST”。 在服务编排“命名空间__FlowA”编辑器页面左侧,选择“BO”,从“Others”下拖拽2.a中定义的“BOTest”至画布。在画布中,选中BO图元,单击,在“BO”页面进行配置,使用BO图元调用接口。 图5 调用BO
  • 删除某应用资源发布新版本安装后,为什么该资源还存在? AstroZero采用增量安装机制,每次安装应用系统只会执行新增或修改操作。在应用首次发布前,可以增加或删除应用资源(应用资源指的是应用中的资产,例如对象字段、脚本、服务编排、高级页面组件和业务权限凭证等)。将应用发布安装到环境B后,在原环境A中删除应用资源,例如删除对象的某个字段,升级发布到环境B安装后,环境B中的字段会仍然存在的。 图1 删除某字段 父主题: 应用发布与部署
  • 通过可视化建表的方式管理数据 在AstroZero中,通过可视化建表的方式完成数据模型的构建。 登录经典版应用设计器。 将鼠标放在某个文件夹上,单击,选择“对象”。 选择“创建新对象”,输入基本信息后单击“添加”,创建对象。 在对象详情页面“自定义字段”页签,单击“新建”,可给对象创建自定义字段。 在对象详情页单击“布局”页签,进入该对象的布局。 单击“对象名 Records”后的,在预览页面可增删查数据。
  • AstroZero脚本中是否支持multipart/form-data请求? 脚本标准库提供了“multipart”,支持multipart/form-data请求, 具体示例代码如下: import * as http from 'http'; import * as mp from 'multipart'; import * as buffer from 'buffer'; let w = mp.newWriter(); let bytes = buffer.from("hello, Astro Zero"); w.setBoundary("--ABC"); let mimeHeader = { "Content-Disposition": ['form-data; name="upload_file"; filename="a.txt"'], "Content-Type": ['application/octet-stream'] } w.writeBuffer(mimeHeader, bytes); w.writeField("name", "Trump"); w.close(); let client = http.newClient(); let req : http.Request = { data: w.buffer().bytes(), headers: { "Content-Type": w.formDataContentType(), } } let resp = client.post('ip', req); console.log("response = ", resp); 父主题: 应用后端开发