我们有一个PeopleSoft安装,我正在构建一个单独的Web应用程序,需要从PeopleSoft数据库中获取数据。 Web应用程序将在与PeopleSoft不同的服务器上,但具有相同的内部网络。

我有什么选择?

有帮助吗?

解决方案

是的 - 集成经纪人是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或SQRS)中的许多批处理程序直接访问表,这是将数据输入或退出数据库的最快方法。但是,PeopleSoft具有相当丰富的应用层,在执行直接SQL时绕过。该应用程序层必须以直接的SQL代码复制,尤其是用于插入或更新。可能对数据库存储的计数器的其他表,计算或增量进行更新。

要确定如何做到这一点,必须透过PeopleCode(类似VB6的解释语言),页面设计(通过应用程序设计器)并使用PeopleCode和SQL跟踪工具。如今,应用层是巨大的,因此对于非平凡页面来说,这可能是一项漫长的任务。 PEOPLESOFT组与“组件”相关的页面,并且组件中的所有页面均同时保存。

与Peopletools 8一起引入了组件界面,以避免执行所有这些操作。使用PeopleSoft App Designer中的生成器,基于组件生成组件接口。对于许多组件,这些组件可用于像用户一样访问页面,并且可以通过PeopleCode程序,因此可以通过App Engine程序和Integration Broker访问。它们也可以包裹在Java代码中,并通过可以使用Web Service包装器对应用程序服务器执行的代码直接访问。此方法最适合小批量交易:重型提取物与天然SQL更好地工作。

PeopleSoft中的在线开发和跟踪工具非常好,文档非常出色(尽管很广泛),并且可以使用: http://download.oracle.com/docs/cd/e17566_01/epm91pbr0/eng/psbooks/psft_homepage.htm

如果您只是想从给定的组件中提出数据,那么最简单的方法是打开SQL跟踪(在PeopleSoft的“实用程序”下)并为组件提出一些记录。通过跟踪文件进行涉水将使您对做什么有一个好了解,并且大部分SQL可以被剪切和粘贴。另一种方法是找到与您尝试做的类似并剪切SQL相似的现有报告。

手头有PeopleSoft业务分析师来帮助您制定要求也不会受到伤害。

我想这取决于您的要求以及您所使用的PeopleSoft。

您想要实时查找吗?如果是这种情况,那么您将要查看Web服务/集成经纪人。

如果您想要批处理/批量导出,那么计划的应用引擎将解决问题。

最好的方法是使用集成经纪人(IB)服务将PeopleSoft数据库数据公开到外部应用程序中。外部应用程序将能够通过HTTP访问PeopleSoft IB服务,从而使您可以为此目的使用任何广泛使用的XML Parsers。

组件接口而不是集成经纪人的问题是,组件接口往往比从IB Service PeopleCode内部的直接db访问速度慢得多。同样,在组件接口上附加的组件中的未来添加有时会“断开”接口。

有关PeopleSoft集成经纪人的更多详细信息,您可以访问在线文档 http://docs.oracle.com/cd/e26239_01/pt851h3/eng/psbooks/tibr/book.htm

直接访问数据库意味着您必须重新创建演示文稿逻辑...请参阅上面的更长的答案。您可以在简单页面上执行此操作,但是否则使用组件接口是必经之路。

您还可以编写用于批量数据提取的SQR过程。 SQR将创建其他应用程序可以选择的输出文件。 SQR将比应用程序引擎程序更快,因为它在内存中执行了大多数操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top