自定程式
# 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
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
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
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
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
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 控制元件的名稱 |
# 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
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
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