愛招飛幫助手冊 愛招飛幫助手冊
  • 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幫助主頁
  • 學習手冊

    • 安裝配置
    • 快速上手
    • 界面介紹
    • 功能介紹
    • 預設資料
    • RestAPI說明
    • WebSocket說明
    • MQTT說明
    • Python說明
    • 自定程式
    • 公共單元
    • 工作流
    • 運行衛士
    • 自定報表
    • 自動化作業
    • 控制元件使用
    • 函式程式

      • 系統函式
      • 系統程式
      • 自定函式
      • 自定程式
        • 1. UGMM類
          • 1.1. AddLog
          • 1.2. WSClient_WriteStream
          • 1.3. WSClient_WriteString
          • 1.4. WSClient_WriteIsoBean
          • 1.5. MQTTClient_Publish
          • 1.6. WSServer_BroadcastString
          • 1.7. WSServer_BroadcastStream
          • 1.8. VerifySqlSensitiveWords
          • 1.9. OpenCds
          • 1.10. ExecSQL
          • 1.11. ApplyUpdatesCds
          • 1.12. ApplyUpdatesCds1
          • 1.13. ApplyUpdatesCds2
          • 1.14. ApplyUpdatesCds3
          • 1.15. ExecuteCds
          • 1.16. PyEngineAndGIL_ExecStrings
          • 1.17. PyEngineAndGIL_ExecString
          • 1.18. PyEngineAndGIL_ExecFile
          • 1.19. AddPythonScriptTask
        • 2. UGCM 類
          • 2.1. Base64Put
          • 2.2. DownloadFile
          • 2.3. HexToJPG
          • 2.4. RunPowerShellCommand
          • 2.5. RunPowerShellFile
          • 2.6. RunWorkFlow
          • 2.7. StrToStream
          • 2.8. WriteLog
          • 2.9. WriteErrorLog
          • 2.10. WriteSysLog
          • 2.11. WriteWSLog
          • 2.12. TTS
          • 2.13. RunScriptToThread
  • 開發手冊

目录

自定程式

# TaskRunner 自定程式

  以下是TaskRunner中使用到的相關自定程式。自定程式可用於 RestAPI 與 JScript 型別的自定程式中。

# 1. UGMM類

  UGMM類程式在程式中呼叫時,必須以UGMM.開頭。

# 1.1. AddLog

procedure AddLog(AText:string);
1

  將自定日誌資訊新增至動態滾動日誌列表中。

  • 參數
參數名稱 說明
AText 要新增日誌的內容
  • 示例
UGMM.AddLog("This Log was Generated by JScript Program");
1

# 1.2. WSClient_WriteStream

procedure WSClient_WriteStream(const AStream:TStream);
1

  由客戶端向服務端發送流資訊。流資訊的來源可以是檔案、圖片、音訊、文字等內容。

  • 參數
參數名稱 說明
AStream 要輸出的流資訊
  • 示例
  var Data;
  Data = new TStream;
  Data = TStream(PostStream);
  UGMM.WSClient_WriteStream(Data);
1
2
3
4

# 1.3. WSClient_WriteString

procedure WSClient_WriteString(const AText: string);
1

  由客戶端向服務端發送字串資訊。

  • 參數
參數名稱 說明
AText 要發送的字串資訊
  • 示例
  UGMM.WSClient_WriteString("{\"action\":\"msg\",\"sid\":\"test\",\"text\":\"hello\"}")
1

# 1.4. WSClient_WriteIsoBean

procedure WSClient_WriteIsoBean(const acusername, acname, accom, atag, acevent: string; acparams:TStringlist=nil);
1

  向指定的使用者登錄的Bean視窗發送WebSocket資訊。

部分 說明
acusername 登錄的使用者名稱稱
acname 動作名稱,指定為 callback
accom 呼叫的Bean模組的編號
atag 繫結的控制元件的Tag編號
acevent 呼叫的事件名稱
acparams 參數資訊,以鍵值對的方式進行
  var l;
  l = new TStringList();
  l.Values["text"] = "Hello WebSocket Test";
  UGMM.WSClient_WriteIsoBean("demo","callback","bean-001","updatememo","0",l)) 
  l.Free;
1
2
3
4
5

# 1.5. MQTTClient_Publish

procedure MQTTClient_Publish(const ATopic: String; const APayload: String; AQos: TMQTTQOSType = qtAtMostOnce);
1

  向指定主題發佈MQTT訂閱訊息。

  • 參數
部分 說明
ATopic MQTT主題
APayload MQTT訂閱資訊內容
AQos 訊息的優先順序設定
  • 示例
{
  var d;
  d = new TFastDataSet(nil);
  TFastDataSet(d).ConnectionDefName = "FastERP";
  TFastDataSet(d).CommandText = "Select top 10 * from Basic_Cust";
  TFastDataSet(d).Open;
  
  //數據集轉JSON
  s = TFastDataSet(d).ToJSONArrayString;
  UGMM.MQTTClient_Publish("fasterp",s,qtAtMostOnce);
}
1
2
3
4
5
6
7
8
9
10
11

# 1.6. WSServer_BroadcastString

procedure WSServer_BroadcastString(const aMessage: string);
1

  向 WebSocket 伺服器發送字串型別的廣播訊息。

  • 參數
部分 說明
aMessage 待發布的訊息
  • 示例
  UGMM.WSServer_BroadcastString("Hello_World");
1

# 1.7. WSServer_BroadcastStream

procedure WSServer_BroadcastStream(aStream: TStream);
1

  向 WebSocket 伺服器發送流型別的廣播訊息。

  • 參數
部分 說明
aStream 待發布的流資訊

# 1.8. VerifySqlSensitiveWords

Procedure VerifySqlSensitiveWords(AList:TStrings);
1

  檢查SQL文字中是否包含 UPDATE、DELETE、INSERT 等敏感詞彙。

# 1.9. OpenCds

Procedure OpenCds(ANodeName:String;
                    ACds:TClientDataSet;
                    Const SelectMaxRecordCount:Integer = 0;
                    Const RecordCountMode : TFDRecordCountMode = cmTotal;
                    Const PageRowCount :integer = -1;
                    Const PageIndex:Integer = -1);
1
2
3
4
5
6

說明 打開數據集,適用於 TFastDataSet。

  • OpenCds 程式語法中各部分說明
部分 說明
ANodeName 資料庫連線設定的名稱
ACds TFastDataSet的名稱
SelectMaxRecordCount 限制顯示的最大記錄數量,0表示為不限制
RecordCountMode 統計模式,cmTotal 表示為合計模式
PageRowCount 設定分頁顯示指向的行數
PageIndex 設定顯示頁數
  • 示例
  var D,V,O;
  D = new TFastDataSet(nil);
  TFastDataSet(D).CommandText = "SELECT * FROM Basic_WHS";
  UGMM.OpenCds("FastERP",TFastDataSet(D),0,cmTotal,-1,-1);
  //數據集轉換
  V = TFastDataSet(D).ToJSONArray;
  O = new TJSONObject();
  O.AddPair("status","ok");
  O.AddPair("message","success");
  O.AddPair("records",TJSONNumber.Create(D.RecordCount));
  O.AddPair("data",V);
  ShowMessage(O.ToString);
1
2
3
4
5
6
7
8
9
10
11
12

# 1.10. ExecSQL

Procedure ExecSql(ANodeName,ASqlText:String;Const ALines:TStringList = Nil);
1

  執行SQL語句。

  • ExecSQL 程式語法中各部分說明
部分 說明
ANodeName 資料庫連線設定的名稱
ASqlText 執行的SQL語句
ALines 指定行
  UGMM.ExecSql("FastERP","SELECT * FROM Basic_WHS",nil);
1

# 1.11. ApplyUpdatesCds

Procedure ApplyUpdatesCds(AConnection:TFDConnection;ATableName:string;ADelta:OleVariant);
1

說明 提交更新。

  • ApplyUpdatesCds 程式語法中各部分說明。
部分 說明
AConnection 資料庫連線設定控制元件
ATableName 更新的表名稱
ADelta 更新的內容

# 1.12. ApplyUpdatesCds1

Procedure ApplyUpdatesCds1(ANodeName:String;ACds:TClientDataSet);
1

說明 單個 TFastDataSet 控制元件提交更新。

  • ApplyUpdatesCds1 程式語法中各部分說明。
部分 說明
ANodeName 資料庫連線設定的名稱
ACds TFastDataSet 控制元件的名稱

# 1.13. ApplyUpdatesCds2

Procedure ApplyUpdatesCds2(ANodeName:String;ACds1,ACds2:TClientDataSet);
1

說明 兩個 TFastDataSet 控制元件提交更新。

  • ApplyUpdatesCds2 程式語法中各部分說明。
部分 說明
ANodeName 資料庫連線設定的名稱
ACds1,ACds2 TFastDataSet 控制元件的名稱

# 1.14. ApplyUpdatesCds3

Procedure ApplyUpdatesCds3(ANodeName:String;ACds1,ACds2,ACds3:TClientDataSet);
1

說明 三個 TFastDataSet 控制元件提交更新。

  • ApplyUpdatesCds3 程式語法中各部分說明
部分 說明
ANodeName 資料庫連線設定的名稱
ACds1,ACds2,ACds3 TFastDataSet 控制元件的名稱

# 1.15. ExecuteCds

Procedure ExecuteCds(ANodeName:String;ACds:TClientDataSet);
1

說明 執行 TFastDataSet 控制元件中包含的語句。

  • ExecuteCds 程式語法中各部分說明
部分 說明
ANodeName 資料庫連線設定的名稱
ACds TFastDataSet 控制元件的名稱

# 1.16. PyEngineAndGIL_ExecStrings

procedure PyEngineAndGIL_ExecStrings(strings: TStrings; const FileName: string =''<string>'';pascalvar:TPythonDelphiVar=nil);
1

說明: 使用解鎖GIL的Python運行指令碼。

  • PyEngineAndGIL_ExecStrings程式語法中各部分說明
部分 說明
strings 要運行的Python指令碼內容(多行)
FileName 檔名稱
pascalvar 使用的python變數元件
//當python語句中出現引用`test.Value`時,觸發此事件
function pvOnGetData(Sender,Data)
{
  Data = UgParams.Values["user"];
  UGMM.AddLog("User:"+Data);
}
//當python語句中出現給`test.Value`賦值的語句時,觸發此事件
function pvOnSetData(Sender,Data)
{
  UGMM.AddLog("Agent:"+Data);
}

{
  var pe, pv,ps;
  pv = new TPythonDelphiVar(nil);  
  ps = new TStrings;
  UGMM.AddLog("UserCreate");
  //設定運行的python模組名稱,主運行模組名稱通常為__main__
  pv.Module = "__main__";
  //需要注入至python模組中的變數名稱
  pv.VarName = "test";
  UGMM.AddLog("UserSetProperties");
  //繫結事件,用於設定python運行時輸入變數,以及計算完成後輸出變數
  pv.OnGetData = &pvOnGetData;
  pv.OnSetData = &pvOnSetData;
  UGMM.AddLog("UserSetEvent");
  //構造多行python指令碼
  ps.Add("test.Value = f'access{test.Value}'");
  ps.Add("print(test.Value)");
  //從主python引擎中獲取GIL,並運行指令碼
  UGMM.PyEngineAndGIL_ExecStrings(ps,"<string>",pv);
  UGMM.AddLog("UserRunPythonScript");      
  //使用執行緒模式運行的程式,運行完成後不需要釋放建立的資源,線上程運行結束後會自動釋放
}
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

# 1.17. PyEngineAndGIL_ExecString

procedure PyEngineAndGIL_ExecString(const command: AnsiString; const FileName:string = ''<string>'';pascalvar:TPythonDelphiVar=nil);
1

說明: 使用解鎖GIL的Python運行指令碼。

  • PyEngineAndGIL_ExecString程式語法中各部分說明
部分 說明
command 要運行的Python指令碼文字
FileName 檔名稱
pascalvar 使用的python變數元件
//當python語句中出現引用`test.Value`時,觸發此事件
function pvOnGetData(Sender,Data)
{
  Data = UgParams.Values["user"];
  UGMM.AddLog("User:"+Data);
}
//當python語句中出現給`test.Value`賦值的語句時,觸發此事件
function pvOnSetData(Sender,Data)
{
  UGMM.AddLog("Agent:"+Data);
}

{
  var pe, pv;
  pv = new TPythonDelphiVar(nil);  
  UGMM.AddLog("UserCreate");
  //設定運行的python模組名稱,主運行模組名稱通常為__main__
  pv.Module = "__main__";
  //需要注入至python模組中的變數名稱
  pv.VarName = "test";
  UGMM.AddLog("UserSetProperties");
  //繫結事件,用於設定python運行時輸入變數,以及計算完成後輸出變數
  pv.OnGetData = &pvOnGetData;
  pv.OnSetData = &pvOnSetData;
  UGMM.AddLog("UserSetEvent");
  //從主python引擎中獲取GIL,並運行指令碼
  UGMM.PyEngineAndGIL_ExecString("test.Value = '32'","<string>",pv);
  UGMM.AddLog("UserRunPythonScript");      
  //使用執行緒模式運行的程式,運行完成後不需要釋放建立的資源,線上程運行結束後會自動釋放
}
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

# 1.18. PyEngineAndGIL_ExecFile

procedure PyEngineAndGIL_ExecFile(const FileName: string; locals, globals: PPyObject; pascalvar:TPythonDelphiVar=nil);
1

說明: 使用解鎖GIL的Python運行指令碼。

  • PyEngineAndGIL_ExecFile程式語法中各部分說明
部分 說明
FileName 要運行pytho指令碼的檔名稱
pascalvar 使用的python變數元件
//當python語句中出現引用`test.Value`時,觸發此事件
function pvOnGetData(Sender,Data)
{
  Data = UgParams.Values["user"];
  UGMM.AddLog("User:"+Data);
}
//當python語句中出現給`test.Value`賦值的語句時,觸發此事件
function pvOnSetData(Sender,Data)
{
  UGMM.AddLog("Agent:"+Data);
}

{
  var pe, pv;
  pv = new TPythonDelphiVar(nil);  
  UGMM.AddLog("UserCreate");
  //設定運行的python模組名稱,主運行模組名稱通常為__main__
  pv.Module = "__main__";
  //需要注入至python模組中的變數名稱
  pv.VarName = "test";
  UGMM.AddLog("UserSetProperties");
  //繫結事件,用於設定python運行時輸入變數,以及計算完成後輸出變數
  pv.OnGetData = &pvOnGetData;
  pv.OnSetData = &pvOnSetData;
  UGMM.AddLog("UserSetEvent");
  //從主python引擎中獲取GIL,並運行指令碼
  UGMM.PyEngineAndGIL_ExecFile("test.py",nil,nil,pv);
  UGMM.AddLog("UserRunPythonScript");      
  //使用執行緒模式運行的程式,運行完成後不需要釋放建立的資源,線上程運行結束後會自動釋放
}
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

# 1.19. AddPythonScriptTask

procedure AddPythonScriptTask(APyID:string;AVarName:string='';AVarValue:string='');
1

說明: 將預設資料中定義的Python指令碼加入至Python運行佇列中。

  • AddPythonScriptTask程式語法中各部分說明
部分 說明
APyID 預設資料的編號
AVarName 繫結Python指令碼的輸入變數的名稱
AVarValue 繫結Python指令碼的輸入變數的取值
//假設預設資料編號為test
//Python中定義的輸入參數為input, 使用input.value 獲取輸入參數的取值為hello
UGMM.AddPythonScriptTask("test","input","hello")
1
2
3

# 2. UGCM 類

  UGCM類程式在程式中呼叫時,必須以UGCM.開頭。

# 2.1. Base64Put

procedure Base64Put(Base64Str,FileName:String);
1

說明: 將base64字串儲存為檔案。

  • Base64Put 程式語法中各部分說明
部分 說明
Base64Str 要轉換的base64文字
FileName 要儲存的檔名稱(要包含儲存檔案的路徑)

# 2.2. DownloadFile

procedure DownLoadFile(const Url, FilePath: string);
1

說明: 從url地址下載檔案。

  • DownloadFile 程式語法中各部分說明
部分 說明
Url 鏈接地址
FilePath 儲存檔案的路徑,以及檔案的名稱

# 2.3. HexToJPG

procedure HexToJPG(AHex: string; AFileName: string); 
1

說明: 16進位制轉JPG

  • HexToJPG 程式語法中各部分說明
部分 說明
AHex 指定16進位制字元阿串
AFileName 指定轉換為的檔名
  • 示例
//JScript
  //接收到的16進位制數據轉換為圖片
  UGCM.HexToJPG(apayload,"profile-image.jpg");
  Image.Picture.LoadFromFile("profile-image.jpg");
}
1
2
3
4
5

# 2.4. RunPowerShellCommand

procedure RunPowerShellCommand(const ACommand: string;AParams:string='';AShow:integer=0);
1

說明: 執行PowerShell命令。

  • RunPowerShellCommand 程式語法中各部分說明
部分 說明
ACommand 要執行的PowerShell命令
AParams PowerShell運行的額外參數資訊
AShow 是否顯示PowerShell運行的視窗,0為不顯示,1為顯示

# 2.5. RunPowerShellFile

procedure RunPowerShellFile(const AFile: string;AParams:string='';AShow:integer=0);
1

說明: 執行PowerShell批處理檔案。

  • RunPowerShellFile 程式語法中各部分說明
部分 說明
AFile 檔案的名稱(需包含路徑資訊)
AParams PowerShell運行的額外參數資訊
AShow 是否顯示PowerShell運行的視窗,0為不顯示,1為顯示

# 2.6. RunWorkFlow

procedure RunWorkFlow(AName:string; AParams: TStringList);
1

說明: 運行工作流。

  • RunWorkFlow 程式語法中各部分說明
部分 說明
AName 工作流的名稱
AParams 工作流的參數資訊,每行都以name=value的形式賦值
  • 示例
{
  var list= new TStringList();
  list.add("var1=233");
  UGCM.RunWorkFlow("test_wf",list); 
}
1
2
3
4
5

# 2.7. StrToStream

StrToStream(AString:String; AStream:TMemoryStream);
1

說明: 字串轉流

  • StrToStream 程式語法中各部分說明
部分 說明
AString 指定字串
AStream 指定轉換為的流

# 2.8. WriteLog

procedure WriteLog(AFilename:string; ALogText:string);
1

說明: 向指定目錄的日誌檔案中寫入日誌資訊。

  • WriteLog 程式語法中各部分說明
部分 說明
AFileName 日誌檔案的名稱
ALogText 日誌檔案寫入的字串內容
  • 示例
UGCM.WriteLog("LOG\\Syslog.log",DateTimeToStr(now) + ": Success");
1

# 2.9. WriteErrorLog

procedure WriteErrorLog(AText: string);
1

說明: 寫入錯誤日誌資訊。

部分 說明
AText 日誌寫入的字串內容
  • 示例
UGCM.WriteErrorLog(DateTimeToStr(now) + ": Error");
1

# 2.10. WriteSysLog

procedure WriteSysLog  (AText: string);
1

說明: 寫入系統日誌資訊。

部分 說明
AText 日誌寫入的字串內容
  • 示例
UGCM.WriteSysLog(DateTimeToStr(now) + ": SysLog");
1

# 2.11. WriteWSLog

procedure WriteWSLog(AText: string); 
1

說明: 寫入WebSocket日誌資訊。

部分 說明
AText 日誌寫入的字串內容
  • 示例
UGCM.WriteWSLog(DateTimeToStr(now) + ": WSLog");
1

# 2.12. TTS

procedure TTS(QSpeak: string);
1

說明: 播報TTS語音

部分 說明
QSpeak 播報的語音的內容
  • 示例
UGCM.TTS("Hello,TaskRunner!");
1

# 2.13. RunScriptToThread

procedure RunScriptToThread(ATaskName: string; AParams: TStringList=nil);
1

說明: 在子執行緒中運行TaskRunner中設定的自定程式,適用於運行花費較多時間的自定程式。

部分 說明
ATaskName 自定程式的名稱
AParams 自定程式需要輸入的參數資訊
  • 示例
{
  var sl;
  sl = new TStringList();
  //設定要傳入的參數
  sl.Values["user"] = UgParams.Values["user"];
  //使用執行緒模式運行python的自定程式
  UGCM.RunScriptToThread("python_js",sl);
  sl.Free;
}
1
2
3
4
5
6
7
8
9
自定函式
呼叫Chrome打開指定網頁

← 自定函式 呼叫Chrome打開指定網頁→

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