Oracle PeopleSoft Connector - Mule 4

Oracle PeopleSoft Connector v3.1

Oracle PeopleSoft 用 Anypoint Connector (PeopleSoft Connector) は、クローズドソースコネクタで、コンポーネントインターフェース (CI) を使用して、リアルタイムでサービスと通信します。これは、Oracle の PeopleTools によって提供されるコンポーネントです。

始める前に

この情報を使用するには、PeopleSoft、Mule Runtime Engine (Mule)、Anypoint Connector、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通している必要があります。

対象リソースへの接続をテストするには、ログイン情報が必要です。

POM ファイル情報

<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 (連動関係スニペット)]​ をクリックします。

このコネクタの新機能

コネクタ設定のユーザーインターフェースが一新されました。 操作の入力と出力は JSON です。 Save (保存) 操作の日付変換が修正されました。

コンポーネントインターフェース

PeopleSoft のコンポーネントインターフェース (CI) は、PeopleSoft データベースインスタンスへの一方向のリアルタイムインターフェースです。PeopleSoft のコンポーネントは、[Employee Onboarding (従業員オンボーディング)] などの完全なビジネストランザクションを表す PeopleSoft ページの論理的なグルーピングです。コンポーネントインターフェースでは、PeopleSoft コンポーネントによって使用される基礎となる API が公開されるため、入力規則、デフォルト、ビジネスロジックがそれらのコンポーネントの元の定義から保持されます。

コンポーネントインターフェースを使用すると、PeopleSoft への特定のレコードの照会、データの更新、レコードの新しいインスタンスの作成を行うことができます。

属性とアーキテクチャ

コンポーネントインターフェースには、次の 4 つの主要属性があります。

PeopleSoft アーキテクチャ
  • 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 で作成されます。

Studio プロジェクトへのコネクタの追加

Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。

Exchange を使用してコネクタを追加する

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの左上にある Exchange アイコン ​(X)​ をクリックします。

  3. Exchange で、​[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。

  4. Exchange で、「peoplesoft」を検索します。

  5. コネクタを選択して ​[Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「peoplesoft」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

Studio で設定する

  1. コネクタを Studio キャンバスにドラッグします。

  2. コネクタ設定を作成し、パラメーターを設定し、​psjoa​ ライブラリを追加します。

  3. Invoke Operation のプロパティエディターで、残りのパラメーターを設定します。

    パラメーター

    Display Name (表示名)

    Studio で表示する操作の名前。

    Extension Configuration (拡張機能設定)

    作成したグローバル要素への参照名。

    Component Name (コンポーネント名)

    コンポーネントインターフェース名。

    Operation (操作)

    選択した CI で実行する操作。

    コネクタ設定は、次の画像のようになります。

    Studio の [Configuration (設定)] 画面の画像

要求と応答の記録

コネクタを使用するときに要求と応答を記録するには、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

アプリケーションログについての詳細は、​「ログの設定」​を参照してください。

ユースケース: 従業員レコードコレクションを取得する

従業員検索フロー
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. HTTP リスナーをキャンバスにドラッグし、次のパラメーターを設定します。

    パラメーター

    Display Name (表示名)

    HTTP

    Extension Configuration (拡張機能設定)

    まだ HTTP 要素が作成されていない場合、プラス記号をクリックして新しい [HTTP Listener Configuration (HTTP リスナー設定)] を追加し、[Host (ホスト)] と [Port (ポート)] を設定し、[OK] をクリックします。

    Path (パス)

    /find

  3. [PeopleSoft Invoke Operation] を HTTP エンドポイントコンポーネントの横にドラッグし、次の手順に従って設定します。

    1. [Basic Settings (基本設定)] 項目でプラス記号をクリックして、新しい [PeopleSoft Configuration (PeopleSoft 設定)] を追加します。

    2. 必須項目にログイン情報を入力して、グローバル要素を設定します。

    3. psjoa​ ライブラリを追加します。

    4. [Component Interface IDs (コンポーネントインターフェース ID)] に ​CI_PERSONAL_DATA​ を追加します。

  4. [Test Connection (接続をテスト)] をクリックして、Mule が PeopleSoft インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。そうでない場合は、見直して、誤ったパラメーターを修正してからもう一度テストします。

  5. Invoke Operation のプロパティエディターに戻り、残りのパラメーターを設定します。

    パラメーター

    Display Name (表示名)

    Find Employees

    Extension Configuration (拡張機能設定)

    PeopleSoft (作成したグローバル要素への参照名)。

    Component Name (コンポーネント名)

    CI_PERSONAL_DATA​ (従業員データを保持するコンポーネントインターフェース名)。

    Operation (操作)

    Find (検索)

    コネクタ設定は、次のようになります。

    DataWeave - 入力
  6. FIND (検索) メソッドに必要な入力パラメーターを指定するために、HTTP エンドポイントと PeopleSoft エンドポイントの間に [Transform Message (メッセージの変換)] (コア) 要素を追加します。入力項目は自動的に入力されます。

    DataWeave - 入力

    [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
    }
  7. ブラウザーに応答を表示するために、[PeopleSoft] 要素の後に [Transform Message (メッセージの変換)] をもう 1 つ追加します。

    %dw 2.0
    output application/json
    ---
    payload
  8. PeopleSoft Connector に渡されたデータを Mule コンソールに出力するために、JSON トランスフォーマーの後にロガースコープを追加します。

  9. 保存して、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

<?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>