反饋已提交
網絡繁忙
定時任務執行後,根據執行結果判斷是否將該結果檔案匯出聯集傳到 ftp 地點,應該怎麼實現呢?
定義一個 Java 類檔案,在類檔案中進行結果判斷,符合條件的則上傳到 ftp 伺服器。
在定時任務【檔案處理】步驟中,勾選【自訂附件處理】,選擇自訂的類檔案。
編寫 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) { 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); }}
編譯類檔案,將生成的FTPUpload.class放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\output資料夾下。
注1: 類檔案放的位置只需與編寫類檔案裏的【package】位置對應即可。
注2:ftp 的資訊根據使用者實際的 ftp 伺服器填寫。
注:【排程物件】步驟中,該方法不支援在【調度結果】右側勾選【除通用結果外,根據預設使用者組內的使用者單獨生成結果】。
1)排程管理任務步驟請參考 自訂上傳檔案至磁碟 中的第二章第2節。
2)點選下一步,勾選自訂附件處理,選擇本文第二章第1章節中的FTPUpload.class檔案,點選儲存。如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙