PeopleSoft Cobol Stored Statements
在我刚刚开始支持PeopleSoft的时候,特别是在安装bundles或者Tax Updates的时候,不是特别理解Stored Statements。下面主要讲讲我对Stored Statements在PeopleSoft中应用的理解吧。
什么是Stored Statements in PeopleSoft?
Stored Statements 是 储存在 PS_SQLSTMT_TBL中事先定义好的SQL语句(如Select, Insert, Update, 等等)。这些SQL语句也叫做"static SQL"。当我们运行COBOL program的时候, COBOL program 就会从PS_SQLSTMT_TBL中提取相应的SQL语句。PeopleSoft把这些SQL语句以Data Mover Scripts形式发放给客户。当我们下载bundles或者Tax Updates的时候,常常看见这些有和COBOL programs同名的DMS 文件。这些DMS Scripts就是相应COBOL programs的 Stored SQL Statement Scripts。比如,pspcnfrm.dms 就是COBOL program - PSPCNFRM的Stored SQL Statements Script。 我们需要在Data Mover 中运行这些Scripts, 好把这些SQL语句储存在 PS_SQLSTMT_TBL中。
Stored SQL Statement Scripts文件
一般情况下,第一条语句是delete现存在PS_SQLSTMT_TBL中的与COBOL program 相联系SQL Statements。
下面接着是一组STORE命令。每个STORE命令后接着一个12 到 18个字符的SQL Statement名字:
第1到第8个字符是COBOL program的名字
第 9 个字符是下划线
第10个字符是SQL Statement的类型
S -Select
D -Delete
I -Insert
U -Update
第11字符是下划线
第12到第18个字符是SQL Statement是SQL Statement在这个CCOBOL program中独一的名字,一般带有所涉及的table的名字. 下面是一些例子:
STORE PSPCNFRM_D_RUNCTL
STORE PSPCKUNC_U_SSPGUID
STORE PSPCBUPD_U_BAL_CC
每个STORE命令下面几行是要储存的SQL Statement。
什么是STORE*.DMS?
每一个PeopleSoft 功能模块,都有一个PeopleSoft发送的STORE*.DMS 文件。这个Script是用来load所有和这个功能模块有关的(COBOL programs所有事先定义好的) SQL语句。在这个STORE*.DMS 文件中,是一组run命令。每个run命令后接着一个Stored SQL Statement Script文件的名字。如:
...
run pspcnfrm.dms;
run pspcbupd.dms;
...
当你需要运行某个功能模块所有的Stored SQL Statement Scripts的时候, 这些STORE*.DMS就非常方便。你不需要去一个一个地运行Stored SQL Statement Script。而是只需要运行这一个STORE*.DMS。
PeopleSoft建议, 在安装bundles或者Tax Updates的时候, 运行所有的STORE*.DMS.