> 文章列表 > 拓展系统命令

拓展系统命令

拓展系统命令

文章目录

  • 拓展系统命令
    • 使用方式
    • 拓展系统命令
      • 快速运行方法命令 - `ZFASTRUN`
      • 安全运行方法命令 - `ZFASTSAFERUN`
      • 快速运行`Query`方法命令 -` ZFASTQUERY`
      • 安全运行`Query`方法 命令 - `ZSAFEQUARY`
      • 防止调试时误将数据提交命令 - `ZTRN`
      • 在`Terminal`执行`SQL`语句命令 - `ZSQL`
      • 安全`Global`命令 - `ZSAFEKILL`
      • 安全锁命令 - `ZSAFELOCK`
      • 安全JOB命令 -` ZSAFEJOB`
      • 快捷监视变量 - `ZTRACEVAR`

拓展系统命令

  • 本篇介绍自定义的拓展系统命令。

使用方式

  • 直接将CustomFunction.xml导入到Studio里即可。
    • 下载文件连接:
      • CSDN链接
      • 阿里云盘

注:有想实现其他的自定义命令功能或提供一些想法与需求,请与我联系或底部留言。

拓展系统命令

快速运行方法命令 - ZFASTRUN

快速运行方法ZFASTRUN命令相比传统的w ##class(classname).methodname("params")去除一些固定的关键字。

ZFASTRUN "classname_methodname(params)"
ZFR "classname_methodname(params)"
  • classname - 类名。
  • methodname - 方法名。
  • params - 逗号分割的参数列表,参数省略引号。

示例

  • 示例被调用方法:
Class M.Custom Extends %RegisteredObject
{
ClassMethod Sum(a, b, c)
{q a + b + c
}
}
  • 全拼命令调用:
USER>zfastrun "M.Custom_Sum(1,2,3)"
6
  • 缩写命令调用:
USER>zfr "M.Custom_Sum(1,2,3)"
6
USER>zfr "M.Custom_Sum(1,2,3,4)"zSum(a,b,c) public {^
<PARAMETER>zSum^M.Custom.1
USER 4e2>

注:当方法没有参数时可省略括号直接调用如下方式:

ZFR "classname_methodname"
  • 无参数调用:
ClassMethod NoParameter()
{q "这是一个无参方法"
}
USER>zfr "M.Custom_NoParameter"
这是一个无参方法

安全运行方法命令 - ZFASTSAFERUN

安全运行方法ZFASTSAFERUN命令,可以拦截任何系统错误,并且将错误信息进行输出。

ZFASTSAFERUN "classname_methodname(params)"
ZFS "classname_methodname(params)"
  • classname - 类名。
  • methodname - 方法名。
  • params - 逗号分割的参数列表,参数省略引号。

示例

  • 正常运行方法:
USER>zfastsaferun "M.Custom_Sum(1,2,3)"
6
  • 输入错误参数运行方法,将错误提示输出:
USER>zfs "M.Custom_Sum(1,2,3,4)"
<PARAMETER>zSum^M.Custom.1
USER>

快速运行Query方法命令 - ZFASTQUERY

快速运行Query方法ZFASTQUERY命令与快速运行方法ZFASTRUN类似,去除传统调用QUERY关键字

ZFASTQUERY "classname_queryname(params)"
ZFQ "classname_queryname(params)"
  • classname - 类名。
  • queryname - 查询名。
  • params - 逗号分割的参数列表,参数省略引号。

示例

  • 全拼命令有参数调用:
USER>zfastquery "%SYSTEM.License_Key(1)"Field:Value:
LicenseCapacity:Cache 2014.1 Enterprise - Concurrent Users:300, Multi-Server, Platform Independent:
CustomerName:Beijing Tongren Hospital:
OrderNumber:201502125:
ExpirationDate:9/23/2044:
AuthorizationKey:412470003000003000000000000B4D8C6D71980041:
MachineID::<PARAMETER>zCountsExecute^%SYSTEM.License.1
  • 缩写命令无参调用;
USER>zfq "%SYSTEM.License_Counts"InstanceLicenseUse:License Units:
授权的总数量 LU:300:
当前可用 LU:298:
最小可用 LU:298:
当前用户处于活动状态:2:
处于活动状态的最大用户数:2:
当前 CSP 用户处于活动状态:1:
处于活动状态的最大 CSP 用户数:1:
当前 CSP 会话处于宽限期:0:
处于宽限期的最大 CSP 会话数:0:

安全运行Query方法 命令 - ZSAFEQUARY

安全运行Query方法ZSQ命令,可以拦截任何系统错误,并且将错误信息进行输出。

ZSAFEQUARY "classname_queryname(params)"
ZSQ "classname_queryname(params)"
  • classname - 类名。
  • queryname - 查询名。
  • params - 逗号分割的参数列表,参数省略引号。

示例

  • 全拼命令调用:
USER>zsq "%SYSTEM.License_Counts(1)"
<PARAMETER>zCountsExecute^%SYSTEM.License.1
  • 缩写命令调用:
USER>ZSAFEQUARY "%SYSTEM.License_Counts(1)"
<PARAMETER>zCountsExecute^%SYSTEM.License.1

防止调试时误将数据提交命令 - ZTRN

在调试程序时,可能会遇到不能将数据提交与生产库时。可直接ZTRN命令,可以在调试方法结束后,进行是否回滚操作。

ZTRAN "classname_classname(params)"

示例

  • 在输入方法结束后输入y将数据进行回顾,输入n提交数据。
ClassMethod SaveData()
{s obj = ##class(User.Person).%New()s obj.name = "姚鑫"s obj.age = "18"s sc = obj.%Save()q sc
}
USER>Ztran "M.Custom_SaveData"
1
是否将数据回滚,输入y回滚,n不回滚:y
USER>Ztran "M.Custom_SaveData"
1
是否将数据回滚,输入y回滚,n不回滚:n

在这里插入图片描述


Terminal执行SQL语句命令 - ZSQL

ZSQL命令可以在Terminal中输入带引号的SQL语句进行执行命令。

ZSQL "SQL statement"
  • SQL statement - DML SQL语句

示例

  • Terminal直接输入sql查询语句,显示数据。
USER>zsql "SELECT * FROM M_T.Person"
id      MT_Age  MT_Money        MT_Name MT_No
1       26      25708   Vanzetti,Fred G.        279753
2       20      26776   White,Barbara G.        986492
3       27      22598   Young,Ralph P.  156477
4       27      3721    Moon,Terry O.   366644
5       26      14233   Newton,Julie Q. 251303
6       23      26461   Perez,Diane P.  423210
7       19      13603   Schaefer,Diane Q.       800001
8       18      28008   Winters,Julie D.        738133
9       25      18447   Xenia,Fred H.   558275
...
1054    23      25785   Iacobelli,Michelle Y.   840578
1055    24      12446   Diavolo,Barbara B.

安全Global命令 - ZSAFEKILL

安全删除命令ZSAFEKILL防止错误操作把数据进行错误删除。

ZSAFEKILL "Global Name"
ZSK "Global Name"
  • Global Name - Global名称

示例

  • 在执行ZSK命令后,会提示是否将数据回滚输入y回滚,输入n提交数据。
USER>s ^yx("name")="yx"USER>zw ^yx
^yx("name")="yx"USER>zsk "^yx"是否将数据回滚,输入y回滚,n不回滚:y
USER>zw ^yx
^yx("name")="yx"USER>zsk "^yx"是否将数据回滚,输入y回滚,n不回滚:n
USER>zw ^yxUSER>

安全锁命令 - ZSAFELOCK

安全锁命令ZSAFELOCK防止加锁时没有设置超时,将程序一直阻塞。

ZSAFELOCK "Lock Name"
ZSL "Lock Name"
  • Lock Name - 锁名称

示例

  • 在执行安全锁命令ZSL后,会自动加上超时时间,默认为3秒。
USER>zsl "^yx"

在这里插入图片描述

安全JOB命令 - ZSAFEJOB

因为JOB命令每次调用会开启新的进程,调用ZSAFEJOB命令会判断当前可开启进程数,也会判断JOB进程是否正确开启。

ZSAFEJOB "classname_methodname(params)"
ZSJ "classname_methodname(params)"
  • classname - 类名。
  • queryname - 查询名。
  • params - 逗号分割的参数列表,参数省略引号。

快捷监视变量 - ZTRACEVAR

调试方法输入要监视的变量,可将变量的值在终端进行输出。

ZTRACEVAR "classname_methodname(params)_var"
ZTV "classname_methodname(params)_var"
  • classname - 类名。
  • queryname - 查询名。
  • params - 逗号分割的参数列表,参数省略引号。
  • var - 监视变量逗号分割的列表。监视多个变量请用逗号分隔。