上海日立Peoplesoft HCM项目 AE程序技术总结 概述
在Peoplesoft系统里AE(Application Engine)程序是比较核心的技术,本文将结合我在上海日立上项目的情况,对AE程序进行总结。首先从AE程序概要说起,包含它的概念以及组成部分,peoplecode是编写AE程序必须要熟练掌握的语言,本文将会结合一个页面开发的实例来做一介绍。然后会来讲述AE程序的运行方式以及如何来调试和管理AE程序,最后会对一个具体AE开发实例进行介绍并且对遇到问题进行总结。
一、概要
1. 对AE程序的理解
AE程序是PeopleTools的组成部分之一,用于开发、测试和运行对PeopleSoft数据库进行的后台SQL处理程序,主要负责与数据库进行的大量复杂的SQL交互任务,如币种换算、更新员工工龄工资等。事实上AE程序并不能产生,解析和理解SQL语句,它只是去执行我们提供的SQL语句。它的开发是在后台开发工具Application Designer里进行的。在应用程序升级时也会用到AE程序。AE程序存储在PeopleSoft数据库内,它不像Crystal报表定义、SQR程序等储存在文件系统内。一个AE程序可以同时运行多个实例。
AE程序实际上是一组SQL语句,peoplecode代码和处理逻辑的集合。它的特点便是可以在后台进行批处理,适合于大量数据的操作,具有着严格的程序结构,并且使用Meta-SQL和标准SQL结合的方式进行编程。当有数据必须被处理而又不需要通过用户时,这时我们就可以用AE程序进行批处理。它包含了两个组件,一个是设计工具,用来定义我们的AE程序,另外一个则是运行环境,来运行和检测我们的AE程序。
2.AE程序的组成部分
下面我们来在开发工具里看看一个AE程序的结构:
通过上图,我们可以很形象的看到,一个AE程序是由一个或者多个Section组成的,一个Section又是由一个或者多个Step组成的,而一个Step又是由一个或多个Action组成的。下面我们将对每一个部分进行简要说明:
a. Section
它包含一个或者多个steps,它就相当于SQR报表程序里面的procedure,任何AE程序都应该至少包含一个名字为“MAIN”的Section,程序总是从它开始执行的。从上图可以看到。Section是可以被本程序的其它Section或者被其它程序来调用的。
下面来对它的主要属性予以说明:
Market:地区,例如Global或其他如AUS、BEL、BRA。可以将鼠标点击在其上,然后就会在该项上出现下拉列表供选择,其它属性的选择方法类似。如下图:
Platform:数据库平台,如Default、Oracle、DB2等。
Effective Status:生效状态。用于临时性停用某个Section。
Section Type:普通的数据库操作,或是对数据库的关键性升级。
Auto Commit:控制下属各Step的默认Commit方式。
Access:只有设为Public的Section才能被其他Program调用。
需要注意:点击上图中的文件夹图标,当它处于打开状态时,才可以看到Section的属性,当然Step和Action也是一样的方法来看属性的。在每一个Definition前面都有一个小加号或者减号,这是用来展开或者隐藏该项内容的。
b. Step
它是提交给AE程序的一个最小的工作单位。可以用Step来执行peoplecode,SQL语句,或者来调用其它的Section等。这些SQL、peoplecode是被包含在一个Step里来作为一个Action进行执行的。
Step的属性说明:
Commit After:本Step的Commit方式(Default,After Step,Later)。
Frequency:下属Action循环多少次后进行Commit。
On Error:下属Action运行出错后的反应方式(Abort、Ingore、Supress)。
Active:用于临时性停用某个Step。
需要注意:如果要给本Section添加新的Step,并且要把它放在该Section里的第一项时,那么鼠标应该点击在MAIN处进行操作,如下:
如果想把它放在某个Step的后面,那么鼠标就放在该Step上进行操作即可。另外Step的名字是不能够超过8个字符的。当不想要自己建立的Step的时候,鼠标点击在上面,然后右键删除即可,如下:
c. Action
一共有八种不同的Action,分别执行不同类型的任务。这八种Action又可以分为两大类。
流程控制型Action:
DO WHEN:如果有返回行,就执行一次。
DO WHILE:只要有返回行,就一直执行下去。
DO SELECT:遍历返回的各行,每行执行一次。
DO UNTIL:一直执行到有返回行。
操作型Action:
PeopleCode:执行一段PeopleCode。…
相关推荐: