网友通过本文主要向大家介绍了as400开发,as400,as400系统,as400是什么,ibm as400等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
AS400银行核心系统开发中的技术总结--交易和组件写法
*交易和组件写法
Firebird核心系统的整体结构,是由主控--交易--组件这几个层次组成的。联机交易主控由C程序编写,异步交易主控和日终批量主控由CL和RPGLE程序编写。主控通过交易码调用相应的交易RPGLE程序,交易程序又通过CALLP调用不同模块的组件RPGLE程序,完成整个处理逻辑。交易程序和组件程序都总结了一套模版样例,下面就介绍样例程序的写法。
在介绍交易和组件程序写法之前,先介绍统一由/COPY引入的通用程序,这部分程序放在DSCPPGM中。注意/COPY不宜滥用,一定要结合命名规范,否则极易导致程序可读性差。
首先是HEAD。这个文件定义了copyright和几个日期fmt规则。
- **BEGIN***************************************************************
- **程序名称:程序公共控制头 *
- **功能描述:程序公共控制头 *
- ** *
- **版本:2014-10-21_1 *
- ** *
- **设计人员:PACMAN 开发人员:AUTOGEN *
- **设计日期:2011-08-30 开发日期:2011-08-30 *
- ** *
- **END*****************************************************************
- **
- HCOPYRIGHT('Firebird V2.1 corebanking system, CSW SHANGHAI')
- HDATFMT(*ISO) TIMFMT(*ISO) DATEDIT(*YMD)
接下来是PGDS,这个文件定义了每个程序都会引入的PSDS和INFDS结构定义,错误结构定义,错误信息数组,接口数组条数,以及特殊用途变量等。
- **BEGIN***************************************************************
- **程序名称:程序公共控制头 *
- **功能描述:程序公共控制头 *
- ** *
- **版本:2014-11-23_1 *
- ** *
- **设计人员:PACMAN 开发人员:AUTOGEN *
- **设计日期:2011-08-30 开发日期:2011-08-30 *
- ** *
- **END*****************************************************************
- **
- **公共常量
- **输出传票数组条数
- DC_NBOTVC C CONST(100)
- **输入券别数组条数
- DC_NBINCS C CONST(30)
- **输入费用数组条数
- DC_NBINFE C CONST(30)
- **输出费用数组条数
- DC_NBOTFE C CONST(30)
- **替换错误参数条数
- DC_NBMSDS C CONST(9)
- **记录被锁错误信息
- DC_MGLOCK C CONST('记录被锁')
- **********************************************************************
- **错误处理结构
- **程序状态结构
- DRPGPSDS SDS
- D PG_MAINPROC 1 10A
- D PG_STATUS 11 15A
- D PG_PRVSTAT 16 20A
- D PG_SRCLINE 21 28A
- D PG_ROUTINE 29 36A
- D PG_PARMNUM 37 39S 0
- D PG_MSID 40 46A
- D PG_PGMLIB 81 90A
- D PG_EXCPDT 91 170A
- D PG_LSERRFL 175 184A
- D PG_JOBDATE 191 198A
- D PG_FLINFO 209 243A
- D PG_JOBNAME 244 253A
- D PG_JOBUSER 254 263A
- D PG_JOBNUM 264 269S 0
- D PG_RUNDATE 276 281S 0
- D PG_RUNTIME 282 287S 0
- D PG_SRCFILE 304 313A
- D PG_SRCLIB 314 323A
- D PG_SRCMBR 324 333A
- D PG_PGMNAME 334 343A
- D PG_MODNAME 344 353A
- D PG_SRCLNADD 354 355B 0
- D PG_FLILNADD 356 357B 0
- D PG_USRPRF 358 367A
- D PG_EXTERR 368 371I 0
- **文件状态结构
- DFILESDS DS BASED(FILEDSP)
- D FL_FILE 1 8A
- D FL_OPNIND 9 9A
- D FL_EOFIND 10 10A
- D FL_STATUS 11 15S 0
- D FL_OPCODE 16 21A
- D FL_ROUTINE 22 29A
- D FL_SRCLINE 30 37A
- D FL_RECORD 38 45A
- D FL_MSID 46 52A
- D FL_SRCLNADD 77 78B 0
- D FL_ODPTYPE 81 82A
- D FL_FILENAME 83 92A
- D FL_LIBRARY 93 102A
- D FL_SPLFILE 103 112A
- D FL_SPLLIB 113 122A
- D FL_RCDLEN 125 126I 0
- D FL_KEYLEN 127 128I 0
- D FL_MEMBER 129 138A
- D FL_TYPE 147 148I 0
- D FL_RCDNUM 156 159I 0
- D FL_SPLNUM 160 163I 0
- D FL_OVERFLOW 188 189I 0
- D FL_BASEDMBRS 211 212I 0
- D FL_OPENID 214 215B 0
- D FL_RCDFMTLEN 216 217I 0
- D FL_CCSID 218 219I 0
- D FL_FBSIZE 367 370I 0
- D FL_KEYNUM 387 388I 0
- D FL_FBKEYLEN 393 394I 0
- D FL_MBRNUM 395 396I 0
- D FL_RRN 397 400I 0
- D FL_KEY 401 2400A
- **文件状态结构指针
- DFILEDSP S *
- **********************************************************************
- **公共结构
- **引入数据字典
- DDICT E DS EXTNAME(DICT) QUALIFIED TEMPLATE
- **公共错误信息接口
- DPMG E DS EXTNAME(MESG) QUALIFIED
- **错误信息替换数组
- DA_MSDS S DIM(C_NBMSDS) LIKE(DICT.@@MSDS)
- **********************************************************************
- **特殊变量
- **是否执行过错误处理程序
- DPG_ERYNFG S LIKE(DICT.@@YNFG) INZ(YNFG_NO)
- **是否程序已执行初始化
- DPG_FRYNFG S LIKE(DICT.@@YNFG) INZ(YNFG_YES)
- **BEGIN***************************************************************
- **程序名称:程序公共子程序 *
- **功能描述:程序公共子程序 *
- ** *
- **版本:2014-10-21_1 *
- ** *
- **设计人员:PACMAN 开发人员:AUTOGEN *
- **设计日期:2011-08-30 开发日期:2011-08-30 *
- ** *
- **END*****************************************************************
- **
- **********************************************************************
- ** #E