从 PeopleSoft 获取数据

发布于 2024-07-23 14:32:16 字数 133 浏览 10 评论 0原文

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

我有什么选择?

We have a PeopleSoft installation and I am building a separate web application that needs to pull data from the PeopleSoft database. The web application will be on a different server than PeopleSoft, but the same internal network.

What are my options?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

梦里南柯 2024-07-30 14:32:16

这个是老歌了,但可能仍然很有趣。

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 配合使用效果更好。

PeopleSoft 中的在线开发和跟踪工具非常好,文档也非常出色(尽管相当广泛),可在以下位置获取:http://download.oracle.com/docs/cd/E17566_01/epm91pbr0/eng/psbooks/psft_homepage.htm

如果您只是想从给定组件中取出数据,最简单的方法是打开 SQL 跟踪(在 PeopleSoft 的实用程序菜单下)并调出组件的一些记录。 浏览跟踪文件将使您清楚地了解要做什么,并且可以剪切和粘贴大部分 SQL。 另一种方法是找到与您想要执行的操作类似的现有报告并删除 SQL。

拥有 PeopleSoft 业务分析师来帮助您开发需求也不会有什么坏处。

This one's an oldie but it may still be of interest.

PeopleSoft has it's own schema within the host database (Oracle, SQL Server, DB2 etc) which are the PSxxx tables, eg: PSRECDEFN is the equivalent of Oracle's DBA_TABLES. These tables should not be touched by any external code. The application tables are stored in PS_xxx tables, eg: PS_JOB. These tables can be read and updated by any SQL code.

Many batch programs in PeopleSoft (eg: Application Engines, COBOL or SQRs) access the tables directly, and this is the fastest way to get data into or out of the database. However PeopleSoft has quite a rich application layer which is bypassed when doing direct SQL. This application layer must be replicated in direct SQL code, especially for inserts or updates. There may be updates to other tables, calculations or increments of database-stored counters.

To determine how to do this one must look through the PeopleCode (a VB6-like interpreted language), page design (via Application Designer) and use the PeopleCode and SQL trace tools. These days the application layer is huge, so this can be a lengthy task for non-trivial pages. PeopleSoft groups related pages into "Components", and all pages in the component are saved at the same time.

Component Interfaces were introduced with PeopleTools 8 as a means to avoid doing all of this. Using a generator within the PeopleSoft app designer, a Component Interface is generated based on the component. For many components these can be used to access the pages as a user would, and can be accessed via PeopleCode programs, and therefore via App Engine programs and via the Integration Broker. They can also be wrapped in Java code and access directly by code able to execute against the app server with a web service wrapper. This method is best for low-volume transactions: heavy extracts work better with native SQL.

The online development and tracing tools in PeopleSoft are pretty good, and the documentation is excellent (although quite extensive) and available on: http://download.oracle.com/docs/cd/E17566_01/epm91pbr0/eng/psbooks/psft_homepage.htm

If you are just looking at bringing out data from a given Component, the easiest way would be to turn on the SQL trace (under the utilities menu in PeopleSoft) and bring up some records for the Component. Wading through the trace file will give you a good idea of what to do, and much of the SQL could be cut and pasted. Another method would be to find an existing report that is similiar to what you are trying to do and cut out the SQL.

Have a PeopleSoft business analyst on hand to help you develop the requirements wouldn't hurt either.

雪若未夕 2024-07-30 14:32:16

是的 - Integration Broker 是 Peoplesoft 专有的发布/订阅机制实现(用 xml 表示)。 当然,您可以使用 JDBC 或 OLE/ODBC 编写针对数据库的代码。 没有什么可以阻止你这样做。 但是,您必须了解 Peoplesoft 数据库架构,以便提取或插入/更新/删除所有正确的数据。 Peoplesoft 会为您处理这件事。

另外,请查看组件接口 - 它们作为 API 公开给 Java 或 C/C++。

Yes - Integration Broker is Peoplesoft's proprietary implementation of a publish/subscribe mechanism, speaking xml. You could of course just write code that goes against your database using JDBC or OLE/ODBC. Nothing keeps you from doing this. However, you must understand the Peoplesoft database schema, so that you are pulling from, or inserting/updating/deleting all of the proper data. Peoplesoft takes care of this for you.

Also, check out Component Interfaces - and they are exposed as an API to Java or C/C++.

来世叙缘 2024-07-30 14:32:16

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

您想要实时查找吗? 如果是这种情况,那么您需要查看 Web 服务/集成代理。

如果您想要批量导出,那么预定的 App Engine 就可以解决问题。

I guess it depends on your requirement, and which version of PeopleSoft you're on.

Do you want real-time lookup? If that's the case then you'll want to look at Web Services/Integration Broker.

If you want a batch/bulk export then a scheduled App Engine would do the trick.

梨涡 2024-07-30 14:32:16

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

You can also write a sqr process for bulk data extraction. SQR will create the output file which the other application can pick. SQR would be faster than the application engine programs as it performs most of the operations in memory.

软糖 2024-07-30 14:32:16

直接访问数据库意味着您必须重新创建表示逻辑......请参阅上面我的较长答案。 您可以对简单的页面执行此操作,但除此之外,使用组件接口也是可行的方法。

Going directly to the database means you have to re-create the presentation logic... see my longer answer above. You can do this for simple pages but otherwise using a component interface is the way to go.

暗恋未遂 2024-07-30 14:32:16

最好的方法是使用集成代理 (IB) 服务将 PeopleSoft 数据库数据公开给外部应用程序。 外部应用程序将能够通过 HTTP 以 XML 形式访问 PeopleSoft IB 服务,从而允许您使用任何广泛使用的 XML 解析器来实现此目的。

与 Integration Broker 相比,组件接口的问题在于组件接口往往比 IB 服务 PeopleCode 内的直接数据库访问慢得多。 此外,将来对附加到组件接口的组件的添加有时往往会“破坏”该接口。

有关 PeopleSoft Integration 代理的更多详细信息,您可以访问在线文档 http://docs.oracle.com/cd/E26239_01/pt851h3/eng/psbooks/tibr/book.htm

The best way is to use Integration Broker (IB) services to expose the PeopleSoft database data to external applications. The external application will be able to access the PeopleSoft IB services as XML over HTTP, thus allowing you to use any widely used XML parsers for this purpose.

The problem with component interfaces as opposed to Integration Broker is that component interfaces tend to be much slower than direct DB access from within IB service PeopleCode. Also future additions to the component attached to the component interface sometimes tend to 'break' the interface.

For more details on PeopleSoft Integration broker, you can access the online documentation at http://docs.oracle.com/cd/E26239_01/pt851h3/eng/psbooks/tibr/book.htm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文