我可以 return 标记和例程名称吗?

Can I return the tag and routine name?

我正在研究一个代码 "maintenance" 想法,我想在例程被访问时填充全局变量以及由谁访问。我可以使用 $t(+0) 或 $ZNAME 提取当前例程名称,但是当前标记 and/or 行偏移量呢?有什么方法可以让我在要跟踪的例程中加入标准行吗?

抢! 也许你只是打开审计?它在 InterSystems Caché 数据库中收集不同用户活动的日志。见 documentation on Caché Audit.

此外,see this solution 这将帮助您检查 DeepSee 中有关审计条目的分析。

Rob,你可以从 $STACK 获取这些信息。

如果您调用自己的跟踪函数,您将获得如下调用堆栈信息:

W $STACK($STACK(-1)-1,"PLACE")

zExecute+2^%Studio.General.1 +1

查看 $STACK 的 Caché ObjectScript 参考以获取详细说明和示例。

您可以通过以下 ClassMethod 找到调用您的标签的例程。

write ##class(%SYSTEM.Process).CallingRoutine()

以及调用您的标签的数据库。

write ##class(%SYSTEM.Process).CallingDatabase()