云服务器内容精选

  • 步骤四:创建下载文档的脚本 创建一个脚本,用于根据文档名下载OBS桶中生成的合同文档。 在应用设计器的左侧导航栏中,选择“逻辑”,单击脚本后的“+”。 新建一个空白的脚本,名称设置为“docScript”,单击“添加”。 图29 创建脚本docScript 在脚本编辑器中,输入示例代码。 本示例代码主要用于下载文档,示例中的“命名空间__OBS_Connector”为2中配置的连接器名称,“docTemplate”为2中配置的文件存储位置。 import * as context from 'context';//导入上下文相关的标准库 import * as objectstorage from 'objectstorage'; //定义入参结构 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'String', required: true, label: 'String' }) docName: string; } //定义出参结构 @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'Any' }) buf: any; } @action.object({ type: "method" }) export class CreateWorkOrder { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public createWorkOrder(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { // OBS桶路径,和模板配置中的一致 let path = "docTemplate/"; // 调用连接器下载,NS1__OBS_Connector为调用连接器名称 let obsCli = objectstorage.newClient(objectstorage.StoreType.OBS, "命名空间__OBS_Connector"); let data = obsCli.getObject(path + input.docName); out.buf = data; } catch (error) { console.error(error.name, error.message); context.setError(error.name, error.message); } return out; } } 单击,保存脚本。 运行测试脚本。 单击编辑器上方的,执行脚本。 设置输入参数,单击测试窗口右上角的,查看返回消息。 { "docName": "1730874683589013855743152260007e733dd-80ea-19f1-b7a0-93fdcd20a541_NS1__contractModel.docx" } 其中,“1730874683589013855743152260007e733dd-80ea-19f1-b7a0-93fdcd20a541_NS1__contractModel.docx”为步骤三:创建服务编排生成文档中生成的文档,即通过脚本根据文档名下载OBS桶中的实际合同文档。 图30 查看输出参数 脚本测试完成后,单击页面上方的,启用该脚本。
  • 步骤六:验证合同文档生成和下载功能 在标准页面上方,单击,进入预览页面。 输入合同内容,单击“提交合同参数并生成文档实例”。 图50 输入合同内容 提示“Submitted successfully”后,单击“刷新”,即可查看到提交的合同数据。 图51 查看提交的合同数据 单击数据后的“下载文档”,将合同文档下载到本地并查看文档内容。 图52 合同文档被下载到本地 图53 查看下载到本地合同的内容
  • 步骤三:创建服务编排生成文档 创建一个服务编排,添加“生成文档”和“记录创建”两个图元,用于根据合同中参数创建具体的文档。 在应用设计器的左侧导航栏中,选择“逻辑”,单击编排后的“+”。 设置服务编排的标签和名称,单击“添加”。 图17 新建服务编排 表8 新建服务编排参数说明 参数 说明 示例 标签 服务编排的标签名,用于在界面展示,创建后可修改。 取值范围:1~64个字符。 根据合同模板创建具体文档实例 名称 服务编排在系统中的唯一标识,创建后不支持修改。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 docFlow 创建全局上下文变量。 在服务编排设计页面,选中开始节点,单击。 在全局上下文中,单击变量后的,新建变量variable0。 单击variable0变量后的,选择“设置”。 将变量的“名称”设置为“companyName”,单击“保存”。 图18 新建companyName变量 按照上述操作,创建表9中的变量。 图19 查看已创建的变量 表9 需要创建的全局上下文变量 名称 数据类型 companyName(已创建) 文本 amount 数字 orderNum 数字 person 文本 date 日期 contractName 文本 otherCompanyName 文本 modedoc 文本 选中开始节点,设置节点的输入参数和输出参数。 图20 设置入参和出参 添加生成文档节点。 在“基本”图元中,拖拽“生成文档”图元到开始图元后。 图21 拖拽生成文档图元到画布中 选中生成文档图元,单击,设置生成文档。 图22 设置生成文档图元 表10 生成文档图元设置说明 参数 说明 示例 请选择模板场景 选择生成文档图元关联的模板场景,即1中创建的。 命名空间__docModel 请选择文档模板 选择模板场景中创建的文档模板,即3中创建的。 命名空间__docModel 连接器类型 根据选择的文档模板自动进行关联。 OBS 连接器名称 根据选择的文档模板自动进行关联。 命名空间__OBS_Connector 连接器桶名 根据选择的文档模板自动进行关联。 template-obs 向模板传入数据 向模板中传入数据,将入参变量一次赋值给对应的模板参数。 3中创建的变量 文档保存地址 将出参modelDoc变量放入文档保存地址,用于存放生成的文档名。 modedoc 添加创建记录节点。 在“基本”图元中,拖拽“记录创建”图元到“生成文档”图元后。 图23 添加记录创建图元 选中记录创建图元,单击,将入参、出参变量都存入步骤二:创建对象存储模板中内容和模板实例中创建的对象中。 图24 记录创建设置 连接图元指定逻辑关系,即从开始图元连向生成文档图元,从生成文档图元连向记录创建图元。 图25 指定图元逻辑关系 单击页面上方的,保存服务编排。 单击,进入服务编排调试页面。 在输入参数中,输入如下内容,并单击“运行”。 { "companyName": "A公司", "amount": "10", "orderNum": "2", "person": "张三", "date": "2024-11-05", "contractName": "新采购合同", "otherCompanyName": "B公司" } 执行成功后,提示如下信息。登录OBS服务控制台,在2中配置的路径下会生成图26中的合同文档。将合同文档下载到本地,查看合同中内容,如图28所示,可发现合同中的内容已被替换。 图26 服务编排执行成功 图27 查看新生成的合同文档 图28 查看合同内容 单击页面上方的,启用服务编排。
  • 步骤二:创建对象存储模板中内容和模板实例 创建一个对象并在对象中添加字段,用于存储文档模板中的内容和后续生成的模板实例。 在应用设计器的左侧导航栏中,选择“数据”,单击对象中的“+”。 设置对象的名称和唯一标识,单击“确定”。 图13 创建对象docObject 表5 新建docObject对象参数说明 参数 说明 示例 对象名称 新建对象的名称,创建后可修改。 取值范围:1~80个字符。 文档模板对象 唯一标识 新建对象在系统中的标识,创建后不支持修改。命名要求如下: 长度不能超过63个字符,包括前缀命名空间的长度。 说明: 标识前模糊掉的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母,数字和下划线组成,且不能以下划线结尾。 docObject 在已创建的对象中,单击,进入对象详情页面。 图14 选择编辑按钮 在“字段”页签,单击“添加”,为对象添加companyName字段。 图15 添加companyName字段 表6 添加companyName字段参数说明 参数 说明 示例 显示名称 新建字段的名称,创建后可修改。 取值范围:1~63个字符。 公司名称 唯一标识 新建字段在系统中的标识,创建后不支持修改。命名要求如下: 长度不能超过63个字符,包括前缀命名空间的长度。 必须以英文字母开头,只能由英文字母,数字和单下划线组成,且不能以下划线结尾。 companyName 字段类型 单击,在弹出的页面中,根据页面提供的参数解释,选择新建字段所属的类型。 文本 数据长度 允许输入字段的长度。 64 按照上述操作,为对象继续添加表7中字段。 图16 查看对象中字段 表7 待添加对象字段 名称 唯一标识 数据类型 公司名称(已添加) companyName 文本 合同金额 amount 数字 订单数目 orderNum 数字 合同签订人 person 文本 合同日期 date 日期 合同名称 contractName 文本 乙方公司名称 otherCompanyName 文本 合同模板实例 modedoc 文本(数据长度设置为255)
  • 应用场景 AstroZero低代码平台提供了一个文件模板功能,基于该功能开发者可以根据不同客户设置不同类型的打印模板。例如,用户在商品订单管理系统中,基于商品、价格等信息,自动生成了商品订单列表。在处理完自己的订单后,可以使用模板功能将订单信息同步到合同模板中,生成合同文档,用于签订线下合同。同样,在财务领域,可以使用文档模板来生成定制化的发票和收据。对于需要发送正式邀请的场合,文档模板可以用来创建和打印专业的商务信函。