AS400(一)
AS400(一)
AS400简介/特点/存储结构
AS400简介
AS400(iSeries)
是当今世界上最流行的中小型、多用户商业计算机系统(服务器系统),在多用户服务器领域里,始终保持着最畅销的地位。目前 AS400 在全球的装机量已超过 75 万套,覆盖 150 多个国家,支持 40 多种语言,有近 1 万个商业伙伴和独立软件商, 3 万多个商业应用。广泛应用于流通、金融证券、制造、运输等各个行业。
AS400系统支持的编程语言有DDS,RPG,CL,Cobol, C等,支持DB2等数据库
对数据的高效处理和极高的安全性是AS400的核心优势之一
AS400特点
升级性
系统和硬件升级时,应用程序无需升级
安全性
无病毒,未被入侵过
集成性
高度集成的系统环境,除含有操作系统功能外还有网络通信功能,数据库管理功能,安全管理功能等
AS400存储结构
ASP(Auxiliary Storage Pools)
辅助存储池,是系统的可用空间
存储的均为Object
单级存储结构(自动存储)
单级存储(Single-level store)结构
将系统所有的存储器看成是一个大的存储器
可以将一个Object(对象)的内容分散存放到几个硬盘上以提高对象的访问效率
用户不需要关心对象是存储在哪个盘上的,也不必考虑存储管理的问题
命令库列表功能键选项
Command
命令(Command)- 用户通过客户端软件和服务器交互的桥梁
在命令行(Command Line)输入可用命令,命令行通常在客户端界面下方
命令是什么- 系统可识别的字符组合,系统可根据命令的指示调用程序(Program)去操作对象(Object)或者文件成员(File Member),不区分大小写。
命令为何能被执行-在400的运行环境(environment, library list is introduced for 400)存在名称与用户输入字符相同的对象(Object, with type *CMD)
Function Key
功能键(function Key)- 不是以输入字符为目的的功能输入,通常指F1-F24(Shift + F1 = F13,shift代表F12以此类推)和Enter
会话界面会有当前可用功能键的提示(回车和SHIFT+ESC不提示,只能使用当前界面可用的功能键)
常用功能键:
Enter – 确认/执行
F1 – 帮助(Help)
F3 - 退出(Exit)
F4 - 提示(Prompt)(参数补齐)
F5 – 刷新(Refresh)
F6 – 新建(Create)
F9 – 检索(Retrieve)(快速得到上一条执行的命令)
F11 - (不)显示详细信息
F12 - 返回(Cancel)
F16 – 关键字查询(Find)
F23 – 更多选项( More options )
F24 – 更多功能键(More keys)
SHIFT + ESC: System request menu
Option
选项(Option)- 除了直接用命令与系统交互,在某些工具(Utility)帮助下也可以使用预定义选项(Option)交互
会话界面会有当前可用选项的提示, 选项输入在对应操作对象前面的短线上
选项交互实质是调用命令,输入选项按F4可查询对应命令,并填写相关参数,按Enter执行
常用选项:
2 – 修改/编辑(Change/Edit)
3 – 复制(Copy)
4 – 删除(Delete)
5 – 浏览(Display)
7 – 重命名(Rename)
11 – 剪切(Move)
13 – 修改文本(Change Text)
14 – 编译(Compile)
15 – 创建模块(Create Module )
16 – 运行Procedure(Run procedure)
17 – 使用SDA修改(Change using SDA)
19 – 使用RLU修改(Change using RLU)
25 – 关键字查询(Find string)
54 – 代码/内容对比(Compare)
对象/库/库列表(详解)
Object
对象(Object)
- 系统中可被独立操作存储的一种存在(文件,程序,命令等都是对象的一种)
注意区分windows系统上的文件和400上所指文件的不同:Windows上文件是所有电子存储的代称,400上的文件是指 object type为*file的对象
以Q开头的Object是系统的Object
三个因素确定唯一Object
Object Name
(对象名)
Library
(库容器)
Object Type
(对象类型)
对象类型Object Type
*FILE
*PGM
*LIB
*CMD
…
对象描述Object Description
Library, Object Name
Attribute, Size, Text, etc..
对象功能部分Object Functional Part
Physical File Members(Data Records)
Logical File Members(Access Paths)
Program Code
对象的相关命令
WRKOBJ: Work with Object
DSPOBJD: Display Object Description
Library
库(Library)- 除了QSYS以外的library是一种特殊的Object,用于存放Object。
Library中不能再有Library
特例:QSYS系统库中可存放Library,创建的Library必须存放在QSYS下, QSYS不是Object
QTEMP: 系统临时库,用于存放Temporary Object。系统会为每一个job分配一个QTEMP的临时库,不同job的QTEMP library不能共享,QTEMP及其存储的Object的生命周期随着job结束而结束,如果链接断开也会清空qtemp.
Library类型:*PROD, *TEST
*PROD: 生产库,Debug时文件中的数据不能被修改
相关命令
CRTLIB: Create Library
DLTLIB: Delete Library
DSPLIB: Display Library(查看Library中的Object)
chgcurlib 库名
Library List
库列表(*LIBL)- 用户定义的Library顺序排列列表
为未指定Library的对象提供检索顺序,类似于JAVA的环境变量
Library类型和优先顺序为 SYS > PRD > CUR > USR
以上类型与*PROD, *TEST的区分标准不同
用户可以修改CUR library,和USR类型Library的顺序
SYS: System Library
PRD: Production Library
CUR: Current Library
USR: User library
相关命令
DSPLIBL: Display Library List
EDTLIBL: Edit Library List(Screen)
CHGLIBL: Change Library List
ADDLIBLE: Add Library List Entry
RMVLIBLE: Remove Library List Entry
CHGCURLIB: Change Current Library
Unqualified Object & Qualified Object
Unqualified Object
未指定Library的Object
查找时对Library List自上而下进行搜索,直到找到第一个名字相同的Object为止,若已指定Object Type,则要找到同名同类型的Object为止
Qualified Object
已指定Library, 可忽略Library List
文件与成员
File&Member
文件(File)- Object的一种,Object Type为*FILE
文件类型
物理文件:Physical File,其成员(Member)用于保存数据或源代码
逻辑文件:Logical File,其成员(Member)不存储数据而存储访问路径,类似SQL视图
报表文件:Printer File,定义报表格式, 用于打印报表
显示文件:Display File,定义显示格式,用于显示用户界面
每种file对应的source member类型分别是PF, LF, PRTF, DSPF
文件需要编写代码并编译后方可生成。
DDS(Data Description Specification)
编写文件的语言,里面定义了文件的格式(format)
,各字段(field)
的属性,键值(Key)
等
文件相关命令
DLTF: Delete File
DSPFD: Display File Description
DSPFFD: Display File Field Description
DSPOBJD: Display Object Description (可用于查看文件源代码)
Physical File
物理文件(Physical File,此处指PF-DTA属性的物理文件)
,file的一种,用于保存数据,只允许有一个记录格式(Record Format),若有键值(Key,Optional),则可以按照键值升/降序访问其中的数据。
Object Functional Part
Format: 由其DDS代码决定
Access Path: 访问路径
Member: 存储数据,一个PF可以有0个或多个Member
编译PF-DTA源文件
CRTPF: 需指定其DDS代码,若文件已存在,重新编译会造成文件数据丢失
修改PF-DTA文件
CHGPF: 若修改DDS代码,可用此命令重新编译而不使数据丢失
编译器中的操作
相关命令
CRTPF: Create Physical File(编译物理文件)
CPYF: Copy File
DSPPFM: Display Physical File Member (查看物理文件数据)
CLRPFM: Clear Physical File Member (清除物理文件数据)
ADDPFM: Add Physical File Member
RMVM: Remove Member
CHGPF: Change Physical File
UPDDTA: Update File Data(更新物理文件数据)
STRSQL: Start SQL
Source File
源物理文件(Source File)
,物理文件的一种,属性为(PF-SRC),用于保存Source Code(源代码)
Object Functional Part
Format: 系统定义,不需要DDS
Member: 存放源代码,有member类型,可编译得到对应的Object
创建PF-SRC
CRTSRCPF: Create Source File,创建时指定长度,规范为:
92位 : 用于存储PF, LF, DSPF, PRTF, CLP, RPG类型的member
132位: 用于存储RPGLE, SQLRPGLE类型的member
Logical File
逻辑文件(Logical File)- Physical File的一个视图,不存储数据,按定义的Key(Mandatory)对Physical File的数据进行排序,也可以定义筛选条件(Optional)对数据进行筛选,可以有多个Record Format,一个Record Format对应一个Physical File.
Join Logical File,a logical file that join two or more physical files in one record format.(进阶内容,不讲)
-Logical File与Physical File的关系
一个Logical File必须关联至少一个Physical File,一个Physical File可以有0个或多个Logical File.
删除Physical File(DLTF)前必须先删除所有与其相关联的Logical File(AS400没有级联删除的机制)
Object Functional Part
Member: Access Path,一个LF可以有多个Member
编译LF源文件
CRTLF: 需指定其DDS,若文件已存在,重新编译不会造成Physical File数据丢失
相关命令
CRTLF: Create Logical File(编译逻辑文件)
CPYF: Copy File
ADDLFM: Add Logical File Member
DSPFFD: Display File Field Description
RMVM: Remove Member
DSPFD: Display File Description
(查看与LF相关联的PF, 关键字‘PFILE’)
DSPDBR: Display Database Relationship
(查看与PF相关联的LF)
Printer File & Display File
Printer File,报表文件,用于生成报表(report)的模板
Display File,显示文件,用于显示用户界面(User Screen)的模板
相关命令:
CRTPRTF: Create Printer File 生成报表文件
CRTDSPF: Create Display File 生成显示文件
R cscusir (标志一个表名)
查错:
shift+esc 调出 =>3=>4=>5
如果没有文件可能是断了链接,临时文件都是存在Qtemp 一断即失
查看:
editlibl : 把自己个人库放到第一位
如果不加 在表名前面增加库名 否则可能出现 not found问题
STRSQL
输入sql语句(F4 选择参数 )回车
添加数据:
在data文件前 按18
F9:插入数据
F11: 改变数据
换行 shift+f3
如果只想显示 部分字段
在原语句f4 修改* 处内容
UPDDTA
删除数据:
CLRPFM:清空
先select 确认是否是要删的数据
再将select改成delete
程序与命令
Program
程序(Program)- 400上可以被调用的object,类似于windows的可执行文件
集成语言环境integrated language environment当中使用优化后的CL和RPG编程语言
CL程序
1.属性为CLLE,由CCLE类型的member编译生成
2.编程语言对应为CL(Control Language)
3.脚本程序,一系列命令的条件组合(类似于.bat,但是需要编译)
RPG程序
1.属性为RPGLE,由RPGLE/SQLRPGLE类型的member编译生成
2.编程语言对应为RPG(Report Programming Generator)
3.优势是对file的处理
Command
命令(Command)补充讲解
此处所指命令是指存放在400上面的Object,不是指‘用户输入的字符组合’
命令需要编程编译生成,其对应的source member类型为CMD
命名规范:通常为3位动词缩写+名词缩写(e.g CRTPGM)
命令查询:
1.如要查询有哪些CRT开头的命令,在命令行输入CRT*,按Enter查询
2.可以用menu查询,如在命令行输入 GO CMDCRT(去到CRT相关菜单), GO CMDOBJ(去到OBJ相关菜单)
PDM
PDM - Programming Development Manager编程开发管理器
可以用来处理源代码、对象和库。为AS400用户建立源文件成员、访问SEU(Source Entry Utility)和许多其他有用的工具提供方便。
相关命令
STRPDM: 打开PDM,可以选择以下三个命令
WRKLIBPDM: Work with Library PDM(查看Library)
WRKOBJPDM: Work with Object PDM(查看Object)
WRKMBRPDM: Work with Member PDM(查看Member)
Object和source member的关系
在library HTLEO1下的source file HTSRCDBF中1个名为CSCUSTP的source member经过编译生成了
在library HTLEO2下的名为CSCUSTP, 类型为*FILE, 属性为PF-DTA的object。
CRTPF F4 编译
File
: 自定义生成的文件名
Library
: 生成到指定的库
Source file
: pf所在文件夹
Library
: 源码库
Source member
pf文件名
源码必须进入到源码目录之后 编译成功才会到obj级别
权限
进入库底下
- wrkobj 名字(可以是库 可以是obj)
- 选2 回车 edit authority
- *all
用处理用户定义的选项
可从 PDM 任何显示中调用用户自已的命令,这个选项能很容易的执行经常要做的操作,因此可以就写一个选项而不必写出整个命令。
下面给出 PDM 原有的用户定义的选项样版:
选项名 | 调用的命令 | 解 释 |
---|---|---|
C | CALL &O/&N | 允许在 PDM 处理成员显示中运行一个程序 |
CC | CHGCURLIB CURLIB(&L) | 允许在 PDM 处理成员或对象显示中把此库做为当前 库 |
CD | STRDFU OPTION(2) | 允许生成一个 DFU 程序 |
CL | CHGCURLIB CURLIB(&N) | 允许在用 PDM 处理库的显示中把此库做为当前库 |
CM | STRSDA OPTION(2) SRCFILE(&L/&F) ??SRCMBR() | 允许用 SDA 生成成员(菜单) |
CS | STRSDA OPTION(1) SRCFILE(&L/&F) ??SRCMBR() | 允许用 SDA 生成成员(显示) |
DM | DSPMSG | 显示信息 |
EA | EDTOBJAUT OBJ(&L/&N) OBJTYPE(&T) | 在 PDM 处理对象中编辑对象授权 |
GO | GO &L/&N | 显示菜单 |
JL | DSPJOBLOG | 显示作业日志 |
SL | SBMJOB ??CMD(SAVLIB LIB(&N)) | 在 PDM 处理库中用批处理保存库 |
SM | SBMJOB ??CMD(SAVOBJ OBJ(&F) LIB(&L) OBJTYPE(*FILE) FILEMBR((&F(&N)))) | 在 PDM 处理成员中用批处理保存成员 |
SO | SBMJOB ??CMD(SAVOBJ OBJ(&N) LIB(&L)) | 在 PDM 处理成员中用批处理保存对象 |
SP | WRKSPLF | 允许处理假脱机文件 |
WS | WRKSBMJOB | 允许处理批作业 |
生成用户定义选项
在 PDM 主菜单选 9,按执行键,出现规定处理选项文件的显示,显示中的提示都缺省为活动的用户定义选项文件;执行;用 F6 键,出现生成用户定义选项的显示;
在 options 提示中给出表示命令的字符,第一个字符必须是字母,第二个字符可以是任何字母数字。在 command 提示中给出 CF 要调用的相应命令,按执行键。如果不记得命令的正确格式,用F4 键,给出命令参数的提示。此时在显示底部有信息指出 CF 已生成好,新的选项保存在文件 QAUOOPT中。