目录

Search

  1. 前言
  2. 使用转换
  3. 汇总器转换
  4. 自定义转换
  5. 自定义转换函数
  6. 数据屏蔽转换
  7. 数据屏蔽示例
  8. 表达式转换
  9. 外部过程转换
  10. 筛选器转换
  11. HTTP 转换
  12. Identity Resolution 转换
  13. Java 转换
  14. Java 转换 API 引用
  15. Java 表达式
  16. Java 转换示例
  17. 联接器转换
  18. 查找转换
  19. 查找缓存
  20. 动态查找缓存
  21. 规范器转换
  22. 等级转换
  23. 路由器转换
  24. 序列生成器转换
  25. 排序器转换
  26. 源限定符转换
  27. SQL 转换
  28. 在映射中使用 SQL 转换
  29. 存储过程转换
  30. 事务控制转换
  31. 联合转换
  32. 非结构化数据转换
  33. 更新策略转换
  34. XML 转换

转换指南

转换指南

VSAM 规范器转换

VSAM 规范器转换

VSAM 规范器转换是 COBOL 源定义的源限定符。COBOL 源是一个平面文件,可以包含多次出现的数据和同一文件中多种类型的记录。
VSAM(虚拟存储访问方法)是一种适用于 IBM 大型机操作系统的文件访问方法。VSAM 文件在索引文件或连续平面文件中整理记录。不过,可将 VSAM 规范器转换用于使用 COBOL 源定义定义的任何平面文件源。
COBOL 源定义可以包含 OCCURS 语句,用于定义多次出现的列。COBOL 源定义还可包含 REDEFINES 语句,用于在文件中定义多种类型的记录。
以下 COBOL 复写簿定义了销售记录:
01 SALES_RECORD.      03  HDR_DATA. 05 HDR_REC_TYPE            PIC X. 05 HDR_STORE               PIC X(02).      03 STORE_DATA. 05  STORE_NAME PIC X(30). 05  STORE_ADDR1 PIC X(30). 05  STORE_CITY PIC X(30).      03
DETAIL_DATA REDEFINES STORE_DATA.
05 DETAIL_ITEM PIC 9(9). 05 DETAIL_DESC PIC X(30). 05 DETAIL_PRICE PIC 9(4)V99. 05 DETAIL_QTY PIC 9(5). 05
SUPPLIER_INFO OCCURS 4 TIMES
. 10 SUPPLIER_CODE PIC XX. 10 SUPPLIER_NAME PIC X(8).
销售文件可以包含两种类型的销售记录。Store_Data 定义了一家商店,而 Detail_Data 则定义了该商店中出售的商品。REDEFINES 子句指示 Detail_Data 字段可以出现在记录中,代替 Store_Data 字段。
每个销售记录的前三个字符是表头。表头包括记录类型和商店 ID。Hdr_Rec_Type 的值定义记录的其余部分是包含商店信息,还是包含商品信息。例如,如果 Hdr_Rec_Type 为“S”,则记录包含商店数据。如果 Hdr_Rec_Type 为“D”,则记录包含详细数据。
如果记录包含详细数据,则将包括 Supplier_Info 字段。OCCURS 子句在每个 Detail_Data 记录中定义了四家供应商。
下图显示了可以通过 COBOL 复写簿创建的 Sales_File COBOL 源定义:
Sales_File COBOL 源定义显示端口名称、级别、出现次数、数据类型和长度列。
Sales_Rec、Hdr_Data、Store_Data、Detail_Data 和 Supplier_Info 列是组级别的列,用于标识更低级别数据的组。组级别的列长度为 0,因为它们不包含数据。这些列都不是源定义中的输出端口。
Supplier_Info 组包含 Supplier_Code 和 Supplier_Name 列。Supplier_Info 组在每个 Detail_Data 记录中出现了四次。
在通过 COBOL 源定义创建 VSAM 规范器转换时,Mapping Designer 会根据 COBOL 源定义在规范器转换中创建输入/输出端口。规范器转换包含至少一个生成键输出端口。如果 COBOL 源包含多次出现的列,则规范器转换将包含一个生成列 ID 输出类型。
下图显示了 Mapping Designer 通过源定义创建的规范器转换端口:
 规范器转换端口包括 HDR_REC_TYPE、HDR_STORE、BODY_STORE_NAME、BODY_STORE_ADDR1、BODY_STORE_CITY、DETAIL_ITEM、DETAIL_DESC、DETAIL_PRICE、DETAIL_QTY、SUPPLIER_CODE 和 SUPPLIER_NAME。
多个列的 Supplier_Info 组在每个 COBOL 源行中出现了四次。
COBOL 源行可以包含以下数据:
Item1 ItemDesc 100 25 A Supplier1 B Supplier2 C Supplier3 D Supplier4
Supplier_Code 和 Supplier_Name 列每出现一次,规范器转换都将返回一行。每个输出行都包含相同的项、说明、价格和数量值。
规范器将通过 COBOL 源行返回以下详细数据行:
Item1 ItemDesc 100 25 A Supplier1 1 1 Item1 ItemDesc 100 25 B Supplier2 1 2 Item1 ItemDesc 100 25 C Supplier3 1 3 Item1 ItemDesc 100 25 D Supplier4 1 4
每个输出行都包含一个生成键和一个列 ID。集成服务将在处理新源行时更新生成键的值。在详细数据行中,生成键的值为 1。
列 ID 定义 Supplier_Info 列的出现次数。Supplier_Info 每出现一次,集成服务都会更新列 ID。在详细数据行中,列 ID 值为 1、2、3、4。