我们有一个PeopleSoft安装,我正在构建一个单独的Web应用程序,需要从PeopleSoft数据库中提取数据.Web应用程序将位于与PeopleSoft不同的服务器上,但是位于同一内部网络中.
我有什么选择?
小智 5
是的-Integration Broker是Peoplesoft对发布/订阅机制的专有实现,使用xml。当然,您可以只使用JDBC或OLE / ODBC编写与数据库不符的代码。没有什么可以阻止您执行此操作。但是,您必须了解Peoplesoft数据库架构,以便从所有正确的数据中提取或插入/更新/删除它们。Peoplesoft会为您解决此问题。
另外,请查看组件接口-它们作为API公开给Java或C / C ++。
这是一个老人,但它可能仍然有趣.
PeopleSoft在主机数据库(Oracle,SQL Server,DB2等)中拥有自己的架构,这些架构是PSxxx表,例如:PSRECDEFN相当于Oracle的DBA_TABLES.任何外部代码都不应触及这些表.应用程序表存储在PS_xxx表中,例如:PS_JOB.任何SQL代码都可以读取和更新这些表.
PeopleSoft中的许多批处理程序(例如:应用程序引擎,COBOL或SQR)直接访问表,这是将数据导入或导出数据库的最快方法.但是,PeopleSoft具有相当丰富的应用程序层,在执行直接SQL时会被绕过.必须在直接SQL代码中复制此应用程序层,尤其是对于插入或更新.可能存在对数据库存储计数器的其他表,计算或增量的更新.
要确定如何执行此操作,必须查看PeopleCode(类似VB6的解释语言),页面设计(通过Application Designer)并使用PeopleCode和SQL跟踪工具.现在,应用程序层非常庞大,因此对于非平凡的页面来说,这可能是一项冗长的任务.PeopleSoft将相关页面分组为"组件",组件中的所有页面同时保存.
使用PeopleTools 8引入组件接口作为避免完成所有这些操作的方法.使用PeopleSoft应用程序设计器中的生成器,将基于该组件生成组件接口.对于许多组件,这些组件可用于以用户身份访问页面,并且可以通过PeopleCode程序访问,因此可以通过App Engine程序和Integration Broker访问.它们也可以用Java代码包装,并通过能够使用Web服务包装器对应用服务器执行的代码直接访问.此方法最适用于低容量事务:使用本机SQL可以更好地使用大量提取.
PeopleSoft中的在线开发和跟踪工具非常好,文档非常好(尽管非常广泛),可在以下网址获得:http://download.oracle.com/docs/cd/E17566_01/epm91pbr0/eng/psbooks/psft_homepage. HTM
如果您只是想从给定组件中提取数据,最简单的方法是打开SQL跟踪(在PeopleSoft的实用程序菜单下)并为组件调出一些记录.浏览跟踪文件可以让您很好地了解要执行的操作,并且可以剪切和粘贴大部分SQL.另一种方法是找到一个类似于您尝试执行的现有报告并删除SQL.
让PeopleSoft业务分析师随时帮助您制定要求也不会受到伤害.