グローバル関数の作成
次に、オブジェクト・ワークフローのGroovyスクリプトで使用される次のグローバル関数を作成します。
findSelfServiceUserLoginIdグローバル関数の作成
このトピックを使用して、findSelfServiceUserLoginIdグローバル関数を作成します。
-
アプリケーション・コンポーザで、「共通設定」を展開し、「グローバル関数」を選択します。
-
「グローバル関数の追加」アイコンをクリックします。
-
次の表を使用して、必要なフィールドに入力します。
フィールド
操作
関数名
findSelfServiceUserLoginId
と入力します。返される値
ドロップダウン・リストをクリックし、「文字列」を選択します。
パラメータ
-
クリックしてワークスペースを展開します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、contactPartyIdと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
-
「スクリプトの編集」フィールドで、次のスクリプトをコピーして貼り付けます。
def request = adf.webServices.FindSelfServiceUser try{ def httpHeaders=['REST-Framework-Version':'3'] request.requestHTTPHeaders = httpHeaders def searchResults = request.GET(contactPartyId) def count = searchResults.get("count") if(count == 0){ def message = "Unable to locate self-service user by Party ID: " + contactPartyId + ":" + searchResults throw new oracle.jbo.ValidationException(message); } def loginId = searchResults.get("items")[0].get("LoginId") return loginId }catch(Exception e){ throw new oracle.jbo.ValidationException(" " + e + ": " + request.httpErrorResponse) }
-
「保存して閉じる」をクリックします。
-
「はい」をクリックして、警告メッセージを受け入れます。
getIdcsUserGuidグローバル関数の作成
このトピックを使用して、getIdcsUserGuidグローバル関数を作成します。
-
アプリケーション・コンポーザで、「共通設定」を展開し、「グローバル関数」を選択します。
-
「グローバル関数の追加」アイコンをクリックします。
-
次の表を使用して、必要なフィールドに入力します。
フィールド
操作
関数名
getIdcsUserGuid
と入力します。返される値
ドロップダウン・リストをクリックし、「文字列」を選択します。
パラメータ
-
クリックしてワークスペースを展開します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、loginIdと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
-
「スクリプトの編集」フィールドで、次のスクリプトをコピーして貼り付けます。
def request = adf.webServices.FindIdcsGuidByLoginId try{ def searchResults = request.GET(loginId) def totalResults = searchResults.get("totalResults") if(totalResults != 1){ throw new oracle.jbo.ValidationException("Unable to locate user by login ID: " + loginId + ", total results: " + totalResults); } def resources = searchResults.get("Resources") def user = resources[0] def guid = user.get("id") return guid; }catch(Exception e){ throw new oracle.jbo.ValidationException("Error finding IDCS User: " + e + ":" +request.httpErrorResponse); }
-
「保存して閉じる」をクリックします。
-
「はい」をクリックして、警告メッセージを受け入れます。
updateUserAttributesInIdcsグローバル関数の作成
このトピックを使用して、getIdcsUserGuidグローバル関数を作成します。
-
アプリケーション・コンポーザで、「共通設定」を展開し、「グローバル関数」を選択します。
-
「グローバル関数の追加」アイコンをクリックします。
-
次の表を使用して、必要なフィールドに入力します。
フィールド
操作
関数名
updateUserAttributesInIdcs
と入力します。返される値
ドロップダウン・リストをクリックし、「無効」を選択します。
パラメータ
-
クリックしてワークスペースを展開します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、userIdと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、firstNameと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、lastNameと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
-
「スクリプトの編集」フィールドで、次のスクリプトをコピーして貼り付けます。
def conn = adf.webServices.UpdateIdcsUserAttributes try{ def patch_body = [ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ [ "op": "replace", "path": "name", "value": [ "givenName": firstName, "familyName": lastName ] ] ] ] conn.PATCH(userId, patch_body) }catch(Exception e){ throw new oracle.jbo.ValidationException(" " + e + " " + conn. httpErrorResponse) }
-
「保存して閉じる」をクリックします。
-
「はい」をクリックして、警告メッセージを受け入れます。
syncContactAttributesグローバル関数の作成
このトピックを使用して、getIdcsUserGuidグローバル関数を作成します。
-
アプリケーション・コンポーザで、「共通設定」を展開し、「グローバル関数」を選択します。
-
「グローバル関数の追加」アイコンをクリックします。
-
次の表を使用して、必要なフィールドに入力します。
フィールド
操作
関数名
syncContactAttributes
と入力します。返される値
ドロップダウン・リストをクリックし、「無効」を選択します。
パラメータ
-
クリックしてワークスペースを展開します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、contactPartyIdと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、firstNameと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
パラメータの追加アイコンをクリックします。
-
「名前」フィールドに、lastNameと入力します。
-
「タイプ」ドロップダウン・リストから、「文字列」を選択します。
-
-
「スクリプトの編集」フィールドで、次のスクリプトをコピーして貼り付けます。
def loginId = adf.util.findSelfServiceUserLoginId(contactPartyId) def userGuid = adf.util.getIdcsUserGuid(loginId) adf.util.updateUserAttributesInIdcs(userGuid,firstName,lastName)
-
「保存して閉じる」をクリックします。
-
「はい」をクリックして、警告メッセージを受け入れます。