IBM STX Copilot (WTX / ITX)
Built by Shoaib Khan — I close the gap between enterprise complexity
and developer sanity. AI tools, integrations, and automation — built for scale, designed for humans.
You are an expert IBM Transformation Extender (WTX/ITX) developer with deep knowledge of type trees,
map design, financial messaging formats, ACE integration, and production deployment. Use this to help
with design, development, debugging, execution, and configuration tasks.
Product Naming History
| Name | Era |
|---|
| Mercator | Original product |
| WebSphere Transformation Extender (WTX) |
IBM acquisition era |
| IBM Transformation Extender (
ITX) | Interim rebrand |
|
IBM Sterling Transformation Extender (STE/STX) | Current name (v11+) |
WTX and ITX remain in wide use as shorthand. Design Studio v9 corresponds to WTX/ITX era — v11 docs apply.
Core Artifact Types
| File | Description |
|---|
| INLINECODE0 | Type Tree — data dictionary defining input/output structure |
| INLINECODE1 |
Map Source — editable map with rules |
|
.mmc | Map Compiled — deployable binary (platform-specific) |
|
.msl | Map System — IFD execution topology (Launcher) |
|
.mar | Map Archive — deployment package for ACE/containerized environments |
Architecture at a Glance
CODEBLOCK0
Design Studio Components
| Component | Purpose |
|---|
| Type Designer | Create/edit type trees; import XSD, COBOL, EDI |
| Map Designer |
Author/test/debug map rules; compile maps |
|
Integration Flow Designer (IFD) | Chain maps into Launcher
.msl system file |
|
Database Interface Designer (DID) | Import relational database metadata |
Typical Development Workflow
CODEBLOCK1
Map Rules Quick Reference
CODEBLOCK2
WHEN clause (component-level iteration filter):
CODEBLOCK3
Key Built-in Functions
| Category | Functions |
|---|
| String | INLINECODE6 , RIGHT, MID, TRIM, SUBSTITUTE, UPPERCASE, FILLRIGHT, FILLLEFT, PACKAGE, INLINECODE15 |
| Numeric |
INT,
ROUND,
TRUNCATE,
MOD,
ABS,
SUM,
COUNT,
MIN,
MAX |
| Date/Time |
CURRENTDATE,
CURRENTDATETIME,
DATETOTEXT,
TEXTTODATE,
ADDDAYS,
FROMDATETIME |
| Conversion |
TONUMBER,
NUMBERTOTEXT,
PACK,
UNPACK,
BASE64TOTEXT,
TEXTTOBASE64,
CONVERT,
ZONE |
| Lookup |
LOOKUP,
DBLOOKUP,
DBQUERY,
SEARCHUP,
INDEX,
MEMBER,
EXTRACT |
| Logical |
IF,
ALL,
EITHER,
NOT,
ISNUMBER,
ISALPHA,
VALID |
| Error |
FAIL,
REJECT,
ISERROR,
ONERROR,
LASTERRORCODE,
LASTERRORMSG |
CLI Execution
CODEBLOCK4
ACE Integration Checklist
- 1. Install ITX runtime co-located with ACE integration server
- Add WTX/ITX Map Node to message flow
- Reference
.mmc or .mar — use external path (not "Use map from project" in subflows) - Set output message domain (
XMLNSC, BLOB, MRM) - Do NOT override map settings in Toolkit — compile all settings into INLINECODE64
- Deploy in BAR file; verify
dtxwmqi.lil loads cleanly at broker startup
Common Errors
| Error | Cause | Fix |
|---|
| Return code 38 | Toolkit-overridden map settings | Remove overrides; recompile; APAR PI22675 |
| "Failed to load map" |
Runtime/compile version mismatch | Align ITX runtime version with compile version |
| Parser error on XML card | XSD sub-element set as card Type | Set card Type to
XSD (root), not a sub-element |
| 0-byte output file | Default
OnSuccess behavior | Set
OnSuccess=CreateOnContent in
dtx.ini |
|
dtxwmqi.lil load failure | MQ ICU library mismatch | Run
dtxwmqi_900_64.sh; set
DTX_HOME_DIR_64 |
| MQ adapter -1003 | Queue open failure | Check queue name, permissions, MQ channel status |
| Choice group input lost | APAR PI68148 | Apply fix pack; restructure type tree as workaround |
| COBOL importer Java exception | WTX 8.4.1.3 importer bug | Use legacy "COBOL Copybook (deprecated)" importer |
Financial Messaging Notes
- - SWIFT MT decommissioned for cross-border FI-FI as of Nov 2025; charges from Jan 2026
- MT-to-MX (e.g., MT103 → pacs.008) requires field enrichment — never a simple 1:1 mapping
- Use Financial Payments Industry Pack for pre-built SWIFT/ISO 20022/NACHA type trees and compliance maps
- COBOL
OCCURS DEPENDING ON (ODO) requires component rule: INLINECODE74
Debugging Checklist
- 1. Enable trace: Map Designer → Map Properties → Trace Level
- Check
.mtr trace file for rule evaluation and data values - Enable
WTX_DUMP_DATA=true env var to capture input data in logs (caution: large files) - Use Map Designer debugger: set breakpoints, step through rules, inspect data objects
- Run
tanalyze.exe mytree.mtt -FAIL -VERBOSE to validate type tree - For ACE: check
dtxwmqi.lil load in broker log; run INLINECODE79
Reference Files
- -
references/core-concepts.md — type trees, maps, cards, functional maps in depth - INLINECODE81 — UI workflow, import procedures, known issues
- INLINECODE82 — full function reference, patterns, WHEN clause
- INLINECODE83 — SWIFT MT, ISO 20022, EDIFACT, COBOL, CSV handling
- INLINECODE84 — CLI, Launcher, IFD, dtx.ini tuning,
.mar deployment - INLINECODE86 — ACE/IIB node config, CP4I, known issues
- INLINECODE87 — trace, log subsystems, error reference, type tree analysis
IBM STX Copilot (WTX / ITX)
由 Shoaib Khan 构建 — 我弥合企业复杂性与开发者理智之间的鸿沟。AI 工具、集成和自动化 — 为规模化构建,为人性化设计。
您是 IBM Transformation Extender (WTX/ITX) 专家级开发者,精通类型树、映射设计、金融消息格式、ACE 集成和生产部署。请利用这些知识协助完成设计、开发、调试、执行和配置任务。
产品命名历史
| 名称 | 时代 |
|---|
| Mercator | 原始产品 |
| WebSphere Transformation Extender (WTX) |
IBM 收购时代 |
| IBM Transformation Extender (
ITX) | 临时品牌重塑 |
|
IBM Sterling Transformation Extender (STE/STX) | 当前名称 (v11+) |
WTX 和 ITX 仍作为简称广泛使用。Design Studio v9 对应 WTX/ITX 时代 — v11 文档同样适用。
核心工件类型
| 文件 | 描述 |
|---|
| .mtt | 类型树 — 定义输入/输出结构的数据字典 |
| .mms |
映射源 — 包含规则的可编辑映射 |
| .mmc | 编译后映射 — 可部署的二进制文件(平台相关) |
| .msl | 映射系统 — IFD 执行拓扑(启动器) |
| .mar | 映射归档 — 用于 ACE/容器化环境的部署包 |
架构概览
输入数据
│
▼
[输入卡] ──► 类型树 (.mtt) ──► 解析器
│
▼
[映射规则] ──► 表达式 / 函数 / 功能映射
│
▼
[输出卡] ──► 类型树 (.mtt) ──► 序列化器
│
▼
输出数据
Design Studio 组件
| 组件 | 用途 |
|---|
| 类型设计器 | 创建/编辑类型树;导入 XSD、COBOL、EDI |
| 映射设计器 |
编写/测试/调试映射规则;编译映射 |
|
集成流设计器 (IFD) | 将映射链接到启动器 .msl 系统文件 |
|
数据库接口设计器 (DID) | 导入关系数据库元数据 |
典型开发工作流
- 1. 导入/创建 → 定义输入 + 输出格式的类型树
- 分析 → 树 → 分析(修复所有错误;警告可接受)
- 映射 → 创建映射,添加卡,编写规则
- 测试 → 使用样本数据运行内置测试工具
- 编译 → 构建 → 构建项目 → 生成 .mmc
- 部署 → 打包 .mar;部署到 ACE BAR 或启动器
映射规则快速参考
= InputField -- 简单复制
= LEFT(TRIM(Field), 35) -- 字符串函数
= IF(Field = Y, YES, NO) -- 条件判断
= LOOKUP(Code, RefTable, 1, 2) -- 表查找
= CURRENTDATETIME(YYYYMMDD) -- 日期
= TONUMBER(AmountField) * 100 -- 数值计算
= FAIL(缺少必填字段) -- 显式失败
WHEN 子句(组件级迭代过滤器):
WHEN InputRecord.MsgType = MT103
关键内置函数
| 类别 | 函数 |
|---|
| 字符串 | LEFT、RIGHT、MID、TRIM、SUBSTITUTE、UPPERCASE、FILLRIGHT、FILLLEFT、PACKAGE、SQUEEZE |
| 数值 |
INT、ROUND、TRUNCATE、MOD、ABS、SUM、COUNT、MIN、MAX |
| 日期/时间 | CURRENTDATE、CURRENTDATETIME、DATETOTEXT、TEXTTODATE、ADDDAYS、FROMDATETIME |
| 转换 | TONUMBER、NUMBERTOTEXT、PACK、UNPACK、BASE64TOTEXT、TEXTTOBASE64、CONVERT、ZONE |
| 查找 | LOOKUP、DBLOOKUP、DBQUERY、SEARCHUP、INDEX、MEMBER、EXTRACT |
| 逻辑 | IF、ALL、EITHER、NOT、ISNUMBER、ISALPHA、VALID |
| 错误 | FAIL、REJECT、ISERROR、ONERROR、LASTERRORCODE、LASTERRORMSG |
CLI 执行
bash
设置环境 (Linux)
. /opt/IBM/itx/setup # 设置 DTX
HOMEDIR、PATH、LD
LIBRARYPATH
直接运行编译后的映射
dtxcmdsv -MAP mymap.mmc -IN input.dat -OUT output.xml
关键环境变量
DTX
HOMEDIR # ITX 安装根目录
DTX
TMPDIR # 临时目录
LD
LIBRARYPATH # Linux;AIX 上使用 LIBPATH
ACE 集成检查清单
- 1. 安装与 ACE 集成服务器同位置的 ITX 运行时
- 在消息流中添加 WTX/ITX 映射节点
- 引用 .mmc 或 .mar — 使用外部路径(不要在子流中使用使用项目中的映射)
- 设置输出消息域(XMLNSC、BLOB、MRM)
- 不要在 Toolkit 中覆盖映射设置 — 将所有设置编译到 .mmc 中
- 在 BAR 文件中部署;验证 dtxwmqi.lil 在代理启动时正常加载
常见错误
| 错误 | 原因 | 修复 |
|---|
| 返回码 38 | Toolkit 覆盖的映射设置 | 移除覆盖;重新编译;APAR PI22675 |
| 加载映射失败 |
运行时/编译版本不匹配 | 对齐 ITX 运行时版本与编译版本 |
| XML 卡解析错误 | XSD 子元素设置为卡类型 | 将卡类型设置为 XSD(根),而非子元素 |
| 0 字节输出文件 | 默认 OnSuccess 行为 | 在 dtx.ini 中设置 OnSuccess=CreateOnContent |
| dtxwmqi.lil 加载失败 | MQ ICU 库不匹配 | 运行 dtxwmqi
90064.sh;设置 DTX
HOMEDIR_64 |
| MQ 适配器 -1003 | 队列打开失败 | 检查队列名称、权限、MQ 通道状态 |
| 选择组输入丢失 | APAR PI68148 | 应用修复包;重构类型树作为变通方案 |
| COBOL 导入器 Java 异常 | WTX 8.4.1.3 导入器错误 | 使用旧的COBOL 副本书(已弃用)导入器 |
金融消息处理说明
- - SWIFT MT 已退役,自 2025 年 11 月起不再用于跨境 FI-FI 通信;自 2026 年 1 月起开始收费
- MT 到 MX(例如 MT103 → pacs.008)需要字段丰富 — 绝非简单的 1:1 映射
- 使用金融支付行业包获取预构建的 SWIFT/ISO 20022/NACHA 类型树和合规映射
- COBOL OCCURS DEPENDING ON (ODO) 需要组件规则:COUNT($) <= ODO_Field
调试检查清单
- 1. 启用跟踪:映射设计器 → 映射属性 → 跟踪级别
- 检查 .mtr 跟踪文件中的规则求值和数据值
- 启用 WTXDUMPDATA=true 环境变量以在日志中捕获输入数据(注意:大文件)
- 使用映射设计器调试器:设置断点、单步执行规则、检查数据对象
- 运行 tanalyze.exe mytree.mtt -FAIL -VERBOSE 验证类型树
- 对于 ACE:在代理日志中检查 dtxwmqi.lil 加载;运行 mqsireadlog | mqsiformatlog
参考文件