我们有一个PeopleSoft安装,我正在构建一个单独的web应用程序,需要从PeopleSoft数据库中提取数据。web应用程序将位于与PeopleSoft不同的服务器上,但位于相同的内部网络上。
我有什么选择?
发布于 2009-06-21 17:03:14
是的-集成代理是Peoplesoft的发布/订阅机制的专有实现,使用xml。当然,您可以使用JDBC或OLE/ODBC编写不利于您的数据库的代码。没有什么能阻止你这样做。但是,您必须了解Peoplesoft数据库模式,以便从适当的数据中提取或插入/更新/删除所有适当的数据。Peoplesoft会帮你解决这个问题。
此外,请查看组件接口-它们作为API公开给Java或C/C++。
发布于 2011-11-06 05:56:36
这本书很老了,但它可能仍然会引起人们的兴趣。
PeopleSoft在主机数据库(Oracle、SQL Server、DB2等)中有自己的模式,这些模式是PSxxx表,例如: PSRECDEFN相当于Oracle的DBA_TABLES。这些表不应该被任何外部代码触及。应用程序表存储在PS_xxx表中,例如: PS_JOB。这些表可以由任何SQL代码读取和更新。
PeopleSoft中的许多批处理程序(例如:应用程序引擎、COBOL或SQR)直接访问表,这是将数据传入或传出数据库的最快方法。然而,PeopleSoft有一个相当丰富的应用层,这在执行直接SQL时会被绕过。必须在直接的SQL代码中复制此应用层,尤其是在插入或更新时。可能存在对其他表的更新、计算或数据库存储的计数器的增量。
要确定如何做到这一点,必须查看PeopleCode (一种类似于VB6的解释型语言)、页面设计(通过应用程序设计器),并使用PeopleCode和SQL跟踪工具。如今,应用层非常庞大,因此对于非平凡的页面来说,这可能是一项冗长的任务。PeopleSoft将相关页面分组到组件中,组件中的所有页面都会同时保存。
组件接口是在PeopleTools 8中引入的,作为一种避免执行所有这些操作的方法。使用PeopleSoft应用程序设计器中的生成器,将基于组件生成组件接口。对于许多组件,这些组件可以用来像用户一样访问页面,并且可以通过PeopleCode程序访问,因此可以通过App Engine程序和集成代理访问。它们还可以包装在Java代码中,并由能够使用web服务包装器对应用程序服务器执行的代码直接访问。这种方法最适合于低容量事务:大量提取与原生SQL一起工作得更好。
http://download.oracle.com/docs/cd/E17566_01/epm91pbr0/eng/psbooks/psft_homepage.htm上提供的PeopleSoft在线开发和跟踪工具相当不错,文档也非常优秀(尽管内容相当丰富)
如果您只是想从给定组件中提取数据,最简单的方法是打开SQL跟踪(在PeopleSoft中的实用程序菜单下),并显示该组件的一些记录。浏览跟踪文件可以让您很好地了解要做什么,并且可以剪切和粘贴大部分SQL。另一种方法是找到一个与您想要做的事情相似的现有报告,然后去掉SQL。
手头有一位PeopleSoft业务分析师来帮助您开发需求也不会有什么坏处。
发布于 2009-06-12 12:13:30
我猜这取决于您的需求,以及您使用的PeopleSoft版本。
你想要实时查找吗?如果是这种情况,那么您将需要查看Web服务/集成代理。
如果您想要批量/批量导出,那么计划的应用程序引擎就可以做到这一点。
https://stackoverflow.com/questions/984867
复制相似问题