美文网首页
第五十四章 开发Productions - ObjectScri

第五十四章 开发Productions - ObjectScri

作者: Cache技术分享 | 来源:发表于2023-07-10 08:48 被阅读0次

第五十四章 开发Productions - ObjectScript Productions - 不常见的任务 - 直接调用业务服务

有时,希望从由某些其他机制(例如语言绑定、CSP 页面、SOAP 或从操作系统级别调用的例程)创建的作业直接调用业务服务。仅当 ADAPTER 类参数的值为 null 时才可以这样做;这种类型的业务服务称为无适配器业务服务。

为了使业务服务正常工作,必须创建业务服务类的实例。无法通过调用 %New() 方法创建此实例。相反,必须在使用 Ens.DirectorCreateBusinessService() 方法。例如:

  Set tSC = ##class(Ens.Director).CreateBusinessService("MyService",.tService)

ProductionsProductions 启动时没有为该业务服务分配作业;它假定池大小设置为 0

CreateBusinessService() 方法执行以下操作:

  1. 它确保Productions正在运行并且该生产定义了给定的业务服务。
  2. 它确保当前启用给定的业务服务。
  3. 它解析业务服务的配置名称,并使用正确的配置值实例化正确的业务服务对象(一个产品可能使用相同的业务服务类定义许多业务服务,但具有不同的名称和设置)。

如果 CreateBusinessService() 方法成功,它将通过引用返回业务服务类的实例。然后可以直接调用其 ProcessInput() 方法。必须向 ProcessInput() 方法提供它所需的输入对象的实例。例如:

If ($IsObject(tService)) {
  Set input = ##class(MyObject).%New()
  Set input.Value = 22
  Set tSC = tService.ProcessInput(input,.output)
}

创建入站适配器或子类化入站适配器

本节介绍如何创建入站适配器或将其子类化。

入站适配器简介

入站适配器负责接收和验证来自外部系统的请求。

入站适配器类与业务服务类一起工作。一般来说,入站适配器包含通用的、可重用的代码,而业务服务包含特定于生产的代码(例如特殊的验证逻辑)。通常,使用 IRIS 内置适配器类之一来实现入站适配器类。下图显示了Production如何接受传入请求:

image.png

一般来说,当外部应用程序请求执行某个操作时,该请求会通过入站适配器进入 IRIS,如上图所示。发出请求的应用程序称为客户端应用程序,因为它要求生产执行某些操作。此应用程序是产品的客户端。此步骤的特色元素是入站适配器。这是一段代码,它将客户端的本机请求格式调整为生产可以理解的格式。每个发出产品请求的应用程序都必须有自己的入站适配器。无需更改客户端应用程序代码,因为适配器处理客户端应用程序本身的调用。

相关文章

网友评论

      本文标题:第五十四章 开发Productions - ObjectScri

      本文链接:https://www.haomeiwen.com/subject/evdeudtx.html