PeopleSoft是一种元数据驱动的企业应用软件。在PeopleSoft系统中,基础的元数据是非常重要的,它定义了系统中各个组件和页面的结构和行为。
在PeopleSoft中,Field(字段)、Record(记录)、Page(页面)和Component(组件)是构成前端页面的基本构件,它们都有对应的元数据表。这些元数据表存储了这些构件的定义和属性信息,包括字段的数据类型、长度、约束等,记录的结构和字段关系,页面的布局和控件设置,以及组件的交互逻辑等。
通过元数据表,PeopleSoft系统能够在运行时动态地根据配置的元数据来生成页面和组件的实例,并控制其行为和展现方式。这种元数据驱动的特性使得系统更加灵活和可配置,可以根据不同的业务需求和用户角色进行定制和扩展。
同时,基于元数据的设计也使得系统的维护和升级更加简便,只需要修改元数据的配置即可达到修改系统行为和界面的效果,而无需修改源代码。这提高了系统的可维护性和可扩展性。
本文写一下PeopleSoft 基础的元数据Record
PeopleBook中
record 是一组字段的组合。记录定义反应了其在SQL数据库表的底层结构以及在PS应用中的数据处理方式。
在Application Desiger中
Record的定义有两个tab页
第一个tab 页 是Recrod Fields,主要是展现当前record 定义有多少fields
以及每个field 的类型,长度,格式,长短label名称
第二个 tab页是RecordType 用来定义Record 的类型
PS中Record 的类型有7种
分别是:
SQL Table:默认选择值,当类型为sql table时必须在数据库中具有相应物理 SQL 表的定义,可以PS中在Application Desiger用build菜单构建表以及其相关的索引
在构建时如果选择Build script file ,Application Desiger会只帮忙生产DDL语句,而不在数据库执行DDL,开发者可以复制DDL语句到数据库中执行
如果选择Execute and Build Script , Application Desiger既会生成DDL语句也会在数据库执行
针对不同的数据库 ,PS已经事先配置了与其对应的DDL配置,确保其能生成和数据库类型匹配的DDL
SQL View: 就是 SQL 视图,当定义类型为sql view时,需要单击打开 SQL 编辑器按钮,输入 SQL 语句,然后执行build,build过程同sql table
Dynamic View: 就是动态视图,可以在页面和 PeopleCode 中当做视图一样使用,但实际上并不作为 SQL 视图存储在数据库中。多数在sql文本需要动态传参时使用。
Derived/Work:不需要build,也不用在数据库存储,用于PS中一些辅助控件的表集合,比如按钮,超链接
SubRecord:可以作为常用的一组字段,把其添加到其他Record定义中。当需要更改这组字段的时候,就可以在该SubRecord中更改此组字段,而不是逐个更改使用该组字段的每个record定义。
Query View:PeopleBook说用于Query,小编一直没用过
Temporary Table:Application Engine批处理中使用,build时PS会自动可以生成多实例,当同一个批处理程序在多用户使用时,不至于因为并发而锁表。同时在下一次AE程序运行时或者当前AE运行完成后会自动清空表中的数据。
另外视图还可以才创建物化视图,临时表可以定义为全局临时表,这里不多说
现在开始说PS 中与record 定义相关的元数据表
-
PSRECDEFN record定义表 包含recname,record 的类型,整个record包含的字段总数等
-
PSRECDEFNLANG record定义语言表 国际化用
-
PSRECFIELD 整个Reocord 所有字段列表(subrecord 不展开),还存储了 字段顺序,字段默认值,以及字段的Prompt表(即枚举值来源表)
-
PSRECFIELDDB 整个Reocord 所有字段列表(subrecord 展开后),还存储了 字段顺序,字段默认值,以及字段的Prompt表(即枚举值来源表)
-
PSINDEXDEFN 存储sql table和sql view的索引信息
-
PSKEYDEFN 存储record上key的定义
-
PSTBLSPCCAT 所有可用的表空间
下面也是给这些record的定义昨个截图展示,然后对重要字段做一下说明
PSRECDEFN
record定义主表
包含record name ,字段总数,索引总数,审计表,record type,父Record,查询安全性record,国家化语言表等
PSRECDEFNLANG
record定义语言表 国际化用
主要字段是语言代码
PSRECFIELD
record和field的组合关系表
包含recname,字段名,字段顺序,字段默认值,字段标签ID,字段propmt表
Useedit 这个字段存储的是这个字段的key属性相关的值
PSRECFIELDDB
包含recname,字段名,字段顺序,字段默认值,字段标签ID,字段propmt表
Useedit 这个字段存储的是这个字段的key属性相关的值
这个表多了个RECNAME_PAREN父record的字段 他包含了subrecord的定义
PSINDEXDEFN
索引定义表
这张表根据根据record中每个字段的keys的设置生成的index值存储
包含索引名称,索引类型,索引有效性等
PSKEYDEFN
Record 中field 设定的keys结果存储表
包含索引ID,字段名,key 的位置,以及默认查询的排序
PSTBLSPCCAT
可用的表空间表
Oralce中sql table 都是要有一个表空间的,此表提供了所有可用的表空间