2009-06-12 21 views
5

Wir haben eine PeopleSoft-Installation und ich erstelle eine separate Webanwendung, die Daten aus der PeopleSoft-Datenbank abrufen muss. Die Webanwendung befindet sich auf einem anderen Server als PeopleSoft, aber das gleiche interne Netzwerk.Abrufen von Daten aus PeopleSoft

Was sind meine Optionen?

+0

Ich benutze Glassfish, ist es in Ordnung, eine Datenquelle einzurichten, die die URL zur PeopleSoft-Datenbank hat? – bmw0128

Antwort

4

Ja - Integration Broker ist Peoplesofts proprietäre Implementierung eines Publish/Subscribe-Mechanismus, der Xml spricht. Sie könnten natürlich nur Code schreiben, der mit JDBC oder OLE/ODBC gegen Ihre Datenbank läuft. Nichts hält dich davon ab. Sie müssen jedoch das Peoplesoft-Datenbankschema verstehen, damit Sie alle korrekten Daten abrufen oder hinzufügen/aktualisieren/löschen können. Peoplesoft kümmert sich darum für Sie.

Überprüfen Sie auch Component Interfaces - und sie sind als API zu Java oder C/C++ ausgesetzt.

1

Ich denke, es hängt von Ihrer Anforderung ab, und welche Version von PeopleSoft Sie sind.

Möchten Sie in Echtzeit suchen? Wenn dies der Fall ist, sollten Sie sich Web Services/Integration Broker ansehen.

Wenn Sie einen Batch-/Bulk-Export wünschen, würde eine geplante App Engine den Zweck erfüllen.

+1

ich bin noch nicht vertraut mit PS, sagst du, dass PS hat etwas, wo ich die Daten über Web-Dienste zur Verfügung stellen kann? Und sehen Sie irgendeine negative Konsequenz, wenn Sie nur eine Datenquelle einrichten, die direkt in die PS-Datenbank geht? – bmw0128

5

Dies ist ein Oldie, aber es kann immer noch von Interesse sein.

PeopleSoft hat ein eigenes Schema innerhalb der Host-Datenbank (Oracle, SQL Server, DB2 usw.), die die PSxxx-Tabellen sind, zB: PSRECDEFN ist das Äquivalent von Oracles DBA_TABLES. Diese Tabellen sollten von keinem externen Code berührt werden. Die Anwendungstabellen sind in PS_xxx Tabellen gespeichert, zB: PS_JOB. Diese Tabellen können mit jedem SQL-Code gelesen und aktualisiert werden.

Viele Batch-Programme in PeopleSoft (z. B. Application Engines, COBOL oder SQRs) greifen direkt auf die Tabellen zu, und dies ist der schnellste Weg, um Daten in die Datenbank oder aus der Datenbank zu bekommen. PeopleSoft hat jedoch eine recht umfangreiche Anwendungsschicht, die beim direkten SQL umgangen wird. Diese Anwendungsschicht muss in direktem SQL-Code repliziert werden, insbesondere für Einfügungen oder Aktualisierungen. Es kann Aktualisierungen zu anderen Tabellen, Berechnungen oder Inkrementen von in der Datenbank gespeicherten Zählern geben.

Um festzustellen, wie dies zu tun ist, muss man durch den PeopleCode (eine VB6-ähnliche interpretierte Sprache), Seitenentwurf (über Application Designer) und verwenden Sie die PeopleCode und SQL-Trace-Tools. Heutzutage ist die Anwendungsschicht sehr groß, daher kann dies eine langwierige Aufgabe für nicht-triviale Seiten sein. PeopleSoft gruppiert verwandte Seiten in "Komponenten", und alle Seiten in der Komponente werden gleichzeitig gespeichert.

Komponentenschnittstellen wurden mit PeopleTools 8 eingeführt, um all dies zu vermeiden. Mithilfe eines Generators im PeopleSoft App Designer wird basierend auf der Komponente eine Komponentenschnittstelle generiert. Für viele Komponenten können diese verwendet werden, um auf die Seiten wie ein Benutzer zuzugreifen, und können über PeopleCode-Programme und somit über App Engine-Programme und über den Integration Broker aufgerufen werden. Sie können auch in Java-Code eingebettet sein und direkt auf Code zugreifen, der mit einem Web-Service-Wrapper gegen den Anwendungsserver ausgeführt werden kann. Diese Methode eignet sich am besten für Transaktionen mit geringem Volumen: Heavy Extracts funktionieren besser mit Native SQL.

Die Online-Entwicklung und Tracing-Tools in People sind ziemlich gut, und die Dokumentation ist sehr gut (wenn auch recht umfangreich) und auf: http://download.oracle.com/docs/cd/E17566_01/epm91pbr0/eng/psbooks/psft_homepage.htm

Wenn Sie schauen nur auf Daten aus einer bestimmten Komponente herauszubringen, die Am einfachsten wäre es, den SQL-Trace (unter dem Utilities-Menü in PeopleSoft) einzuschalten und einige Datensätze für die Komponente aufzurufen.Wenn Sie durch die Trace-Datei waten, erhalten Sie eine gute Vorstellung davon, was zu tun ist, und ein großer Teil des SQL könnte ausgeschnitten und eingefügt werden. Eine andere Methode wäre, einen vorhandenen Bericht zu finden, der dem ähnlich ist, was Sie versuchen, und den SQL zu löschen.

Haben Sie einen Business Analyst von PeopleSoft, der Ihnen hilft, die Anforderungen zu entwickeln?

0

Wenn Sie direkt zur Datenbank gehen, müssen Sie die Präsentationslogik neu erstellen ... siehe meine längere Antwort oben. Sie können dies für einfache Seiten tun, aber ansonsten ist die Verwendung einer Komponentenschnittstelle der richtige Weg.

1

Der beste Weg besteht darin, mithilfe von Integration Broker (IB) -Diensten die PeopleSoft-Datenbankdaten für externe Anwendungen verfügbar zu machen. Die externe Anwendung kann auf die PeopleSoft IB-Dienste als XML über HTTP zugreifen, so dass Sie für diesen Zweck alle gängigen XML-Parser verwenden können.

Das Problem mit Komponentenschnittstellen im Gegensatz zu Integration Broker ist, dass Komponentenschnittstellen viel langsamer als direkter DB-Zugriff von IB-Dienst PeopleCode sind. Auch zukünftige Erweiterungen der Komponente an der Komponentenschnittstelle neigen manchmal dazu, die Schnittstelle zu "brechen".

Weitere Informationen zu People Integration Broker, können Sie die Online-Dokumentation zugreifen http://docs.oracle.com/cd/E26239_01/pt851h3/eng/psbooks/tibr/book.htm

0

Sie können auch einen sqr-Verfahren zur Massendatenextraktion schreiben. SQR erstellt die Ausgabedatei, die die andere Anwendung auswählen kann. SQR wäre schneller als die Anwendungsprogrammprogramme, da es die meisten Vorgänge im Speicher ausführt.