1 / 88

第 2 天 日程表

第 2 天 日程表. 转换映射 创建一个新的映射 映射编辑器 操作 映射检测器 过滤器 用户操作 脚本概况 WSDL 导入向导 流程组件编辑器 特性概况 了解消息流程 运行 SA 管理控制台. 安装 消息格式 在 XML 模式中复制 MDL 编辑器 创建一个变量记录输出 格式检测器 HL7 编辑器 X12 编辑器 日程表 假日日程表 查找表. 安装. 前提 : Sun Java 1.5 JDK 运行安装程序,安装到你选择的路径 重新启动让环境变量变更起作用 对于主要版本,如果安装到同一路径,安装新版本前请先卸载先前的版本

eagan-wolf
Télécharger la présentation

第 2 天 日程表

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2天 日程表 • 转换映射 • 创建一个新的映射 • 映射编辑器 • 操作 • 映射检测器 • 过滤器 • 用户操作 • 脚本概况 • WSDL 导入向导 • 流程组件编辑器 • 特性概况 • 了解消息流程 • 运行 SA • 管理控制台 • 安装 • 消息格式 • 在XML模式中复制 • MDL 编辑器 • 创建一个变量记录输出 • 格式检测器 • HL7编辑器 • X12编辑器 • 日程表 • 假日日程表 • 查找表

  2. 安装 • 前提: Sun Java 1.5 JDK • 运行安装程序,安装到你选择的路径 • 重新启动让环境变量变更起作用 • 对于主要版本,如果安装到同一路径,安装新版本前请先卸载先前的版本 • 复制修改过的ChainBuilderESB-SE-Transformer-1.2.jar

  3. 已安装的组件 • ChainBuilder ESB • Eclipse 集成开发环境 (IDE + Server install only) • Service 和JBI 容器 • Tomcat Web Server • Derby 数据库

  4. 消息格式 • HL7 – Healthcare • HL7 编辑器 • MDL – 消息定义语言 • 消息格式编辑器 • 固定 • 变量 • 分级 • X12 • X12编辑器 • XML – 导入模式

  5. 简单固定的记录范例– Account Balance • 输入格式: Account Number (5), Balance (10) • 范例数据 (accountBalance.txt): • 617230000070.00 • 514290000238.31 • 012840007452.99 • 831490000002.35 消息类型 文件 消息 字段

  6. 字段定义 字段属性

  7. 测试 MDL • 测试目录: C:\<cbesb_home>\ideworkspace\Level1\src\test 移动不同行的范例数据

  8. 简单 CSV 范例 – clientAccountNumbers.mdl • 输入数据格式: first, last, account# • 范例数据 (clientAccountNumbers.csv): • Doe,John,61723 • Doe,Jane,51429 • Smith,John,01284 • Johnson,Jim,83149 消息类型 分隔符 文件 消息 字段

  9. 测试 MDL 移动不同行的范例数据

  10. HL7 编辑器 • 许多常见HL7 格式都是预装入的 • HL7 变体允许修改现有格式

  11. HL7 编辑器 – 创建一个变体 • 添加一个额外的PID字段来捕获病人的E-mail地址 MSH|^~\&|ADT1|MCM|LABADT|MCM|199008181126|SECURITY|ADT^A01|MSG00001|P|2.3.1| EVN|A01|199008181123|| PID|1||PATID1234^5^M11^ADT1^MR^MCM~123-45-6789^^^USSSA^SS||SMITH^JOHN^A^III||19800101|M||C|100 N MAIN STREET^^COLUMBUS^OH^43125-1020|GL|(614)555-1212|(614)555-3434||S||PATID12345001^2^M10^ADT1^AN^A|123456789|987654^OH|||||||||||patient@patient.com NK1|1|SMITH^JANE^K|WI^WIFE||||NK^NEXT OF KIN PV1|1|I|2000^2012^01||||004444^SMITH^CHARLES^J.|||SUR||||ADM|A0|

  12. HL7 编辑器 – 创建一个变体 • 在PID的末尾增加最大长度为50的额外字段

  13. HL7 编辑器 – 测试变体 • 选择消息类型ADT A01并进行测试

  14. X12 编辑器 • 许多常见X12 格式都是预装入的 • X12变体允许修改现有格式

  15. 查找表编辑器 • 创建从 Package Explorer (右击) New -> Lookup File • 简单 键-值 对表 • 点击绿色加号添加新条目

  16. 查表 • XML 文件 • 命名为 *.tbl • 设置在表目录 • 从Transform或Java索引 • 范例: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>LookUp Table Example general_sample</comment> <entry key=“key1">value1</entry> <entry key=“key2">value2</entry> </properties>

  17. 映射编辑器 • 操作属性 • 源和目标树 • 操作树 • 操作面板

  18. 操作 • 联合: 连接多个源 • 注释 • 块注释: 注释掉/取消注释 现有操作 • 复制: 单一源到单一目标 • 迭代器: 循环读取数据元素 • 查找 • 数学

  19. 操作 • 发送: 创建发送到外部消息 (所有在一起交换) • 禁止: 防止在映射结束消息自动创建 • If: 使用Java比较,如: ?1.equals(“string”) • ElseIf • Else • While • User: 使用自定义映射用户操作 • JDBC: 映射执行时访问数据库

  20. 映射测试器 • 测试前必须创建项目 • 点击测试按钮开始 • 选择输入文件 • 选择读取格式

  21. 映射测试结果 • 源数据树和目标数据树 • 操作树 • 翻阅多个结果集 保存结果 到文件

  22. 迭代映射范例 • 目的: 创建映射orders.trn 从重复元素项XML格式到相似的格式 • 源: SingleOrderReportInternational.xsd • 目标: SingleOrderReportUSA.xsd

  23. 迭代映射范例 • 使用映射特性完成大部分映射 • 从Order (源树)点击和拖拽到 Order (目标树) • 自动地为相同名字的所有字段创建复制和迭代语句

  24. 迭代映射范例 • 注意元素编码颜色和父子组关系 • 说明:某些字段没有映射也许需要手动映射 • PostalCode -> Zip

  25. 迭代映射范例 • 完善缺少的Zip 代码复制操作 • 点击不在迭代器中的复制 (所以新的操作不会在迭代器内被创建) • 从源字段拖拽到目标

  26. 迭代映射范例 • 测试映射 • 首先,存储映射并创建项目 • 测试文件 • Order_International_USA_apoproval.xml • Order_International_USA_denial.xml • 注意迭代器如何在出站消息中输入重复元素

  27. 迭代映射范例

  28. 高级迭代范例 • 目的:映射从重复product属性的XML格式到包含一个属性的CSV格式 • 从每一个迭代器创建一个出站消息(所有在一次消息交换),并可能创建出基于逻辑的额外出站消息

  29. 高级迭代范例 • 迭代操作只能在单一的循环结构内执行。如果我们映射到的目标格式有一个循环结构,那在它的内部会有一个嵌套的循环。

  30. 高级迭代范例 • 使用源作为键查找表,在目标字段返回它的值

  31. 高级迭代范例 • 如果语句使用java比较 (选择类型) • 用?1, ?2, ?3, 等索引源数据元素

  32. 高级迭代范例 • 如果多种源字段语句使用Integer比较

  33. 高级迭代范例 • 数学运算允许多种源字段 • 使用 ?1 类型索引 • 允许基本的数学运算

  34. 高级迭代范例 • 初始化变量 • 循环重复属性标签 • 有条件地填充基于属性名的变量 • 为每个迭代器创建出站消息 • 如果我们发现高度,宽度和长度然后计算尺寸并创建额外的记录 • 禁止自动创建消息 (防止最后一条消息重复) • 在表中找到ID属性

  35. 自定义代码 • 代码必须用Java 或 Groovy写 • 代码自动生成 • 必须创建项目

  36. 自定义代码类型 • 映射过滤器:为映射中字符串操作的单一方法 • 映射用户操作:自定义映射操作 • TrxId: 在CBR中确定路由名称 • Upoc:插入绑定组件 • 脚本组件:自定义绑定组件,可能是提供者或消费者 • 自定义组件:在向导界面下创建自定义绑定组件

  37. 过滤器 • 可以进行许多操作 • 典型地用来文本操作 • 选择类和方法 • 必须先建立项目 • 单一字符串输入 • 单一字符串输出

  38. 映射过滤器范例 import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; public class Filters { public String trimQuotes (String in) { // removes all double-quote characters (") from input data in = in.replaceAll("\"", ""); return in; } public String replaceSpacesWithUnderscores (String in) { // removes all double-quote characters (") from input data in = in.replaceAll(" ", "_"); return in; } public String getDateTime(String in) { DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); return dateFormat.format(date); } }

  39. 映射用户操作范例 package com.bostechcorp.cbesb.map; import java.util.Map; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import com.bostechcorp.cbesb.runtime.ccsl.lib.ITransformationOperation; publicclass reformatDate implements ITransformationOperation { publicboolean process(String[] arg0, String[] arg1) throws Exception { /* * Takes in a date with a given format at outputs the date in a modified format * input: arg0[0]: input date format arg0[1]: output date format arg0[2]: date to be modified * output: arg1[0]: modified date */ String inputPattern = arg0[0]; String outputPattern = arg0[1]; SimpleDateFormat inputFormatter = new SimpleDateFormat(inputPattern); SimpleDateFormat outputFormatter = new SimpleDateFormat(outputPattern); Date date = (Date)inputFormatter.parse(arg0[2]); String dateStr = outputFormatter.format(date); arg1[0] = dateStr; returntrue; } }

  40. 脚本组件范例 publicvoid run(Log logger, String rootDir, ComponentContext componentContext, DeliveryChannel channel, MessageExchange exchange, Map<String, String> params) throws Exception { /* * This class receives in an inbound message and prints the contents * Then the out message is set to a different value and sent on * Use this class when it is necessary to have an out message (in-out) */ NormalizedMessage inMsg = exchange.getMessage("in"); NormalizedMessageHandler nmhIn = new NormalizedMessageHandler(inMsg); Source record = nmhIn.getRecordAtIndex(0); // assumes that incoming message is a string String inMessage = ((StringSource)record).getText(); logger.info("modifyMessage - inbound message: " + inMessage); NormalizedMessage outMsg = exchange.getMessage("out"); NormalizedMessageHandler nmh = new NormalizedMessageHandler(outMsg); // set new outbound message StringSource strSrc = new StringSource("modified message"); nmh.addRecord(strSrc); nmh.generateMessageContent(); LinkedList sendList = new LinkedList(); sendList.add(exchange); }

  41. WSDL 导入向导 • 从ChainBuilder ESB 菜单访问 • 从WSDL生成模式 • 选择源WSDL(必须从文件)和目标目录 • 用来创建可以被利用的映射的模式向Web Service发送数据

  42. 流程组件编辑器 • Eclipse 插件 • 图形化界面 • 拖拽功能 • 向导援助

  43. 绑定组件 • HTTP – 包括 web services • File • FTP • JMS - MQ • TCPIP – Server 或 Client 模式, 包括 MLP • Script • Custom • Email – POP3 和 SMTP

  44. 文件绑定组件 • 读取和写入文件 • 在复选框中选择模式读,写或都选 使用CCSL选项打开或关闭在向导中下面的CCSL配置界面,典型地选择True

  45. 文件绑定组件 • 文件模式 – 选择输入文件读取目录 • Glob or Regex • 基本的或高级的日程表 • 源和层目录可以是完整或相对路(esbHome\runtimes\test\SA)

  46. 文件绑定组件 • 读入方式 • raw: 整个文件内容读到单一的消息 • newline: 在单一的交换每一行读入不同的消息

  47. 文件绑定组件 • 动作:删除或存档 • 保留:在启动时怎样处理层目录中的文件 • 二次校验:在读入前是否检查文件大小

  48. 文件绑定组件 • 回复设置 • 只为写入/读出配置 • 回复是最后的出站消息 • 写出方式 • raw: 每一个交换消息写入到不同的文件 • newline:所有交换消息到单一文件

  49. 文件绑定组件 • 文件模式 –包含文字字符和宏 • 基本名:原始文件名(无扩展名) • 日期:系统日期格式为YYYYMMDD • 时间:系统时间格式为hhmmss • 数:从1开始,每次组件启动自动递增 • EXT:原始文件扩展名

  50. 文件绑定组件 • 写入模式属性 • 只有写在第一个界面上检查了才可以

More Related