09月08, 2021

Caché自定义%session和%request变量,方便terminal调试用到此变量代码

前言

后台代码中,有些时候会去使用%session和%request中的数据,但是在terminal调试时会发现这两个变量并没有定义,所以想到一个方法是自己去定义此变量,故而创建了BSP.SYS.COM.MockSession模拟%CSP.SessionBSP.SYS.COM.MockRequest模拟%CSP.Request

BSP.SYS.COM.MockSession

定义%session变量,模拟其Data数据

模拟简单的HIS会话

d ##class(BSP.SYS.COM.MockSession).MockSimpleHISSession(userId, locId, groupId)
参数 说明
userId 用户ID
locId 科室ID
groupId 安全组ID
  1. terminal先调用方法,去定义并模拟出%session
     d ##class(BSP.SYS.COM.MockSession).MockSimpleHISSession(10209,95,29)
  2. 再去调用用到%session变量的方法即可
     ///下面方法仅为了展示Data数据
     d ##class(BSP.SYS.COM.MockSession).DisplaySession()

根据会话ID模拟会话

d ##class(BSP.SYS.COM.MockSession).MockSessionFromSessionId(sessionId)
参数 说明
sessionId 会话ID
  1. 通过数据库SMP,系统-CSP会话,查到会话ID
  2. terminal调用方法,定义模拟%session
     d ##class(BSP.SYS.COM.MockSession).MockSessionFromSessionId("fRhu7uxMCx")
  3. 再去调用用到%session变量的方法即可
     ///下面方法仅为了展示Data数据
     d ##class(BSP.SYS.COM.MockSession).DisplaySession()

BSP.SYS.COM.MockRequest

定义%request变量,模拟其Data、Cookies、MimeData、CgiEnvs数据,主要就只是Data数据

通过键值对字符串模拟简单的请求数据

d ##class(BSP.SYS.COM.MockRequest).MockSimpleRequest(keyValueStr)
参数 说明
keyValueStr 键值对字符串 key=val&key2=val2形式
  1. terminal先调用方法,去定义并模拟出%request
     s str="EpisodeID=1&PatientID=1&DocName=李华"
     d ##class(BSP.SYS.COM.MockRequest).MockSimpleRequest(str)
  2. 再去调用用到%request变量的方法即可
     ///下面方法仅为了展示Data数据
     d ##class(BSP.SYS.COM.MockRequest).DisplayRequest()
    模拟请求示例

总结

上述方法自行定义了%session和%request变量,只是为了方便terminal调试用到了%session和%request数据的方法,请不要在正式代码中使用

下载地址

本文链接:http://blog.ttykx.com/post/Cache-Mock-Session-Request.html

-- EOF --

Comments

请在后台配置评论类型和相关的值。