ASTRO轻应用 ASTROZERO-使用AstroZero文件模板生成合同文档:步骤四:创建下载文档的脚本

时间:2025-01-02 09:02:57

步骤四:创建下载文档的脚本

创建一个脚本,用于根据文档名下载OBS桶中生成的合同文档。

  1. 在应用设计器的左侧导航栏中,选择“逻辑”,单击脚本后的“+”
  2. 新建一个空白的脚本,名称设置为“docScript”,单击“添加”

    图29 创建脚本docScript

  3. 在脚本编辑器中,输入示例代码。

    本示例代码主要用于下载文档,示例中的“命名空间__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;
        }
    }

  4. 单击,保存脚本。
  5. 运行测试脚本。

    1. 单击编辑器上方的,执行脚本。
    2. 设置输入参数,单击测试窗口右上角的,查看返回消息。
      {
          "docName": "1730874683589013855743152260007e733dd-80ea-19f1-b7a0-93fdcd20a541_NS1__contractModel.docx"
      }

      其中,“1730874683589013855743152260007e733dd-80ea-19f1-b7a0-93fdcd20a541_NS1__contractModel.docx”步骤三:创建服务编排生成文档中生成的文档,即通过脚本根据文档名下载OBS桶中的实际合同文档。

      图30 查看输出参数

  6. 脚本测试完成后,单击页面上方的,启用该脚本。
support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0015.html