AS400开发初阶
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIQUE控制索引键字唯一
…
(2)记录定义
*定义记录
名称类型为R
R RCDNAME
*记录级关键字
FORMAT(PFNAME)记录结构参照自PFNAME的记录结构
….
(3)字段定义
*字段名
*字段类型
P-压缩型数字
S-区位型数字
‘’或A-字符
L-日期
T-时间
O-支持汉字的字符
*字段级关键字
COLHDG(‘字段描述’)
F3
(7)结束调试
ENDDBG
2
2.1
DDS(数据描述规范)是一种源码,是创建物理文件、逻辑文件、显示文件等源码。
使用PDM编写DDS
2.2
物理文件是存放实际数据的数据库文件。
源码类型:PF
PF DDS的内容分4部分
(1)文件级关键字
作用范围:整个PF
REF(PFNAME)字段定义参照自PFNAME的字段
数据类型
空/A字符
D日期
P/S压缩/区位数字
T时间
*指针
小数位长度
关键字
3.3.2
定义常量
NameTypeTo/LengthDataTypeDecPosKeywords
C_VAR C'HELLO'
定义字符变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_STRS10A
5.注意”Sv”中,不为00的项目,即为编译不通过错误语句
6.查看源码中错误语句,在Find栏中,敲入”Sv”不为00的Msg id,例如RNF7030,然后按F16搜索源码,定位在出错的源码语句
7.退出SPOOL FILE,重新进入源码编辑,修改源码
8.重新编译
*程序执行
CALLPGM(MYLIB/MYPGM) PARM(“PARM1” “PARM2” “PARM3”)
6.退出PDM
(1)按F12,退回上一级
(2)按F3,退到PDM菜单
1.2.3
*启动编辑器:STRSEU命令/PDM
*编辑界面分三部分
行序号——系统产生
数据内容——用户编辑
最后修改日期——系统产生
*左移屏幕F19;右移屏幕F20;
*编辑命令(在行序号上敲入命令)
1.位置
A-在当前行后
B-在当前行前
2.插入行
go CMDxxx xxx代表命令含义的缩写,例如想看与库有关的命令,go cmdlib
1.2
概念
作业:AS/400所有程序运行以JOB方式
命令:wrkactjob
子系统(subsystem):在OS/400中的一个作业运行环境,该运行环境定义一定的资源,如CPU,内存,IO等。在OS/400中可以定义多个子系统
2.4
RUNQRY
浏览数据库文件
RUNQRY QRYFILE((AM1))
RUNQRY QRYFILE((AM1)) RCDSLT(*YES)
UPDDTA
UPDDTA FILE(BANKDTA/MYPF)
增加/更新/删除记录
1.F9当前插入记录
2.F23删除当前记录
3.回车更新当前记录
4.F3退出
STRSQL
NameTypeTo/LengthDataTypeDecPosKeywords
ACCTDS
CUNO 10 A
ACSF 5 A
3.4
3.4.1
每一行C源码结构:
Lvl N01Factor 1OpCodeFactor 2ResultLenDecHiLoEqComment
指令因子1
指令操作码
指令因子2
执行结果
(4)索引键字
如果有索引键字定义,则该数据库文件包含索引
名称类型为K
可以有多个键字
编译DDS,创建PF
CRTPF命令
或14
2.3
逻辑文件是索引文件
(1)文件级关键字
UNIQUE控制索引键字唯一
(2)记录级关键字
PFILE(PFNAME)逻辑文件对应的物理文件
(3)索引键字
名字类型K
可以有多个索引键字
长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
小数位长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
执行SQL语句
3
RPGLE的结构分为以下几部分
3.1
3.2
每一行Байду номын сангаас源码结构:
FNameTypeDesigEOFA/USeqFmtLmtsRATDeviceKeywordsComment
定义格式:
文件名字
使用类型
I只读
O只写,不能更新
U更新
文件指定
F全过程文件
文件添加
A文件可以进行记录
文件格式
E外部描述文件
AS/400开发初阶
1
1.1
对象
AS/400的操作对象称为:Object。
Object包括的信息:
1.包含该对象的库
2.对象名
3.对象类型(*PGM,*FILE,…)
4.对象的属性(对于*FILE,有LF,PF-DTA,PRTF,DSPF)
5.拥有该对象的用户权限
AS/400的对象由(库/对象名/对象类型)唯一确定。
I-在当前行后,插入一空行
3.删除行
D-删除当前行
4.删除行块
DD-在行块的首行位置,键入DD
DD-在行块的尾行位置,键入DD
回车
5.拷贝行
C-在要拷贝的行位置,键入C
A/B-拷贝到目标位置的后/前
回车
6.拷贝行块
CC-在行块的首行位置,键入CC
CC-在行块的尾行位置,键入CC
A/B-拷贝到目标行位置的后/前
回车
*存盘
在SEU命令行,键入SAVE
*退出SEU
F3
1.2.4
*程序类型
C
CL
CLLE
RPGLE
*创建程序源码
2.创建一个源码库
CRTLIB LIB(MYLIB)
3.创建一个源码文件
CRTSRCPF FILE(MYLIB/MYSRCPF) RCDLEN(112) IGCDTA(*YES)
4.创建一个源码成员
(1)按F6,创建新源码库
(2)在指定的库,键入12,进入该源码库
4.显示该指定源码库的所有源码文件
(1)按F6,创建新源码文件
(2)键入12,进入指定的源码文件
5.显示该源码文件下的所有源码成员
(1)按F6,创建新的源码成员
(2)键入2,编辑源码
(3)键入3,拷贝源码
(4)键入4,删除源码
(5)键入5,显示源码
作业标识:Job name/Job user/Job Number
F11可看到
5-work with看
作业类型:BCH,INT
作业功能:PGM-QEZSCNEP,CMD-WRKACTJOB,MNU-MAIN
作业状态:RUN,DSPW,DEQW,MSGW
常用命令
管理活动作业:wrkactjob
管理某一作业:wrkjob job(Number/User/Name);
定义数值变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_NUMS14S2
小数点定义要右对齐、
定义日期变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_DATESD
系统默认使用*ISO日期格式,即2002-09-21格式
定义时间变量
查看一般流程:
1.进入SPOOL FILE
2.在Control栏敲入”b”,(bottom),翻到SPOOL FILE的最后
3.在Message Totals:项中,如果没有(警告/错误/严重错误)的信息,则表示编译通过
Warning (10) . . . . . . . : 0
Error (20) . . . . . . . : 0
CALL PGM(BANKOBJ/MYRPGLE)
(5)调试命令
*单步执行F10
*多步执行F12
*可以重新设置/取消断点F6
*显示变量值VAR1
方法1.将光标移到该变量VAR1,按F11
方法2.在debug命令行,键入EVAL VAR1
*改变变量值VAR1
EVAL VAR1=xxxxxx
(6)退出程序
当前作业库列表的常用命令:
dsplibl
edtlibl
addlible
汉字支持
使用汉字支持:CHGSYSLIBL QSYS2989
不使用汉字支持:CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
命令菜单
OS/400中,进入一个菜单,用go menuName
查看某一相关的命令
常用系统MSGF:QCPFMSG
1.2.1
1.2.2
PDM是AS/400的集成开发环境
AS/400的程序文件结构
库(libraries)/源码文件(objects)/源码成员(members)(程序源码)
使用PDM
1.进入PDM命令
STRPDM
2.显示PDM的菜单,选1,并键入指定源码库
3.显示该指定源码库
CL,CLLE程序,使用CRTBNDCL命令
PDM中,编译快捷命令
14编译
CP RPGLE的编译
CQ SQLRPGLE的编译
*程序编译出错
查编译信息:
使用编译产生的SPOOL FILE,它是一个文本文件,报告编译过程中的相关信息。
用WRKSPLF命令,列出本交互作业的所有SPOOL FILE,找出名字与程序名字相同的最后一个SPOOL FILE,就是最后一次编译所产生的SPOOL FILE。
Severe Error (30+) . . . . . . : 0
4.如果编译不通过,往前翻一页,按PgUp键,查看错误报告
Msg id Sv Number Message text
*RNF7031 00 108 xxxxxxxx
*RNF7066 00 1 xxxxxxxx
*RNF7030 30 1 xxxxxxxx
关闭COMMIT:ENDCMTCTL
USROPN用户程序自定义打开。
如果没有该关键字,程序打开时就打开文件。
3.3
每一行D源码结构:
NameE S/UTypeFromTo/LengthDataTypeDecPosKeywordsComment
3.3.1
数据名称
说明类型
C常量
S独立变量
DS数据结构
长度
管理当前作业:wrkjob; <shift>+<Esc>+3进入dspjob命令
终止作业:wrkactjob+4+option(*immed);
终止当前作业的当前运行程序(例如程序死锁):<shift>+<Esc>+2*immed
查看作业日志:dspjoblog;wrkjob; <shift>+<Esc>+3先进入dspjob命令,在选10
编写源码行,就相当于往数据库添加记录
(2)程序源码是源码文件中的一个源码成员,源码文件可以包括多个源码成员
*程序编译
RPGLE程序,使用CRTBNDRPG命令
CRTBNDRPG PGM(PGMLIB/MYPGM) SRCFILE(MYSRCPF/MYSRCMBR)
SQLRPGLEC程序,使用CRTSQLRPGI命令
STRSEU SRCFILE(MYLIB/MYSRCPF) SRCMBR(MYSRCMBR) TYPE(RPGLE)
备注:
(1)源码文件其实是一种类型的数据库文件,该数据库的记录结构由3个字段构成:
字段名类型长度
SRCSEQ数字6,2源码行序号
SRCDAT数字6源码行最后修改日期
SRCDTA字符100源码行内容
查看作业打开的文件:dspjoblog+14
查看作业的库列表:dspjoblog+13
当查看JOB的LOG的信息
1.显示作业的LOG列表
2.将光标移到某行信息,按F1看详细信息
3.看该信息由那一程序产生。再按F9
4.AS/400的信息文件(MSGF,由应用EC/系统定义)
WRKMSGF命令
后台业务系统的MSGF:EC
地址类型
空不使用索引语句,不能用CHAIN,SETxx语句
K使用索引语句
设备
DISK数据库文件
关键字
PREFIX(xxx)引用数据库字段前加前缀xxx
COMMIT使用数据更新的确认/回滚机制
程序中使用COMMIT,该作业必须事先启动COMMIT控制
启动COMMIT:STRCMTCTLLCKLVL(*CHG)
*程序调试
使用源码调试的程序,使用编译命令编译时参数DBGVIEW不能为*STMT
(1)启动调试
STRDBG PGM(PGMLIB/PGMOBJ)UPDPROD(*YES)
(2)设置调试断点
将光标停在断点源码行,按F6。如要取消断点,再按F6
可以设置多个断点
(3)完成设置断点后,退出
(4)调用程序,进入程序并停在断点
NameTypeTo/LengthDataTypeDecPosKeywords
V_TIMEST
定义数组
定义有10个元素的字符数组
NameTypeTo/LengthDataTypeDecPosKeywords
V_DIMS10 ADIM(10)
数组元素使用,建议使用RPG IV的格式。
V_DIM(N)
定义数据结构
查看某对象:WRKOBJ
库
库也是一种对象,相当于AS/400的目录。
DOS目录有多级,即目录下有目录。但库只有一级,库下不能有库。
AS/400的文件系统只有3级:库->文件->成员;
例如在APPLIB库下有APPPF的文件,表示为APPLIB/APPPF。
创建库:CRTLIB
库列表
相当于作业的工作目录,类似于DOS的PATH
…
(2)记录定义
*定义记录
名称类型为R
R RCDNAME
*记录级关键字
FORMAT(PFNAME)记录结构参照自PFNAME的记录结构
….
(3)字段定义
*字段名
*字段类型
P-压缩型数字
S-区位型数字
‘’或A-字符
L-日期
T-时间
O-支持汉字的字符
*字段级关键字
COLHDG(‘字段描述’)
F3
(7)结束调试
ENDDBG
2
2.1
DDS(数据描述规范)是一种源码,是创建物理文件、逻辑文件、显示文件等源码。
使用PDM编写DDS
2.2
物理文件是存放实际数据的数据库文件。
源码类型:PF
PF DDS的内容分4部分
(1)文件级关键字
作用范围:整个PF
REF(PFNAME)字段定义参照自PFNAME的字段
数据类型
空/A字符
D日期
P/S压缩/区位数字
T时间
*指针
小数位长度
关键字
3.3.2
定义常量
NameTypeTo/LengthDataTypeDecPosKeywords
C_VAR C'HELLO'
定义字符变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_STRS10A
5.注意”Sv”中,不为00的项目,即为编译不通过错误语句
6.查看源码中错误语句,在Find栏中,敲入”Sv”不为00的Msg id,例如RNF7030,然后按F16搜索源码,定位在出错的源码语句
7.退出SPOOL FILE,重新进入源码编辑,修改源码
8.重新编译
*程序执行
CALLPGM(MYLIB/MYPGM) PARM(“PARM1” “PARM2” “PARM3”)
6.退出PDM
(1)按F12,退回上一级
(2)按F3,退到PDM菜单
1.2.3
*启动编辑器:STRSEU命令/PDM
*编辑界面分三部分
行序号——系统产生
数据内容——用户编辑
最后修改日期——系统产生
*左移屏幕F19;右移屏幕F20;
*编辑命令(在行序号上敲入命令)
1.位置
A-在当前行后
B-在当前行前
2.插入行
go CMDxxx xxx代表命令含义的缩写,例如想看与库有关的命令,go cmdlib
1.2
概念
作业:AS/400所有程序运行以JOB方式
命令:wrkactjob
子系统(subsystem):在OS/400中的一个作业运行环境,该运行环境定义一定的资源,如CPU,内存,IO等。在OS/400中可以定义多个子系统
2.4
RUNQRY
浏览数据库文件
RUNQRY QRYFILE((AM1))
RUNQRY QRYFILE((AM1)) RCDSLT(*YES)
UPDDTA
UPDDTA FILE(BANKDTA/MYPF)
增加/更新/删除记录
1.F9当前插入记录
2.F23删除当前记录
3.回车更新当前记录
4.F3退出
STRSQL
NameTypeTo/LengthDataTypeDecPosKeywords
ACCTDS
CUNO 10 A
ACSF 5 A
3.4
3.4.1
每一行C源码结构:
Lvl N01Factor 1OpCodeFactor 2ResultLenDecHiLoEqComment
指令因子1
指令操作码
指令因子2
执行结果
(4)索引键字
如果有索引键字定义,则该数据库文件包含索引
名称类型为K
可以有多个键字
编译DDS,创建PF
CRTPF命令
或14
2.3
逻辑文件是索引文件
(1)文件级关键字
UNIQUE控制索引键字唯一
(2)记录级关键字
PFILE(PFNAME)逻辑文件对应的物理文件
(3)索引键字
名字类型K
可以有多个索引键字
长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
小数位长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
执行SQL语句
3
RPGLE的结构分为以下几部分
3.1
3.2
每一行Байду номын сангаас源码结构:
FNameTypeDesigEOFA/USeqFmtLmtsRATDeviceKeywordsComment
定义格式:
文件名字
使用类型
I只读
O只写,不能更新
U更新
文件指定
F全过程文件
文件添加
A文件可以进行记录
文件格式
E外部描述文件
AS/400开发初阶
1
1.1
对象
AS/400的操作对象称为:Object。
Object包括的信息:
1.包含该对象的库
2.对象名
3.对象类型(*PGM,*FILE,…)
4.对象的属性(对于*FILE,有LF,PF-DTA,PRTF,DSPF)
5.拥有该对象的用户权限
AS/400的对象由(库/对象名/对象类型)唯一确定。
I-在当前行后,插入一空行
3.删除行
D-删除当前行
4.删除行块
DD-在行块的首行位置,键入DD
DD-在行块的尾行位置,键入DD
回车
5.拷贝行
C-在要拷贝的行位置,键入C
A/B-拷贝到目标位置的后/前
回车
6.拷贝行块
CC-在行块的首行位置,键入CC
CC-在行块的尾行位置,键入CC
A/B-拷贝到目标行位置的后/前
回车
*存盘
在SEU命令行,键入SAVE
*退出SEU
F3
1.2.4
*程序类型
C
CL
CLLE
RPGLE
*创建程序源码
2.创建一个源码库
CRTLIB LIB(MYLIB)
3.创建一个源码文件
CRTSRCPF FILE(MYLIB/MYSRCPF) RCDLEN(112) IGCDTA(*YES)
4.创建一个源码成员
(1)按F6,创建新源码库
(2)在指定的库,键入12,进入该源码库
4.显示该指定源码库的所有源码文件
(1)按F6,创建新源码文件
(2)键入12,进入指定的源码文件
5.显示该源码文件下的所有源码成员
(1)按F6,创建新的源码成员
(2)键入2,编辑源码
(3)键入3,拷贝源码
(4)键入4,删除源码
(5)键入5,显示源码
作业标识:Job name/Job user/Job Number
F11可看到
5-work with看
作业类型:BCH,INT
作业功能:PGM-QEZSCNEP,CMD-WRKACTJOB,MNU-MAIN
作业状态:RUN,DSPW,DEQW,MSGW
常用命令
管理活动作业:wrkactjob
管理某一作业:wrkjob job(Number/User/Name);
定义数值变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_NUMS14S2
小数点定义要右对齐、
定义日期变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_DATESD
系统默认使用*ISO日期格式,即2002-09-21格式
定义时间变量
查看一般流程:
1.进入SPOOL FILE
2.在Control栏敲入”b”,(bottom),翻到SPOOL FILE的最后
3.在Message Totals:项中,如果没有(警告/错误/严重错误)的信息,则表示编译通过
Warning (10) . . . . . . . : 0
Error (20) . . . . . . . : 0
CALL PGM(BANKOBJ/MYRPGLE)
(5)调试命令
*单步执行F10
*多步执行F12
*可以重新设置/取消断点F6
*显示变量值VAR1
方法1.将光标移到该变量VAR1,按F11
方法2.在debug命令行,键入EVAL VAR1
*改变变量值VAR1
EVAL VAR1=xxxxxx
(6)退出程序
当前作业库列表的常用命令:
dsplibl
edtlibl
addlible
汉字支持
使用汉字支持:CHGSYSLIBL QSYS2989
不使用汉字支持:CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
命令菜单
OS/400中,进入一个菜单,用go menuName
查看某一相关的命令
常用系统MSGF:QCPFMSG
1.2.1
1.2.2
PDM是AS/400的集成开发环境
AS/400的程序文件结构
库(libraries)/源码文件(objects)/源码成员(members)(程序源码)
使用PDM
1.进入PDM命令
STRPDM
2.显示PDM的菜单,选1,并键入指定源码库
3.显示该指定源码库
CL,CLLE程序,使用CRTBNDCL命令
PDM中,编译快捷命令
14编译
CP RPGLE的编译
CQ SQLRPGLE的编译
*程序编译出错
查编译信息:
使用编译产生的SPOOL FILE,它是一个文本文件,报告编译过程中的相关信息。
用WRKSPLF命令,列出本交互作业的所有SPOOL FILE,找出名字与程序名字相同的最后一个SPOOL FILE,就是最后一次编译所产生的SPOOL FILE。
Severe Error (30+) . . . . . . : 0
4.如果编译不通过,往前翻一页,按PgUp键,查看错误报告
Msg id Sv Number Message text
*RNF7031 00 108 xxxxxxxx
*RNF7066 00 1 xxxxxxxx
*RNF7030 30 1 xxxxxxxx
关闭COMMIT:ENDCMTCTL
USROPN用户程序自定义打开。
如果没有该关键字,程序打开时就打开文件。
3.3
每一行D源码结构:
NameE S/UTypeFromTo/LengthDataTypeDecPosKeywordsComment
3.3.1
数据名称
说明类型
C常量
S独立变量
DS数据结构
长度
管理当前作业:wrkjob; <shift>+<Esc>+3进入dspjob命令
终止作业:wrkactjob+4+option(*immed);
终止当前作业的当前运行程序(例如程序死锁):<shift>+<Esc>+2*immed
查看作业日志:dspjoblog;wrkjob; <shift>+<Esc>+3先进入dspjob命令,在选10
编写源码行,就相当于往数据库添加记录
(2)程序源码是源码文件中的一个源码成员,源码文件可以包括多个源码成员
*程序编译
RPGLE程序,使用CRTBNDRPG命令
CRTBNDRPG PGM(PGMLIB/MYPGM) SRCFILE(MYSRCPF/MYSRCMBR)
SQLRPGLEC程序,使用CRTSQLRPGI命令
STRSEU SRCFILE(MYLIB/MYSRCPF) SRCMBR(MYSRCMBR) TYPE(RPGLE)
备注:
(1)源码文件其实是一种类型的数据库文件,该数据库的记录结构由3个字段构成:
字段名类型长度
SRCSEQ数字6,2源码行序号
SRCDAT数字6源码行最后修改日期
SRCDTA字符100源码行内容
查看作业打开的文件:dspjoblog+14
查看作业的库列表:dspjoblog+13
当查看JOB的LOG的信息
1.显示作业的LOG列表
2.将光标移到某行信息,按F1看详细信息
3.看该信息由那一程序产生。再按F9
4.AS/400的信息文件(MSGF,由应用EC/系统定义)
WRKMSGF命令
后台业务系统的MSGF:EC
地址类型
空不使用索引语句,不能用CHAIN,SETxx语句
K使用索引语句
设备
DISK数据库文件
关键字
PREFIX(xxx)引用数据库字段前加前缀xxx
COMMIT使用数据更新的确认/回滚机制
程序中使用COMMIT,该作业必须事先启动COMMIT控制
启动COMMIT:STRCMTCTLLCKLVL(*CHG)
*程序调试
使用源码调试的程序,使用编译命令编译时参数DBGVIEW不能为*STMT
(1)启动调试
STRDBG PGM(PGMLIB/PGMOBJ)UPDPROD(*YES)
(2)设置调试断点
将光标停在断点源码行,按F6。如要取消断点,再按F6
可以设置多个断点
(3)完成设置断点后,退出
(4)调用程序,进入程序并停在断点
NameTypeTo/LengthDataTypeDecPosKeywords
V_TIMEST
定义数组
定义有10个元素的字符数组
NameTypeTo/LengthDataTypeDecPosKeywords
V_DIMS10 ADIM(10)
数组元素使用,建议使用RPG IV的格式。
V_DIM(N)
定义数据结构
查看某对象:WRKOBJ
库
库也是一种对象,相当于AS/400的目录。
DOS目录有多级,即目录下有目录。但库只有一级,库下不能有库。
AS/400的文件系统只有3级:库->文件->成员;
例如在APPLIB库下有APPPF的文件,表示为APPLIB/APPPF。
创建库:CRTLIB
库列表
相当于作业的工作目录,类似于DOS的PATH