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をインストールしたので、これを構成してインストールされたすべてのターゲット・システムをリンクしようとしています。
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ディクショナリのリンクにリストされる既存のオブジェクト・エンティティを表示するオプションがあります。
6.4.3 Oracle Identity Governanceでのカスタム属性およびオブジェクト・エンティティの追加
SAP SuccessFactorsには、すぐに使用できるOData APIディクショナリが用意されています。OData APIディクショナリに存在する既成のオブジェクト・エンティティ以外に、新しい属性と新しいオブジェクト・エンティティが必要な場合には、OData APIディクショナリをカスタマイズする必要があります。OData APIディクショナリ・コンポーネントを使用すると、カスタマイズしたオブジェクト・エンティティはすべて、ターゲット・システムで対応する属性にマップされます。
-
まず、SuccessFactorsインスタンスで、OData APIディクショナリに存在するカスタム属性を検索する必要があります。このカスタム属性がリストされる上のカスタム属性とエンティティ・オブジェクトをノートにとります。OData APIディクショナリのカスタマイズの詳細は、SAP SuccessFactorsサポートにお問い合せください。
- カスタム属性とオブジェクト・エンティティに関して必要な情報を取得したら、この新しい属性をOracle Identity Governanceに追加する必要があります。この新しい属性は、カスタム属性とターゲット・システムの間のマッピングを提供します。
- 「システム管理」アカウントを使用してIdentity Self Serviceにログインします。
- 「管理」タブに移動し、「アプリケーション」ボックスをクリックします。「アプリケーション」ページが表示されます。
- 「アプリケーション」ページの「アクション」メニューで「作成」をクリックし、「ターゲット」を選択します。「アプリケーション・テンプレート」ページが表示されます。
- 「アプリケーション・テンプレート」ページから「スキーマ属性」ページに移動します。
- 「スキーマ属性」で、「属性の追加」をクリックして新しい行を表に追加します。次の「アプリケーション属性」の詳細を指定します。
- 表示名: Oracle Identity Governanceの属性の表示名を入力します。
- ターゲット属性: ターゲット属性の名前を入力します。SuccessFactorsの場合、PerPersonal.formalNameと入力します。
- データ型: リストから「文字列」データ型を選択します。
- 必須: この属性がターゲットのプロビジョニングに必須の場合は選択します。
- プロビジョニング・フィールド: リストから「はい」を選択します。
- リコンシリエーション・フィールド: リストから「はい」を選択します。
- キー・フィールド: リストから「いいえ」を選択します。
- 大/小文字を区別しない: この属性は一切変更しないでください。
- 「保存」をクリックして変更を保存します。
6.4.4 静的参照での値の指定
SuccessFactorsには、静的参照定義に値を追加するオプションがあります。ターゲット・システムでコードと意味値を関連付けるには、値の追加が必要です。SuccessFactorsの静的参照で値を追加するには、まず問題の属性にコード値が存在するかどうかを確認する必要があります。コード値が存在する場合は、Oracle Identity Governanceで対応する参照定義に同じ値を追加する必要があります。
San Mateo (US_SFO)
であることを確認してください。US_SFO
はCode
として指定する必要がある値であり、値San Mateo (US_SFO)
または単なる地名San Mateo
は静的な参照場所のMeaning
値として指定する値です。この2つの値は、Oracle Identity Managerフォーム・ページのLookup.Location
に存在する必要があります。
- Oracle Identity System Administrationにログインします。
- 左側のナビゲーション・ペインで「参照」にログインします。「参照タイプの検索と選択」ウィンドウが表示されます。
- 「参照タイプの検索と選択」ウィンドウで、新しい静的値を追加する必要がある参照を検索して開き、「検索」をクリックします。
- 検索結果から、新しい静的値を追加する必要がある参照を選択して「編集」アイコンをクリックします。「参照タイプの編集」ウィンドウを表示されます。
- 「参照タイプの編集」ウィンドウで、参照の作成アイコンをクリックし、「コード」属性と「意味」属性に値を入力します。「コード」属性にはターゲット属性名を指定し、「意味」属性にはプロセス・フォーム名を指定します。
- 「保存」をクリックして変更を保存します。