愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • TaskRunner幫助主頁
  • 學習手冊

  • 開發手冊

    • 自定程式

      • 呼叫Chrome打開指定網頁
      • 呼叫Smart打開指定專案
      • 呼叫FastDesk邀請遠端控制
      • 呼叫FastDesk主動遠端控制
      • 開啟TARS
      • 關閉TARS
      • 重啟計算機
      • 關閉計算機
      • 讀取資料庫轉JSON輸出
      • 資料庫備份
        • 1. 說明
        • 2. 設計程式
        • 3. 呼叫執行
          • 3.1. RestAPI
          • 3.2. WebSocket
          • 3.3. MQTT
      • RS232電子秤讀數
      • RS232通訊埠印表機
      • ModbusTCP控制LED燈
      • 呼叫FastWeb RestAPI
      • 資料庫寫入
      • Neo4j數據匯入與更新
      • 設備燈號管理
      • 資產管理
      • 自動安排計劃
      • 自動產生報價與成本分析
    • 運行衛士

    • 自動化作業

    • 工作流

    • 預設資料

目录

資料庫備份

# TaskRunner 自定程式 - 資料庫備份

# 1. 說明

  1. 任務運行器 TaskRunner 通過自定程式,呼叫數據查詢執行備份操作。
  2. 示例使用了壓縮工具7-zip對資料庫備份檔案執行壓縮操作。請在使用示例前下載並安裝 7-zip (opens new window)。
  3. 資料庫備份的執行時長受到資料庫大小影響,如使用 RestAPI 呼叫,在備份執行期間可能會出現客戶端未響應的情況,請耐心等待。

# 2. 設計程式

  TaskRunner 的初始示例已包含 資料庫備份 自定程式。下面介紹建立自定程式的流程。

  1. 點選 自定程式 選項卡,在自定程式界面中點選 新建 按鈕,打開新建程式界面。
  2. 在新建程式界面,填寫要設計的自定程式的基本資訊。如下圖所示。填寫完成點選 儲存 按鈕。
  1. 返回自定程式列表界面,選擇剛才建立的 JS010 自定程式,點選功能表欄中的 設計 按鈕,打開程式設計器界面。
  2. 在程式設計器界面中輸入自定程式程式碼,程式碼示例如下。完成後,點選 儲存 按鈕。
//資料庫備份主程式
//可運用參數:
//database 備份的資料庫名稱 
//dir 備份的目錄名稱
//compressed 是否啟用壓縮,設定為0 表示不啟用,設定其餘值表示啟用
//day 設定備份保留的天數
//使用壓縮設定的預設程式為7-zip ,可至https://7-zip.org 下載安裝包進行安裝,壓縮後文件後綴名為 zip
{
  var dir,database,compressed,day,D,DB,vSQL;
  database = iif(UgParams.Values["database"] == "","demo",UgParams.Values["database"]);
  if(UgParams.Values["dir"] == "")
    dir = "D:\\"
  else
    dir = UgParams.Values["dir"]; 
  compressed = iif(UgParams.Values["compressed"] == "0","0","1");
  day = iif(UgParams.Values["day"] == "","15",UgParams.Values["day"]);
  vSQL = "EXEC master.dbo.sp_configure 'show advanced options', 1;" + #13#10 +
  "RECONFIGURE WITH OVERRIDE;" + #13#10 +
  "EXEC master.dbo.sp_configure 'xp_cmdshell', 1;" + #13#10 +
  "RECONFIGURE WITH OVERRIDE;" + #13#10 +
  "declare @prefix         nvarchar(100)," + #13#10 +
  "        @datefile       nvarchar(100)," + #13#10 +
  "        @bakfile        nvarchar(100)," + #13#10 +
  "        @zipfile        nvarchar(100)," + #13#10 +
  "        @zipcmd         nvarchar(150)," + #13#10 +
  "        @str_date       nvarchar(100)," + #13#10 +
  "        @sql            nvarchar(100)" + #13#10 +
  "declare @A nvarchar(100),@B nvarchar(100),@C int,@D int" + #13#10 +
  "select" + #13#10 +
  "	@A= '" + dir + "',  --資料庫名稱" + #13#10 +
  "	@B= '" + database + "',      --備份目錄" +  #13#10 +
  "	@C= " + compressed + ",          --是否壓縮" +    #13#10 +
  "	@D= " + day + "          --備份保留天數" + #13#10 +
  "--設定備份的目錄" + #13#10 +     
  "set @prefix=@A" + #13#10 +
  "set @str_date = replace(replace(replace(convert(varchar(20),getdate(), 120),' ',''),'-',''),':','')" + #13#10 +
  "set @datefile = @B +@str_date" + #13#10 +
  "set @bakfile = @prefix+@datefile+'.bak'" + #13#10 +
  "set @zipfile = @prefix+@datefile+'.zip'" + #13#10 +
  "--備份" + #13#10 +
  "BACKUP Database @B TO DISK = @bakfile WITH NOFORMAT, NOINIT,  NAME = N'Full_Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" + #13#10 +
  "if @C = 1" + #13#10 +
  "begin" + #13#10 +
  "--壓縮zip,需使用7-zip,也可使用其它壓縮軟體壓縮為zip格式" + #13#10 +
  "set @zipcmd ='\"C:\\Program Files\\7-zip\\7z.exe\" ' +'a ' +@zipfile+' '+@bakfile" + #13#10 +
  "exec master..xp_cmdshell @zipcmd,NO_OUTPUT;" + #13#10 +

  "--刪除D天之前的備份" + #13#10 +
  "set  @sql='del  '+@A+@B+rtrim(replace(replace(replace(convert(varchar(20),getdate()-@D, 120),' ',''),'-',''),':',''))+'.zip'" + #13#10 +
  "exec master..xp_cmdshell @sql,NO_OUTPUT;" + #13#10 +
  "end" + #13#10 +
  "else" + #13#10 +
  "begin" + #13#10 +
  "--刪除D天之前的備份" + #13#10 +
  "set  @sql='del  '+@A+@B+rtrim(replace(replace(replace(convert(varchar(20),getdate()-@D, 120),' ',''),'-',''),':',''))+'.zip'" + #13#10 +
  "exec master..xp_cmdshell @sql,NO_OUTPUT;" + #13#10 +
  "end" + #13#10 +
  "select 'ok' as msg";
  D = new TFDQuery(nil);
  //使用資料庫設定的連線
  DB = UGMM.GetDBConnection("master");
  D.Connection = DB;
  //使用預設SQL
  D.SQL.Text = vSQL;
  D.Open;
  D.Free;
  DB.Free;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  1. 如需要測試效果,可在程式設計器界面中點選 運行 按鈕進行測試。可在 D 盤中找到備份的檔案。

  程式中定義的參數說明如下:

名稱 說明 是否必填 預設值
database 備份的資料庫的名稱 是 demo
dir 備份檔案存放的目錄 是 D:\
compressed 是否啟用壓縮,若取值為 0 表示為不啟用壓縮,其它取值會表示為 1 否 1
day 備份儲存的天數 否 15

# 3. 呼叫執行

  設計完成的自定程式可使用以下方式來呼叫執行。

# 3.1. RestAPI

  使用瀏覽器或RestAPI 客戶端,訪問以下地址,執行自定程式呼叫。請將 {ip} 修改爲運行 TaskRunner 主機的IP地址,{port} 修改爲 TaskRunner WebSocket 服務端監聽的地址。

http://{ip}:{port}?restapi=script&taskname=JS011
1

  如需要自定義參數,參照以下方式執行。其中將 {database} 替換為備份的資料庫名稱, {dir} 替換為備份檔案的目錄, compressed 與 day 為非必填項,URL 中可不使用這兩項。

http://{ip}:{port}?restapi=script&taskname=JS011&database={database}&dir={dir}&compressed={compressed}&day={day}
1

# 3.2. WebSocket

  使用WebSocket客戶端,連線至 TaskRunner 中的 WebSocket 服務端。向 WebSocket 服務端發送以下文字實現自定程式的呼叫。

{"action":"script","taskname":"JS011"}
1

  如需要自定義參數,參照以下方式執行。其中將 {database} 替換為備份的資料庫名稱, {dir} 替換為備份檔案的目錄, compressed 與 day 為非必填項,參數列中可不引入。

{"action":"script","taskname":"JS011","params":[{"name":"database","value":"{database}"},{"name":"dir","value":"{dir}"},{"name":"compressed","value":"1"},{"name":"day","value":"15"}]}
1

注意

   JSON 字串中,{dir}中的目錄分隔符號 \ 需要增加轉義符號 \ 后使用,比如目錄 D:\backup\database 應寫成 D:\\backup\\database。

# 3.3. MQTT

  使用 MQTT 客戶端,連線至 TaskRunner 連線的 MQTT 伺服器。MQTT 客戶端向 TaskRunner 訂閱的主題發送以下文字實現自定程式的呼叫。

{"action":"script","taskname":"JS011"}
1

  如需要自定義參數,參照以下方式執行。其中將 {database} 替換為備份的資料庫名稱, {dir} 替換為備份檔案的目錄, compressed 與 day 為非必填項,參數列中可不引入。

{"action":"script","taskname":"JS011","params":[{"name":"database","value":"{database}"},{"name":"dir","value":"{dir}"},{"name":"compressed","value":"1"},{"name":"day","value":"15"}]}
1

注意

   JSON 字串中,{dir}中的目錄分隔符號 \ 需要增加轉義符號 \ 后使用,比如目錄 D:\backup\database 應寫成 D:\\backup\\database。

讀取資料庫轉JSON輸出
RS232電子秤讀數

← 讀取資料庫轉JSON輸出 RS232電子秤讀數→

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式