当前位置: 首页 > news >正文

第十八章 开发Productions - ObjectScript Productions - 通过引用或作为输出传递值

文章目录

  • 第十八章 开发Productions - ObjectScript Productions - 通过引用或作为输出传递值
    • 典型的回调方法
    • 典型的辅助方法
  • 第十八章 开发Productions - ObjectScript Productions - 通过引用或作为输出传递值
    • 典型的回调方法
    • 典型的辅助方法

第十八章 开发Productions - ObjectScript Productions - 通过引用或作为输出传递值

  • 如果不熟悉通过引用或输出传递值,本节旨在引导了解这种做法。

许多 IRIS 方法至少返回两个值:状态 %Status 实例)和响应消息或其他返回值。通常,响应消息通过引用或作为输出返回。如果一个值通过引用或作为输出返回,这意味着:

  • 当定义方法时,方法必须设置相应的变量。
  • 当调用该方法时,必须在相应的参数之前包含一个句点。

以下示例演示了这些要点。

典型的回调方法

method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status

关键字 Output 表示第二个参数将作为输出返回。在此方法的实现中,需要执行以下任务才能满足方法签名:

  1. 将名为 response 的变量设置为适当的值。当方法完成执行时,此变量必须具有值。
  2. Quit 命令结束,后跟引用 %Status 实例的变量名称。

例如:

Method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status
{//other stuffset response=myObjectset pSC=..MyMethod() ; returns a status codequit pSC
}

注意:当设置响应等于请求时,一定要使用 %ConstructClone。否则,请求对象将在您操作响应时更改,从而为提供发送到业务组件的消息的不准确记录。例如,如果要设置对请求的响应,请输入:

Method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status
{set response=request.%ConstructClone()// manipulate response without affecting the request object
}

此示例讨论作为输出返回的值,但对于通过引用传递的值,详细信息是相同的。

典型的辅助方法

下面显示了一个典型的继承辅助方法的签名:

method SendRequestSync(pTargetDispatchName As %String,pRequest As %Library.Persistent,ByRef pResponse As %Library.Persistent,pTimeout As %Numeric = -1,pDescription As %String = "") as %Status

关键字 ByRef 表示第三个参数将通过引用返回。要调用此方法,将使用以下内容:

 set sc=##class(pkg.class).SendRequestSync(target,request,.response,timeout,description).

注意第三个参数之前的句号。

此示例讨论通过引用传递的值,但作为输出返回的值的详细信息相同。[toc]

第十八章 开发Productions - ObjectScript Productions - 通过引用或作为输出传递值

  • 如果不熟悉通过引用或输出传递值,本节旨在引导了解这种做法。

许多 IRIS 方法至少返回两个值:状态 %Status 实例)和响应消息或其他返回值。通常,响应消息通过引用或作为输出返回。如果一个值通过引用或作为输出返回,这意味着:

  • 当定义方法时,方法必须设置相应的变量。
  • 当调用该方法时,必须在相应的参数之前包含一个句点。

以下示例演示了这些要点。

典型的回调方法

method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status

关键字 Output 表示第二个参数将作为输出返回。在此方法的实现中,需要执行以下任务才能满足方法签名:

  1. 将名为 response 的变量设置为适当的值。当方法完成执行时,此变量必须具有值。
  2. Quit 命令结束,后跟引用 %Status 实例的变量名称。

例如:

Method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status
{//other stuffset response=myObjectset pSC=..MyMethod() ; returns a status codequit pSC
}

注意:当设置响应等于请求时,一定要使用 %ConstructClone。否则,请求对象将在您操作响应时更改,从而为提供发送到业务组件的消息的不准确记录。例如,如果要设置对请求的响应,请输入:

Method OnRequest(request As %Library.Persistent, Output response As %Library.Persistent) as %Status
{set response=request.%ConstructClone()// manipulate response without affecting the request object
}

此示例讨论作为输出返回的值,但对于通过引用传递的值,详细信息是相同的。

典型的辅助方法

下面显示了一个典型的继承辅助方法的签名:

method SendRequestSync(pTargetDispatchName As %String,pRequest As %Library.Persistent,ByRef pResponse As %Library.Persistent,pTimeout As %Numeric = -1,pDescription As %String = "") as %Status

关键字 ByRef 表示第三个参数将通过引用返回。要调用此方法,将使用以下内容:

 set sc=##class(pkg.class).SendRequestSync(target,request,.response,timeout,description).

注意第三个参数之前的句号。

此示例讨论通过引用传递的值,但作为输出返回的值的详细信息相同。

http://www.lryc.cn/news/90934.html

相关文章:

  • 【云原生|Kubernetes】07-Pod健康检查和服务可用性检查
  • jeecgboot使用的问题记录
  • 【C++】数组 - 一维数组,二维数组
  • 前端:使用rollup的简单记录
  • 基于flask的web应用开发——接受post请求
  • Linux源码包的安装与升级
  • 电子合同签署协议开源版系统开发
  • 【每日一题Day221】LC2455可被三整除的偶数的平均值 | 模拟
  • NCI架构-1
  • lambda使用场景
  • Python模拟Postgres数据库连接
  • (转载)基于粒子群算法的多目标搜索算法(matlab实现)
  • 皮卡丘存储型xss、DOM型xss、DOM型xss-x
  • ThreadLocal源码
  • Hive学习---3、DML(Data Manipulation Language)数据操作、查询
  • chatgpt赋能python:Python去除重复元素的几种方法
  • 2年测试我迷茫了,软件测试大佬都会哪些技能?我的测试进阶之路...
  • 21天学会C++:Day7----auto关键字
  • Vue3 + ElementPlus实战学习——模拟简单的联系人列表管理后台
  • 【Go语言从入门到实战】并发篇
  • img标签请求 添加自定义header(二)
  • Set和weakSet Map和WeakMap
  • Qt基础之三十六:异常处理
  • 【HMS Core】【ML Kit】活体检测FAQ合集
  • ChatGPT:使用OpenAI创建自己的AI网站,使用 flask web框架快速搭建网站主体
  • 后端(一):Tomcat
  • 华为OD机试之最小调整顺序次数、特异性双端队列(Java源码)
  • 2023年武汉住建厅七大员怎么报名?报名流程?精准题库一次过??
  • Rust每日一练(Leetday0014) 组合总和II、缺失正数、接雨水
  • EnjoyVIID部署