导入导出应用中对象的数据
将当前系统中的对象数据导出,然后在其他环境或账号进行导入,实现数据迁移和备份,如迁移旧的数据去新的环境,保持对象的一致和兼容。从而实现在不同的账号间或环境间的数据迁移,避免重复开发和不兼容的开发。
导出对象数据
- 在AstroZero服务控制台,单击“进入首页”,进入应用开发页面。
- 在页面左上方单击
,选择 ,进入环境配置。
- 在顶部主菜单中,选择“维护”。
- 在左侧导航栏中,选择 。
- 在数据导出页签,单击“新建”,根据需求进行配置。
图1 配置数据导出
表1 导出参数说明 参数
说明
任务名称
设置数据批量导出任务的名称。
导出方式
选择数据的导出方式,分为“普通”和“模板”两种类型,默认为“普通”。
如果导出相同的对象,避免每次导出时重复选择相同的对象,建议选择模板导出方式。即在“模板区域”新建模板,在后续导出相同对象时,选择对应的模板即可导出。
导出文件编码
导出文件的编码格式,支持“UTF-8”和“GBK”两种。
前置脚本
配置前置脚本,导出的zip包在进行数据导入时,会先执行前置脚本,可以用于导入前清理某些数据。
后置脚本
配置后置脚本,导出的zip包在进行数据导入时,导入结束后会执行后置脚本,可以用于导入完成后执行某些数据操作。
模式
设置导出任务的执行次数。
- 仅执行一次:定时/即时导出,立即导出或者选择某个特定时间导出数据(只执行一次)。
- 按设置的频率执行多次:按计划导出,从选定的时间开始,按用户设置的时间间隔,周期性导出。
立即导出
“模式”选择“仅执行一次”时,您需要配置是否立即导出。
首次导出时间
“模式”选择“仅执行一次”且非立即导出或者“按设置的频率执行多次”时,需要配置首次导出时间。
间隔
“模式”选择“按设置的频率执行多次”时,需要设置导出的时间间隔。
单位
“模式”选择“按设置的频率执行多次”时,需要设置导出的时间间隔单位。
- 设置导出条件和导出的数据内容,单击“导出”。
- 当上一步数据“导出方式”选择“普通”时,选择类目进行导出。
- 包含全部对象:包含所有的对象。
- 包含标准对象:包含系统预置的标准对象。
- 包含自定义对象:包含用户定制的自定义对象。
- 包含系统对象:进行数据导出才会显示,元数据导出时不会显示该项。表示平台各项系统功能模块所使用到的对象,如服务编排、脚本。
表2 常见的系统对象说明 对象名
说明
Package
存放软件包的基本信息。
PackageContent
存放软件包的组件信息。
PackageInstall
包安装相关。
PackageVersion
存放包版本信息。
Profile
权限表。
ServicePermission
业务权限凭证表。
PermissionSet
扩展权限集相关信息。
Connector
存放连接器信息。
Tab、Menu
应用菜单相关表。
SysParameter
系统参数表。
CustomError
存放自定义错误码相关信息。
CustomResource
多语言的主表。
CustomResourceValue
多语言的子表。
CustomTranslation
翻译表。
Application
应用表。
Service
BO表。
ApplicationComponent
应用中的组件表。
ServiceItem
BO中的组件表。
URLMap
存放Custom API信息。
- 包括权限对象:进行数据导出才会显示,元数据导出时不会显示该项。表示平台与权限相关的对象,如权限、扩展权限集、业务权限凭证等。
- 自定义:可自定义导出具体的“目标对象”,可多选。
- 当上一步“数据导出”方式选择“模板”时,可新建或选择模板进行导出,目标对象可多选。
当对象勾选的是多个时,导出条件过滤字段为公共字段。导出任务状态为“已完成”时,单击
,可下载文件。
- 请务必在48小时之内完成下载,逾期数据文件将会失效。
- 数据导出任务执行结果或报错,可在“全局元素 > 定时任务 > 任务执行历史”中查看。
- 当上一步数据“导出方式”选择“普通”时,选择类目进行导出。
导入对象数据
请先将导出对象数据中导出的数据压缩成“zip”格式的压缩包。在进行数据导入前,要确保环境中已存在与导入文件同名的表结构,可通过元数据导入或在环境中手动定义表结构。
- 在AstroZero服务控制台,单击“进入首页”,进入应用开发页面。
- 在页面左上方单击
,选择 ,进入环境配置。
- 在顶部主菜单中,选择“维护”。
- 在左侧导航栏中,选择“应用维护 > 数据导入 > 数据导入”。
- 在数据导入页面,单击“新建”,配置“导入类型”,拖入待导入zip文件,单击“导入”。
导入对象数据时,还需要设置导入记录ID是否为空。
- 导入记录ID值为空:导入的数据记录ID值为空,系统将自动生成随机ID。
- 导入记录ID值不为空:根据导入记录中的ID匹配,若存在则更新数据,不存在则创建新的记录。
- 在弹出的提示框中,单击“确定”。
等待一分钟后,单击操作列的
,数据导入页面中会更新导入状态。如果数据导入失败,可以从邮件内容或导入页面“详情”中获知失败原因。
数据导入任务执行结果或报错,可在“全局元素 > 定时任务 > 任务执行历史”中查看。
通过模板导入对象数据
在AstroZero上定义数据导入模板,将模板下载到本地,并录入数据。数据录入完成后,通过导入模板导入新数据并按照预定义的脚本处理数据。执行导入操作前,请确保导入数据的数据表已存于AstroZero中。
- 创建一个数据处理脚本BulkInsert并启用。
- 参考创建空白AstroZero脚本中操作,创建一个空白脚本BulkInsert。
- 在脚本编辑器中,输入如下示例代码。
BulkInsert脚本代码示例如下,入参是name和number,该脚本的主要功能是准备好了导入模板的输入字段,用以进行后面步骤的模板导入数据。
import * as context from 'context'; import * as db from 'db'; import * as sys from 'sys'; @useObject(['命名空间__Class__CST']) @action.object({ type: "params" }) export class ActionInput { @action.param({ type: 'Struct', isCollection: true, label: 'BatchRec' }) records: BatchRec[]; } @action.object({ type: "params", label: "BatchRec" }) export class BatchRec { @action.param({ type: 'String', label: 'name' }) name: string; @action.param({ type: 'String', label: 'age' }) number: string; } @action.object({ type: "params" }) export class ActionOutput { @action.param({ type: 'String', label: 'resMessage' }) resMessage: string; } @useObject(['命名空间__Class__CST']) @action.object({ type: "method" }) export class ActionDemo { @action.method({ label: 'insert_to_multi', description: 'insert_to_multi', input: 'ActionInput', output: 'ActionOutput' }) public insert_to_multi(input: ActionInput): ActionOutput { let out = new ActionOutput(); try { if (input.records.length < 1) { return out }; let recsInsert = [] for (let i = 0; i < input.records.length; i++) { var recOne = { name: input.records[i].name || 'yes', 命名空间__number__CST: input.records[i].number } recsInsert.push(recOne) } console.log('recsInsert = ', recsInsert) if (recsInsert.length < 1) { return } let objMulti = db.object('命名空间__Class__CST'); let ret = objMulti.batchInsert(recsInsert); out.resMessage = "success" } catch (error) { context.setError(error.name, error.message) } return out; } }
- 设置输入参数,运行脚本。
{ "records": [{ "name": "20届1班", "number": "201" }] }
输出参数如下所示,表示运行脚本符合预期。
{ "resMessage": "success" }
- 单击脚本编辑器上方的
,启用脚本。
- 在AstroZero服务控制台,单击“进入首页”,进入应用开发页面。
- 在页面左上方单击
,选择 ,进入环境配置。
- 在顶部主菜单中,选择“维护”。
- 定义数据导入模板。
- 在左侧导航栏中,选择“应用维护 > 数据导入 > 数据导入模板”。
- 在数据导入模板页面,单击“新建”。
- 配置参数信息,若找不到脚本,请确认脚本是否启用。
图2 定义模板
表3 参数说明表 区域
参数
说明
基本信息
名称
数据导入模板的名称。命名要求如下:
- 长度范围为1~64个字符。
- 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。
脚本
选择1中,提前定义好的数据处理脚本。
描述
根据实际需求,输入数据导入模板的描述信息。
Excel映射
名称
定义输出到脚本的入参变量名,请和脚本中入参变量名保持一致。
列
Excel模板中具体的列,按照顺序定义,例如A、B、C。
表头
Excel模板中第一行的列名。
操作
复制或删除操作。
- 设置完成后,单击“保存”。
- 返回数据导入模板页面,单击该模板所在行的
,下载模板到本地,录入数据并保存Excel。
图3 写入数据 - 单击该模板所在行的
,拖入上一步录好数据的Excel,单击“导入”,导入修改后的数据。
图4 导入数据 - 在弹出的提示框中,单击“确定”。
- 在
中,等待导入任务的状态为“已完成”后,在对象的数据页签,查看导入结果。图5 查看导入结果