AS400(一)

AS400简介/特点/存储结构

AS400简介

AS400(iSeries)是当今世界上最流行的中小型、多用户商业计算机系统(服务器系统),在多用户服务器领域里,始终保持着最畅销的地位。目前 AS400 在全球的装机量已超过 75 万套,覆盖 150 多个国家,支持 40 多种语言,有近 1 万个商业伙伴和独立软件商, 3 万多个商业应用。广泛应用于流通、金融证券、制造、运输等各个行业。

AS400系统支持的编程语言有DDSRPGCLCobol, 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)

image-20200922134726114

对象//库列表(详解)

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代码,可用此命令重新编译而不使数据丢失

编译器中的操作

image-20200923002453175

相关命令

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问题

  1. STRSQL

  2. 输入sql语句(F4 选择参数 )回车

添加数据:

在data文件前 按18

F9:插入数据

F11: 改变数据

image-20200922165403531

换行 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 HTSRCDBF1个名为CSCUSTPsource member经过编译生成了

library HTLEO2下的名为CSCUSTP, 类型为*FILE, 属性为PF-DTAobject

CRTPF F4 编译

File: 自定义生成的文件名

Library: 生成到指定的库

Source file: pf所在文件夹

Library: 源码库

Source member pf文件名

源码必须进入到源码目录之后 编译成功才会到obj级别

权限

进入库底下

  1. wrkobj 名字(可以是库 可以是obj)
  2. 选2 回车 edit authority
  3. *all

image-20200922172306641

用处理用户定义的选项

可从 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中。