反饋已提交

網絡繁忙

當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

自訂上傳檔案至FTP伺服器

一、概述

1
版本。
報表伺服器版本
10.0

2
問題描述。
  1. 定時任務執行後,根據執行結果判斷是否將該結果檔案匯出聯集傳到 ftp 地點,應該怎麼實現呢?

3
解決思路。
  1. 定義一個 Java 類檔案,在類檔案中進行結果判斷,符合條件的則上傳到 ftp 伺服器。

  2. 在定時任務【檔案處理】步驟中,勾選【自訂附件處理】,選擇自訂的類檔案。

二、操作步驟

1
編寫類檔案。
  1. 編寫 Java 類,繼承 【OutputActionHandler<OutputClass>】API,如下所示。

    package com.fr.output;
    import com.fr.schedule.base.bean.output.OutputClass;
    import com.fr.schedule.base.bean.output.OutputFtp;
    import com.fr.schedule.base.constant.ScheduleConstants;
    import com.fr.schedule.feature.output.FTPHandler;
    import com.fr.schedule.feature.output.OutputActionHandler;
    import com.fr.stable.Filter;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    public class FTPUpload extends OutputActionHandler<OutputClass> {
        private FTPHandler handler = new FTPHandler();
        @Override
        public void doAction(OutputClass action, Map<String, Object> map) throws Exception {
            OutputFtp ftp = new OutputFtp();
            ftp.setServerAddress("192.168.1.45");
            ftp.setPort(String.valueOf(21));
            ftp.setSavePath("test");
            ftp.setUsername("admin");
            ftp.setPassword("123456");
            action(ftp, map, new Filter<String>() {
                @Override
                public boolean accept(String s) {
                    // TODO: 2018/8/23  過濾
                    return true;
                }
            });
        }
        private void action(OutputFtp ftp, Map<String, Object> map, Filter<String> filter) throws Exception {
            String[] files = (String[]) map.get(ScheduleConstants.OUTPUT_FILES);
            List<String> fileList = new ArrayList<String>();
            for (String file : files) {
                if (filter.accept(file)) {
                    fileList.add(file);
                }
            }
            map.put(ScheduleConstants.OUTPUT_FILES, fileList.toArray(new String[0]));
            handler.doAction(ftp, map);
        }
    }
  2. 編譯類檔案,將生成的【FTPUpload.class】放在【%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\output】資料夾下。


注1: 類檔案放的位置只需與編寫類檔案裏的【package】位置對應即可。

注2:ftp 的資訊根據使用者實際的 ftp 伺服器填寫。

2
定時任務。

注:【調度物件】步驟中,該方法不支援在【調度結果】右側勾選【除通用結果外,根據預設使用者組內的使用者單獨生成結果】。

  1. 排程管理任務步驟請參考 自訂上傳檔案至磁碟 中的第二章第2節。

  2. 點選下一步,勾選【自訂附件處理】,選擇本文第二章第1章節中的【FTPUpload.class】檔案,點選【儲存】。如下圖所示。

3
效果查看。



附件列表


主題: 11.0 新增文档
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤

文 檔回 饋

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

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

不再提示

10s後關閉