在本节中,将自定义服务操作以匹配场景。
步骤
-
在工作区双击 tMysqlInput 以在 Component (组件) 选项卡中打开其 Basic settings (基本设置) 视图。
-
配置 tMysqlInput 以在 MySQL 数据库中加载客户数据。在 DB version (数据库版本) 字段中,选择 MySQL 数据库的版本。在本示例中,是 Mysql 5。在相关字段中指定连接详细信息,包括:
- 数据库服务器的主机名或 IP 地址
- 监听端口号
- 数据库名称
- 用于数据库身份验证的用户名和密码
-
将 Schema 设置为 Built-In (内置) 并单击 Edit schema (编辑 schema) 定义所需的 schema。Schema 编辑器即会打开。单击 [+] 按钮添加三行 String 类型并将列命名为 id、Phone (电话)、Email (电子邮件)。单击 OK (确定) 关闭 schema 编辑器。
- 此例中,在 Table Name (表名称) 字段中,键入数据库表的名称 customers。
- 在 Query (查询) 框中,输入所需的查询以从表中获取所需的列,在本示例中是 id、Phone (电话)、Email (电子邮件)。
-
在工作区双击 tXMLMap 打开其编辑器。此时,编辑器应如下所示:
- 在输入流侧的主行表 (左侧) 中,右键单击列名 payload (有效负载),然后从上下文菜单中选择 Import from Repository (从存储库导入)。然后 Metadata (元数据) 向导即会打开。
-
展开此向导中的 File XML (文件 XML) 节点,选择请求方的 schema,然后单击 OK (确定) 确认此选择。在本示例中,schema 是 CustomerServiceOperationRequest。
- 在输出流侧 (右) 的主行表中,右键单击列名 payload (有效负载),然后从上下文菜单中选择 Import from Repository (从存储库导入)。在 Metadata (元数据) 向导中,选择 schema CustomerServiceOperationResponse 以导入分层 schema 进行响应。
- 要创建到查找数据的连接,单击输入侧主行 (左) 中的 id 节点,按住并将其拖放到查找流的 Exp.key 列,与 id 行对应。
-
在代表查找流的表上,单击右上角的扳手图标打开设置面板。将 Lookup Model (查找模型) 设置为 Reload at each row (在每一行重新加载),将 Match Model (匹配模型) 设置为 All matches (全部匹配),将 Join Model (连接模型) 设置为 Inner join (内连接)。
- 在输出表 (右侧) 上单击右上角的扳手图标打开设置面板,并将 All in one (归入一个) 选项设置为 true。右键单击 Email 节点,然后在上下文菜单中选择 As loop element (作为循环元素)。
-
单击查找流中的 Phone (电话) 行 (左侧),按住并将其拖放到输出流的 XML 树视图中与 Phone (电话) 节点对应的 Expression (表达式) 列。执行相同的操作,从左侧到右侧映射 Email (电子邮件)。
tXMLMap 编辑器应如下所示:
- 单击 OK (确定) 关闭编辑器并确认此配置。
结果
现在,CustomerServiceOperation 的实施已完成。