Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
The Oracle eBusiness Suite Connector is built on the Web Services Connector.
Please refer to the TechNet documentation for the Web Services Connector for
additional information.
Summary
Features
Connected data source
versions
Scenarios
Operations
Schema
Supported variants
Oracle E-Business Suite 12.1.3
Release
2012 June
Revision list
First release of the Web Services Connector.
b. Next license agreement screen appears; click Yes to accept the terms and conditions.
c. The next screen prompts to specify the location for installing the default project. Specify the location:
%FIM_INSTALL_DIR\2010\Synchronization Service\Extensions and click OK.
d. The installation starts and the successful completion is reported. Click OK to exit setup wizard.
FND_USER_PKG.LOAD_ROW
IRC_PARTY_API.UPDATE_USER
HR_EMPLOYEE_API. CREATE_EMPLOYEE
HR_PERSON_ADDRESS_API.CREATE_PERSON_ADDRESS
HR_ASSIGNMENT_API.UPDATE_EMP_ASG_CRITERIA
HR_ASSIGNMENT_API.UPDATE_EMP_ASG
HR_PHONE_API.CREATE_PHONE
HR_PERSON_API.DELETE_PERSON
HR_ASSIGNMENT_API.DELETE_ASSIGNMENT
HR_PHONE_API.DELETE_PHONE
HR_PERSON_API.UPDATE_PERSON
HR_ASSIGNMENT_API.UPDATE_EMP_ASG
HR_PERSON_ADDRESS_API.UPDATE_PERSON_ADDRESS
HR_ASSIGNMENT_API.UPDATE_EMP_ASG_CRITERIA
HR_ASSIGNMENT_API.ACTIVATE_EMP_ASG
HR_ASSIGNMENT_API.ACTUAL_TERMINATION_EMP_ASG
HR_ASSIGNMENT_API.SET_NEW_PRIMARY_ASG
HR_ASSIGNMENT_API.SUSPEND_EMP_ASG
HR_ASSIGNMENT_API.UPDATE_EMP_ASG_CRITERIA
HR_EX_EMPLOYEE_API.ACTUAL_TERMINATION_EMP
HR_EX_EMPLOYEE_API.UPDATE_TERM_DETAILS_EMP
HR_PHONE_API.UPDATE_PHONE
Workflows
A native package in Oracle EBS is used to perform a single task. There are certain operations for which
native packages are not available and hence the default project support them using custom packages.
Following are the workflows that are supported for:
User Object
FIM Operation
Full Import
Delta Import
Export Add
Export Delete
Export Replace
Set Password
Change Password
Person Object
FIM Operation
Full Import
Delta Import
Export Add
Export Delete
Export Replace
Set Password
Change Password
Yes
Yes
Yes
N/A
N/A
3. After selecting the Integrated SOA Gateway responsibility, access Integrated SOA Repository.
4. Navigate through Application Technology --> User Management, to retreive all the APIs that can
be exposed in the module.
5. To expose User related API, click User under User Management. You will see the list of available
user related APIs that can be exposed. Click the one you want to expose.
After selecting, the next screen provides the details of integration point. Click the new Generate
WSDL button to expose the selected API.
6. After two or three seconds you should get a confirmation message, like the one below, to let you
know this was completed successfully. Also, the Generate WSDL button will be replaced by
Regenerate WSDL. Next you need to enable this new service. This is done by clicking on the
Deploy button which is highlighted in the image below. After successful WSDL generation, button
Generate WSDL will disappear and you will see the Regenerate WSDL and a Deploy button
below.
7. After successful deployment, you will receive the confirmation for successful deployment and the
Redeploy button appears. Using View WSDL link, you can see the complete WSDL that is
generated and use it to call the exposed service.
2. Now enter the username for the user you want to grant access to, or use the search button to find
the user. In this example, it will be sufficient to grant access to ASADMIN.
4. If you want to see to which Users have been Granted the permission to consume the WSDL,
Click on Show. Once expanded, you can see the list of users to which permission have been
granted.
Important:
This security grant will not be effective unless we bounce the application tier.
2)
3)
4)
5)
Develop the custom package and later expose them as Web Service and Web Service Configuration Tool
discover the Web service through a WSDL.
Important:
Perquisites to develop and expose custom packages:
1. Integration Repository Parser
2. Perl Module
a. Compress-Raw-Zlib-2.009
b. Compress-Zlib-2.009
c.
Class-MethodMaker-1.12
p_end_user_id IN number,
p_user OUT SYS_REFCURSOR,
p_error OUT nocopy varchar2);
/*#
* This is source for GET_USER_DETAILS
* @rep:displayname Get Last User ID
* @rep:category BUSINESS_ENTITY FND_USER
* @rep:scope public
* @rep:lifecycle active
*/
PROCEDURE GET_LAST_USER_ID(p_last_user_id OUT number);
END FND_USER_DTL;
Package Body
CREATE or REPLACE PACKAGE BODY FND_USER_DTL AS
/* $Header: FND_USER_DTL.pls $ */
---Procedure to return user details
-PROCEDURE GET_USER_DETAILS( p_start_user_id IN NUMBER,
p_end_user_id IN NUMBER,
p_user OUT SYS_REFCURSOR,
p_error OUT NOCOPY VARCHAR2)
IS
BEGIN
password_accesses_left,
password_lifespan_accesses,
password_lifespan_days,
employee_id,
email_address,
fax,
customer_id,
supplier_id,
person_party_id
FROM FND_USER
WHERE user_id BETWEEN p_start_user_id AND p_end_user_id;
EXCEPTION
WHEN OTHERS THEN
p_error := substr(SQLERRM,1,1500);
END GET_USER_DETAILS;
--- Procedure for returning Last User ID
-PROCEDURE GET_LAST_USER_ID( p_last_user_id OUT NUMBER) IS
BEGIN
SELECT MAX(user_id) INTO p_last_user_id
FROM FND_USER;
END GET_LAST_USER_ID;
END FND_USER_DTL;
Get Last Person Id, Person Object and Assignment Object Version number
Package Specification
CREATE OR REPLACE package HR_PERSON_INFO AS
/* $Header: HR_PERSON_INFO.pls $ */
/*#
* This package contains APIs
* for getting Last person ID , object_version_number.
* @rep:scope public
* @rep:product per
* @rep:displayname Person Table Info
* @rep:lifecycle active
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY PER_EMPLOYEE
*/
--- Returns Last Person_ID from PER_ALL_PEOPLE_F
--- {Start Of Comments}
/*#
* This API returns the Last Person ID
* @param x_last_person_ID out number Last Person ID
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Last Person ID
* @rep:compatibility S
*/
PROCEDURE Get_Last_Person_ID(x_last_person_ID OUT NUMBER);
--
-- Get_person_object_version (PUBLIC)
-- Get person version number for a person on some effective date
--- Input (Mandatory)
-- Effective Date
-- Person ID
-- Returns
-- Get person version number for a person on some effective date
--- {Start Of Comments}
/*#
* This API returns the person object version number
* @param x_effective_date Effective Date
* @param x_person_id Person ID
* @param x_object_version_number Object Version Number
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Person object Version Number
* @rep:compatibility S
*/
PROCEDURE Get_person_object_version
(
x_person_id IN NUMBER,
x_effective_date IN DATE,
x_object_version_number OUT
NUMBER
);
--- Get_assignment_object_version (PUBLIC)
-- Get assignment version number for a person on some effective date
--- Input (Mandatory)
-- Effective Date
-- Assignment ID
-- Returns
-- Get assignment version number for a person on some effective date
--- {Start Of Comments}
/*#
* This API returns the assignment object version number
* @param x_effective_date Effective Date
* @param x_assignment_id Assignment ID
* @param x_object_version_number Object Version Number
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Assignment Version Number
* @rep:compatibility S
*/
PROCEDURE Get_assignment_object_version
(
x_assignment_id IN NUMBER,
x_effective_date IN DATE,
x_object_version_number OUT
NUMBER
);
END HR_PERSON_INFO;
Package Body
CREATE or REPLACE PACKAGE BODY HR_PERSON_INFO AS
--- Procedure Get_Last_Person_ID Returns the Last Person_ID in the system
-PROCEDURE Get_Last_Person_ID(x_last_person_ID OUT number) IS
l_max_person_id NUMBER;
BEGIN
SELECT MAX(person_id) INTO l_max_person_id
FROM per_all_people_f;
x_last_person_ID := l_max_person_id ;
END Get_Last_Person_ID;
--- Procedure Get_person_object_version Returns the person object_version_number on some
effective date
--
PROCEDURE Get_person_object_version
(
x_person_id IN NUMBER,
x_effective_date IN DATE,
x_object_version_number OUT
NUMBER
) IS
l_object_version_number NUMBER;
BEGIN
IF x_person_id IS NULL THEN
fnd_message.set_name('PER', 'PER_INVALID_PERSON');
fnd_message.set_token('PERSON_ID', X_PERSON_ID);
app_exception.raise_exception;
END IF;
IF x_person_id IS NULL THEN
fnd_message.set_name('PER', 'EFFECTIVE_DATE cannot be Blank');
fnd_message.set_token('EFFECTIVE_DATE', X_EFFECTIVE_DATE);
app_exception.raise_exception;
END IF;
SELECT object_version_number INTO l_object_version_number
FROM per_all_people_f
WHERE person_id = x_person_id
x_assignment_id IN NUMBER,
x_effective_date IN DATE,
x_object_version_number OUT
NUMBER
BEGIN
) IS
Performance Testing
Scale
10,000 User
objects data
10,000 Person
objects data
Topology
Hardware
Two servers
Single volume
Application Server
Note: The server hardware used is not representative for a large organization. The numbers presented
should be used to understand the difference between different operations. You are encouraged and
expected to configure your own test environments to more accurately estimate capacity and performance.
Microsoft cannot guarantee that organizations will experience the same capacity or performance
characteristics, even if the FIM Synchronization service components are deployed and configured
identically to the components that are described in this guide,
The tests and results shown in the following table were performed using scripted provisioning code. The
Web Service Connector was connected to the Oracle EBS Server as shown in the previous table.
Operation
OracleEBS
Connector Full
Import (User
Object)
OracleEBS
Connector Full
Import (Person
Object)
OracleEBS
Connector
Export (User
Object)
OracleEBS
Connector
Export (Person
Object)
25:19
a) 124:23
b) 236:24
c) 115:49
a) 440:55
b) 872:36
c) 136:36
Reference information
Statistics
Rate
a) 1.34 Objects
exported /
second
b) .705 Objects
updated/
second
c) 1.439 Objects
deleted /
second
a) Adds: 10,000
Persons
b) Update: 10,000
Persons
c) Delete:10,000
Persons
a) 0.378 Objects
exported/
second
d) 0.191 Objects
updated/
second
b) 1.22 Objects
deleted /
second