反馈已提交

网络繁忙

FR模板调用定时任务接口示例

  • 文档创建者:Wendy123456
  • 历史版本:9
  • 最近更新:Wendy123456 于 2024-04-09
  • 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 认证模式(为产品内置的登录认证)。

    3.1 插件准备

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

    3.2 记录被调用任务 ID

    参见本文 2.4 节内容。

    3.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}`);
    });

    3.4 效果查看

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

    10.png

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

    14.png

    4. 示例三:FR模板调用定时任务并传参

    注:本章示例中,FDL 是独立部署;使用的接口是:基于任务ID运行任务

    实现效果:FR 模板下拉框中选择地区、省份后,将选择的值传给定时任务,并运行定时任务。

    4.1 准备工作

    参见本文 2.1、2.2、2.3、2.5 节内容。

    4.2 定时任务和 FR 模板准备

    1)FDL 定时任务中,使用了两个参数 area 和 province。如下图所示:

    8.png

    为方便调试,可为参数设置默认值。如下图所示:

    9.png

    2)FR 模板中,有两个下拉框控件,名称分别为 area、province 。如下图所示:

    10.png

    4.3 FR 模板调用接口

    1)参考本文 2.4 节,记录下任务ID。

    2)FR 模板中,参数面板中添加「点击按钮」,为「点击按钮」添加「点击事件」。如下图所示:

    11.png

    JS 代码:

    注:getWidgetByName、alert 括号中为 FR 模板中设置的参数名;params 中格式为「定时任务中参数名:FR模板要传递的参数名」;workId 为定时任务 ID,可参考本文 2.4 节获取。

    var area=_g().getParameterContainer().getWidgetByName("area").getValue();
    alert(area);
    var province=_g().getParameterContainer().getWidgetByName("province").getValue();
    alert(province);
    FR.ExecuteWorkByWorkId(
        {   
            workId: "cc73e0f9-1244-48f6-a4d5-0f06e27e641e",
            params: {
                area:area,
                province:province,
            },
            waitForResponse: "true",
            waitTime: 10000,
        },
        function (error, response) {
            if (error) {
                console.error("请求失败:" + error);
            } else {
                console.log("请求成功,响应数据:" + JSON.stringify(response));
            }
        }
    );

    4.4 效果查看

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

    18.gif

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

    1700725932186265.png





    附件列表


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

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

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

    不再提示

    10s后关闭

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