PeopleSoft技术(PeopleCode学习1)

34人阅读 评论(0) 收藏 举报
分类:

本片文章主要讲一些PeopleCode的基础知识,后面会有PeopleCode练习的篇章

一、PeopleCode概述

  • 当业务数据自身的约束不能满足业务需求时,使用PeopleCode实现复杂的业务逻辑
  • 当业务数据的保存逻辑过于复杂,无法通过Component Processing实现时,使用PeopleCode+SQL实现复杂的数据保存逻辑
  • PeopleCode Definition是存放在数据库中的
  • 事件(Event)驱动,面向操作(用户的业务处理)的编程语言

二、PeopleCode对象和事件

(1)PeopleCode中的对象
Record Field
Component Record Field
Component Record
Component
Page
Menu Item 几乎用不到
注意:我们在写代码的时候优先级是从下往上的,可以在Component Record中写的不在Record中写,因为如果你把Code写在Record中,别人用这个Record时也会执行该Code,除非你的Code在所有用到这个Record时都可以用到,否则不建议使用。

(2)PeopleCode中的事件
(a)下面是PeopleCode中的所有事件
这里写图片描述
(b)下面是用户更改FIELD后触发的事件顺序
这里写图片描述
(c)用户点击Save按钮时触发的事件顺序
这里写图片描述
(d)FieldEdit VS FieldChange
FieldEdit比FieldChange先触发,并且是所有Field的FieldEdit事件触发完之后才触发FieldChange事件
一边情况,数据校验类型的code会放在FieldEdit事件中去写,按钮点击等方法会在FieldChange事件中去写。
FieldEdit事件会根据代码执行情况对当前字段进行特殊标记
(e)SaveEdit VS SavePreChange VS SavePostChange
触发的顺序是SaveEdit>>SavePreChange>>SavePostChange,并且是所有Field的某个事件都触发完之后再触发下一个事件
SaveEdit一般是在保存前字段信息校验时写在该事件中;SavePreChange保存在数据库之前进行数据合法性校验,比如已有该员工身份证号则不能录入;SavePostChange一般是保存到数据库之后触发,比如保存到数据库后给用户一个友好型提示。

三、PeopleCode语法

分隔符:PeopleCode和大多数编程语言一样都是用分号(;)结束的
赋值语句:Varname = expression
数据声明:数据范围 数据类型 变量名
例如:

        Local number #
        Local Field &DATE; 
        Local array of number &AN;

条件语句:

 if  条件  then
    语句;
 end-if;

Evaluate left_term 
When [relop_1] right_term_1 [statement_list] . . .
When [relop_n] right_term_n [statement_list] 
[When-other [statement_list]] 
End-evaluate;

循环语句:

Repeat statement_list 
Until <logical_expression>;

While <logical_expression >
statement_list 
End-while; 

For <&var>= <start-value> to <end-value> [Step i]; 
    statement_list 
End-for; 

PeopleCode的数据类型:加粗的是常用的数据类型
Any、StringBooleanNumber、Float、Integer、Date、DateTime、Time

用户自定义常量:constant &str = “A”;
用户自定义变量:Local Field &DATE;
&DATE = GetRecord(RECORD.DERIVED_HR);

变量有效范围:
Global: 全局变量,在整个session中有效
Component: 在被激活的Component中包含的所有页面有效
Local: 在被定义的程序段或函数中有效

常用系统变量:
%Date 当前时间
%EmployeeId 当前登录员工id

运行操作:
数学运算:+ - * /
日期和时间的运算:
Time +/- Number (seconds) = Time
Time – Time = Number (seconds)
Date +/- Number (days) = Date
Date – Date = Number (days)
Date + Time = Datetime (Date and Time combined)
字符串连接运算: |
@ 操作.
比较操作: >,=,<,>=,<=,<>
逻辑操作: And, Or, Not

PeopleCode的函数
Function_name([parameter-list]);
PeopleCode 中使用的函数
Build-in函数 (不用声明,直接使用)
Internal 函数 (在Peoplesoft程序中声明、定义的函数).
External PeopleCode (defined outside the calling program-generally contained in record definitions serving as function libraries)
External non-PeopleCode(外部函数)

常用的系统Build-in函数
Warning
Error
All
None
GetLevel0
GetRowSet
GetRow
SQLEXEC

自定义函数的声明:
在Formula事件中定义函数
格式:
Function name [(paramlist)] [Returns data_type]
[statements]
End-function

PeopleCode中的注释:
单行注释: REM XXXXXXXX ;
多行注释: <*
XXXX
XXXXX
XXXXX
*>
多行注释: /* XXXXXXXX */

查看评论

PeopleSoft 开发 - 01 People Code 语法基础

PeopleCode 语言结构 数据类型 常规数据类型包括 number,date,string.可以进行基本计算。 Object 数据类型用于实例化。 在使用变量前要先声明。 常规数据...
  • yanliang1
  • yanliang1
  • 2013-07-02 13:51:26
  • 1943

PeopleSoft 入门学习(二)

PeopleSoft 入门学习(二)
  • mboby
  • mboby
  • 2017-01-03 14:07:17
  • 403

peoplecode 中调用java

Peoplecode中使用java例子。 Class部署的位置: directory structure into your%PS_HOME%\class or $PS_HOME/appserv/...
  • WTK870424
  • WTK870424
  • 2011-12-10 18:42:29
  • 791

PeopleSoft邮件发送方法

PeopleSoft中提供有多种发送邮件的方法来满足用户发送邮件,我所知晓的有SendMail()、send()、调用Java类。...
  • pipi__pipi
  • pipi__pipi
  • 2015-03-20 16:05:59
  • 391

PeopleSoft Developer's Guide for PeopleTools and PeopleCode

  • 2010年07月10日 21:24
  • 13.65MB
  • 下载

java调用peopleSoft webservice

第三方系统 java 调用peopleSoft webservice简单实现方式
  • FengQiXiaoRan
  • FengQiXiaoRan
  • 2017-01-16 16:03:19
  • 584

peoplecode书籍

  • 2010年11月04日 15:20
  • 6.22MB
  • 下载

PeopleSoft 开发 Function 函数

函数 支持下面几种函数类型: built-in:标准函数,可以直接调用不需要声明 Internal: 定义在本地代码中的函数 External:定义在别的Record中的函数,一般使用这种方式...
  • yanliang1
  • yanliang1
  • 2013-07-02 14:02:56
  • 931

Peoplesoft developer's guide for peopletool & peoplecode(PDF 601pages)

  • 2010年09月10日 10:25
  • 8.04MB
  • 下载

如何在Peoplesoft使用Json呢?

在负责接口这一块的工作也有很长时间了,实时的,非实时的,主动,非主动的都做了不少,由于其它java系统对json的大量使用,第三方系统对peoplesoft系统提出了接口返回数据需要满足json格式的...
  • liuhuaizhou133
  • liuhuaizhou133
  • 2014-11-29 17:14:24
  • 836
    个人资料
    持之以恒
    等级:
    访问量: 475
    积分: 122
    排名: 119万+
    文章分类
    文章存档
    最新评论