1.介绍

Smart/400是在AS/400之上的开发平台,管理开发、运维的全生命周期。

2.设计基础

Introducing Fields

Smart通过字段字典Field Dictionary来存储Field,所有的字段都存在这个大字典里,为了方便Cobol程序的调用,必须事先定义Field。

注意事项:

  • 不要删除字段
  • 字段后缀不能是数字,某些数字结尾的字段是系统定义字段
  • 开发新程序不一定要新建字段,因为已有程序很可能早已定义好了
  • 不超过8个字符

字段类型. Valid values are:
A - Alphanumeric
C - Currency and monetary amount
D - Date
E - Currency amount
M - Monetary
N - Unsigned numeric
S - Signed numeric
T - Time
V - Variable length
Z - Date/Time stamp

实用快速搜索field的小技巧:

  • 使用 “?ACC” 来模糊定位所有以ACC开头的字段;
  • 在HELP系统也可以查询字段;

Using a Table or Data Set to Hold Data

使用表格和数据集存储数据

  • 表是用来包含引用或“规则”信息的。该信息是静态的。在表项上有最小的验证,比如公司代码是一个典型的表项目。
  • 数据集用来处理业务功能数据,特性是不断变化的数据。

可以把数据集看成物理文件Physical File。

在设计完Data Sets后,需要编译。

Compiling the Physical File

编译物理文件

编译物理文件的目的是使400系统感知Data Sets的更改,这么说可能比较形象,就是有点类似从源代码java文件转换为class文件。

命令 : CB xxxxpf pf

如果您修改了现有的数据集,则将:

  • 删除使用数据集的所有逻辑文件LF(LF逻辑文件可以认为是视图文件,是和Cobol沟通的文件)
  • 建立新版本的数据集
  • 将旧数据集的数据复制到新的字段
  • 删除旧的数据集
  • 重建以前已删除的逻辑文件LF

逻辑文件

LF逻辑文件可以认为是视图文件

Select/Omit Specification

Test的项:

  • EQ Equal
  • NE Not equal
  • GT Greater than
  • LT Less than
  • GE Greater than or equal to
  • LE Less than or equal to
  • RG Range
  • VAL Absolute value

Logical View Database Files:

  • DTVHPF Logical View Header
  • DTVFPF Logical View Fields
  • DTVRPF Logical View Record Format (multi-format)
  • DTVIPF Logical View Key Fields
  • DTVSPF Logical View Select/Omit
  • DTVJPF Logical View Join Details

编译逻辑文件

Compiling the Logical File:  CB XXXX *LF

编译后:

  • The Logical file DDS source is generated and placed in the XXXXXXGEN library, where XXXXXX is the development environment level identifier. This source is
    deleted when the logical file is PROMOTEd or deleted using the DLTOBJLVL/DLTOBJREL command.Each logical file has two separate open data paths (ODPs): read and update. A third open data path accommodates direct access. Each open data path makes available a file area through which the data is transferred, and a file pointer.
  • · The I/O module XXXXIO, where XXXX is the name of the logical file. A Cobol program which interfaces between the data set and the application program. The
    application program calls the I/O module each time access to data is required.
  • · Copybooks XXXXSKM and XXXXKEY, where XXXX is the name of the logical file. These two copybooks are used to ensure the correct format of the file is accessed in the application programs. The Schema copybook holds the parameters required to call the I/O module, and is copied into the working storage of the application program.The Key copybook contains the key fields only and is available to be used in working storage in application programs, i.e. if you are saving a key, use this copybook, thereby ensuring that, if the key changes, the correct version of it will be picked up by the Cobol program. The copybooks are placed in XXXXXXCPY/QLBLSRC (where XXXXXX is the development environment level id).

 在线程序开发

Coding an On-line Program

标准程序(Non Client/Server)

标准程序做的事情:

  • 检索数据库信息和屏幕上显示的信息
  • 从屏幕上输出。
  • 验证在屏幕上输入的信息,并显示错误。
  • 输入,并更新数据库。
  • 显示下一个屏幕。

需要的区域:

  • 1000-INITIALISE
  • 2000-SCREEN-EDIT
  • 3000-UPDATE
  • 4000-WHERE-NEXT

包含:

  • Working Storage:

VARCOM - common variables 通用变量
SYSERRREC - record layout for system errors 系统错误的记录布局

  • Linkage Section:

WSSPCOMN - linkage area to be passed between each mainline program
WSSPxxxxx - linkage area used for all 'xxxxx' programs (for example,'xxxxx' may
be WINDOW)
SCRNPARAMS - screen parameters record

  • Procedure Division:

MAINF - main controlling logic 主要的控制逻辑

The 1000 Section

  • 初始化变量
  • 控制屏幕输出
  • 通常情况下,涉及到数字域和日期域初始化
  • 读取数据库,并将其移动到屏幕连接区域

The 2000 Section

  • 2000节将执行到一个标志位:WSSP-EDTERROR is O-K(O-K是所有程序中定义的标准变量)
  • MAINF sets the SCRN-FUNCTION to INIT or NORML. INIT writes the screen without PUTOVR; NORML writes it with
    PUTOVR.
  • YOU MUST NEVER OVERRIDE THE SCREEN FUNCTION SET BY MAINF, UNLESS IT IS TO WRITE THE SCREEN FULLY PROTECTED
  • 在屏幕上书写,标准节200-SCREEN-ERRORS必须执行。执行语句必须是在调用后立即的下一个语句屏幕I / O模块。本节用于捕获屏幕错误。

一个例子

CALL 'SxxxxIO' USING SCRN-SCREEN-PARAMS
Sxxxx-DATA-AREA.
PERFORM 200-SCREEN-ERRORS.

执行到这里,WSSP-EDTERROR 标志位被设置为 O-K

The 3000 Section

MAINF一旦检测到WSSP-EDTERROR 是 O-K,,它将执行3000部。此部分必须包含更新数据库的代码。通常情况下,进行查询事务,本节将不包含任何代码。

The 4000 Section

最后,MAINF将执行4000部分。4000部分是用来控制的程序传递。变量WSSP-PROGRAM-PTR用于驱动来执行程序堆栈中的下一个程序。在程序体内,你不必写任何EXIT语句

文件类型

*CBL Cobol program
*CL Control Language job stream
*CLP Control Language program
*CMD Command
*CPY Copybook
*DSPF Display file
*INS Scribe Insert document
*LF Logical file
*LFU Logical file (used by)
*ORD Ordinary transaction screen
*PARM Parameter screen
*PF Physical file
*PRTF Printer file
*SFL Subfile screen
*SPF Scribe parameter file
*SUB Submenu screen
*TXT Scribe text document
*WORK Work Unit
*XDD Extra data dated screen
*XDM Extra data multiple screen
*XDPT Extra data print routine
*XDS Extra data screen

Smart/400开发上手1:入门的更多相关文章

  1. Smart/400开发上手3: 练习实践

    练习题 在2006年1月1日之前入职且在职的营销员,给予年资补贴2000元: 符合以上条件的,再按以下标准一次性发放职级补贴: 职级代码 简称 补偿金额 A1 AD 6000 B1 SBM 5000 ...

  2. Smart/400开发上手2: COBOL批处理程序处理过程

    开发目的:1.建立DB2数据库表:2.建立逻辑视图:3.通过Cobol程序将一个源数据表的数据通过一定公式计算后导出到另一个目的数据库表源数据表:TIM3PF目的数据表:TIM4PF4.在AS400中 ...

  3. Smart/400开发上手5: Cobol开发标准

    ENVIRONMENT DIVISION. CONFIGURATION SECTION.SOURCE-COMPUTER. IBM-AS400.OBJECT-COMPUTER. IBM-AS400. 这 ...

  4. Smart/400开发上手4: 调试Cobol代码 (DEBUG with QBATCH)

    Step1:Compile Cobol source CB TIM07 using *SRCDBG option例如:CB MEMBER(TIM07) OPTION(*SRCDBG) WORKU(TI ...

  5. 【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等

    [推荐图书]+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等 3赞 发表于 2016/7/4 21:14:12 阅读(1921) 评论(3) 初次接触FPGA,到 ...

  6. 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

  7. 云小课|DGC数据开发之基础入门篇

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...

  8. iOS开发-UI 从入门到精通(三)

    iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...

  9. iOS开发-UI 从入门到精通(二)

    iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...

随机推荐

  1. FS210(cortex-A8)移植MT7601无线WIFI模块

    准备:ubuntu 12.04 板子内核:3.0.2 交叉编译器:arm-cortex_a8-linux-gnueabi-gcc 所需资源下载:https://pan.baidu.com/s/1yWA ...

  2. springboot深入学习(五)-----spring data、事务

    spring data项目是spring解决数据访问问题的一系列解决方案,包含了大量关系型数据库以及非关系型数据库的访问解决方案. 一.spring data jpa 1.简介 jpa是一套规范,不提 ...

  3. hdu6351 2018 Multi-University Training Contest 5 1002 Beautiful Now

    题意: 给出一个十进制数,数位两两可以交换,给出最多能交换多少次,以及交换后的数不能有前缀0,问能形成最小和最大的数 * * * 尝试的思路 贪心,将字符串先排出最大以及最小的情况,然后按一定顺序将对 ...

  4. 修改oracle用户密码为永不过期

    错误提示:ORA-28001: the password has expired (DBD ERROR: OCISessionBegin) 解决方法:修改密码为永不过期 (1)查看用户的proifle ...

  5. maven下的经常使用的几个元素以及依赖范围的一些知识

    maven的pom.xml配置文件里面的project根节点下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个依赖,每个依赖都可以包含的元素: groupId ...

  6. centos7,配置nginx服务器

    安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++.gcc.openssl-devel.pcre-devel和zlib-d ...

  7. jQuery插件初级练习3答案

    html: $("p").fontcolor().html("qaq") jQuery: $.fn.extend({ fontcolor:function(){ ...

  8. linux中的amount的解释

    挂载(amount)概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载 ...

  9. 第三天:DOM操作css

    基本语法: 引用样式时是在head中,用link,另外需要<div>才能显示 修改样式:按下按钮后,引用的样式部分,颜色变为蓝色 如图下图是更改了样式中hello的颜色 代码如下: < ...

  10. 关于2011年meng-meng组产品《豆酱》的Review

    这个组是一个做手机应用的组,比较有特色. 经过我们的一致讨论,得出我们组对前辈的有关选题.团队.产品等几个方面的看法,以及我们的感想. 选题的特点: 这个选题对于一个短期项目来说是很合适的,经过较为详 ...