Danielle Vann, WTX 咨询软件工程师, IBM
Jim Hobler, WTX 高级软件工程师, IBM
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0904sepapayments/index.html
WebSphere® Transformation Extender 和 WTX Pack for SEPA 提供各种转换和检验过程,支持与用于 SEPA 支付的 European Payments Council 实现进行交互。本文讲解如何使用 DB2® pureXML™ 为有效的 SEPA 支付实现完整的存储解决方案,解释在处理支付拒绝或返回时如何检验原始文档。
什么是 WebSphere Transformation Extender (WTX)?
WTX 是 IBM 的通用数据转换和检验引擎。WTX 是一种真正的多对多转换设计和开发工具,具有容易使用的拖放界面。WTX 解决方案还是跨平台的。开发之后,可以把它们部署到各种操作系统上,比如 Windows®、Linux®、UNIX®、USS 和 MVS™。WTX 包含灵活的数据 “适配器”,支持流行的数据库引擎、Enterprise Resources Planning (ERP) 应用程序、Customer Relationship Management (CRM) 应用程序以及各种文件或数据格式,比如 XML、HTML、S/MIME 和 COBOL Copybooks。
什么是 WebSphere Transformation Extender Pack for SEPA?
WebSphere Transformation Extender Pack for SEPA 执行 European Payments Council (EPC) 指定的扩展检验规则,支持无需编写代码的开发以及跨多种平台进行重用和部署。WebSphere Transformation Extender Pack for SEPA 还可以在 SEPA 格式与内部应用程序和业务系统所需的格式(比如 DTAUS、MINOS、CFONB 和 BACS)之间进行转换。
关于 WTX 产品系列的更多信息,请参见 http://www.ibm.com/software/integration/wtx。
DB2 pureXML 支持以 XML 数据原有的层次化格式存储、管理、检验和搜索 XML 数据。开发人员不再需要编写代码把 XML 数据分解为单独的字段,也不需要把 XML 存储为大字符串或 CLOB 数据类型。通过使用 pureXML,可以使用 SQL/XML 搜索数据库中的 XML 数据。DB2 pureXML 还可以在插入或更新时根据模式检验 XML。参考资料 包含关于 pureXML 的更多信息。
本文演示如何:
本文描述的工作需要以下软件:
WTX Design Studio 需要 Microsoft Windows(2000、XP、2003 Server 或 Vista)。
在本文中,讲解如何使用一个简单的 WTX 映射把 SEPA 数据直接插入 DB2 数据库中。在实际的实现中,应该在使用 WebSphere Transformation Extender Pack for SEPA 检验支付数据之后调用这个映射。
下载 WTXSEPAExample.zip 并把它解压到一个临时位置。这会创建一个名为 WTXSEPAExample 的目录(文件夹),其中包含本文的 Eclipse 项目、映射、树和示例数据。示例假设在 c:\temp 目录中创建这个目录。请根据需要调整下面的命令。要想在 Windows 计算机上执行这些命令,可以使用 DB2 Control Center 的 Command Editor 或 DB2 命令窗口。下面的示例使用后者。如果要在 z/OS 系统上设置数据库,请使用 z/OS 数据库设置说明 中的步骤。
为了打开一个 DB2 命令窗口,启动 MS-DOS 命令提示,进入下载的目录并执行 db2cmd 和 db2 命令,见清单 1。
cd c:\temp\WTXSEPAExample db2cmd db2 |
在 DB2 命令提示上,执行清单 2 中的语句以创建数据库。
create database SEPA using codeset utf-8 territory US |
模式需要注册,但是由于模式的大小,首先需要增加应用程序堆的大小。在创建数据库之后,执行清单 3 中的命令。
connect to SEPA UPDATE DB CFG USING APPLHEAPSZ 40000 UPDATE DB CFG USING CATALOGCACHE_SZ 100000 |
下载的包包含 SEPA 使用的 UNIFI 模式。在 DB2 命令窗口中,执行清单 4 中的代码注册这些模式。
register xmlschema 'pacs.002.001.02.xsd' from 'schemas/pacs.002.001.02.xsd' \
as SEPADMIN.pacs_002_001_02
complete xmlschema SEPADMIN.pacs_002_001_02
register xmlschema 'pacs.008.001.01.xsd' from 'schemas/pacs.008.001.01.xsd' \
as SEPADMIN.pacs_008_001_01
complete xmlschema SEPADMIN.pacs_008_001_01 |
注意:如果出现错误 DB21107E,“An error has occurred when accessing the file”,那么应该检查是否已经切换到了示例目录(见 清单 1)。
下面要创建一个表,其中包含一个 XML 数据类型的列、一个包含文档 ID 的列和一个包含注释的列。执行清单 5 中的 CREATE TABLE 语句。
create table SEPADMIN.SEPAMESSAGES \ (ID varchar(60) PRIMARY KEY NOT NULL, COMMENT VARCHAR(500), DATA XML) |
对于 z/OS,可以使用 SPUFI、Admin Tool 或 DataStudio 输入创建数据库和注册模式的 DDL。
CREATE DATABASE SEPA; |
下载的包包含 SEPA 使用的 UNIFI 模式。使用清单 6 中的代码注册这些模式。
REGISTER XMLSCHEMA 'pacs.002.001.02.xsd' FROM file://pacs.002.001.02.xsd AS SEPADMIN.pacs_002_001_02 COMPLETE REGISTER XMLSCHEMA pacs.008.001.01.xsd FROM file://pacs.008.001.01.xsd' AS SEPADMIN.pacs_008_001_01 COMPLETE |
下面要创建一个表,其中包含一个 XML 数据类型的列、一个包含文档 ID 的列和一个包含注释的列。执行清单 8 中的 CREATE TABLE 语句。
create table SEPADMIN.SEPAMESSAGES(ID varchar(60) PRIMARY KEY NOT NULL, COMMENT VARCHAR(500), DATA XML) |
前面解压的 zip 文件包含下面 WTX 对象和示例 SEPA 数据。使用 WTX 填充前面创建的数据库。
SELECT * from SEPADMIN.SEPAMESSAGES |
获取原始 SEPA 支付文档主要用于在 SEPA 中创建拒绝或返回消息。下面向一个 WTX 映射传递要拒绝或返回的消息的交易 ID,从而演示如何获取原始 SEPA 支付文档。
使用示例映射的输出运行 SEPA 检验框架(可选 —— 必须安装 WebSphere Transformation Extender Pack for SEPA)
可以在 WebSphere Transformation Extender Pack for SEPA 检验中使用示例 'query_txid' 映射的输出。WebSphere Transformation Extender Pack for SEPA 会对 SEPA 文档执行扩展检验。
在检验拒绝或返回数据时,WebSphere Transformation Extender Pack for SEPA 必须获得原始的支付消息,而这正是 'query_txid' 映射的作用。
这个示例假设已经安装了 WTX Pack for SEPA,构建了所有映射并把 'xliff.dtd' 复制到了 mapsandschemas 目录中。
在这个示例中,要创建一个调用 SEPA 检验框架映射的映射。对于实际的实现,应该删除这个映射;在从数据库成功地获取原始数据之后,query_txid 映射可以直接调用 WebSphere Transformation Extender Pack for SEPA 检验。
调用 Pack for SEPA 检验映射的步骤:
可以使用 WTX 和 DB2 pureXML 增强 SEPA 数据的处理和存储。本文讲解了如何设置数据库、如何存储 SEPA 消息以及如何使用惟一标识获取这些消息。
存储了 SEPA 数据之后,就可以按照多种方式增强 SEPA 过程。通过在使用 WTX Launcher 或 WebSphere Message Broker 的系统中实现这些映射,可以在接收和检验支付消息时自动地把它们存储到数据库中。在接收到支付拒绝或返回时,系统可以获取交易 ID 并把值传递给示例 ‘query_txid’ 映射。
衷心感谢 Christian Daser、Kirsten Ann Larsen、Susan Malaika、Cindy Saracco 和 Guogen Zhang 为本文提供意见和帮助!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14789789/viewspace-614791/ ,如需转载,请注明出处,否则将追究法律责任。