反馈已提交

网络繁忙

FDL调用FR/BI的定时调度任务

  • 文档创建者:Wendy123456
  • 历史版本:5
  • 最近更新:Wendy123456 于 2024-07-16
  • 1. 概述

    1.1 应用场景

    某公司的 FineReport/FineBI 工程每月都会通过 定时调度任务 给销售发送月报数据。月报发送前,需要使用 FDL 处理月报数据

    若分别设置 FDL 的定时任务和 FineReport/FineBI 工程的定时调度任务的执行频率,需要保证 FDL 的定时任务优先执行,用户觉得较为麻烦,希望使用 FDL 去管理 FineReport/FineBI 定时调度任务的运行。

    1.2 实现思路

    1)定时调度任务的执行频率设置为「只执行一次」(后续通过 FDL 触发执行)。

    2)FineReport/FineBI 工程安装 开放平台插件 ,FDL 创建一个定时任务 A ,调用定时调度接口来触发定时调度任务的执行。其中,该定时任务 A 设置 事件调度 ,依赖 FDL 处理月报数据的定时任务 B 。

    3)定时任务 B 根据实际情况设置执行频率,每次对月报数据处理后,调用定时任务 A 来触发定时调度任务的执行。

    1.3 方案说明

    本文需要调用执行定时调度任务接口,除了登录的接口之外,FineReport/FineBI 所有的 WEB API 接口,都需要登录才能使用。详情请参见:Web页面集成接口

    若登录认证方式为 fine_auth_token ,请参见本文第三章内容;否则,参考本文第二章内容。

    本文展示 FDL 管理 FineReport 工程中的定时调度任务步骤,管理 FineBI 中的定时调度任务步骤与之相同。

    2. 示例一:接口认证模式不是fine_auth_token

    2.1 定时调度任务准备

    创建一个 定时调度 任务,需注意,执行频率设置为「只执行一次」(后续通过 FDL 触发执行)。如下图所示:

    2.png

    本文示例中,定时调度任务名称为文档测试

    2.2 FineReport 工程准备

    1)由于要调用定时调度任务执行接口FineReport 工程中,需要安装开放平台插件。插件安装方法请参见:服务器插件管理

    2)登录 FineReport 工程,点击管理系统>开放平台>应用管理,新建应用,名称为文档测试,认证方式选择AkSk直接认证。如下图所示:

    3.png

    3)点击新建应用右侧的编辑按钮,可查看应用的应用ID密钥,后续步骤中将用到这两个参数的值。如下图所示:

    4.png

    4)点击权限管理,为新建应用开启消息管理V3定时调度管理V3的权限。如下图所示:

    6.png

    2.3 处理月报数据定时任务准备

    1)由于 FDL 中需要处理月报数据,本文示例中,在 FDL 中设置一个定时任务,模拟处理月报数据。如下图所示:

    7.png

    2)后续需要为该定时任务设置执行频率,由于生产模式下才支持配置调度计划,所以该定时任务需要发布到「生产模式」中。

    2.4 FDL 中调用运行定时调度任务接口

    1)FDL 中创建一个定时任务,拖入数据转换节点,进入数据转换节点,拖入API输入算子。

    2)API输入算子中,设置界面如下图所示:

    • API 接口:本文示例:http://localhost:8075/webroot/decision/sp/client/api/v3/schedule/executehttp://localhost:8075/webroot/decisionFineReport 工程地址,用户根据实际情况修改。

    • Headers 中,需要添加 client_id、secret 参数,分别为本文 2.2 节所创建应用的应用ID和密钥。

    • Body 中内容格式为:task 为本文 2.1 节定时调度任务的名称。

    [
        {
            "task": "定时调度的名称"
        }
    ]

    8.png

    3)点击「数据预览」,status 值为 200,代表接口调用成功。如下图所示:

    1721028629656491.png

    4)拖入参数输出算子,输出一个参数。本步骤无实际意义,只是为了数据转换节点不报错。

    10.png

    5)将定时任务发布到「生产模式」中,设置 事件调度 ,依赖任务为本文 2.3 节的任务,代表本文 2.3 节处理月报数据的定时任务执行成功后,再执行本节任务,拉起 FineReport 工程中的定时调度任务的执行。

    1721030858356653.png

    2.5 效果查看

    运行本文 2.3 节设置的定时任务,可看到 FineReport 工程中的定时调度任务也被拉起执行。如下图所示:

    12.png

    2.6 后续步骤

    可为本文 2.3 节中处理月报数据的定时任务 设置执行频率

    3. 示例二:接口认证模式为fine_auth_token

    3.1 定时调度任务准备

    参考本文 2.1 节内容,准备一个定时调度任务。

    3.2 FineReport 工程准备

    与本文 2.2 节不同的是:

    1)FineReport 需要再额外安开放平台-平台登录认证接口插件。插件安装方法请参见:服务器插件管理

    2)为新建应用开放定时调度管理V3的权限即可。如下图所示:

    14.png

    3.3 处理月报数据定时任务准备

    参考本文 2.3 节内容。

    3.4 FDL 中调用运行定时调度任务接口

    3.4.1 获取fine_auth_token

    1)FDL 中创建一个定时任务,拖入数据转换节点,进入数据转换节点,拖入「API输入」算子。

    2)「API输入」算子中,调用 前台单点登录接口 ,获取 fine_auth_token 。如下图所示:

    15.png

    各设置项说明如下:

    • 接口地址:http://localhost:8075/webroot/decision/login/cross/domain;其中,http://localhost:8075/webroot/decision为 FineReport 工程地址,用户根据实际情况修改。

    • Paramas 下添加参数:

    参数是否必须备注
    fine_usernameFineReport 工程的用户名
    fine_passwordFineReport 工程的密码
    validity

    值为-2:

    表示保持登录,保持登录就是 14 天的时间

    值为-1:

    非保持登录,时长跟随:管理系统>系统管理>登录>登录超时时间

    注:单点登录时保持登录,将参数 validity 的值改为 -2

    callback为空即可

    点击「数据预览」,如下图所示:

    16.png

    上图中的 accessToken 就是我们需要的 fine_auth_token。

    3)返回的请求数据,是非标准的 json 数据,无法解析出 accessToken ,需要用「Spark SQL」算子,把返回的值设置成标准的 json 格式。如下图所示:

    注:SQL 语句中的「API输入」为点击生成。

    select replace(replace(responseBody,"callback(",""),")","") as a from API输入

    17.png

    4)拖入「JSON 解析」算子,解析出 accessToken 。如下图所示:

    18.png

    点击数据预览」,可看到 accessToken 被解析出来。如下图所示:

    19.png

    5)拖入参数输出算子,将 accessToken 输出为参数。如下图所示:

    20.png

    3.4.2 调用运行定时调度任务接口

    1)再拖入一个「数据转换」节点,用连线与上一个数据转换节点连接起来。

    2)进入数据转换节点,拖入API输入算子,设置界面如下图所示:

    • API接口:本文示例:http://localhost:8075/webroot/decision/sp/client/api/v3/schedule/executehttp://localhost:8075/webroot/decision为 FineReport 工程地址,用户根据实际情况修改。

    • Authorization 中,认证类型选择 Bearer Token,值为 3.4.1 节中的参数,本文示例中此处填写:${token}

    • Headers 中,需要添加 client_id、secret 参数,分别为本文 3.2 节所创建应用的应用ID和密钥。

    • Body 中内容格式为:task 为本文 3.1 节定时调度任务的名称。

    [
        {
            "task": "定时调度的名称"
        }
    ]

    21.png

    3)点击「数据预览」,status 值为 200,代表接口调用成功。如下图所示:

    22.png

    4)拖入参数输出算子,输出一个参数。本步骤无实际意义,只是为了数据转换节点不报错。

    23.png

    5)将定时任务发布到「生产模式」中,设置 事件调度 ,依赖任务为本文 3.3 节的任务,代表本文 3.3 节处理月报数据的定时任务执行成功后,再执行本节任务,拉起 FineReport 工程中的定时调度任务的执行。

    24.png

    3.5 后续步骤

    1)效果查看请参见本文 2.5 节内容。

    2)可为本文 3.3 节中处理月报数据的定时任务 设置执行频率





    附件列表


    主题: 数据开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持