Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
html
We need to develop a new integrator which will be used to upload data into person EIT. Assume we have
defined one EIT to store Training test details in Oracle which was one of the important inputs for
Confirmation of employees. Creating data for each employee for each training using the seeded form was
a time consuming task and as a result of which we had provided them an excel interface to upload data
into system.
1.
2
1.1
1.2
2.
2.1
2.2
2.3
2.4
2.5
2.6
15
Business requirement 4
Create the Wrapper Package 4
Define the Custom Integrator 6
Define the Layout for the integrator 9
Defining the Form Function for Integrator
Assign Function to Custom Menu
13
2.
Select Macro Settings -> Enable all macros and check the option Trust access to the VBA Project
object model
2.
1.
1.
1. Business requirement
We need to develop a new integrator which will be used to upload data into person EIT.
2.
We will have to define/create a wrapper package which will act as middle layer between your ADI excel
sheet and Oracle to perform the desired action.
I have attached a sample code which will create record into EIT for your reference
create or replace PACKAGE
xx_hr_webadi_pkg
AS
PROCEDURE upload_training_details (
p_employee_number
VARCHAR2,
p_test_name
p_test_status
p_test_score
p_hear_rating
p_exam_date
p_exam_expiry_date
p_instruct_1
p_instruct_2
p_instruct_3
p_instruct_4
p_instruct_5
p_instruct_6
p_instruct_7
p_instruct_8
p_instruct_9
p_instruct_10
p_instruct_11
p_instruct_12
p_instruct_13
p_instruct_14
p_instruct_15
p_instruct_16
p_instruct_17
p_instruct_18
p_instruct_19
p_instruct_20
VARCHAR2,
VARCHAR2,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL,
VARCHAR2 DEFAULT NULL
);
END xx_hr_webadi_pkg;
/
I have added these instruct parameter to add some instructions to my integrator. We will see the significance of it in
the later part of the document
p_exam_expiry_date
p_instruct_1
p_instruct_2
p_instruct_3
p_instruct_4
p_instruct_5
p_instruct_6
p_instruct_7
p_instruct_8
p_instruct_9
p_instruct_10
p_instruct_11
p_instruct_12
p_instruct_13
p_instruct_14
p_instruct_15
p_instruct_16
p_instruct_17
p_instruct_18
p_instruct_19
p_instruct_20
)
VARCHAR2 DEFAULT
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2,
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
VARCHAR2 DEFAULT
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
IS
l_person_extra_info_id
NUMBER;
l_object_version_number
NUMBER;
l_information_type
VARCHAR2 (100) := 'XX_TRAINING_DTLS';
l_person_id
NUMBER;
l_error_flag
VARCHAR2 (10) := 'NO';
e_emp_no_null
EXCEPTION;
e_invalid_emp
EXCEPTION;
e_year_null
EXCEPTION;
BEGIN
IF p_employee_number IS NULL
THEN
l_error_flag := 'YES';
RAISE e_emp_no_null;
ELSE
BEGIN
SELECT person_id
INTO l_person_id
FROM per_all_people_f
WHERE employee_number = p_employee_number
AND business_group_id = fnd_global.per_business_group_id
AND TRUNC (SYSDATE) BETWEEN effective_start_date
AND effective_end_date;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_error_flag := 'YES';
RAISE e_invalid_emp;
END;
END IF;
IF p_test_name IS NULL OR p_test_status IS NULL
THEN
l_error_flag := 'YES';
RAISE e_year_null;
END IF;
IF l_error_flag = 'NO'
THEN
hr_person_extra_info_api.create_person_extra_info
(p_validate
p_person_id
p_information_type
p_pei_information_category
p_pei_information1
p_pei_information2
p_pei_information4
p_pei_information5
p_pei_information6
p_pei_information7
p_person_extra_info_id
p_object_version_number
);
END IF;
EXCEPTION
WHEN e_emp_no_null
THEN
raise_application_error (-20000, 'Employee Number
);
WHEN e_invalid_emp
THEN
raise_application_error (-20000, 'Employee Number
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
FALSE,
l_person_id,
l_information_type,
l_information_type,
p_test_name,
p_test_status,
p_test_score,
p_hear_rating,
p_exam_date,
p_exam_expiry_date,
l_person_extra_info_id,
l_object_version_number
is a Mandatory Parameter.'
3.
Navigation -> Desktop Integrator -> Create Document -> Integrator -> HR Integrator Setup
HR Integrator setup is a pre-defined integrator which is provided by Oracle to create new custom
integrators
Content as None
Enter below Details and click on Oracle -> Upload available under toolbar
Filed Name
Value
Metadata Type
CREATE
Application Short Name
PER
Integrator User Name
XX - Upload Training Details
View Name
Form Name
GENERAL
API Package Name
XX_hr_webadi_pkg
API Procedure Name
upload_training_details
Interface User Name
XX - Upload Training Details
Interface Parameter List Name training_details
API Type
PROCEDURE
The system will show a Confirmation stating the upload of definition is successful
4.
Navigation -> Desktop Integrator -> Define Layout -> Select your custom integrator name
Click on Create and give a Layout name with some naming convention, which may be used later for
reference
The layout is divided into two important sections1. Required fields, where all mandatory parameters need to be aligned as per the requirement.
Instruct parameters can be used to provide some tips to users who are using this WEBADI for uploading
data
2. Optional fields are non mandatory fields, we need to select the ones which needs to be available in our
custom integrator
The instruct parameters added in the wrapper package will be available during the Layout definition and we can add
user friendly tips which will be available for user reference
Click Next To define certain important layout features This functionality is available only to R12
users
Data Entry Rows Using this property we can define the default number of rows which the ADI
will create when initialized, in 11i we user had to insert the new row in case of access data
Read Only Using this feature we can define that which of the columns in our integrator will be
available as read only
Width Using this option we can define the width of each of the columns which will be
available under the custom ADI
Move Up/Down we can re-arrange the order of display of column in our integrator
Once you are done click on Apply to save the Layout definition, system will give a confirmation message
as below
Now you WEBADI will be available for use using seeded WEB ADI responsibility
Navigation -> Desktop Integrator-> Create Document -> Search for the custom integrator which you
created
Click next and click on create the document which will now download your custom integrator
Instructions added in layout definition are available as tips for users
We can see the instructions and the columns available in our excel integrator ready for use.
5.
Now this ADI is available for use under the seeded responsibility, In order to give the access of the same
to users through custom responsibility, follow the following steps:
1. Define the custom Form Function
Parameter bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2003&bne:reporting=N&bne:integrator=US
ER_NAME:XX - Upload Training Details&bne:noreview=Yes
Integrator user name can be derived from bne_integrators_vl table with help of following query:
6.
Add, Prompt and Form function created and save. To check the availability of the function,
navigate to the responsibility where its been added
Click next and Create document and your custom integrator is available to user for uploading data
Business Requirement
Setup Steps 3
1.
1. Business Requirement
The Column prompts of any Custom integrator will have the names of the parameter which you have
used in the wrapper package. Most of the times these prompts are not user friendly and let say we have a
requirement to change the Column prompt to make them more users friendly. We can achieve it very
easily using the following steps:
2.
2. Setup Steps
Navigation -> Desktop Integrator -> Create Document
Select Integrator name as Web ADI Update Interface Column Prompts, this is a seeded integrator
provided by Oracle to change the prompts for any define integrator (we can also achieve this by doing an
update directly to base tables but that option is not a recommended one)
Click next and click on create document this will download the Integrator data along with the prompts
which are currently in use for the integrator
Now remember the ADI which we had created in our earlier section
Now there is a requirement that we want to hide the prompts INSTRUCT and change the prompts like
EMPLOYEE_NUMBER to Employee Number, etc
I will be changing the Prompt left property for INSTRUCT to NULL and Prompt Above property of other
as per requirement.
Once done Upload the change prompt by using the Oracle -> Upload option in toolbar
Lets now re-download our integrator to see the change
Navigation -> Desktop Integrator-> Create Document -> Search for your custom integrator
1.1
Business requirement
1.2
1.3
3
4
1.4
1.5
1.6
1.7
9
11
11
1.
PART 3 - Download/Upload
Integrator
1.
1. Business requirement
The business is using Checklist feature to track the tasks for on-boarding, confirmation, transfer
and Off-boarding. There are multiple stake-holders who play different roles in completion of the
entire process and HR centrally uses the checklist option to track the status of each of the tasks.
Now lets take an example of On-boarding and if there are 10 new joining then as per the
standard feature the system will send notification and mails to each task owner for each of these
new joinees. If as an HR person you are responsible for doing 3-4 on-boarding tasks, then the
system would have sent you 30-40 notification for action.
Pain Area Currently under Notification we cannot filter the Open notification based on
Employee or any particular date. Also, asking the user to go and click 30-40 notification one by
one and saying completed was a time consuming task. So the user asked us to build a mechanism
using which once they are done with the respective tasks, they should have an option to do mass
completion of the task
Based on this requirement we proposed an ADI which will allow user to automatically download
all the tasks which are still pending and user can mark the tasks which he/she has completed and
upload the status into system. This helped the users to mark the completion of the task easily
resulting in having the tracker updated
Prerequisites
2.
I have attached a sample view which will download all the tasks for which needs users action
CREATE OR REPLACE FORCE VIEW "APPS"."XX_INCOMPLETE_TASKS"
("EMPLOYEE_NUMBER", "FULL_NAME", "EMAIL_ADDRESS", "TASK_NAME",
"TARGET_START_DATE", "TARGET_END_DATE", "STATUS",
"ALLOCATED_TASK_ID") AS
select papf.employee_number
, papf.full_name
, papf.email_address
, pat.task_name
, pat.target_start_date
, pat.target_end_date
, pat.status
,pat.allocated_task_id
from per_allocated_checklists pac
, per_allocated_tasks pat
, per_all_people_f papf
where 1 = 1
and pac.allocated_checklist_id = pat.allocated_checklist_id
and pac.person_id = papf.person_id
and pat.status = 'INI'
and pat.performer_orig_sys_id = xx_hr_custom_pkg.get_user_person_id(fnd_global.user_id)
and trunc(sysdate) BETWEEN papf.effective_start_date and papf.effective_end_date
order by papf.employee_number;
3.
,p_instruct_11
,p_instruct_12
,p_instruct_13
,p_instruct_14
,p_instruct_15
,p_instruct_16
,p_instruct_17
,p_instruct_18
,p_instruct_19
,p_instruct_20
)
AS
cursor c_get_task_details (c_allocated_task_id NUMBER)
IS
SELECT * FROM per_allocated_tasks
where allocated_task_id = c_allocated_task_id;
rec_task_details c_get_task_details%ROWTYPE;
l_object_version_number NUMBER;
begin
OPEN c_get_task_details(p_allocated_task_id_pkg);
FETCH c_get_task_details INTO rec_task_details;
l_object_version_number := rec_task_details.object_version_number;
CLOSE c_get_task_details;
PER_ALLOCATED_TASK_API.UPDATE_ALLOC_TASK
(p_effective_date
=> SYSDATE
,p_allocated_task_id
=> p_allocated_task_id_pkg
,p_allocated_checklist_id
=> rec_task_details.allocated_checklist_id
,p_task_name
=>
rec_task_details.task_name
,p_performer_orig_sys_id
=> XX_hr_custom_pkg.get_user_person_id(fnd_global.user_id)
,p_target_start_date
=> rec_task_details.target_start_date
,p_target_end_date
=> rec_task_details.target_end_date
,p_status
=> p_status_pkg
,p_task_sequence
=> rec_task_details.task_sequence
,p_actual_start_date
=> rec_task_details.actual_start_date
,p_actual_end_date
=> rec_task_details.actual_end_date
,p_action_url
=> rec_task_details.action_url
,p_mandatory_flag
=> rec_task_details.mandatory_flag
,p_object_version_number
=> l_object_version_number
);
end update_checklist_task_status;
4.
Content as None
Enter below Details and click on Oracle -> Upload available under toolbar
Filed Name
Value
Metadata Type
UPDATE
PER
View Name
xx_incomplete_tasks
Form Name
GENERAL
xx_hr_webadi_pkg
update_checklist_task_status
PROCEDURE
The system will show a Confirmation stating the upload of definition is successful
5.
The system by default will have already created a mapping for you. We have an option of
deleting and creating a new one. But I have always use the same, so click on update to check the
mapping and make the changes as per you requirement
transaction. So I will map these two parameters of the Source Column to the Package parameter
in Target Column.
Once you are done with the mapping, Click on apply to save
6.
Once you are done with the mapping, define you layout of the integrator
Navigation -> Desktop Integrator -> Define Layout -> Select your custom integrator name
Click on Create and give a Layout name with some naming convention, which may be used later
for reference
The layout is divided into two important sections1. Required fields, where all mandatory parameters need to be aligned as per the requirement.
Instruct parameters can be used to provide some tips to users who are using this WEBADI for
uploading data
2. Optional fields are non mandatory fields, we need to select the ones which needs to be
available in our custom integrator
The instruct parameters added in the wrapper package will be available during the Layout
definition and we can add user friendly tips which will be available for user reference
Click Next To define certain important layout features This functionality is available only to
R12 users
Data Entry Rows Using this property we can define the default number of rows which
the ADI will create when initialized, in 11i we user had to insert the new row in case of
access data
Read Only Using this feature we can define that which of the columns in our integrator
will be available as read only
Width Using this option we can define the width of each of the columns which will be
available under the custom ADI
Move Up/Down we can re-arrange the order of display of column in our integrator
Once you are done click on Apply to save the Layout definition, system will give a confirmation
message as below
7.
Add, Prompt and Form function created and save. To check the availability of the function,
navigate to the responsibility where its been added
Click on the function and press continue to open your integrator and your custom integrator is
available to user for uploading data
You can see that all other columns apart from status column are available as read-only so that
users cant change any data for those columns. Now user can update the status of tasks which
he/she has completed and upload the data into Orcale.
1. The first step is to identify the information required from database and create a view
to retrieve data for the letter to be downloaded to Word.
The view must join with the PER_LETTER_REQUEST_LINES table, and
must include the column LETTER_REQUEST_ID. For example,
per_all_assignments_f paf,
per_jobs pj,
per_job_definitions pjd,
hr_all_organization_units haou,
hr_locations_all hla,
per_letter_request_lines plr,
per_addresses pa,
per_applications papl,
per_All_people_f ppf1,
per_all_assignments_f paf1,
per_jobs pj1,
per_job_definitions pjd1,
hr_all_organization_units haou1
where ppf.business_group_id=(select business_group_id from per_business_groups wherenamelike'MBE%')
and ppf.person_id = paf.person_id
and paf.assignment_status_type_id=6 6 stands for Applicant Accepted
and paf.job_id=pj.job_id(+)
and pjd.job_definition_id(+)=pj.job_definition_id
and ppf.person_id = plr.person_id
and paf.assignment_id=plr.assignment_id
and haou.organization_id=paf.organization_id
and hla.location_id(+)=paf.location_id
and NVL(pa.primary_flag, Y) ='Y'
and pa.person_id(+)=ppf.person_id
and papl.person_id=ppf.person_id
and paf.assignment_status_type_id=plr.assignment_status_type_id
and ppf1.person_id=paf.recruiter_id
and paf1.person_id=ppf1.person_id
and NVL(paf1.primary_flag, Y) = 'Y'
and pj1.job_id(+)=paf1.job_id
and pjd1.job_definition_id(+)=pj1.job_definition_id
and haou1.organization_id=paf1.organization_id
and trunc(plr.date_from) between paf1.effective_start_date and paf1.effective_end_date
and trunc(plr.date_from) between ppf1.effective_start_date and ppf1.effective_end_date
and trunc(plr.date_from) between ppf.effective_start_date and
ppf.effective_end_date
2.
2.
Create a Letter Integrator as follows. N.B. Form Name must be set to LETTER.
1. Navigate to Oracle Web ADI responsibility.
3.
4.
5.
Select Excel 2003 as viewer and uncheck the Reporting button as you will be uploading
a new integrator
definition to the database. Click on Next button.
6.
7.
On the review page, check the details and click on Create Document button.
8.
9.
Once the download is complete, following confirmation message appears. Click on
Close.
10.
In the blank spreadsheet enter a value for each of the columns as follows. Remaining
columns are
blank for a download integrator.
Upl - ignore
Metadata Type Double click on the filed and Choose DOWNLOAD from list of
values.
11.
12.
In the Upload Parameters window, select flagged rows and check validate before upload.
Click on Upload.
13.
Once the information successfully uploaded, you get the following confirmation message.
3. Navigate to Work Structures -> Recruitment Letter Type. Define a letter and link
it to Applicant Assignment Status - Accepted.
In this example, call the Letter, App. Letter Contract Site (must be same as layout
name), and associate it to the Accepted status.
Youll need to enter a concurrent program name even though it isnt used.
4. Now Define Layout, and select the fields that you wish to be included in the letter.
The Layout Name must be same as the Letter Type Name in 3. i.e. App. Letter
Contract Site.
1. Navigate to Oracle Web ADI Responsibility, Define Layout function.
2.
Select the integrator Appointment Letter Contract Site and click on Go.
3.
4.
Enter the layout name same as the recruitment letter type, App. Letter Contract Site here
and click on Next.
5.
Click on Select All to get all these information in your document
and click on apply.
5. Navigate to Recruitment -> Request Recruitment Letter. Enter Letter Name, and
pick in Applicants to generate
Appointment letters for. Save work. This will have created rows on the table
PER_LETTER_REQUEST_LINES, and
therefore the view, MBE_APP_LETTER_CONTRACT_SITE, should now pick up the
rows that Web ADI will
download to Word. Click on the export icon to download the information.
1. Navigate to Recruitment -> Request Recruitment Letter.
2.
Select the letter type and applicants in the assignment status and
save the work. Click on the export icon.
3.
Select the viewer as Word 2003 and check the Reporting option.
4.
5.
6.
7.
Required information gets downloaded in the excel file. Save this as the data source
document such as
6.
Create a Template Letter using Word, and associate this with the data source file saved
above.
2.
3.
4.
5.
Select the sheet from the list. Check First row of data contains column headers.
6.
It shows the rows of data. Select/deselect the ones as per your requirement.
7.
Go to Mailings -> Insert Merged Field to select the fields you want in your letter.
8.
Create the letter template and save it as a document, here in this case as App Letter
Contract Site.doc.
7.
If you now upload the Template Letter document created in 6. to the database, the Mail
Merge process can be performed
seamlessly when clicking on the Export Data icon in the Request Recruitment Letter form.
1. Add the HRMS ADI Document Manager submenu to your Web ADI
menu and give it a prompt of Document Management.
2. Navigate to Oracle Web ADI -> Document Management -> Document
Management.
3.
4.
Browse the file from your local machine and select the category as Recruitment. Click on
Apply.
5.
8.
3.
4.
Click on the Link icon to link the document with this integrator.
5.
Select the document from the list and click on the Select button.
6.
9.
Now, navigate to HRMS Manager -> Recruitment -> Request Recruitment Letter.
1. In the Request Letter window, select the letter type, select the persons
and click on the export icon.
2.
Select word 2003 as viewer and check the Reporting box. Click on Next.
3.
Check the details in review page and click on Create Document button.
4.
Downloads the letters for all selected applicants in the format below.
3. Kindly click on Trust Center in Excel Option and then click on Trust Center
Setting Button
3. In this Enabled option for "Allow status bar updates via script"
3. Click on OK , It will show you warning message Click 'Yes' to change setting.
By using above two setup now we can use WebAdi functionality in Oracle apps.