PeopleSoftによるさまざまな統合方法

著者:Chris Judson

PeopleSoftは、長年にわたり、データへのアクセスとビジネス機能実行のための多様な統合ポイントを提供してきました。 このすべてを可能にしたのが、PeopleSoft 8.x以降で取り入れられている、コンポーネントを基盤としたアプリケーション構築手法です。 コンポーネントは実環境におけるビジネス・オブジェクトを表し、それぞれが保有するキーにより、ビジネス・オブジェクトの特定のインスタンスに移動できます。 各コンポーネントは、特定のビジネス機能(例:名前、住所などの追加/更新)を実行するために必要なデータ、ビジネス・ロジック、機能のすべてがカプセル化された構成となっています。 PeopleSoftでは、コンポーネントのコンセプトによって実現可能となったこのカプセル化の手法を活用して、データの取得および更新をおこなうためのさまざまな方法を提供すると同時に、必要なビジネス・ロジックすべてがPeopleSoftで定義したデータおよびセキュリティの制約に基づいて実行されることを保証しています。

コンポーネント・インタフェース(CI)は、PeopleSoftが開発した統合メソッドの1つで、これにより、内部および外部アプリケーションから基盤となるコンポーネントへのアクセスが可能となります。 CIを使用することで、外部システムでは、HTTP(S)やXMLを介してPeopleSoftコンポーネントを呼び出したり、Java、COM、またはC/C++バインディングを使用してコンポーネント・クライアントを起動したりすることができます。 コンポーネント・クライアントとは、コンポーネント内に格納されたPeopleSoftのビジネス・ロジックを実行するために、アプリケーション・サーバーと通信をおこなうマルチスレッドのクライアントです。

PeopleSoft Application Messagingは、PeopleSoftのもう1つの統合メソッドで、PeopleSoftアプリケーションから外部システムに、コンポーネントで実行されるビジネス・イベントの起動に関する通知を送信できるようにします。 実行されるビジネス・イベントは、XMLとして公開され、サブスクライビング・システムに配信されます。 Application Messagingでは、プロセスを続行する前にコンポーネントで外部の同期Webサービスを起動してデータを取得する機能もサポートされています。

コンポーネント・インタフェースによる統合とApplication Messagingによる統合には、おもに以下の2つの違いがあります。

1. コンポーネント・インタフェースでは、コンポーネント内にすでに含まれているビジネス・ロジックすべてが実行されます。 Application Messagingの場合は、メッセージ・イベントに関連するロジックのみが実行されます。 メッセージ・イベントにロジックがない場合は、作成する必要があります。

2. コンポーネント・インタフェースの起動には、適切な権限のある有効なPeopleSoftユーザー名とパスワードが常に必要となります。

ここからは、コンポーネント・インタフェースによって使用可能となる機能について重点的に説明していきます。 まず、PeopleToolsの各種バージョンで導入されているおもな統合機能について、以下の表1:PeopleToolsの機能に示します。

PeopleToolsバージョン

機能

PeopleTools 8.0

導入された機能:
コンポーネント・インタフェース
Application Engine
Application Messaging

PeopleTools 8.40

Integration Brokerの導入

PeopleTools 8.42

コンポーネント・インタフェースからのWebサービスの作成

PeopleTools 8.44

アプリケーション・メッセージからのWebサービスの作成

PeopleTools 8.46

Oracle BPEL Process Managerとの相互運用が可能な認定済みのIntegration Broker

PeopleTools 8.47

Oracle Fusion Middlewareとの相互運用が可能な認定済みのPeopleTools

PeopleTools 8.48

Oracle Fusion Middleware用に最適化されたPeopleTools

Project Accounting

プロジェクトID、プロジェクト名、プロジェクト・コスト、プロジェクト・コスト配分方針、期間、タスク、支出(品目、グループ、タイプなど)

表1: PeopleToolsの機能

コンポーネント・インタフェース独自の特徴として、外部アプリケーションがPeopleSoftのユーザー・インタフェースを使用してデータを入力しているかのように、リアルタイム・インタフェースが提供される点があります。 これにより、ユーザーが入力したデータとCIによって入力されたデータのいずれについても、まったく同じビジネス・ロジック、データ整合性ルール、およびセキュリティが使用されることになります。

PeopleToolsのバージョン8.42以降では、CIによるWebサービスの自動生成機能が提供されています(Java、C/C++、およびCOMオブジェクトの自動生成については、PeopleTools 8.22以降でサポートされています)。 この機能により、Oracle Fusion Middlewareにおいて標準ベースのWebサービスとの通信を簡単におこなうことができるため、CIによる統合も迅速かつ簡単になります。 以下の図1:PeopleTools 8.42以降の統合は、このアーキテクチャを示したものです。

PeopleTools 8.0から8.42以前のバージョンでは、CIの公開はJava、COM、またはC/C++バインディングのみであるため、Oracle Fusion Middleware内からCIに接続する方法は2つあることになります。 次の図2:PeopleTools 8.42以前の統合との比較で、この2つのオプションの概略を示します。

図2: PeopleTools 8.42以前の統合との比較

Oracle Adapter for PeopleSoftを使用すると、任意のCIでOracle Fusion Middlewareにアクセスできるようになります。 このアダプタは、SOAPスイッチ内に配置することでCIをWebサービスとして公開したり、JCAを介してOracle BPEL Process Manager(Oracle BPEL PM)に統合したりすることができます。 どちらの場合も、このアダプタを使用することでOracle BPEL PMまたはOracle Enterprise Service Bus(Oracle ESB)でのCIへのアクセスが簡単になります。 PeopleSoftアダプタは、初期設定こそあまり簡単とはいえませんが、一度設定すると、膨大な数のCIへの統合を迅速かつ簡単におこなうことができます。 ただし、このモデルを使用した場合、アダプタから返されるエラー・メッセージがわかりにくいという重大な欠点がありました。

Oracle BPEL内からCIへの接続をおこなう2つ目の方法として、PeopleTools Application Designerから生成したJava APIを使用して独自のWebサービスを作成する手法があります。 これはたいへんな作業のように聞こえますが、実際には非常に単純で、Javaに関する若干の知識と、CI、そしてOracle JDeveloperのような便利なツールがあれば、簡単にWebサービスを作成できます。 CIのWebサービス・ラッパーを作成するためにかかる時間は、CIに含まれるレベル数に応じて1日から3日程度です。 ただしカスタムWebサービスを作成する際は、各フィールドへの入力を特定の順序でおこなわなければCIが適切に動作しなくなるため、フィールドを更新する順序にはとくに注意を払う必要があります。 作成したWebサービスは、Oracle BPELまたはOracle ESBの任意のプロセスに簡単に統合できます。

CI用のWebサービス・ラッパーを独自に作成すると、カスタム・ボタンを押すことからカスタム・リンクのクリックまで、ユーザーが実行するあらゆる操作のシミュレーションが可能となります。 Oracle Adapter for PeopleSoftを使用した場合はデータの取得および保存機能が提供されるだけであることを考慮すると、この機能は大きなメリットです。

CIとの統合を少しずつ進め、緊密な統合が必要な少数のインタフェースに対する統合のみ実施する場合には、カスタムWebサービスを作成する方法がコスト効率の点で最善となる可能性もありますが、多数のCI(10以上)の統合を計画している場合は、Oracle Adapter for PeopleSoftを使用するほうが長期的にはコスト効率が高くなると考えられます。

上図に示されているPeopleSoft Integration Brokerは、データを取得してPeopleSoftに入力するためのもう1つの方法ですが、これについては別のチュートリアルで改めて説明します。

コンポーネントからのコンポーネント・インタフェースの作成

著者:Sunil Manaktala

ここでは、People Tools 8.48で導入された機能を使用することで、各企業のエンタープライズ・アプリケーションにSOAアーキテクチャを適用するプロセスがいかに簡単かつ迅速に実行できるようになるかについて、例として作成したオンボード・プロセスに基づいて説明します。 このプロセスは、PeopleSoft HRでWorkforce Administrationモジュールに従業員を追加することで開始します。 次に、BPELプロセスによりPerson Dataコンポーネント・インタフェースが呼び出され、新しい従業員についての入力データがすべて取得されます。 これにより、プロセスでは取得したデータを後続の手順で使用できるようになります。 その後、独自に作成したFacilities Webサービスが起動し、新しく採用された従業員のバッジ番号が生成されます。 ここで、新規従業員に対し、仕事用の電子メール・アドレス、バッジ番号、および従業員IDが記載された電子メール通知が生成されます。続いて、独自に作成したBadgeコンポーネント・インタフェースが呼び出され、新しく生成したバッジ番号でBadgeコンポーネントが更新されます。 最後に、プロセスのログがPeopleSoftの財務システムに記録され、新規従業員用として新しいラップトップの発注書が作成されます。 発注書は、注文するラップトップを支給する従業員の従業員IDを参照します。

オンボード・プロセス・フロー

上図で示されているBPELプロセスのポイントをまとめると、以下のようになります。

· 新規従業員を追加するだけで、プロセスが開始されます。 プロセスは、従業員データを入力してページを保存すると起動します。 プロセスを開始するために、ユーザーが追加の操作をおこなう必要はありません。

· 既存のコンポーネント・インタフェース(CI_PERSONAL_DATA)をWebサービスとして公開し、BPELプロセスで起動します。

· 既存のコンポーネント(BADGE)を使用して新規コンポーネント・インタフェース(BADGE_CI)を作成します。作成したCIはWebサービスとして公開し、BPELプロセスで起動します。

· カスタムWebサービスを作成し、BPELプロセスで起動します。

· PS HCMの従業員エントリ・ページで入力したデータ値(電子メール・アドレス、バッジ番号、従業員ID)が含まれた電子メール通知が生成されます。

· 同一のBPELプロセスで2つの個別PeopleSoftシステムにアクセスし、PeopleSoft HCMのデータをPeopleSoft Financialsに転送します。 PeopleSoft Financials 9.0で発注書を作成し、従業員IDを発注書に追加すると、照合プロセスが簡単になります。

コンポーネントからのコンポーネント・インタフェースの作成

PeopleSoftでは、任意のコンポーネントからコンポーネント・インタフェース(CI)を作成できます。 作成したCIは、Webサービスとして公開可能です。 ここでは、PeopleSoft HCM 9.0で提供されているコンポーネント(BADGE)のCIを作成しました。 CIの作成手順は、次のようになります。

· Application Designerで、「 File」→「 New」を選択します。

· 「 Component Interface」を選択します。

· 作成するコンポーネントを(BADGE)から選択すると、次のメッセージが表示されます。

· 「 Yes」をクリックします。

これで、コンポーネント・インタフェースが作成されました。

· 「 Save」をクリックして、コンポーネント・インタフェースに名前をつけます。 PeopleToolsによってコンポーネント・インタフェース名の前に'CI__*'が付加されるため、ここではコンポーネント名の後ろに'CI'を追加することをお勧めします(例:BADGE_CI)。

経験則では、コンポーネントが小さいほうが、コンポーネント・インタフェースの作成と処理は簡単になります。
これで、カスタム・コンポーネント・インタフェースの作成が完了しました。

次の手順では、作成したCIの整合性を検証します。 この検証により、メタデータが正確であること、そして各CIの定義がデータベースで求められている定義と一致していることを確認できます。 また、CIをWebサービスとして呼び出す際の問題の発生が抑制されます。 CIの検証は、以下の手順でおこないます。

· 「 Tools」→「 Validate for Consistency」の順に選択します。

結果は、画面下部に表示されます。

次に、Application DesignerでCIのテストをおこないます。

· 「 Tools」→「 Test Component Interface」を選択します。

Component Interface Testerが起動するので、既存のキー値を入力して「 Get Existing」を選択します。 このとき、GET History ItemsとEDIT History Itemsの2つのチェック・ボックスが選択されていることを確認してください。 これにより、既存データの編集が可能になります。

Component Interface Testerのデータ入力画面が表示されます。

コンポーネント更新用として有効な値を入力します。 入力時には、プロンプト値のあるフィールドの値と、個々のフィールドのデータ型が適切なものであることを確認してください。 たとえば、DATEフィールドにSTRING値を入力すると、CIの更新時にエラーが発生します。

値を入力すると、メソッドの呼出しが可能となります。 BADGE_CIのトップレベルのレコードをハイライトして右クリックします。

· 「 Save」を選択します。

以下のようなメッセージ・ボックスが表示されます。ここで‘1’が表示されている場合は、テストが成功してCIが正常に機能していることを示し、‘0’が返された場合は、テストを継続する必要があることを示します。

テストが完了しました。 これで、作成したCIの検証とデータ入力のテストが終了しました。

次に、オンライン構成すべてを実行し、サービスを実行可能にしてCIをWSDLとしてエクスポートする必要があります。

· 「 PeopleTools」→「 Integration Broker」→「 Web Services」→「 Provide Web Service」の順に移動します。
CI_BADGE_CIを検索して「 Next」をクリックします。

ウィザードで後続の3つの手順を完了すると、CIがWebサービスとしてエクスポートされます。

WSDL:
http://psft1.innowavetech.net:8000/PSIGW/PeopleSoftServiceListeningConnector/CI_BADGE_CI.1.wsdl

次にOracle JDeveloperを開き、パートナー・リンクを選択してWSDL URLを入力します。 これで、新しく作成したCIをBPELプロセスで使用できるようになりました。どう使うかはあなた次第です。

 


Oracle JDeveloper 11gからのPeopleSoft Webサービスの起動

著者:Thor Nicolas

要件

PeopleSoft PeopleToolsに関する知識
Java言語に精通していること
Oracle JDeveloper 11gに精通していること

概要

PeopleSoftコンポーネントをWebサービスとして公開する処理は、PeopleTools 8.48リリースの使用で簡単になりました。いくつかの手順を実行するだけで、コンポーネントをWebサービスとして公開してサード・パーティのアプリケーションや開発ツールで使用できます。

ここでは、コンポーネントをWebサービスとして公開し、JDeveloper 11gを使用してそのWebサービスを起動する方法について説明します。 WebサービスをJDeveloperから起動できるようにするには、WSDLをインポートしてプロキシ・クラスを生成する必要があります。ここで生成したプロキシ・クラスがWebサービスのラッパーとして機能します。 生成後は、Webサービスの起動が、そのプロキシ・クラスの使用と同じように簡単な手順でおこなえるようになります。

ここではJDeveloper 11gを使用していますが、10.1.3などの以前のバージョンでも、同じ手順に従って必要なプロキシ・クラスを生成してください。ただし、サンプル・コードについては変更する必要があります。

ここでは、あらかじめ用意されているUser ProfileコンポーネントおよびUser Profileコンポーネント・インタフェースを使用します。これは、すべてのPeopleSoftアプリケーションで使用されています。 この2つのオブジェクトを使用して、PeopleSoft Webサービスの作成に必要なサービス操作を生成します。 次に、JavaアプリケーションでPeopleSoftユーザーID("PS")を入力し、ユーザー・プロファイルの説明(“PeopleSoft Superuser”)を取得して画面に出力する方法でWebサービスをテストします。

使用バージョン

1)PeopleTools 8.48
2)Oracle JDeveloper 11g Tech Preview 3

手順の概要

1)コンポーネント・インタフェースの作成
2)サービス操作としてのコンポーネント・インタフェースの公開
3)サービス操作のWebサービスとしての公開
4)JDeveloper 11gでのWebサービスの利用(PSで生成されたWSDLを使用)

手順の詳細

1)Webサービスとして公開するPeopleSoftコンポーネントを選択します。この例では、User Profileコンポーネントを使用します。

2)PeopleTools Application Designerを起動し、コンポーネント・インタフェースを作成します。
3)PeopleSoftにオンラインでログインします。
4)PeopleSoft Integration Brokerのサービス構成が正しいことを確認します。

5)以下のサービス操作がアクティブに設定されていることを確認します。

6)CI-Based Servicesウィザードを使用して、公開対象のコンポーネント・インタフェースのサービス操作を生成します。

7)生成したサービス操作を確認します。

8)Provide Web Servicesウィザードを使用して、生成したサービス操作のWebサービスを作成します。

9)作成したWebサービスのWSDL URLをコピーします(このURLはJDeveloperで必要となります)。

10)コンポーネント・インタフェースにセキュリティ権限を付与します(ユーザーが権限リストを使用してそのCIにアクセスする際のメソッドを選択します)。

11)JDeveloper 11gを起動して新しいプロジェクトを作成します。

12)新しい項目を追加します。これには、「 Business Tier」→「 Web Services」→「 Web Services Proxy」を選択して、Create Web Service Proxyウィザードを起動します。

13)上記の手順10でコピーしたWSDL URLを貼り付けます。

14)生成するパッケージの名前を入力し、「 Finish」をクリックします。 これにより、WSDL(およびそのWSDL内の参照スキーマ)が読み取られ、必要なクラスが生成されます。

15)クラスの生成後は、テスト用のプロキシ・クライアント・クラス(<CI_NAME>_PortClient.java)を使用できるようになります。

16)このクラスに含まれているコードを使用して、User Profileコンポーネントのテストをおこないます。 コードをコピーして、"//Add your own code here"の下に貼り付けます。

17)欠落しているクラスがある場合は、それぞれの場所で[Alt]+[Enter]キーをクリックして必要なクラスをインポートします。

18)テスト・コードを作成して実行します。

これで、処理が正常に完了します。

付録

import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas
                                            
.m158290.Get__CompIntfc__USER_PROFILEResponseTypeShape;
import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas
.m158290.UserDescriptionTypeShape;
import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas
.m879014.UserIDTypeShape; /*
* Demo for JDeveloper 11g Tech Preview 3 to PS Web Service(Tools 8.48)
* Thor Nicolas, 02-2008 Oracle Consulting
*/ // Pass the security token
// This is the user trying to invoke the CI Web Service
// Access controlled by permission list
myPort.setUsername("PS");
myPort.setPassword("PS");
// Call the CI using the proxy classes
UserIDTypeShape sUserID = new UserIDTypeShape();
// What USER ID are we querying
sUserID.set_value("PS");
Get__CompIntfc__USER_PROFILEResponseTypeShape ciResp;
ciResp = myPort.CI_USER_PROFILE_G(sUserID);
// Retrieve the return values (e.g. Operator Description)
UserDescriptionTypeShape sUserDescr = new UserDescriptionTypeShape();
sUserDescr = ciResp.getUserDescription();
// Display the description
System.out.println("Operator Description: " + sUserDescr.get_value())
System.out.println("Finished");
/* End of custom code */

スタイルによるPeopleSoft WSRPポートレットの利用

著者:Ronaldo Viscuso

PeopleTools 8.46では、ページレット・ウィザードにWSRP(Web Services for Remote Portlet)標準に対するサポートが導入されたため、任意のポータルからPeopleSoftページレットを利用する機能を簡単に実行できるようになりました。 バージョン8.48では、この機能がさらに拡張され、標準に準拠したあらゆるコンテンツ参照をWSRPポートレットとして公開できるようになったため、ほとんどすべてのPeopleSoftユーザー・インタフェースをほかのポータルで利用できます。

別のチュートリアルでも紹介されているとおり、WSRPを介してPeopleSoftページレットを利用するプロセスは非常に簡単なものですが、結果として表示されるページは、視覚的な独自性の点では物足りないものがあります。 この問題の要因は、PeopleSoftではユーザー・インタフェースのルック・アンド・フィールを定義するためにPeopleSoft固有のスタイル・シート・クラスを使用しており、ポータル・ページにPeopleSoftページレットを含める操作だけでは、この固有のスタイル・シート・クラスが取り入れられないからです。

以下の例は、コンテンツ参照(Personal information Summary)のPeopleSoftポートレットが含まれたOracle WebCenterページを示しています。 このページでは、デフォルトでOracle BLAFスタイル・シートが使用されているため、PeopleSoft固有のスタイル・クラスは定義されておらず、やや単調でわかりにくいレイアウトになっています。

この点を解決する方法はいたって簡単で、対象となるページにPeopleSoftスタイル・シート・クラスを実装するだけです。この処理は、以下のいずれかの方法で実行できます。

1)スタイル・シート・クラスを該当ページにインラインで追加する
2)CSSファイルを定義して、該当するページから参照する

ただし、PeopleSoftでは300を超える種類のスタイル・シート・クラスが使用されているため、これらのクラスを1つずつカスタム定義することは、実行不可能とはいわなくても非常に難しいでしょう。 実際、PeopleTools 8.48では、まさにこの点に対応するためにWSRPスタイル・プロパティが導入されました。これにより、PeopleSoftのデフォルト・スタイル・シート・クラスから、はるかにサイズの小さいWSRPスタイル・クラス・サブセットへのマッピングと一括置換が可能となりました。 この置換はポートレットのレンダリング時間に自動的に実行され、結果として、PeopleSoftで提供されるWSRPポートレットに含まれているスタイルはWSRPスタイルのみとなります。

以下の図は、PeopleTools Applications Designerにおけるスタイル・シート・クラスの定義を示すものです。 新しいWSRPスタイル・フィールドがあります。

PeopleTools 8.48では、以下の38のWSRPスタイル・クラスが使用されています。

PORTLET-FORM-BUTTON
PORTLET-FORM-LABEL
PORTLET-FORM-FIELD
PORTLET-FORM-FIELD-LABEL
PORTLET-FORM-FIELD-LABELDISABLED
PORTLET-FORM-INPUT-FIELD

PORTLET-MSG-ALERT
PORTLET-MSG-SUCCESS
PORTLET-MSG-ERROR
PORTLET-MSG-STATUS
PORTLET-MSG-INFO

   

PORTLET-MENU
PORTLET-MENU-CASCADE-ITEM-S
PORTLET-MENU-DESCRIPTION
PORTLET-MENU-ITEM-HOVER-S
PORTLET-MENU-CASCADE-ITEM
PORTLET-MENU-ITEM-HOVER
PORTLET-MENU-CAPTION
PORTLET-MENU-ITEM-SELECTED

PORTLET-FONT
PORTLET-FONT-DIM

   

PORTLET-ICON-LABEL

PORTLET-SECTION-HEADER
PORTLET-SECTION-SUBHEADER
PORTLET-SECTION-SELECTED
PORTLET-SECTION-TEXT
PORTLET-SECTION-BODY
PORTLET-SECTION-ALTERNATE
PORTLET-SECTION-FOOTER

   

PORTLET-DLG-ICON-LABEL

PORTLET-TABLE-HEADER
PORTLET-TABLE-FOOTER
PORTLET-TABLE-SELECTED
PORTLET-TABLE-SUBHEADER
PORTLET-TABLE-TEXT
PORTLET-TABLE-BODY
PORTLET-TABLE-ALTERNATE

結果として、ページレットをWebCenter(またはそのほかの任意のポータル・ツール)上で適切に表示するには、以下の例のように、38のスタイル・シート・クラスすべての定義が含まれたCSSファイルを作成し、ページ内から各クラスを参照すればよいことになります(WebCenterページではADF Facesタグを使用するため、afh名前空間を使用します)。

 <afh:head title="Homepage">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
<link type="text/css" rel="stylesheet" href="peoplesoft-wsrp.css"/>
</afh:head>

ファイルpeoplesoft-wsrp.cssの場合、次のようになります。

. PORTLET-FORM-BUTTON{font-family:Arial,sans-serif;
font-size:9pt;font-weight:normal;
font-style:normal;color:rgb(0,0,0);
background-color:rgb(252,252,181);
cursor:Hand
.PORTLET-SECTION-HEADER{border-width:0pt;
border-color:rgb(231,0,0);
border-style:solid;}
.PORTLET-SECTION-SUBHEADER{font-family:Arial,sans-serif;
font-size:11pt;font-weight:bold;
font-style:normal;color:rgb(51,51,153);
margin-top:1em;margin-bottom:0.3em;}
.PORTLET-TABLE-HEADER{font-family:Arial,sans-serif;
font-size:9pt;font-weight:bold;
font-style:normal;color:rgb(255,255,255);
background-color:rgb(51,51,153);
text-indent:1px;
border-width:thin;border-color:rgb(51,51,153);
border-style:solid;}

以下、38のスタイル・クラスすべてについて同様に処理します。

下図は図1と同じページですが、ここには上記のスタイル・シート定義が含まれています。 これにより、このポートレットでPeopleSoftとほとんど同じルック・アンド・フィールが実現しています。

ただし、スタイル・シートの本当の力が発揮されるのは、PeopleSoftポートレットがページで使用されるスタイルと一致するようスタイル・シートが使用されるときです。 また、CSSファイルのスタイル・クラス定義にいくつかの変更を加えることで、以下の例のように、より類似性の高いルック・アンド・フィールを実現できます。


Oracle XML Publisher技術によるレポート作成方法の拡張

著者:Peter Lewandowski

はじめに

流動性の高い今日の労働市場の影響を受け、多くの組織では、現在使用しているプログラムやレポートを記述した従業員が、すでに離職、あるいは別の部署に異動してしまっているという事態が生じています。 こうした元従業員の置きみやげともいうべきレポートを変更する必要が生じた場合、どこをどう修正すればよいのかを特定するための調査が必要となります。 XML(Extensible Markup Language)の場合、人が読んで合理的に意味を理解できる出力ドキュメントを作成することで、この問題を解決しようとしています。 PeopleSoftとOracleによって提供されているテクノロジーを利用すると、こうした実環境での問題に対する解決策を手にすることができ、場合によっては、希望する結果を得るために必要な変更の数を減らすことも可能となります。

XML

XMLは、データを記述するために開発され、SGML標準を簡易化したサブセットであり、W3Cで推奨されているマークアップ言語です。 この言語は、異機種の情報テクノロジー環境内で、データを共有するためのメカニズム提供を目的として作成されました。 実際のデータの記述には、DTD(Document Type Definition)、XMLスキーマ、RELAX NGを利用します。 DTDは、SGMLおよびXMLから派生したスキーマ言語の1つで、スキーマ言語のなかではもっともわかりやすいものです。

XMLの利点

XMLは人が読んで合理的に意味を理解できると同時に、コンピュータでも解読できる言語です。 この形式は、データ構造とフィールド名を記述するうえでの自己定義性と自己記述性の両方を備えています。 XMLは、プレーン・テキストで保存されたオープン・ソリューションとして提供されており、使用にあたってのライセンスの制約もありません。 XMLを利用することの最大の利点は、テクノロジーやプラットフォームの変更による影響を受けない点です。 このため、さまざまなアプリケーションの開発に取り組む開発者たちが、XML形式やXML形式を解析するためのツールを共有できます。

XMLの例

XMLによるデータ要素の構成例を以下に示します。 XMLでは、各要素が何を示しているかを知らなくても、ファイル内に含めるデータ要素を指定できます。 XMLのもつこの特徴により、あらゆる開発者がファイルにアクセスして変更を加えたり、ファイルの新しい用途を開発したりする処理を迅速かつ正確に実行できます。

構文

 <name attribute=”value”>content</name>

PeopleSoftによるXMLの例

<?xml version="1.0" ?>
                                            
<query numrows="10" queryname="address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="">
<row rownumber="1">
<ADDRESS1>ADDRESS1 sample data</ADDRESS1>
<ADDRESS2>ADDRESS2 sample data</ADDRESS2>
<CITY>CITY sample data </CITY>
<STATE>STATE sample data </STATE>
<POSTAL_CODE>POSTAL_CODE sample data </POSTAL_CODE>
</row>
</query>

XMLデスクトップの例

XMLデスクトップ・ソリューションは、PeopleTools 8.48.07e、Microsoft Word 2000以上、Oracle XML Template Builder 5.6 Build 45、およびOracle XML Publisher Enterprise Release 5.6.2で動作します。このホワイト・ペーパーは、PeopleSoft、Microsoft Word、およびOracle XML Publisher Enterpriseに精通しており、特別な指示がなくてもこのシステムを使いこなせるユーザーを対象としています。 ここでは、PeopleSoftアプリケーションで提供されている機能を利用して、PeopleSoftで使用するレポートを作成します。

まず、Oracle XML Publisherを使用して「 Data Source」ポータル・エントリにドリルして、PeopleSoftのレポート作成ツールに移動します。 PS Queryのデータソースを選択します。この問合せは、対応するXMLレポートを作成する前に用意しておく必要があります。 データソースの説明(ここではCheck Printing)を入力します。この説明によりデータ要素の検索が可能となるため、入力する説明は、フィールドで許される範囲で可能な限り記述的なものにします。この説明をより記述的な表現にするほど、レポートの特定が迅速になります。 次に、Object Owner IDを選択します。この例では、PeopleToolsを使用しています。 サンプル・データ・ファイルを生成し、デスクトップにダウンロードします。 このファイルは、テンプレート作成時にOracle XML Template Builderで使用されます。 スキーマ・ファイルを生成します。この例では使用していませんが、このファイルは、正しく動作させるためにアプリケーションで必要となります。 データソースを保存して、Microsoft Wordを開きます。

図1

デフォルトで新しいドキュメントが開かない場合は、新規に作成する必要があります。 Template BuilderとともにインストールされたTemplate Builderメニューに移動します。 「 Data」、「 Load the XML Data」の順に選択します。 これにより、ドキュメント上にXMLデータへの参照が作成されます。このXMLデータを使用して、PeopleSoftでの実行後にレポートが作成されます。 この時点で、データ要素とは関係なく更新できるレイアウトが作成されています。 HTMLまたは最終的に出力する形式で、ドキュメントを表示します。 これを実行するには、「 Tools Preview」に移動して最終的な出力形式を選択します。 この処理が完了したら、Template Builderに移動して「 Insert Field」を選択し、データ要素をドキュメントに追加します。 続いて、必要なデータ要素を選択し、最終的な出力用のドキュメントを作成します。 ここで再度、Template BuilderメニューのPreviewツールを使用して、ドキュメントをプレビューします。 ドキュメントをRTFファイルとして保存します。

図2

必要な形式でレポートを作成したら、PeopleSoftへのアップロードが可能となります。 レポート作成ツールに移動し、「 XML Publisher」、「 Report Definition」の順にドリルダウンします。 新しい定義を作成します。これにはまず、レポート名とデータソースの説明を作成します。この2つは、レポートにリンクするデータソースIDを決定する場合に使用します。 レポートのアクティブ化は、この例ではあとでおこなわれるため、この時点で実行する必要はありません。 適切なレポート・カテゴリIDを選択し、選択したカテゴリにレポートを配置します。この例では、ALLUSERを選択します。 Object Owner IDとして再度「 PeopleTools」を指定し、テンプレート・タイプには「 RTF」を選択します。 このテンプレートをアプリケーションにアップロードする必要があります。 この処理をおこなうには、「 Template」タブを選択してファイルをアップロードし、有効日を現在の日付以前となっているか、またはレポートを実行する際の検索対象にならないことを確認します。 また、RTFテンプレート・ファイルをアクティブ化しておきます。 レポート定義を保存します。 「 Preview」ボタンをクリックし、テンプレートが正常にアップロードされることを確認します。 新しいブラウザ・ウィンドウが開き、Microsoft Wordのプレビューでのテストとまったく同じようにレポートのレイアウトが表示されます。

図3

レポートを実行して実際の出力データを確認するには、Query Report Viewerに移動します。 最終的なレポートの出力形式を選択してから、「 View Report」を選択します。 問合せにプロンプトが含まれている場合、それらのプロンプトがView Report機能で使用され、結果が新しいウィンドウに出力されます。 このレポートには、実際のデータ出力が表示されています。 レポートは、バッチ・モードで送信できます。 バッチ・モードでのレポート送信時には、レポートが最初に作成されたときと同じ実行オプションを使用します。

図4

問合せのセキュリティ

PeopleSoftの行レベル・セキュリティが有効化されている場合、レポートでは問合せのセキュリティに基づくセキュリティが使用されます。

保守と開発

問合せに対する変更は、フィールドを削除したり名前を変更したりしなければレポートに影響することはなく、XMLソースの変更も可能です。 また、レポート形式を変更しても問合せには影響しないため、開発に関する経験や知識のないユーザーでも変更できます。 さらに、問合せやソース・ファイルを変更しなくても、同じ問合せとXMLソース・ファイルを利用して、完全に異なるレポート・テンプレートを作成することもできます。

さまざまな業界での導入

この新しい標準は、世界中の企業および政府で導入されています。オラクルでもOracle XML Publisherで対応していますが、そのほかSAP、SUN、Microsoft、IBM、米国の国税庁や労働省などの各種政府機関でもXMLを取り入れています。 また、HR-XML Consortiumをはじめとするさまざまな組織が、標準XMLにおける標準のガイドライン提供に取り組んでいます。

結論

Oracle XML PublisherとPeopleSoftを併用することで、組織に提出するレポートを準備するための高い安全性と柔軟性を備えた手法を手にすることができます。 また、ユーザーは、フォーム設計のタスクを実行するために作成した、使い慣れたデスクトップ・ツールを使用できます。 つまり、開発者は本当に自分の力が必要なレポートのみに集中できるようになり、開発言語でのレポート・レイアウト作成という負担の大きい作業をおこなう必要がなくなります。