6 SAP SuccessFactorsコネクタの機能拡張

特定のビジネス要件に対応するようにコネクタの機能を拡張できます。

この項の内容は、次のとおりです。

6.1 データの変換および検証の構成

アプリケーションの作成時にGroovyスクリプト・ロジックを作成して、ユーザー・アカウント・データの変換および検証を構成します。

要件に応じて、リコンサイルされた単一値ユーザー・データの変換を構成できます。たとえば、「名」および「姓」の値を使用して、Oracle Identity Governanceの「氏名」フィールドの値を作成できます。

同様に、要件に応じて、リコンサイルおよびプロビジョニングされた単一値データの検証を構成できます。たとえば、「名」属性からフェッチしたデータを検証して、そのデータに番号記号(#)が含まれていないことを確認します。また、プロセス・フォームの「名」フィールドに入力したデータを検証して、プロビジョニング操作中にターゲット・システムに番号記号(#)が送信されないようにします。

ユーザー・アカウント・データの変換または検証を構成するには、アプリケーションの作成時にGroovyスクリプトを作成する必要があります。Groovyスクリプトベースの検証および変換ロジックの作成の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』プロビジョニング属性とリコンシリエーション属性の検証と変換に関する項を参照してください。

参照までに、サンプルの変換スクリプトを次に示します。


	def getBeneficiaryAttrFromContext(attrName) {
		if (context.beneficiary != null) {
			return context.beneficiary.getAttribute(attrName);
		}

		return null;
	}

	def getBeneficiaryPwdFromContext() {
		return context.beneficiaryPassword;
	}


	if (binding.variables != null) 
	{
		if (binding.variables.containsKey("context"))
		{
			if (context.operationType != null)
			{
				if(context.operationType.equalsIgnoreCase("create"))
				{
					if (context.provisionMechanism != null) 
					{
						if(context.provisionMechanism.equalsIgnoreCase("POLICY"))
						{
							Username = getBeneficiaryAttrFromContext("User Login");
							First_Name = getBeneficiaryAttrFromContext("First Name");
							Last_Name = getBeneficiaryAttrFromContext("Last Name");
							Password = getBeneficiaryPwdFromContext();
							Company = "ACE_USA";
							Job_Classification = "ADMIN-1";
							Event_Reason	= "HIRNEW";
							Business_Unit = "ACE_IND";
							Supervisor = "JDOE";
							Hire_Date = (new java.util.Date()-1);
						} //if
						else if (context.provisionMechanism.equalsIgnoreCase("REQUEST") || context.provisionMechanism.equalsIgnoreCase("ADMIN"))
						{

							if (Username == null || Username == "") 
							{
								Username = getBeneficiaryAttrFromContext("User Login");
							}
							if (First_Name == null || First_Name == "")
							{
								First_Name = getBeneficiaryAttrFromContext("First Name");
							}
							if (Last_Name == null || Last_Name == "")
							{
								Last_Name = getBeneficiaryAttrFromContext("Last Name");
							}
							if (Password == null || Password == "")
							{
								Password = getBeneficiaryPwdFromContext();
							}
							if (Company == null || Company == "") {	
								Company = "ACE_USA";     
							}
							if (Job_Classification== null || Job_Classification == "") 
							{
								Job_Classification = "ADMIN-1";
							}
							if (Event_Reason== null || Event_Reason == "") 
							{
								Event_Reason = "HIRNEW";
							}
							if (Business_Unit== null || Business_Unit == "")
							{
								Business_Unit	= "ACE_IND";
							}
							if (Supervisor== null || Supervisor == "") 
							{
								Supervisor = "JDOE";
							}
							Hire_Date = (new java.util.Date()-1);
							}//else if
					}
				}

			}
		}
	}

6.2 アクション・スクリプトの構成

アクション・スクリプトを構成するには、アプリケーションの作成時に独自のGroovyスクリプトを作成します。

これらのスクリプトは、アカウントの作成、更新または削除のプロビジョニング操作の前または後に実行するように構成できます。たとえば、個々のユーザー作成操作前に実行するようにスクリプトを構成できます。

アクション・スクリプトの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』プロビジョニング構成の更新に関する項を参照してください。

6.3 ターゲット・システムの複数のインストールに対するコネクタの構成

ターゲット・システムの複数のインストールに対してベース・アプリケーションを構成するには、その構成のコピーを作成する必要があります。

次の例でこの要件について説明します。

Example Multinational Inc.のロンドンおよびニューヨークの事業所では、それぞれ独立したスキーマを含め、独自にターゲット・システムがインストールされています。最近、この会社では、Oracle Identity Governanceをインストールしたので、これを構成してインストールされたすべてのターゲット・システムをリンクしようとしています。

このようなシナリオによって提起される要件を満たすには、アプリケーションをクローニングして、ベース・アプリケーションの構成をすべてクローニングされたアプリケーションにコピーする必要があります。アプリケーションのクローニングの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』アプリケーションのクローニングに関する項を参照してください。

6.4 OData APIディクショナリの理解

OData APIディクショナリ・コンポーネントは、オブジェクト・エンティティのバンドルを格納します。SuccessFactorsのインスタンスごとに、すぐに使用できるオブジェクト・エンティティがあります。OData APIディクショナリのオブジェクト・エンティティは、要件に応じてカスタマイズも可能です。

6.4.1 OData APIディクショナリについて

どのSuccessFactorsインスタンスにも、複数のオブジェクト・エンティティがあります。OData APIディクショナリは、これらのオブジェクト・エンティティをバンドルし、表形式で表示します。SuccessFactorsのオブジェクト・エンティティには、許可されている操作、属性(プロパティ名とも言う)、ラベルなどの情報が含まれています。

6.4.2 SAP SuccessFactorsコネクタでのOData APIディクショナリの表示

SAP SuccessFactorsには、OData APIディクショナリのリンクにリストされる既存のオブジェクト・エンティティを表示するオプションがあります。

既存のOData APIディクショナリを表示するには:
  1. SuccessFactorsインスタンスにログインします。
  2. 「管理者センター」ページのツール検索テキスト・フィールドで、OData APIディクショナリを検索します。「お気に入り」リンク・カテゴリに、OData APIディクショナリ・リンクがリストされます。
  3. OData APIディクショナリ・リンクをクリックします。OData APIエンティティ・リストが表示されます。
    表示されたリストには、既成のオブジェクト・エンティティと、カスタマイズしたオブジェクト・エンティティの両方があります。

    図6-1に、OData APIエンティティのリストを示します。

    図6-1 OData APIエンティティ

    図6-1の説明が続きます
    「図6-1 OData APIエンティティ」の説明

    ノート:

    • 現行リリースでは、User Interface for the OData API Data Dictionaryが拡張されています。OData API Data DictionaryリンクがAdmin Centerコンソールで使用できます。このリンクが表示されない場合は、アクセス権限を確認してください。
    • OData API Data Dictionaryでは、Search All機能を使用できます。ただし、フィルタ済検索の場合、EntityComplex TypeFunction Importなどの特定の検索用語を使用することも、PerPersonalEmpEmploymentAttributesなどの関連付けられたオブジェクトを使用することもできます。

6.4.3 Oracle Identity Governanceでのカスタム属性およびオブジェクト・エンティティの追加

SAP SuccessFactorsには、すぐに使用できるOData APIディクショナリが用意されています。OData APIディクショナリに存在する既成のオブジェクト・エンティティ以外に、新しい属性と新しいオブジェクト・エンティティが必要な場合には、OData APIディクショナリをカスタマイズする必要があります。OData APIディクショナリ・コンポーネントを使用すると、カスタマイズしたオブジェクト・エンティティはすべて、ターゲット・システムで対応する属性にマップされます。

Oracle Identity Governanceにカスタム属性とオブジェクト・エンティティを追加する操作は、次の2段階で行います。
  • まず、SuccessFactorsインスタンスで、OData APIディクショナリに存在するカスタム属性を検索する必要があります。このカスタム属性がリストされる上のカスタム属性とエンティティ・オブジェクトをノートにとります。OData APIディクショナリのカスタマイズの詳細は、SAP SuccessFactorsサポートにお問い合せください。

  • カスタム属性とオブジェクト・エンティティに関して必要な情報を取得したら、この新しい属性をOracle Identity Governanceに追加する必要があります。この新しい属性は、カスタム属性とターゲット・システムの間のマッピングを提供します。
属性とオブジェクト・エンティティを関連付けるには、次のようにします。
  1. 「システム管理」アカウントを使用してIdentity Self Serviceにログインします。
  2. 「管理」タブに移動し、「アプリケーション」ボックスをクリックします。「アプリケーション」ページが表示されます。
  3. 「アプリケーション」ページの「アクション」メニューで「作成」をクリックし、「ターゲット」を選択します。「アプリケーション・テンプレート」ページが表示されます。
  4. 「アプリケーション・テンプレート」ページから「スキーマ属性」ページに移動します。
  5. 「スキーマ属性」で、「属性の追加」をクリックして新しい行を表に追加します。次の「アプリケーション属性」の詳細を指定します。
    1. 表示名: Oracle Identity Governanceの属性の表示名を入力します。
    2. ターゲット属性: ターゲット属性の名前を入力します。SuccessFactorsの場合、PerPersonal.formalNameと入力します。
    3. データ型: リストから「文字列」データ型を選択します。
    4. 必須: この属性がターゲットのプロビジョニングに必須の場合は選択します。
    5. プロビジョニング・フィールド: リストから「はい」を選択します。
    6. リコンシリエーション・フィールド: リストから「はい」を選択します。
    7. キー・フィールド: リストから「いいえ」を選択します。
    8. 大/小文字を区別しない: この属性は一切変更しないでください。
  6. 「保存」をクリックして変更を保存します。

6.4.4 静的参照での値の指定

SuccessFactorsには、静的参照定義に値を追加するオプションがあります。ターゲット・システムでコードと意味値を関連付けるには、値の追加が必要です。SuccessFactorsの静的参照で値を追加するには、まず問題の属性にコード値が存在するかどうかを確認する必要があります。コード値が存在する場合は、Oracle Identity Governanceで対応する参照定義に同じ値を追加する必要があります。

図6-2に示す例を考えます。この図で、場所フィールドの値がSan Mateo (US_SFO)であることを確認してください。US_SFOCodeとして指定する必要がある値であり、値San Mateo (US_SFO)または単なる地名San Mateoは静的な参照場所のMeaning値として指定する値です。この2つの値は、Oracle Identity Managerフォーム・ページのLookup.Locationに存在する必要があります。

図6-2 静的参照での値の指定

図6-2の説明が続きます
「図6-2 静的参照での値の指定」の説明
Lookup.SuccessFactors.Location静的参照に値を指定するには、次のようにします。
  1. Oracle Identity System Administrationにログインします。
  2. 左側のナビゲーション・ペインで「参照」にログインします。「参照タイプの検索と選択」ウィンドウが表示されます。
  3. 「参照タイプの検索と選択」ウィンドウで、新しい静的値を追加する必要がある参照を検索して開き、「検索」をクリックします。
  4. 検索結果から、新しい静的値を追加する必要がある参照を選択して「編集」アイコンをクリックします。「参照タイプの編集」ウィンドウを表示されます。
  5. 「参照タイプの編集」ウィンドウで、参照の作成アイコンをクリックし、「コード」属性と「意味」属性に値を入力します。「コード」属性にはターゲット属性名を指定し、「意味」属性にはプロセス・フォーム名を指定します。
  6. 「保存」をクリックして変更を保存します。