爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式