Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerOracle PeopleSoft Connector v3.1
Oracle PeopleSoft 用 Anypoint Connector (PeopleSoft Connector) は、クローズドソースコネクタで、コンポーネントインターフェース (CI) を使用して、リアルタイムでサービスと通信します。これは、Oracle の PeopleTools によって提供されるコンポーネントです。
リリースノート: Oracle PeopleSoft Connector リリースノート
Exchange: Oracle PeopleSoft Connector
この情報を使用するには、PeopleSoft、Mule Runtime Engine (Mule)、Anypoint Connector、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通している必要があります。
対象リソースへの接続をテストするには、ログイン情報が必要です。
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-peoplesoft-connector</artifactId>
<version>x.x.x</version>
<classifier>mule-plugin</classifier>
</dependency>
x.x.x
を使用しているコネクタに対応するバージョンに置き換えます。
最新の pom.xml
ファイル情報を取得するには、 Anypoint Exchange でコネクタにアクセスし、[Dependency Snippets (連動関係スニペット)] をクリックします。
PeopleSoft のコンポーネントインターフェース (CI) は、PeopleSoft データベースインスタンスへの一方向のリアルタイムインターフェースです。PeopleSoft のコンポーネントは、[Employee Onboarding (従業員オンボーディング)] などの完全なビジネストランザクションを表す PeopleSoft ページの論理的なグルーピングです。コンポーネントインターフェースでは、PeopleSoft コンポーネントによって使用される基礎となる API が公開されるため、入力規則、デフォルト、ビジネスロジックがそれらのコンポーネントの元の定義から保持されます。
コンポーネントインターフェースを使用すると、PeopleSoft への特定のレコードの照会、データの更新、レコードの新しいインスタンスの作成を行うことができます。
コンポーネントインターフェースには、次の 4 つの主要属性があります。
Component Interface Name (コンポーネントインターフェース名): 各コンポーネントインターフェースには一意の名前が必要です。コンポーネントをコールするプログラムは、コンポーネントインターフェースの名前を使用してプロパティやメソッドにアクセスします。
Keys (Get keys, Create keys, and Find keys) (キー (取得キー、作成キー、検索キー)): キーは特殊なプロパティで、コンポーネントインターフェースのインスタンスを取得する値 (取得キー) やインスタンスのリストを取得する値 (検索キー) が含まれています。キーの追加、削除、変更は、PeopleSoft Application Designer で実行できます。キーは、コンポーネントインターフェースを作成すると自動的に作成されます。
Get keys (取得キー): [Components Search (コンポーネント検索)] レコードで検索キーとしてマークされている項目にマップされます。
Create keys (作成キー): [Component Properties (コンポーネントプロパティ)] ダイアログの [Use (使用)] タブで [Add (追加)] アクションが許可されている場合に CI で生成されます。
Find keys (検索キー): [Component Search (コンポーネント検索)] レコードで [Alternate Search Key (代替検索キー)] および [Search Key (検索キー)] の両方としてマークされている項目にマップされます。
Properties and Collections (Fields and Records) (プロパティおよびコレクション (項目およびレコード)): プロパティを使用すると、コンポーネントデータとコンポーネントインターフェース設定の両方にアクセスできます。プロパティは、項目またはスクロール (コレクション) に対応します。コンポーネントインターフェースコレクションは、特殊な種別のプロパティで、スクロールに対応し、基礎となるコンポーネントで定義されている項目や下位スクロールが含まれます。
プロパティの種別:
標準プロパティは、コンポーネントインターフェースを作成すると自動的に割り当てられます。
ユーザー定義プロパティは、PeopleSoft コンポーネントのレコード項目にマップされ、PeopleSoft Application Designer に表示されます。
Methods (メソッド): メソッドは、実行時にコンポーネントインターフェース上で特定のタスクを実行する関数です。メソッドの主な種別には、標準とユーザー定義の 2 種類があります。
標準メソッドは、すべてのコンポーネントインターフェースで使用できるメソッドです。このコネクタでは、次の標準メソッドがサポートされています。
メソッド | 説明 |
---|---|
Create (作成) |
コンポーネントインターフェースの新しいインスタンスを PeopleSoft データベースに追加します。これは、PeopleSoft Web UI で [Add (追加)] をクリックし、関連するキーを入力するのと似ています。 |
Cancel (キャンセル) |
コンポーネントインターフェースのインスタンスをキャンセルします。これは、特定のコンポーネントで作業しているときの Web UI での [Cancel (キャンセル)] 操作と同等です。 |
Find (検索) |
指定した [Search Key (検索キー)] に一致するコンポーネントのインスタンスを検索します。一致候補のリストが返されます。 |
Get (取得) |
指定した特定のキーに一致するインスタンスを取得します。1 件のレコードが返されるか、何も返されません。 |
Save (保存) |
新規または既存のコンポーネントに対する変更を保存します。 [Save (保存)] 操作では、新しいレコードを作成する前に、既存のレコードの更新が試みられます。新しいレコードの場合、PeopleSoft インスタンスによって指定されたデフォルト値が自動的にキーに入力されるため、ユーザーはデフォルトのキー/値ペアを指定する必要がありません。 |
ユーザー定義のメソッドは、コンポーネントインターフェースに機能を追加するために PeopleSoft Application Designer で作成されます。
Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。
Studio で Mule プロジェクトを作成します。
Studio タスクバーの左上にある Exchange アイコン (X) をクリックします。
Exchange で、[Login (ログイン)] をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。
Exchange で、「peoplesoft」を検索します。
コネクタを選択して [Add to project (プロジェクトに追加)] をクリックします。
画面の指示に従ってコネクタをインストールします。
Studio で Mule プロジェクトを作成します。
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
[Add Modules to Project (モジュールをプロジェクトに追加)] で、検索項目に「peoplesoft」と入力します。
[Available modules (使用可能なモジュール)] で、このコネクタの名前をクリックします。
[Add (追加)] をクリックします。
[Finish (完了)] をクリックします。
コネクタを Studio キャンバスにドラッグします。
コネクタ設定を作成し、パラメーターを設定し、psjoa
ライブラリを追加します。
Invoke Operation のプロパティエディターで、残りのパラメーターを設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
Studio で表示する操作の名前。 |
Extension Configuration (拡張機能設定) |
作成したグローバル要素への参照名。 |
Component Name (コンポーネント名) |
コンポーネントインターフェース名。 |
Operation (操作) |
選択した CI で実行する操作。 |
コネクタ設定は、次の画像のようになります。
コネクタを使用するときに要求と応答を記録するには、Mule アプリケーションの log4j2.xml
設定ファイルの Loggers
要素に次の行を追加して、ロガーを設定します。
<AsyncLogger name="org.mule.modules.peoplesoft.extension.internal.service.PeopleSoftServiceImpl" level="DEBUG"/>
次の例は、AsyncLogger
行が追加された Loggers
要素を示しています。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<AsyncLogger name="org.mule.modules.peoplesoft.extension.internal.service.PeopleSoftServiceImpl" level="DEBUG" additivity="false">
<appender-ref ref="Console" level="debug"/>
</AsyncLogger>
</Loggers>
</Configuration>
アプリケーションログは次の方法で表示できます。
アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。
コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。
アプリケーションのログファイル (log4j2.xml
) でログファイルパスがカスタマイズされていない場合、次のデフォルトの場所でアプリケーションログを表示することもできます。
MULE_HOME/logs/<app-name>.log
アプリケーションログについての詳細は、「ログの設定」を参照してください。
Anypoint Studio で新しい Mule プロジェクトを作成します。
HTTP リスナーをキャンバスにドラッグし、次のパラメーターを設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
HTTP |
Extension Configuration (拡張機能設定) |
まだ HTTP 要素が作成されていない場合、プラス記号をクリックして新しい [HTTP Listener Configuration (HTTP リスナー設定)] を追加し、[Host (ホスト)] と [Port (ポート)] を設定し、[OK] をクリックします。 |
Path (パス) |
|
[PeopleSoft Invoke Operation] を HTTP エンドポイントコンポーネントの横にドラッグし、次の手順に従って設定します。
[Basic Settings (基本設定)] 項目でプラス記号をクリックして、新しい [PeopleSoft Configuration (PeopleSoft 設定)] を追加します。
必須項目にログイン情報を入力して、グローバル要素を設定します。
psjoa
ライブラリを追加します。
[Component Interface IDs (コンポーネントインターフェース ID)] に CI_PERSONAL_DATA を追加します。
[Test Connection (接続をテスト)] をクリックして、Mule が PeopleSoft インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。そうでない場合は、見直して、誤ったパラメーターを修正してからもう一度テストします。
Invoke Operation のプロパティエディターに戻り、残りのパラメーターを設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
Find Employees |
Extension Configuration (拡張機能設定) |
PeopleSoft (作成したグローバル要素への参照名)。 |
Component Name (コンポーネント名) |
CI_PERSONAL_DATA (従業員データを保持するコンポーネントインターフェース名)。 |
Operation (操作) |
Find (検索) |
コネクタ設定は、次のようになります。
FIND (検索) メソッドに必要な入力パラメーターを指定するために、HTTP エンドポイントと PeopleSoft エンドポイントの間に [Transform Message (メッセージの変換)] (コア) 要素を追加します。入力項目は自動的に入力されます。
[Transform Message (メッセージの変換)] 内で、項目を queryParamas に関連付けます。こうすることで、各値を URL から動的に設定できます。
%dw 2.0
output application/json
---
{
KEYPROP_EMPLID: attributes.queryParams.id,
PROP_NAME: attributes.queryParams.name,
PROP_LAST_NAME_SRCH: attributes.queryParams.lastname,
PROP_NAME_AC: attributes.queryParams.nameac
}
ブラウザーに応答を表示するために、[PeopleSoft] 要素の後に [Transform Message (メッセージの変換)] をもう 1 つ追加します。
%dw 2.0
output application/json
---
payload
PeopleSoft Connector に渡されたデータを Mule コンソールに出力するために、JSON トランスフォーマーの後にロガースコープを追加します。
保存して、Mule アプリケーションとして実行します。次に、Web ブラウザーを開き、URL http://localhost:8081/find?id=0004&name=&last_name=&name_ac=
を入力した後に応答を確認します。PeopleSoft データベース内に、KEYPROP_EMPLID に値「MULE」が含まれるレコードがある場合は、それらのレコードの JSON コレクションを取得する必要があります。そうしないと、取得したコレクションが空になります。
[
{
"KEYPROP_EMPLID": "MULE0001",
"PROP_NAME": "Muley",
"PROP_LAST_NAME_SRCH": "The Mule",
"PROP_NAME_AC": ""
},
{
"KEYPROP_EMPLID": "MULE0002",
"PROP_NAME": "Second Muley",
"PROP_LAST_NAME_SRCH": "The Backup Mule",
"PROP_NAME_AC": ""
},
...
]
+
この例では、FIND (検索) 操作のすべての入力パラメーターは省略可能です。いずれも定義しなかった場合 (http://localhost:8081/find?id=&name=&last_name=&name_ac=
)、PeopleSoft は使用可能な最初の 300 件のレコードを取得します (サーバーによって制限される最大値)。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:peoplesoft="http://www.mulesoft.org/schema/mule/peoplesoft"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/peoplesoft
http://www.mulesoft.org/schema/mule/peoplesoft/current/mule-peoplesoft.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<peoplesoft:config name="PeopleSoft_Config" doc:name="PeopleSoft Config" >
<peoplesoft:connection
server="${config.server}"
username="${config.username}"
password="${config.password}"
domainConnectionPassword="${config.domainPassword}" >
<peoplesoft:component-interface-ids >
<peoplesoft:component-interface-id value="CI_PERSONAL_DATA" />
</peoplesoft:component-interface-ids>
</peoplesoft:connection>
</peoplesoft:config>
<flow name="find-employee-flow" >
<http:listener config-ref="HTTP_Listener_config" path="/find" doc:name="Listener" />
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
KEYPROP_EMPLID: attributes.queryParams.id,
PROP_NAME: attributes.queryParams.name,
PROP_LAST_NAME_SRCH: attributes.queryParams.lastname,
PROP_NAME_AC: attributes.queryParams.nameac
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<peoplesoft:invoke-operation
config-ref="PeopleSoft_Config"
component="CI_PERSONAL_DATA"
operation="Find"
doc:name="Find Employees" />
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" message="#[payload]"/>
</flow>
<flow name="peoplesoft_demoFlow" >
<http:listener
config-ref="HTTP_Listener_config"
path="/save"
doc:name="Listener" />
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<peoplesoft:invoke-operation
config-ref="PeopleSoft_Config"
component="CI_PERSONAL_DATA"
operation="Save"
doc:name="Invoke Operation" />
</flow>
</mule>
Oracle の PeopleSoft コンポーネントインターフェース API のサイトを参照してください。