Application Engine


AE工具使用SQL和PeopleCode运行批处理进程,不需要编译,也不需要产生SQL语句,只执行SQL语句。AE集成进PeopleTools套件中。执行部分是用C++语言编写的。AE中的所有对象都保存在数据库中。所有fields、records、functions、component interfaces、Meta-SQL以及其他对象都能够在AE程序中使用。可重用性是AE程序最大的优点之一。

历史

PeopleTools前几个版本并不包含AE,进行批处理的唯一方式就是使用COBOL和SQR。一个PeopleSoft代码开发员在前端使用PeopleTools、在后台使用COBOL创建了AE程序。AE基于SQL逻辑,作用于PeopleTools对象,而不是过程化的程序。当PeopleTools团队决定将AE包含进PeopleTools中时,他们将后台程序转换成C++,并且加入了PeopleCode。伴随着新的特性,AE不断进化升级,然而COBOL和SQR却没怎么变化。AE的主要问题是不具有报表工具。但是随着8.46版本引入了XMLP技术,AE能够用于创建报表和图标了。

Application Engine

所有的AE程序都是通过Application Designer来进行设计和维护的。登录到Application Designer,然后选择File>New,选择App Engine Program。然后会打开一个包含  MAIN 区段(Section)的AE程序(如下图)。MAIN通常是第一个区段的名字。在开始编程之前,必须保存该AE程序。


也可以通过点击“Program Flow“ tab查看AE程序,如下图:


程序结构

AE程序的结构可以通过“Definition”  tab或者”Program Flow“ tab查看。Definition结构使用文件夹表示对象,可以展开和折叠每个文件夹。要展开所有文件夹,选择View > Expand All。程序要想运行成功必须遵循层次结构。层次结构中有三个组成部分:section、step 和 action。

Section(区段)

一个AE程序必须总是包含一个MAIN区段。一个区段包含一个或者多个步骤(step)来进行相应的操作(action)。AE 程序可以创建多个区段。通过一个叫作 Call Section 的 action 来调用其他区段。可以通过右击一个区段,然后选择Insert Section。

Section 参数:

每个section都可以设置一些参数以对程序进行维护。下面显示了section的默认参数:




这些参数是可选的,没必要进行修改。但是使用某些参数可以使程序更加易于理解。

参数                       描述

Sectoin Name      Section的名称。当创建一个section时,会赋予该section一个默认的值。该名字可以更改,但是至多8个字符。

Description           Section的功能描述。20个字符限制。

Market                    默认值为GBL即Global。如果需要特定的market,可以更改该参数值。

Platform                 默认为当前平台,但是可以设置成运行在某个平台。

Effective Date       只有当该日期在系统日期之前,该section才会被执行。默认值为01/01/1900。

Effective Status    该参数可以使section生效或者无效。默认为Active。

Auto Commit        如果想要每个step完成后自动提交就勾选该复选框。否则只会在程序结束之后才提交。

Access                  如果勾选Public,其他AE程序就能够调用该sectoin。否则只能在当前AE程序中使用。

Comments          添加备注信息。右击该区段,选择Show Comments。


Step(步骤)


Section中的steps顺序执行。一个section可以有多个step。每个step可以有一个或多个action。可以右击section或者其他step,然后选择Insert Step/Action,添加step。该step会添加至光标所在位置之下。

Step 参数:

每个step都有三个参数,用于对程序进行维护。如下图:




参数                       描述

Step Name           Step 的名称。当添加一个step时,会赋予该step一个默认的值。该名字可以更改,但是至多8个字符。

Description           Step 的功能描述。20个字符限制。

Commit After         通知AE程序什么时候提交。有三个选择:

                                 Default : 遵循section上的Auto Commit参数。
                                Later : 稍后提交
                                 After Step : 该step结束时提交
Frequency            控制Do While、Do Until、Do Select 三个action中commit 的频率。默认为空。

On Error                如果step运行出错就执行如下三种选项:

                                 Abort-Default : 消息会被写到日志中,然后程序终止。
                                 Ignore : 消息会被写到日志中,程序继续运行
                                 Suppress : 没有消息会被写到日志中,程序继续运行

Active                      该参数可以使step有效或者无效。在开发的时候,通过使其他step无效来测试某个step。

Comment              添加备注信息。

Action(操作)

一个step中可以处理多个action,但是在同一个step中每种action的类型只能出现一次。一当在step中创建了某种类型的action,该action还不能够被使用。Action的类型有Do When、Do While、Do Select、PeopleCode、SQL、Call Section、Log Message、Do Until  以及 XSLT。

Action 参数:

下面显示了SQL action的参数:



参数                                      描述

Action Name                       Action 的名称。下拉列表中显示的是当前可用的action。

Description                         Action 的功能描述。20个字符限制

Reuse Statement              默认为No。该参使SQL可以将state record中的任何 %band 变量转换成真实的绑定变量  :1 , :2 .......。
                                              可以在AE程序的其他SQL语句中使用这些真实的绑定变量。

No Rows                             只有当action为SQL时才可用。该参数默认值为Continue。其他值为 Abort、Section  Break、Skip Step。

Do Select Type                   只有当action为Do Select时才可用。默认值为Select/Fetch,一次获取一条记录。其他值为 Re-Select、Restartable。

On Return                            只有当action为PeopleCode时才可用。默认值为 Skip Step。其他值为Abort、Break。

Message Set,                     只有当action为Log Message时才可用。可以将log table 中的消息发送到jobs日志文件。
Number,Parameters

属性

每个AE程序都有一个属性对话框。使用属性对话框可以跟踪更正历史记录、关联表以及设置AE程序的属性。在属性对话框中共有四个页签:General、State Record、Temp Tables、Advanced。在AE程序打开的情况下,选择File > Definition Properties,或者点击Properties按钮,可以打开属性对话框。

General

在 General tab 中输入AE程序的描述以及可用于documentation 和 change control 的备注。可以指定一个Owner ID。当点击OK时,Last Updated框中的信息会相应的更新。




State Records

在 State Records tab 中可以将一个或者多个state record关联到该AE程序上。State record 使变量能够在不同的 action 之间传递。State record 可以是SQL table,也可以是derived work record。保存在derived work record中的变量会在AE程序结束时丢失掉。



State record 必须有某些限制:
  1. 该 record 的第一个字段必须是PROCESS_INSTANCE,且该字段必须是一个key。然后其他字段都可以被插入到这个State Record 中。
  2. State record 的名字必须以 AET 结尾。
  3. State record 上的任何 PeopleCode 在 AE 程序执行期间都不会执行。
如:PS_TEST_AET 为 Derived work record,具有如下字段:



可以在SQL action 中使用  %Select 将来自运行参数页面的数据保存到state record中:

%Select(Year)
Select Year
From PS_TEST_RUN_CONTROL

然后使用%Bind 将state record 中的数据检索出来,如下面的例子将检索出来的Year插入到 PS_TEST_FILE 表中:
Insert %Bind(Year) into PS_TEST_FILE

Temp Tables



临时表用于并行处理。这就使得AE 程序能够在相同的时间运行多次。要让AE程序利用并行处理,必须进行如下 6 个步骤:
  1. 定义临时表     当创建一个新的记录时选择Temporary Table 类型。PROCESS_INSTANCE作为该记录的key。该临时表的名字必须以TAO结尾。
  2. 设置临时表     根据PeopleTools Options 中的设置(如下图)创建临时表的实例数量。Build 临时表,然后
  3. 将临时表指定给AE         在AE属性对话框中的Temp Tables 页签中将该临时表添加到Selected列表中。
  4. 针对批处理     在Temp Tables 页签上,设置AE程序要使用的临时表实例数量。同时判断如果所有的实例都被占用了,AE程序应该怎么做:Continue 或者 Abort。
  5. Build/Rebuild临时表     更改实例之后,需要rebuild临时表
  6. 利用Meta-SQL    使用%Table 引用临时表。AE程序会跟踪哪个临时表实例正在被使用。在AE中使用临时表之前,临时表中所有的数据都会被删除。

























你可能感兴趣的:(Peoplecode)