当前位置:文档之家› AS400开发初阶

AS400开发初阶

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中可以定义多个子系统
查看一般流程:
1.进入SPOOL FILE
2.在Control栏敲入”b”,(bottom),翻到SPOOL FILE的最后
3.在Message Totals:项中,如果没有(警告/错误/严重错误)的信息,则表示编译通过
Warning (10) . . . . . . . : 0
Error (20) . . . . . . . : 0
*程序调试
使用源码调试的程序,使用编译命令编译时参数DBGVIEW不能为*STMT
(1)启动调试
STRDBG PGM(PGMLIB/PGMOBJ)UPDPROD(*YES)
(2)设置调试断点
将光标停在断点源码行,按F6。如要取消断点,再按F6
可以设置多个断点
(3)完成设置断点后,退出
(4)调用程序,进入程序并停在断点
数据类型
空/A字符
D日期
P/S压缩/区位数字
T时间
*指针
小数位长度
关键字
3.3.2
定义常量
NameTypeTo/LengthDataTypeDecPosKeywords
C_VAR C'HELLO'
定义字符变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_STRS10A
查看作业打开blog+13
当查看JOB的LOG的信息
1.显示作业的LOG列表
2.将光标移到某行信息,按F1看详细信息
3.看该信息由那一程序产生。再按F9
4.AS/400的信息文件(MSGF,由应用EC/系统定义)
WRKMSGF命令
后台业务系统的MSGF:EC
CALL PGM(BANKOBJ/MYRPGLE)
(5)调试命令
*单步执行F10
*多步执行F12
*可以重新设置/取消断点F6
*显示变量值VAR1
方法1.将光标移到该变量VAR1,按F11
方法2.在debug命令行,键入EVAL VAR1
*改变变量值VAR1
EVAL VAR1=xxxxxx
(6)退出程序
编写源码行,就相当于往数据库添加记录
(2)程序源码是源码文件中的一个源码成员,源码文件可以包括多个源码成员
*程序编译
RPGLE程序,使用CRTBNDRPG命令
CRTBNDRPG PGM(PGMLIB/MYPGM) SRCFILE(MYSRCPF/MYSRCMBR)
SQLRPGLEC程序,使用CRTSQLRPGI命令
Severe Error (30+) . . . . . . : 0
4.如果编译不通过,往前翻一页,按PgUp键,查看错误报告
Msg id Sv Number Message text
*RNF7031 00 108 xxxxxxxx
*RNF7066 00 1 xxxxxxxx
*RNF7030 30 1 xxxxxxxx
长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
小数位长度
如果执行结果字段不是在D数据定义部分定义的,这需要在该行源码定义
CL,CLLE程序,使用CRTBNDCL命令
PDM中,编译快捷命令
14编译
CP RPGLE的编译
CQ SQLRPGLE的编译
*程序编译出错
查编译信息:
使用编译产生的SPOOL FILE,它是一个文本文件,报告编译过程中的相关信息。
用WRKSPLF命令,列出本交互作业的所有SPOOL FILE,找出名字与程序名字相同的最后一个SPOOL FILE,就是最后一次编译所产生的SPOOL FILE。
(1)按F6,创建新源码库
(2)在指定的库,键入12,进入该源码库
4.显示该指定源码库的所有源码文件
(1)按F6,创建新源码文件
(2)键入12,进入指定的源码文件
5.显示该源码文件下的所有源码成员
(1)按F6,创建新的源码成员
(2)键入2,编辑源码
(3)键入3,拷贝源码
(4)键入4,删除源码
(5)键入5,显示源码
当前作业库列表的常用命令:
dsplibl
edtlibl
addlible
汉字支持
使用汉字支持:CHGSYSLIBL QSYS2989
不使用汉字支持:CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
命令菜单
OS/400中,进入一个菜单,用go menuName
查看某一相关的命令
定义数值变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_NUMS14S2
小数点定义要右对齐、
定义日期变量
NameTypeTo/LengthDataTypeDecPosKeywords
V_DATESD
系统默认使用*ISO日期格式,即2002-09-21格式
定义时间变量
回车
*存盘
在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.创建一个源码成员
查看某对象:WRKOBJ

库也是一种对象,相当于AS/400的目录。
DOS目录有多级,即目录下有目录。但库只有一级,库下不能有库。
AS/400的文件系统只有3级:库->文件->成员;
例如在APPLIB库下有APPPF的文件,表示为APPLIB/APPPF。
创建库:CRTLIB
库列表
相当于作业的工作目录,类似于DOS的PATH
常用系统MSGF:QCPFMSG
1.2.1
1.2.2
PDM是AS/400的集成开发环境
AS/400的程序文件结构
库(libraries)/源码文件(objects)/源码成员(members)(程序源码)
使用PDM
1.进入PDM命令
STRPDM
2.显示PDM的菜单,选1,并键入指定源码库
3.显示该指定源码库
5.注意”Sv”中,不为00的项目,即为编译不通过错误语句
6.查看源码中错误语句,在Find栏中,敲入”Sv”不为00的Msg id,例如RNF7030,然后按F16搜索源码,定位在出错的源码语句
7.退出SPOOL FILE,重新进入源码编辑,修改源码
8.重新编译
*程序执行
CALLPGM(MYLIB/MYPGM) PARM(“PARM1” “PARM2” “PARM3”)
NameTypeTo/LengthDataTypeDecPosKeywords
ACCTDS
CUNO 10 A
ACSF 5 A
3.4
3.4.1
每一行C源码结构:
Lvl N01Factor 1OpCodeFactor 2ResultLenDecHiLoEqComment
指令因子1
指令操作码
指令因子2
执行结果
NameTypeTo/LengthDataTypeDecPosKeywords
V_TIMEST
定义数组
定义有10个元素的字符数组
NameTypeTo/LengthDataTypeDecPosKeywords
V_DIMS10 ADIM(10)
数组元素使用,建议使用RPG IV的格式。
V_DIM(N)
定义数据结构
地址类型
空不使用索引语句,不能用CHAIN,SETxx语句
K使用索引语句
设备
DISK数据库文件
关键字
PREFIX(xxx)引用数据库字段前加前缀xxx
COMMIT使用数据更新的确认/回滚机制
程序中使用COMMIT,该作业必须事先启动COMMIT控制
启动COMMIT:STRCMTCTLLCKLVL(*CHG)
(4)索引键字
如果有索引键字定义,则该数据库文件包含索引
名称类型为K
可以有多个键字
编译DDS,创建PF
CRTPF命令
或14
2.3
逻辑文件是索引文件
(1)文件级关键字
UNIQUE控制索引键字唯一
(2)记录级关键字
PFILE(PFNAME)逻辑文件对应的物理文件
(3)索引键字
名字类型K
可以有多个索引键字
2.4
RUNQRY
浏览数据库文件
RUNQRY QRYFILE((AM1))
RUNQRY QRYFILE((AM1)) RCDSLT(*YES)
UPDDTA
UPDDTA FILE(BANKDTA/MYPF)
相关主题