一、Temenos T24是什么?
Temenos T24 是一个 Temenos 集团开发的核心银行系统。
二、T24编程语言是什么?
T24 JBASE BASIC是Temenos T24核心银行系统的其中一种编程语言。
T24 JBASE BASIC是基于 JBASE 环境开发的编程语言,也被称为 InfoBasic 。
三、T24 Jbase Basic有什么?
1. Defined
PROGRAM - 定义主程序,可独立运行
SUBROUTINE - 定义子程序,不可独立运行
RETURN - 返回程序
FUNCTION - 定义功能
EXIT - 退出程序
SETTING - 设置环境变量
MAT - 声明矩阵,相当于Java里面Map
DIM - 声明变量或定义数组
2. Loop
FOR - 循环
LOOP - 循环
WHILE - 循环
NEXT - 下一个
BREAK - 跳出
CONTINUE - 继续
REMOVE - 移除
REPEAT - 重复
DO -做
3. Control
IF - 控制语句的如果
ELSE - 控制语句的否则
END - 控制语句结束、程序结束
THEN - 控制语句然后
CASE - 控制语句的分支
GOSUB - 子程序内部跳转调用的关键字
EQ NE GT GE LT LE LK OR AND
4. Utility
ASSIGNED - 检查变量
CLEAR -清理变量,相当于赋空值,就是重置
DEBUG -调试
LOCK - 上锁
UNLOCK - 解锁
5. Include
INSERT - 插入头文件变量
COMMON - 引入全局变量
INCLUDE - 引入头文件变量
6. String
UPCASE - 字符串转大写
DOWNCASE - 字符串转小写
LEN - 计算变量长度
FINDSTR - 查找字符串
COUNT - 统计字符串次数
FIELD - 字符串截取
LOCATE - 循环查找
TRIM - 字符串首尾的空格或指定字符
INDEX - 查找字符串首次出现的下标,从1开始计算
CHANGE - 改变字符串,替换多次
7. Database File
OPEN - 开表/开文件
READ - 读表/读文件
READU - 带锁读表/读文件
WRITE - 写表/写文件
RELEASE - 释放带锁的操作
8. XML
READXML - 读取XMLRECORD操作
WRITEXML - 写入XMLRECORD操作
9. Sequential File
OPENSEQ - 打开顺序文件
READSEQ - 读取顺序文件
WRITESEQ - 写入顺序文件
10. Date Time
TIMEDATE - 获取当前系统日期和时间
TIMESTAMP - 获取当前系统日期和时间,以时间戳字符串返回
11. I/O Stream
CRT - 打印输出
PRINT - 打印输出
ECHO - 打印输出
INPUT - 接收输入
12. Thread
SLEEP - 线程中睡眠等待指定时间,定时任务
PUASE - 线程中等待用户按键后继续执行,等待用户交互
13. Format
FMT - 格式化
OCONV - 日期的格式化
ICONV - 将字符串转换为数值或日期
CONVERT - 字符串转换、替换
14. Sort
SORT - 数组排序
MAXIMUM - 查找最大值
MINIMUM - 查找最小值
15. Regular
REGEXP - 正则表达式匹配字符串
MATCHS - 字符串全匹配字符串
MATCHFIELD - 动态数组匹配字符串
16. Encrypt
DECRYPT - 加密函数,AES/DES/Base64
ENCRYPT - 解密函数
17. Encoding
UTF8 - Unicode 字符编码方式
ASCII - 字符串转ASCII码表
CHARS - 生成重复N次字符串
CHAR - ASCII码表转字符串
四、T24 Jbase Basic思维脑图
五、T24 Jbase Basic工作运行图
六、T24 Jbase Basic程序编译与运行
1. tCompile - 编译程序
例如: tCompile EX
EX - 是BASIC program的名称,可独立运行,如同Java里面的Main
2. tRun - 运行程序
2.1. tRun EX - 登录T24后台GUI界面
EX - 是一个T24 Core Program用于进入后台GUI用户交互界面登录T24系统。
BK - 退出T24后台GUI界面
2.2. tRun tSS TWS - 带OFSSOURCE参数执行T24 OFS命令
tSS - 是一个T24 Core Program用于进入执行T24 OFS命令,TWS 是一个入参参数,它是创建在OFS.SOURCE表中的记录。
OFS.CALL.BULK.MANAGER / OFS.BULK.MANAGER - 同步OFS事务一致性
OFS消息处理一错将全错并回滚已成功的处理。tSS程序是调用OFS.BULK.MANAGER OFS事务一致性处理,将批量OFS消息作为单一一个请求数据库交易。
OFS.POST.MESSAGE - 异步OFS事务一致性
OFS消息处理互不影响。请求存储在OFS.MESSAGE.QUEUE排队,依次等待自动服务OFS.MESSAGE.SERVICE处理OFS消息。
3. T24 Classic经典GUI界面的命令
1. 记录编辑:
<Enter> - 下一行 或下移字段
Ctrl + F + <Enter> - 移动下一页(Forward)
Ctrl + B + <Enter> - 移动上一页(Back)
Ctrl + E + <Enter> - 移动到最后一页(End)
Field Number (Example : To move to field number 1) - 移动到 single value字段
Field Number.Multi value position (Example : 1.1) - 移动到 multi value字段
Field Number.Sub value position (Example : 1.1.1) - 移动到 sub value字段
2. 记录操作:
Ctrl + E + <Enter> - 退出记录(Return)
Ctrl + V + <Enter> - 提交记录(Validation)
Ctrl + VV + <Enter> - 提交并校验记录(Validation & Verify )
Ctrl + U + <Enter> - 退出不保存记录
Ctrl + K + <Enter> - 退出编辑,不保存记录
七、T24 Jbase jQL语句
例如:CUSTOMER表中张三的客户ID为123456
1. LIST - 列出记录,仅查看
LIST F.CUSTOMER WITH @ID EQ ‘123456’ --查找张三的客户ID
LIST F.CUSTOMER WITH @ID NE ‘123456’ --查找不等于张三的客户ID
LIST F.CUSTOMER WITH @ID LIKE ‘...2345...’ --模糊查找客户ID
2. SELECT - 选中记录,后续有操作
SELECT F.CUSTOMER WITH @ID EQ ‘123456’ --查找张三的客户ID
SELECT F.CUSTOMER WITH @ID NE ‘123456’ --查找不等于张三的客户ID
SELECT F.CUSTOMER WITH @ID LIKE ‘...2345...’ --模糊查找客户ID
LIST与SELECT是相似的,用途不同,按需选择。
3. COUNT - 统计记录
SELECT F.CUSTOMER WITH @ID LIKE ‘...2345...’ --模糊查找客户ID有多少条记录。
关键字LIKE,相当于Oracle中的%百分符合,替换为3个点号,如:...使用,在查找的字符串左右两边带上...是通配符,达到模糊查询目的。
八、T24 Jbase JED Editor编辑器
1. T24 JED用途
T24 JED是一个文本编辑器工具,常用修改记录,默认是命令模式,用于执行编辑命令,区分大小写。
2. T24 JED 模式切换
从命令模式进入插入模式:按 I 键(Insert)。
从插入模式返回命令模式:按 ESC 键。
3. T24 JED 命令
i {line number} = insert line
d {line number} = delete line
b = backward to previous page
f = forward to next page
d = delete the whole record
r = reload record
c = cancel modifications
s = save modifications
x = exit
4. T24 JED 使用
tJed F.CUSTOMER ‘123456’ --编辑张三这个客户在客户CUSTOMER表的123456记录.
九、T24 OFS消息
1. T24 OFS是什么
T24 OFS (Open Financial Service)中文名称:开放金融服务,是 T24 定义的标准化消息格式,用于系统间的数据交换(类似 API ),OFS请求模块采用典型的 “请求 - 响应” 模式,“请求 - 响应” 机制确保了交互的同步性和可追溯性(如:实时转账、余额查询场景),OFS也是T24的网关,只有通过T24统一的网关,外围系统需要遵循T24 OFS 规范才能交互,这样避免外围数据传输安全性,和减少T24内部程序开发,即可支持对外围系统的扩展性。
2. T24 OFS 请求
2.1. OFS查询类
例如场景:张三准备汇款CNY币种给李四的账号USD币种,查询外汇牌价。
ENQUIRY.SELECT,,INPUTER,ENQ.CCY,CURRENCY.CODE:EQ=CNY,
解释:
ENUIRY.SELECT - 固定结构
, - OFS分隔符
INPUTER - 用户信息
ENQ.CCY - 查询名称
CURRENCY.CODE - 查询的字段名
EQ - 查询条件
CNY - 查询数据
2.2. OFS交易类
场景:张三的账号1234567890在2025/02/28日转出CNY币种80000.01元给李四的账号USD币种账户9876543210,并且张三汇款时用了3句话通过附言栏位告诉李四。
案例:FUNDS.TRANSFER,RAD/I/PROCESS/1/0,INPUTER/******/CN0000001,,TRANSACTION.TYPE:1:1=AC,DEBIT.ACCT.NO:1:1=1234567890,DEBIT.CURRENCY:1:1=CNY,DEBIT.AMOUNT:1:1=80000.01,DEBIT.VALUE.DATE:1:1=20250228,CREDIT.ACCT.NO:1:1=9876543210,CREDIT.CURRENCY:1:1=USD,PAYMENT.DETAILS:1:1=昨天的失意与辉煌,都已成为行囊里的沉淀。,PAYMENT.DETAILS:2:1=今天是唯一握在掌心的真实,每一秒的专注都在为梦想铺路。,PAYMENT.DETAILS:3:1=明天的模样,藏在今天的每一个选择里。,
解释:
FUNDS.TRANSFER - 应用名称(Application)
, - 逗号,是OFS数据分隔符
/ - 斜杠,是OFS数据分隔符
RAD - 视图名称(Version)名称
I - 处理指令(I - 输入Input,S - 查询See,R - 冲销Reverse,D - 删除Delete,A - 授权Authorise)
PROCESS - 处理类型(PROCESS - 处理Process,VALIDATION - 校验Validation)
1 - 控制值(GTS.CONTROL定义的值,包括:空值,1,2,3,4)
空值 (Errors Rejected / Approve Overrides)
1 (Errors on HLD / Approve Overrides)
2 (Errors Rejected / Overrides in HLD)
3 (Errors in HLD / Overrides HLD)
4 (Hold Only)
0 - 授权次数(NO.OF.AUTHORISERS授权次数的值)
3. T24 OFS 响应
3.1. OFS查询类
CCY::CCY/DESC::DESC/CURRENCY.MARKET::CURRENCY.MARKET/BUY.RATE::Buy Rate/SELL.RATE::Sell Rate/REVAL.RATE::Book Rate/L.FAR.POINT.BUY::Far Point Bid/L.FAR.POINT.SEL::Far Point Ask/L.BN.SPOT.BUY::FMD Spot Rate Bid/L.BN.SPOT.SELL::FMD Spot Rate Ask/L.MKT.SPOT.BUY::Mkt Spot Rate Bid/L.MKT.SPOT.SELL::Mkt Spot Rate Ask/L.MKT.TDY.BUY::Mkt Today Rate Bid/L.MKT.TDY.SELL::Mkt Today Rate Ask/BUY.RATE.VAL::BUY RATE/SELL.RATE.VAL::SELL RATE/L.ONSHORE.BOOK::Onshore Book,"CNY" "Renminbi" "1" "1.0000" "1.0000" "" "-8.9" "-8.4" "1" "1" "7.8498" "7.85" "7.853156" "7.853456" "" "" "",
3.2. OFS交易类
案例:
FT25001XPWDSNQ//1,PAYMENT.DETAILS:1:1=昨天的失意与辉煌,都已成为行囊里的沉淀。,PAYMENT.DETAILS:2:1=今天是唯一握在掌心的真实,每一秒的专注都在为梦想铺路。,PAYMENT.DETAILS:3:1=明天的模样,藏在今天的每一个选择里。,...
解释:
FT25001XPWDSNQ - 返回交易ID,例如FUNDS.TRANSFER表的交易ID
空值 - 返回消息ID,存储在OFS.REQUEST.DETAIL表
1 - 指示成功与失败的指示器(包括: 1,-1,-2,-3)
1 Successful transaction.
-1 Errors encountered during processing.
-2 Override condition (s) encountered during processing.
-3 T24 server is offline.
PAYMENT.DETAILS:1:1=XXX - 返回消息数据
返回消息数据结构:
如:PAYMENT.DETAILS:3:1="明天的模样,藏在今天的每一个选择里"。
PAYMENT.DETAILS - Field Name
3 - Multi Value Number
1 - Sub Value Number
"明天的模样,藏在今天的每一个选择里" - Field Value
4. T24 OFS 转义字符
T24 OFS字符串中6个转义字符不能直接作为数据,需要通过转义字符替换处理请求。
Character | Character description | OFS Replacement character | Replacement character description |
, | comma | ? | Question mark |
' | single quote | @ | at |
" | double quote | | | pipeline |
() | round parenthesis | {} | curled brackets |
/ | slash | ^ | caret |
十、T24 COB日终批量
T24 核心COB批量作业程序拆分有 5 个 Batch stages,它们依次顺序执行5个阶段,从前到后依次顺序执行的名字分别是:‘A’, ‘S’, ‘R’, ‘D’, ‘O’。
在5个阶段里面,又分别定义了3位子序列号(000-999),该序列号内部将会顺序依次执行。
所有编排在Batch Stage的记录都定义在BATCH表。
依次顺序,例如:A000、A001、A002、S000、R000、D000、O000、O999
A000阶段
T24 COB初始化将从A000开始,DATES表的Co Batch Status全部由 O 模式转成 B 模式,停止分行机构在Browser界面处理交易。
O - Online
B - Batch
A001阶段
初始化COB将从A000开始,后执行A001 Job Name:EB.CYCLE.DATES作业时,T24将执行Date Change的核心程序,此Job将DATES表<company>所有记录拆分2个一模一样<company>-COB记录(如第一次运行将创建,如已经创建后不再创建),<company>记录将根据HOLIDAY表中设置W的指示,将当前<company>的工作日滚动切换为下一个工作日,更新TODAY字段,对<company>-COB的工作日不更新。
对于7*24小时在线联机的交易而言,将会采用<company>记录已经更新的TODAY字段进行计息进行处理。
对于NS (Non Stop)处理交易而言,也将会采用更新后<company>记录的TODAY字段进行计息进行处理,差异点就是带有NS的应用不会受到COB影响,可以不停机处理交易。
D000阶段
当COB依次执行到D000阶段时,在执行D000 Job Name:B.DATE.CHANGE作业时,所有DATES表<company>-COB记录的工作日全部滚动下一个工作日,至此所有DATES记录的TODAY字段全部一致。
O000阶段
当COB依次执行到O000阶段时,在执行O000 Job Name:RESET.CO.STATUS作业时,更新所有DATES表的Co Batch Status全部由 B 模式转成 O 模式,恢复分行机构在Browser界面处理交易。
O - Online
B - Batch
O999阶段
当COB依次执行到O999阶段时,在执行O999 Job Name:BATCH.DATE.RESET作业时,重置所有作业的Next Run Date,完成COB。
tSM - T24 Service Manager
每一台应用服务器都有一个tSM,一个tSM将监控当前服务器下所有tSA。
调试命令如:START.TSM -DEBUG
TSM与COB都分别是一个服务名,它们分别定义在TSA.SERVICE表。
tSA - T24 Service Agent
一台应用服务器可以允许有多条tSA进程。
调试命令如:tSA 1 -DEBUG
十一、T24 BCON包部署-保存/释放
tRun EX
FATAL ERROR FROM T24.INITIALISE INVALID TERMINAL MODEL & DEFAULT
tRun EBS.TERMINAL.SELECT
DL.DEFINE
..\&SAVEDLISTS\& - BCON包数据定义目录
BUILD.CONTROL
../F.BCON.DATA/SAVE/ - BCON包数据保存目录
../F.BCON.DATA/RELEASE/ - BCON包数据释放目录
十二、T24 核心参数表
SPF
T24核心系统中的最核心的一张表,它存储了T24版本,产品,服务,机构,许可证,日期等等关键信息。
COMPANY
T24核心系统中的核心机构表。
CCGGGLLLL | Descriptions | Example |
CC | Country Code | Capital letters in the range A-Z. Must be the ID of an existing record in the COUNTRY table. |
GGG | Company Group Code | 3 numeric characters in the range 001-999. |
LLLL | Local Code | 4 numeric characters in the range 0001-9999 |
HOLIDAY
T24核心系统中的核心节假日表。它的ID记录是<company>分支行机构ID,每一个ID并跟随4位年份组合,在每年里面又拆分为12个月,并把每个月拆分为31天,并通过W,H,X定义是否工作日、节假日、无效日。
MONTH | Descriptions | Example |
W | Working day | |
H | non-working day | |
X | non-existent day | e.g. February 31th |
DATES
T24核心系统中的核心日期表。它的ID记录是<company>分支行机构ID,每一个ID记录里面有TODAY、LAST.WORDKING.DAY、NEXT.WORKING.DAY、CO.BATCH.STATUS及JULIAN.DATE等等信息。
PGM.FILE
T24核心系统中的程序文件表。Program FIle是定义程序文件的表,把表的类型划分为各式各样。
TYPE | Descriptions |
H | History, Unauthorised + Live file |
U | Unauthorised + Live file |
L | Live only |
T | Table |
W | Workfile |
B | Batch job |
M | Main Line program (no file) |
A | Access to T24 Environment |
S | Subroutine |
R | Report Generator routine. |
FILE.CONTROL
T24核心系统中的文件控制表。定义在FIle Control都是一个T24的Application 应用名称,即:表。
CLASSIFICATION | Descriptions |
INT | Installation |
CUS | Customer |
CST | Customer Table |
FIN | Financial |
FTD | Financial Table Descriptive |
FTF | Financial Table Financial |
CCY | Currency |
NOS | Nostro |
常见的表后缀:
SUFFIXES | Descriptions |
$NAU | Unauthorised File |
$HIS | History File |
$DEL | Delete FIle |
STANDARD.SELECTION
T24核心系统中的字典表。简称SS字典表,对应Oracle数据库的VOC表,在TAFJ架构下,即:TAFJ_VOC表定义了所有T24表。
SELECT * FROM FBNK_TARGET;
<row id="10">
<c1>Normal</c1>
<c2>Normal</c2>
<c4>3</c4>
<c5>37997_BUILDUSER1__OFS_BUILD.CONTROL_1001</c5>
<c6>1706200953</c6>
<c7>37997_BUILDUSER1_OFS_BUILD.CONTROL_1001</c7>
<c8>HK0011999</c8>
<c9>1</c9>
<c501>TARGET,RAD</c501>
</row>
VERSION.CONTROL
T24核心系统中的应用控制表。
GTS.CONTROL | Descriptions |
<NULL> | Errors Rejected / Approve Overrides |
1 | Errors on HLD / Approve Overrides |
2 | Errors Rejected / Overrides in HLD |
3 | Errors in HLD / Overrides HLD |
4 | Hold Only |
VERSION
T24核心系统中的应用视图表。
Data | Description |
I | Input |
A | Authorise |
C | Copy |
R | Reverse |
D | Delete |
H | History Restore |
ENQUIRY
T24核心系统中的查询表。
Condition | Description |
EQ | equals |
NE | not equals to |
GT | greater than |
GE | greater than or equals |
LT | less than |
LE | less than or equals |
RG | rage |
NR | not |
LK | like |
UL | un like |