Examples of Calling Scheduled Task APIs in FineReport Templates

  • Last update: October 09, 2024
  • 1. 概述

    本文介绍 FR 模板调用定时任务接口的示例。

    查看本文档前,请先查看以下两篇文档,了解更多调用接口相关知识:

    2. 示例一:FDL 独立部署

    本章示例:FR 模板中调用 基于任务ID运行任务 接口。

    2.1 插件准备

    请参见:调用定时任务相关接口说明 第二章内容。

    2.2 FDL 工程新建应用

    1)进入 FDL 工程,点击「管理系统>开放平台>应用管理>增加」,新建应用,备选认证选择「AkSk认证」。如下图所示:

    注:FR、FDL为独立部署时,推荐使用AkSk直接认证、摘要签名认证。

    4.png

    2)点击新建应用右侧的编辑按钮,记住「应用ID」与「密钥」的值。如下图所示:

    6.png

    2.3 为新建应用开放权限

    点击「权限管理>API」,本次示例选定API为「基于任务ID运行任务」,为其开放 2.2 节新建应用的权限。如下图所示:

    7.png

    2.4 记录被调用任务ID

    在「数据开发」中找到希望被调用的定时任务,复制任务ID,记录下任务ID。如下图所示:

    注:若调用的接口是根据实例ID查询实例信息 ,实例信息获取请参见:获取实例信息

    8.png

    2.5 FR 工程设置转发FDL接口配置项

    进入 FR 平台,点击「管理系统>系统管理>常规」,设置「转发FDL接口配置」项。如下图所示:

    12.png

    设置项
    说明
    开放平台应用client_id
    FDL工程上开放平台应用client_id,本文 2.2 节的「应用ID」
    开放平台应用secret

    FDL工程上开放平台应用secret,本文 2.2 节的「密钥」

    FDL地址FDL 工程地址

    2.6 FR 模板调用接口

    FR 中打开 GettingStarted.cpt 模板,在参数面板中添加「点击按钮」,为「点击按钮」添加「点击事件」。如下图所示:

    9.png

    JS 代码:

    注:用户根据实际情况修改 workId(本文 2.4 节的任务ID)值。

    FR.ExecuteWorkByWorkId(
        {
            workId: "e10f1f1a-d567-4058-98bb-b71204154f8b",
            params: {
                paramName: "paramValue",
            },
            waitForResponse: "true",
            waitTime: 10000,
        },
        function (error, response) {
            if (error) {
                console.error("请求失败:" + error);
            } else {
                console.log("请求成功,响应数据:" + JSON.stringify(response));
            }
        }
    );

    2.7 效果查看

    预览模板,点击按钮。如下图所示:

    10.png

    在 FDL 工程中,点击「任务运维>运行记录」,可看到被调用任务的最新运行记录。如下图所示:

    11.png

    3. 示例二:FR、FDL 集成部署

    本章示例:FR 模板中调用 基于任务ID运行任务 接口。

    注:集成部署工程推荐 fine_auth_token 认证模式(为产品内置的登录认证)。

    2.1 插件准备

    请参见:调用定时任务相关接口说明 第二章内容。

    2.2 记录被调用任务 ID

    参见本文 2.4 节内容。

    2.3 FR 模板调用接口

    打开 GettingStarted.cpt 模板,在参数面板中添加「点击按钮」,为「点击按钮」添加「点击事件」。如下图所示:

    13.png

    JS 代码:

    注:用户根据实际情况修改 server(工程地址)、workId(任务ID)的值。

    function getCookie(name) {
    let arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)) {
    return decodeURI(arr[2]);
    }
    return null;
    }
    // 定义API的URL和access_token
     
    var server = 'http://localhost:8080/webroot/decision';
    var apiUrl = server+'/sp/client/api/module/fdl/workId/execute';
    var accesstoken = getCookie('fine_auth_token'); // 获取令牌
    // 构建请求数据
    const requestData = {
    "workId": "0bed8897-733b-45e8-8e0c-3b4b1dd2823f",
    "params": {
    "paramName": ""
    },
    "waitForResponse": "true",
    "waitTime": 10000
    };
     
    // 发起POST请求
    fetch(apiUrl, {
    method: 'POST',
    headers: {
    Authorization: 'Bearer '+accesstoken,
    'Content-Type': 'application/json',
    },
    body: JSON.stringify(requestData),
    })
    .then(function(response) {
    if (response.ok) {
    return response.json();
    } else {
    throw new Error(`请求失败:${response.status}`);
    }
    })
    .then(function(data) {
    console.log(data); // 在控制台中输出响应数据
    })
    .catch(function(error) {
    console.log(`请求失败:${error}`);
    });

    2.4 效果查看

    预览模板,点击按钮。如下图所示:

    10.png

    在集成平台中,点击「数据开发>运行记录」,可看到被调用任务的最新运行记录。如下图所示:

    14.png




    附件列表


    主题: 数据开发
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy