自定程序
# 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. 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.2. StrToStream
StrToStream(AString:String; AStream:TMemoryStream);
1
说明: 字符串转流
- StrToStream 程序语法中各部分说明
部分 | 说明 |
---|---|
AString | 指定字符串 |
AStream | 指定转换为的流 |
# 2.3. WriteLog
procedure WriteLog(AFilename:string; ALogText:string);
1
说明: 向指定目录的日志文件中写入日志信息。
- WriteLog 程序语法中各部分说明
部分 | 说明 |
---|---|
AFileName | 日志文件的名称 |
ALogText | 日志文件写入的字符串内容 |
- 示例
UGCM.WriteLog("LOG\\Syslog.log",DateTimeToStr(now) + ": Success");
1
# 2.4. WriteErrorLog
procedure WriteErrorLog(AText: string);
1
说明: 写入错误日志信息。
部分 | 说明 |
---|---|
AText | 日志写入的字符串内容 |
- 示例
UGCM.WriteErrorLog(DateTimeToStr(now) + ": Error");
1
# 2.5. WriteSysLog
procedure WriteSysLog (AText: string);
1
说明: 写入系统日志信息。
部分 | 说明 |
---|---|
AText | 日志写入的字符串内容 |
- 示例
UGCM.WriteSysLog(DateTimeToStr(now) + ": SysLog");
1
# 2.6. WriteWSLog
procedure WriteWSLog(AText: string);
1
说明: 写入WebSocket日志信息。
部分 | 说明 |
---|---|
AText | 日志写入的字符串内容 |
- 示例
UGCM.WriteWSLog(DateTimeToStr(now) + ": WSLog");
1
# 2.7. TTS
procedure TTS(QSpeak: string);
1
说明: 播报TTS语音
部分 | 说明 |
---|---|
QSpeak | 播报的语音的内容 |
- 示例
UGCM.TTS("Hello,TaskRunner!");
1