文章 姚 鑫 · 七月 25, 2022 6m read

第七章 在 REST 服务中支持 CORS

概述

本节提供 CORS 的概述以及如何在 IRIS REST 服务中启用 CORS 的概述。

CORS 简介

跨域资源共享 (CORS) 允许在另一个域中运行的脚本访问服务。

通常,当浏览器从一个域运行脚本时,它允许对同一个域进行 XMLHttpRequest 调用,但在对另一个域进行调用时不允许它们。此浏览器行为限制某人创建可滥用机密数据的恶意脚本。恶意脚本可能允许用户使用授予用户的权限访问另一个域中的信息,但随后在用户不知道的情况下,将机密信息用于其他用途。为了避免这种安全问题,浏览器一般不允许这种跨域调用。

在不使用跨域资源共享 (CORS) 的情况下,具有访问 REST 服务的脚本的网页通常必须与提供 REST 服务的服务器位于同一域中。在某些环境中,将带有脚本的网页与提供 REST 服务的服务器放在不同的域中是很有用的。 CORS 支持这种安排。

下面提供了浏览器如何使用 CORS 处理 XMLHttpRequest 的简化描述:

  1. DomOne 中的网页中的脚本包含对 DomTwo 域中的IRIS REST 服务的 XMLHttpRequestXMLHttpRequest 具有 CORS 的自定义标头。
  2. 用户查看此网页并运行脚本。用户的浏览器检测到与包含网页的域不同的域的 XMLHttpRequest
0
0 123
文章 Jingwei Wang · 七月 25, 2022 4m read

本章介绍了使用InterSystems IRIS作为企业服务总线,描述了InterSystems IRIS ESB架构,并提供了部署ESB的概述。

企业服务总线的概念

企业服务总线(ESB)提供了一个单点来访问和管理具有SOAP、REST或其他网络API的应用程序。ESB提供了以下功能。

  • 提供一个中心来发现和访问服务。
  • 将应用程序与服务隔离开来,允许你在一个地方改变服务的描述,而不需要更新所有依赖它的应用程序。例如,你可以改变服务器的地址,甚至服务的API,并在ESB中处理这些变化。这为你的应用程序提供了协议独立性。如果一个应用程序是使用SOAP API开发的,但一个新的服务用REST API提供了额外的功能,ESB可以使新的REST服务作为REST和SOAP API可用,允许你添加新服务的功能,同时保持对现有应用程序的兼容性。
  • 提供一种机制来组织和跟踪企业使用的应用程序以及这些应用程序之间的依赖关系。。

ESB架构

InterSystems IRIS ESB架构有以下组成部分。

  • 将传入的请求与服务器连接起来的路由机制。这是由具有专门业务服务(BS)和业务操作(BO)的 production实现的,也可以选择业务流程(BP)。
0
0 526
公告 Michael Lei · 七月 25, 2022

Hi 大家好!

我们很荣幸地宣布InterSystems 将在剑桥总部举办 推动女性健康-FemTech不止是利基市场 高层论坛,论坛将在线上线下同步举行!

⏱ 时间: 7月 29日, 5:30 AM – 7:30 AM ,北京时间(July 28,5:30 PM – 7:30 PM ,EDT/美国东部时间)
📍 地点: InterSystems 总部,1 Memorial Drive, Cambridge, MA

Women's Health - FemTech:  Much More than A Niche Market

0
0 127
文章 姚 鑫 · 七月 24, 2022 2m read

第六章 修改规范(SPEC)类

概述

下表列出了修改规范类的原因并简要总结了所需的更改:

原因 改变
更新或替换规范 手动修改 OpenAPI XData 块或通过重新生成规范类。
启用 REST 服务以支持 CORS 手动修改 OpenAPI XData 块;还添加一个类参数并创建一个自定义调度超类。
启用 REST 服务以支持 Web 会话 添加类参数。
指定使用端点所需的权限 手动修改 OpenAPI XData 块。
覆盖默认内容类型、响应字符集或输入流处理 添加类参数。
为服务方法指定一个非默认名称 手动修改 OpenAPI XData 块。

无论何时编译规范类,编译器都会在同一个包中重新生成调度类并更新实现类。

覆盖内容类型、响应字符集或输入流处理

只需将类参数添加到规范类并重新编译,就可以覆盖 REST 服务的几个关键方面。

  • 默认情况下,REST 服务需要 application/json 内容类型。要覆盖它,请将以下内容添加到规范类:
Parameter CONTENTTYPE = "some-content-type";

其中 some-content-typeMIME 内容类型。

  • 默认情况下,REST 服务的响应消息采用 UTF-8 格式。
0
0 141
文章 姚 鑫 · 七月 23, 2022 2m read

第五章 修改实现(IMPL)类

本章讨论如何修改 REST 服务的实现类。

初始方法定义

实现类最初包含存根方法,如下例所示:

/// Returns all pets from the system that the user has access to<br/>
/// The method arguments hold values for:<br/>
///     tags, tags to filter by<br/>
///     limit, maximum number of results to return<br/>
ClassMethod findPets(tags As %ListOfDataTypes(ELEMENTTYPE="%String"), limit As %Integer) As %Stream.Object
{
    //(Place business logic here)
    //Do .
0
0 137
文章 姚 鑫 · 七月 22, 2022 3m read

第四章 使用 %REST.API 类创建 REST 服务

本章介绍如何使用 %REST.API 类来创建、更新和删除 REST 服务。

使用 %REST.API 类创建或更新 REST 服务

创建 REST 服务的推荐方法是从 REST 服务的 OpenAPI 2.0 规范开始,并使用它来生成 REST 服务类。要使用 %REST.API 类执行此操作:

  1. 获取 REST 服务的 OpenAPI 2.0 规范,采用 JSON 格式,并将规范保存为文件。该文件必须是 UTF-8 编码的。
  2. 在要定义 REST 服务的命名空间中,使用该文件创建 %DynamicObject 的实例。
  3. 然后调用 %REST.API 类的 CreateApplication() 方法。
0
0 150
公告 Claire Zheng · 十一月 22, 2021

亲爱的社区开发者们,大家好!

现在参与Gartner Peer Insight同业评审对我们的产品做出评价,可获得价值 $25 美元的礼品卡。评论观点需中立客观(InterSystems员工不允许参加)并被Gartner审核通过。点击此处开始: https://gtnr.it/3ulVX4K  。

对流程不熟悉的同学,可以参考一下我们此前发布的一篇旧贴

1
0 253
文章 Jingwei Wang · 七月 21, 2022 5m read

在创建一个或多个立方体后,你通常会创建并打包一组透视表和仪表盘,而用户通常会根据需要创建新的透视表和仪表盘。

本章简要地引导你了解创建透视表和仪表盘的过程。它包括以下几个步骤。

  • 创建透视表
  • 创建一个仪表盘
  • 导出并打包这些项目

创建透视表

在本教程的前面,我们创建了一个使用Patients cube的透视表。现在让我们创建使用你的新立方体Tutorial的透视表。

  1. 进入分析器。
  2. 打开Tutorial立方体。
  3. 展开AgeD维度。
  4. 把Age Group拖到行中。
  5. 将Age Bucket拖到Age Group的子级
  6. 拖动 Count 到列。
  7. 将 "All Patients "拖到 "行 "中,在底部。
  8. 现在 "行 "框看起来像这样。
  9. 点击保存。
  10. 系统会显示一个对话框,你可以在其中指定数据透视表的名称。
    • 保存数据透视表并给它一个名字。这里,我们保存的是检索数据的基础查询,以及按照你选择的方式显示数据所需的信息。 注意:我们不是在保存数据。
    • 对于文件夹,键入Tutorial
    • 对于透视表名称,键入Patients by Age Group
    • 单击 "确定"。
  11. 创建另一个透视表,如下所示。
    • 对于行,使用Diagnoses
    • 对于列,使用Count和Avg Age
    • 点击保存。
0
0 210
文章 Jingwei Wang · 七月 21, 2022 5m read

一个主题区是一个子立方体,可以选择覆盖项目的名称。你定义一个主题区是为了使用户能够关注较小的数据集,出于安全原因或其他原因。本章讨论了以下主题。

简介

在本教程中,我们创建了两个主题区域,按邮政编码划分患者:

  • Patient Set A: 居住在邮政编码为32006, 32007, or 36711区域的患者
  • Patient Set B: 居住在邮政编码为34577 or 38928区域的患者

创建主题领域

要创建主题区域,请做以下工作。

  1. 在模型中,点击 "新建"。
  2. 选中 "主题区域"。
  3. 对于主题区名称,键入Patient Set A
  4. 对于主题区的类名,输入 Tutorial.SubjectA
  5. 对于基础立方体,点击浏览并选择 Tutorial。
  6. 单击 OK。 
  7. 在一个单独的浏览器标签或窗口中,访问分析器,然后做以下工作。
  8. 展开HomeD。
  9. 把ZIP Code放到过滤器框中。这就在数据透视表的正上方增加了一个过滤框。
  10. 在该过滤框中,点击搜索按钮,然后选择 32006, 32007, 和 36711。
  11. 然后点击'为透视表显示当前查询'按钮(笔记本带一个笔的图标)
  12. 系统会显示一个对话框,显示分析器所使用的MDX查询。
    SELECT  FROM [PPatients] 
    %FILTER %OR({[HOMED].[H1].[ZIP CODE].
0
0 205
文章 Jingwei Wang · 七月 21, 2022 14m read

增加level

到目前为止,我们所创建的每个维度都包含一个具有一个level的层级结构。在这一节中,我们将在HomeD维度的层级结构中添加一个level。

  1. 在Tutorial模型中,为HomeD维度添加一个level,如下所示。
  2. 在类浏览器中,展开HomeCity。
  3. 拖动PostalCode并把它放到HomeD维度的H1层级结构上。这一步是在City 层之后添加新的PostalCode层。
  4. 点击PostalCode,在详细信息栏中,将名称改为ZIP Code。
  5. 编译这个立方体。
  6. Build这个立方体。
  7. 进入分析器。
  8. 展开左边的HomeD维度。将ZIP Code级别显示为行。 注意,有些成员有相同的名字。有时,有多个成员具有相同的名字是正确的。然而,在这种情况下,这是一个错误,因为邮政编码是唯一的。 一个级别只有两种方式可以拥有多个同名的成员。
    • 级别名称是基于一个级别属性,而这个属性是不唯一的。(对于一个例子,请看我们在前一章定义的医生级别)。
    • 该级别有一个父级别。当DeepSee创建一个级别的成员时,它不仅考虑源属性或表达式;它还考虑父成员。

    在现实中,邮政编码和城市之间存在着多对多的关系,所以两者都不是对方的父级。

    当我们添加邮政编码级别时,我们把它放在城市级别之后,这意味着城市是邮政编码的父级。这影响了系统为ZIP Code生成成员的方式。

0
0 255
文章 Jingwei Wang · 七月 21, 2022 10m read

创建Cube

点击主页,Analytics - > 模型。

  1. 点击新建。系统会显示一个对话框。
  2. 在这个对话框中,指定以下内容。 
    • 定义类型。选择 Cube 。
    • 多维体名称 - Tutorial
    • 多维体的类名 - Tutorial.Cube
    • 源类 - 点击浏览按钮,选择BI.Study.Patient,然后点击确定。

系统会创建cube类,你也可以在Studio中查看和修改。

  1. 点击中间区域的粗体顶行(标有Tutorial)。这将选择cube,这样你就可以在右边编辑它的细节。
  2. 在细节栏中,将None键入空替换字符串。点击保存,然后点击确定。系统会更新cube类。
  3. 左边的区域叫做类浏览器。

类浏览器提供了你的基类的类属性(除了关系属性)的有用视图,这使得基于这些属性创建DeepSee元素非常容易。然而,重要的是要知道,尽管这个视图提供了一个访问某些属性的方便方法,你也可以使用源表达式来访问任何数据。这些源表达式是在构建cube时进行评估的,因此不会影响你的运行时性能。

添加levels和度量

  1. 将以下项目从类浏览器(左侧区域)拖放到模型浏览器(中间区域)的度量标题下。这将创建名为Age和TestScore的度量,基于这些名字的类属性。
    • Age
    • TestScore
  2. 对TestScore度量做如下修改。
    • 单击 "度量 "标题下的度量名称。
0
0 239
文章 Jingwei Wang · 七月 21, 2022 7m read

创建一个透视表

  1. 在模型内容窗格中展开DiagD维度。
  2. 将Diagnoses拖放到行中,或者双击诊断。
  3. 将Patient Count(病人计数)拖放到Measure(度量)中,或双击病人数。
  4. 将 Avg Age(平均年龄) 拖至Measure(度量),或双击 "平均年龄"。
  5. 单击保存。 系统显示一个对话框,你可以指定透视表的名称。 保存透视表并给它一个名字。当你这样做时,你是在保存检索数据的基础查询,以及以你选择的方式显示数据所需的信息。你不是在保存数据。
  6. 对于文件夹,键入Test
  7. 对于透视名称,键入Patients by Diagnosis (Patients Cube)
  8. 点击确定。

注意:基表是Patients,这意味着所有的度量都是关于病人的数据总结。

度量和levels

  1. 点击新建。
  2. 把Patient Count和Avg Age拖到度量区。 这个简单的透视表向我们展示了这些度量中每一项的总数值,跨越基类中的所有记录。有1000名病人,他们的平均年龄(在这个例子中)是36.59岁。
  3. 使用SQL 校验
    select count(*) as "count" ,avg(age) as avgage from BI_Study.Patient
  4. 在分析器中,对前面的透视表进行如下修改。
    • 在左边展开GenD,把Gender拖到行区。
0
0 181
文章 Jingwei Wang · 七月 21, 2022 3m read

在InterSystems IRIS数据平台管理门户中,有一些工具用于导入和导出数据。这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大尺寸是3,641,144个字符。

你也可以使用%SQL.Import.Mgr类或LOAD DATA SQL命令导入数据,并使用%SQL.Export.Mgr类导出数据。

从文本文件中导入数据(.csv 和.txt)

你可以从一个文本文件中导入数据到一个合适的InterSystems IRIS类。当你这样做时,系统会在该类的表中创建并保存新的行。该类必须已经存在并且必须被编译。

步骤如下:

  1. 从管理门户中 选择系统资源管理器,然后选择SQL。用页面顶部的切换选项选择一个命名空间;这会显示可用的命名空间的列表。
  2. 在页面顶部,点击向导下拉列表,并选择数据导入。 
  3. 在向导的第一页,首先指定外部文件的位置。对于导入文件所在的位置,点击要使用的服务器的名称。
  4. 然后输入文件的完整路径和文件名,文件可以是.csv 和 .txt格式。
  5. 然后选择你想要导入到schema的名称。
  6. 选择表名。
  7. 然后点击下一步。
  8. 在向导的第二页,选择需要导入数据的列。
  9. 然后点击下一步。
  10. 在向导的第三页,描述外部文件的格式。
  • 在 "您的列所使用的分隔符? "中,点击与导入文件中的分隔符相对应的选项。
0
0 334
文章 Jingwei Wang · 七月 21, 2022 4m read

本章介绍了如何将SQL code从文本文件导入InterSystems SQL。当你导入SQL code时,InterSystems IRIS 数据平台使用动态SQL准备并执行每一行的SQL。如果遇到无法解析的SQL code行,SQL导入会跳过该行code,继续准备和执行后续的code行,直到到达文件的末端。所有的SQL code导入操作都会导入到当前的命名空间。

SQL导入主要用于导入数据定义语言(DDL)命令,如CREATE TABLE,并使用INSERT、UPDATE和DELETE命令来填充表。SQL导入可以准备和执行SELECT查询,但不创建结果集。

SQL导入可以用来导入InterSystems的SQL code。它也可以用于code迁移,从其他供应商(FDBMS、Informix、InterBase、MSSQLServer、MySQL、Oracle、Sybase)导入SQL。来自其他供应商的code被转换为InterSystems的SQL并执行。SQL导入不能将所有的SQL命令导入到InterSystems SQL中。它导入的是那些与InterSystems IRIS实现的SQL标准兼容的命令和条款。不兼容的特征通常会被解析,但会被忽略。

SQL导入可以成功地准备一个SQL查询--在适当的时候创建一个相应的缓存查询--但它不会执行查询。

你通过调用%SYSTEM.SQL.

0
0 209
文章 Jingwei Wang · 七月 21, 2022 5m read

视图为存储查询,提供了物理表的所有灵活性和安全权限。所有的视图都是可更新的或只读的。

注意:不能对只读的数据库中的数据创建视图。不能对存储在通过ODBC或JDBC网关连接的Informix表中的数据创建视图。这是因为InterSystems IRIS查询转换在FROM子句中使用子查询,而Informix不支持FROM子句的子查询。

创建视图

视图名称可以是合格的的或不合格的。一个没有限定的视图名称是一个简单的标识符。MyView。一个合格的视图名称由两个简单的标识符组成,一个schema名称和一个视图名称,用句号隔开, 例如MySchema.MyView。视图名和表名遵循相同的命名规则,并对未限定的名称执行相同的schema名称解析。同一模式中的视图和表不能有相同的名称。

你可以通过几种方式定义视图:

  1. 使用SQL CREATE VIEW命令(在DDL脚本中或通过JDBC或ODBC)。
    CREATE VIEW MySchema.MyView (ViewCol1, ViewCol2, ViewCol3) AS

    SELECT TableCol1, TableCol2, TableCol3

    FROM MyTable
  1. 使用管理门户的创建视图界面。
0
0 311
文章 姚 鑫 · 七月 21, 2022 3m read

第三章 使用 ^%REST 例程创建 REST 服务

本章介绍如何使用 ^%REST 例程创建和删除 REST 服务。

提示:还可以使用此例程更新REST服务;只需删除REST服务,然后重新创建它。

使用^%REST例程

^%REST例程是一个简单的命令行界面。在任何提示下,可以输入以下答案:

  • ^ - 使例程跳回上一个问题。
  • ? - 使例程显示一条列出所有当前选项的消息。
  • qquit - 结束例程。

此外,每个问题都会在括号中显示该问题的默认答案。

使用^%REST例程创建REST服务

创建REST服务的推荐方法是从REST服务的OpenAPI2.0规范开始,并使用该规范生成REST服务类。要使用^%REST例程执行此操作:

  1. 获取JSON格式的REST服务的OpenAPI 2.0规范。将规范另存为文件或记下可访问规范的URL。
  2. 在终端中,更改到要在其中定义REST服务的名称空间。
  3. 输入以下命令以启动^%REST例程:
do ^%REST
  1. 在第一个提示符处,输入 REST 服务的名称。该名称用作生成类的包名;使用有效的包名。如果想使用名称列表、lquitq(在任何情况下都是变体),请将名称用双引号括起来。例如:"list"
  2. 在下一个提示符处,输入 Y(不区分大小写)以确认您要创建此服务。

然后,该例程会提示输入要使用的 OpenAPI 2.0 规范的位置。输入完整路径名或 URL

0
0 101
文章 Michael Lei · 七月 20, 2022 2m read

IRIS 命令qlist或list可以用来把输出结果输出到一个文件。

qlist的结果以文本格式输出,以^为分隔符。

第三部分,以^为界,包含运行状态数据。

$ iris qlist IRIS > iris.log

$ cat iris.log

IRIS^/Applications/iris^2022.1.0.164.0^running, since Thu Apr  7 16:37:03 2022^iris.cpf^1972^52773^0^alert^IRIS^^^/Applications/iris

在列表的情况下,以status:为前缀的一行包含运行状态数据。

对于基于Unix的操作系统

$ iris list IRIS > iris.log

$ cat iris.log

Configuration 'IRIS'   (default)

directory:    /Applications/iris

versionid:    2021.2.0.650.0

datadir:      /Applications/iris

conf file:    iris.

0
0 253
文章 姚 鑫 · 七月 20, 2022 4m read

第二章 使用 /api/mgmnt/ 服务

本章介绍如何使用 /api/mgmnt 服务来创建、更新和删除 REST 服务。

/api/mgmnt 服务还提供了可用于发现和记录 Web 服务的选项,如本书后面所述。

使用 /api/mgmnt 服务创建 REST 服务

创建 REST 服务的推荐方法是为 REST 服务创建 OpenAPI 2.0(也称为 Swagger)描述,并使用它来生成 REST 服务类。如果您正在实现由第三方定义的 REST 服务,他们可能会提供此 OpenAPI 2.0 描述。有关 OpenAPI 2.0 描述格式的详细信息,请参阅 OpenAPI 2.0 规范。以下主题描述了如何使用 /api/mgmnt 服务来执行此操作。

使用 /api/mgmnt 服务生成类

第一步,生成 REST 服务类,如下所示:

  1. JSON 格式创建或获取 REST 服务的 OpenAPI 2.0 描述。
  2. 获取 REST 测试工具,例如 PostMan (https://www.getpostman.com/)。
  3. 在测试工具中,创建如下 HTTP 请求消息:
  • 对于 HTTP 操作,选择或指定 POST
0
0 143
文章 Lilian Huang · 七月 20, 2022 4m read

本文将讨论 FHIR 中的问卷和问卷反馈(Questionnaire and Questionnaire Response), 从创建表单到上传到服务器以及如何填写它们。

tl;dr :

  • 通过使用该工具链接“ this online tool” ,您可以轻松的开始构建您自己的表单,或者使用现有模版。
  • 通过使用InterSystems 本地FHIR 服务器链接“ this InterSystems local FHIR server” ,您可以轻松的存储您的FHIR资源和问卷。
  • 通过使用此应用程序“this app” ,您可以像医生一样操作,对您的 FHIR 服务器上的每位患者进行问卷调查和回复。

需要注意的是,该应用程序不使用 Content-Type 'application/json+fhir' 进行通信,而只是使用 Content-Type 'application/json' ,所以它不会像我们的本地 InterSystems FHIR 服务器那样工作。

这就是为什么我创建了这个 GitHub 存储库“this GitHub repo,其中包含应用程序的修改版本,使用 Content-Type 'application/json+fhir',拥有本地 FHIR 服务器和指向问卷生成器工具的链接以及一些解释。

0
0 185
文章 姚 鑫 · 七月 19, 2022 8m read

第一章 创建 REST 服务简介

本文介绍 IRIS® 中的 RESTREST 服务。

REST 简介

REST 命名自“Representational State Transfer”,具有以下属性:

  • REST 是一种架构风格,而不是一种格式。尽管 REST 经常使用 HTTP 来传输消息并使用 JSON 来传递数据,但也可以将数据作为 XML 或纯文本传递。 REST 利用现有的 Web 标准,例如 HTTPURLXMLJSON
  • REST 是面向资源的。通常,资源由 URL 标识并使用基于 HTTP 方法的操作,例如 GETPOSTPUTDELETE
  • REST 通常有少量开销。虽然它可以使用 XML 来描述数据,但它更常用的是 JSON,它是一种轻量级的数据包装器。 JSON 使用标签标识数据,但标签没有在正式的模式定义中指定,也没有明确的数据类型。

REST 服务简介

IRIS 2019.2 及更高版本中定义 REST 接口有两种方法:

  • 规范优先定义——首先创建一个 OpenAPI 2.0 规范,然后使用 API 管理工具生成 REST 接口的代码。
  • 手动编码 REST 接口。

使用规范优先的定义,REST 服务正式由以下组件组成:

  • 规范类(%REST.Spec 的子类)。此类包含 REST 服务的 OpenAPI 2.0 规范。
0
0 139
问题 Michael Lei · 五月 5, 2021

大家好,

我想知道是否有可能获取自身的值来运行查询。

我想创建一些查询以在%Persistent类中找到一个值,但是每个查询都使用不同的值。

Class Kurro.MyClass Extends %Persistent
{

/// Key of process
Property KeyProcess As %String(MAXLEN = "");

/// Specialist
Property CodeSpecialist As %String;

/// Provider
Property CodeProvider As %String;

/// Center
Property CodeCenter As %String;

/// Date
Property Date As %TimeStamp;

/// IdList
Property IdList As %String;

/// IdProcess
Property IdProcess As %String;

/// Duration
Property Duration As %String;

Query GetInfo(pObject AS Kurro.
1
0 578
问题 Michael Lei · 五月 10, 2021

我想安装Windows版本的管理门户引擎来创建Cache InterSystems数据库
我想为Cache InterSystems创建一个样本数据库,并想通过Cache Entity Framework Provider访问它。但是,我无法找到一个特定的管理门户引擎来创建数据库。

你能指导一下如何在Windows中安装管理门户吗?

I want to install Management Portal Engine for Windows to create Cache InterSystems DB

I want to create a Sample Database for Cache InterSystems and want to access it via Cache Entity Framework Provider. But, I cannot find a particular engine of Management Portal to create a database. 

Can you guide how to install Management Portal in Windows?

2
0 240
问题 Michael Lei · 五月 10, 2021

大家好,

我需要根据用户请求删除Ensemble接口。我想为此编写一个程序,执行的时候将通过代码删除接口组件。
能否提供以下操作的代码示例?

  • 从规则类中删除单个规则
  • 从Ensemble删除一个类
  • 从生产环境中删除主机(服务/操作/流程)。

感谢帮助。
谢谢,

普鲁索他曼

Ensemble Delete Individual Rules and Ensemble classes programmatically
Hi Team,

I have a requirement to delete the Ensemble interfaces , as per User request. I would like to write a routine for that and once I execute, it should remove the interface components through code.
Could you please provide code samples for the following actions ?

1
0 218
问题 Michael Lei · 五月 18, 2021

大家好,

我目前正在开发TCP入站服务,以读取从使用EnsLib.TCP.CountedOutboundAdapter的TCP操作发送的一些XML。

1)我尝试过EnsLib.TCP.Inbound适配器,但是会出现此错误:

错误<Ens> ErrException:<METHOD不存在> zinitConfig + 7 ^ Ens.Host.1 *%New,EnsLib.TCP.InboundAdapter-登录为'-'
数字 - @'
设置..Adapter = $ classmethod(..#ADAPTER,“%New”)'

因此,适配器无法开始侦听传入的连接。

2)当我改用EnsLib.TCP.CountedXMLInboundAdapter或EnsLib.TCP.CountedInboundAdapter时,适配器开始侦听给定的端口,但OnProcessinput()方法未在pInput流中接收任何数据。流始终为空,并在事件日志中引发此错误。

错误<Ens> ErrTCPReadBlockSize:超时时间为(5)的TCP Read(32000)失败,错误如下:(1144):l version =“ 1.0” encoding =“ UTF-8”?

1
0 244
问题 Michael Lei · 五月 18, 2021

我可以从AIX命令行提示符运行以下命令,而不会出现任何问题

-bash-2.05b$ echo t
t
-bash-2.05b$ echo œ
œ

当我从内部Cache调用时,我遇到了问题。

USER>D $ZF(-1,"echo t")
t

USER>D $ZF(-1,"echo œ")

D $ZF(-1,"echo œ")
^
<TRANSLATE>

我正在使用Cache 2017.2。有人可以帮忙吗?

谢谢你。

1
0 226
问题 Michael Lei · 六月 16, 2021

在Ensemble中使用SQL进行批量插入
你好,社区。

我试图在一个表中插入多个值。下面是简单的SQL语句。

插入到表X中

values ('Name', 'Address', 'Phone')

我怎样才能在一条语句中进行多次插入(行)?

数值不在另一个表中,所以我不能使用选择进入。

谢谢。

吉米-克里斯蒂安

Hello Community,

I am trying to insert multiple values in a table. Below is the simple sql statement.

Insert Into TableX

values ('Name', 'Address', 'Phone')

How can i do multiple inserts(rows) in one single statement?

Values are not in another table, so i cannot use Select into.

Thanks,

Jimmy Christian.

1
0 236