如何通过模板导入对象数据
使用说明
在AstroZero上定义数据导入模板,将模板下载到本地,并录入数据。数据录入完成后,通过导入模板导入新数据并按照预定义的脚本处理数据。
前提条件
导入数据的数据表已存于AstroZero中,即参考定义自定义对象的字段(Fields)中操作,创建对象命名空间__Class__CST,并自定义字段number。
新建数据处理脚本
- 参考开发一个简单脚本实例中操作,新建一个数据处理脚本如BulkInsert。
BulkInsert脚本代码示例如下,入参是name和number,该脚本的主要功能是准备好了导入模板的输入字段,用以进行后面步骤的模板导入数据。
import * as context from 'context'; import * as db from 'db'; import * as sys from 'sys'; @useObject(['CNAME__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(['CNAME__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', CNAME__number__CST: input.records[i].number } recsInsert.push(recOne) } console.log('recsInsert = ', recsInsert) if (recsInsert.length < 1) { return } let objMulti = db.object('CNAME__Class__CST'); let ret = objMulti.batchInsert(recsInsert); out.resMessage = "success" } catch (error) { context.setError(error.name, error.message) } return out; } }
其中,“CNAME”为命名空间名称,请以实际命名空间为准。
- 设置输入参数,运行脚本。
{ "records": [{ "name": "20届1班", "number": "201" }] }
图3 脚本BulkInsert的入参测试
输出参数如下所示,表示运行脚本符合预期。
{ "resMessage": "success" }
- 单击脚本编辑器上方的,启用脚本。
通过模板导入数据
- 参考登录环境配置中操作,登录AstroZero环境配置。
- 在主菜单中,选择“维护”。
- 定义数据导入模板。
- 在左侧导航栏中,选择“应用维护 > 数据导入 > 数据导入模板”。
- 在数据导入模板页面,单击“新建”。
- 配置参数信息,若找不到脚本,请确认脚本是否启用。
图4 定义模板
表1 参数说明表 区域
参数
说明
基本信息
名称
数据导入模板的名称。
脚本
选择提前定义好的数据处理脚本。
您需要在脚本中声明一个集合属性的入参,脚本中入参的变量名与Excel模板中入参变量名保持一致。
描述
数据导入模板的描述信息。
Excel映射
名称
定义输出到脚本的入参变量名,请和脚本中入参变量名保持一致。
列
Excel模板中具体的列,按照顺序定义,例如A、B、C。
表头
Excel模板中第一行的列名。
操作
复制或删除操作。
- 设置完成后,单击“保存”。
- 返回数据导入模板页面,单击该模板所在行的,下载模板到本地,录入数据并保存Excel。
图5 写入数据
- 单击该模板所在行的,拖入上一步录好数据的Excel,单击“导入”,导入修改后的数据。
图6 导入数据
- 在弹出的提示框中,单击“确定”。
- 在
中,等待导入任务的状态为“已完成”后,在对象的数据页签,查看导入结果。图7 查看导入结果