Tuesday, 18 January 2022
Oracle HCM Salary Query / Element Entries Query
SELECT DISTINCT
prg.assignment_number,
prg.assignment_id,
pet.base_element_name element_name,
pee.entry_type entry_type,
pee.effective_start_date entry_start_date,
pee.effective_end_date entry_end_date,
pee.multiple_entry_count multiple_entry_count,
pee.element_entry_id element_entry_id,
(
CASE
WHEN base_element_name = 'Hourly Paid' THEN
round(peev.screen_entry_value * 1820, 2)
ELSE
to_number(peev.screen_entry_value)
END
) screen_entry_value,
piv.base_name base_name,
pee.person_id person_id,
papf.person_number person_number
FROM
pay_rel_groups_dn prg,
pay_entry_usages peu,
pay_element_entries_f pee,
pay_element_entry_values_f peev,
pay_input_values_vl piv,
pay_element_types_vl pet,
per_all_people_f papf
WHERE
1 = 1
AND papf.person_id = pee.person_id
AND papf.person_number = 123456
--AND prg.assignment_number = 'E123456'
AND prg.payroll_relationship_id = peu.payroll_relationship_id
AND prg.relationship_group_id = peu.payroll_assignment_id
AND peu.element_entry_id = pee.element_entry_id
AND pee.element_entry_id = peev.element_entry_id
AND piv.input_value_id = peev.input_value_id
AND pee.element_type_id = pet.element_type_id
AND piv.base_name = 'Amount'
AND pet.base_element_name IN ( 'Basic Salary', 'Hourly Paid' )
AND trunc(pee.effective_start_date) BETWEEN trunc(piv.effective_start_date) AND trunc(piv.effective_end_date)
AND trunc(pee.effective_start_date) BETWEEN trunc(peev.effective_start_date) AND trunc(peev.effective_end_date)
AND trunc(pee.effective_start_date) BETWEEN trunc(pet.effective_start_date) AND trunc(pet.effective_end_date)
AND trunc(sysdate) BETWEEN trunc(papf.effective_start_date) AND trunc(papf.effective_end_date)
Wednesday, 12 January 2022
OIC HealthCheck URL
https://*********/ic/integration/home/ping.json
{"status": "ok"}Monday, 10 January 2022
XML to XSD convertor
https://www.liquid-technologies.com/online-xml-to-xsd-converter
As part of the tags xs:sequence is used quite a lot which can cause issues if the elements are not in the exact order. I found using xs:all handy to avoid that issue.
Wednesday, 5 January 2022
Delete duplicate from Oracle Database table
DELETE FROM target STG
WHERE ROWID IN ( SELECT rid
FROM (SELECT rowid rid,
row_number() over (partition by order_id order by rowid) rn
FROM target)
WHERE rn <> 1);
The order_id is the unique key used to identify the duplicates.
Tuesday, 14 September 2021
OIC Replace connection in existing integration
OIC has a feature to change a connection in the integration without the need for redeveloping the integration. The connection need to be of the same type (of course)!
> Deactivate the integration
> Click on Configure in the integration options
> It open the configuration manager, when a package is involved all integrations are diplayed.
> And you will be able to selected the replacement connection.
Oracle Integration Cloud (OIC) Date formatting
To format the date OIC has provided the following function OOTB.
xp20:format-dateTime( Start Time, "[Y0001][M01][D01][H01][m01][s01]")
The format covers the Year/Month/Date/Hour/Minute/Seconds. Additional options are also available.
|
Expression |
Result |
|
xp20:format-dateTime(xp20:current-dateTime(),"[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01].[f001][Z]”) |
2012-04-12T17:37:57.000-0600 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[D1] [MI] [Y]”) |
12 4 2012 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[D1o] [MNn], [Y]”) |
12 April, 2012 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[h]:[m01]:[s01] o'clock”) |
5:37:57 o'clock |
|
xp20:format-dateTime(xp20:current-dateTime(),”[D01] [MN,*-3] [Y0001]”) |
12 APR 2012 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[FNn] [D] [MNn] [Y]”) |
Thursday 12 April 2012 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[[[Y0001]-[M01]-[D01]]]”) |
[2012-04-12] |
|
xp20:format-dateTime(xp20:current-dateTime(),”[YWw]”) |
Two Thousand and Twelve |
|
xp20:format-dateTime(xp20:current-dateTime(),”[Dwo] [MNn]”) |
twelve April |
|
xp20:format-dateTime(xp20:current-dateTime(),”[h]:[m01] [PN]”) |
5:37 PM |
|
xp20:format-dateTime(xp20:current-dateTime(),”[h]:[m01]:[s01] [Pn]”) |
5:37:57 pm |
|
xp20:format-dateTime(xp20:current-dateTime(),”[h]:[m01]:[s01] [PN]
[ZN,*-3]”) |
5:37:57 PM -0600 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[H01]:[m01]”) |
17:37 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[H01]:[m01]:[s01].[f001]”") |
17:37:57.000 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[H01]:[m01]:[s01] [z]”) |
17:37:57 GMT-06:00 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[H01]:[m01] Uhr [z]”) |
17:37 Uhr GMT-06:00 |
|
xp20:format-dateTime(xp20:current-dateTime(),”[h].[m01][Pn] on [FNn],
[D1o] [MNn]”) |
5.37pm on Thursday, 12 April |
|
xp20:format-dateTime(xp20:current-dateTime(),”[M01]/[D01]/[Y0001] at
[H01]:[m01]:[s01]”) |
04/12/2012 at 17:37:57 |
Thursday, 2 September 2021
HCM Employee Purge in Test Environments
Below are steps needed for running the purge process.
1. Raise an Oracle SR to get the Purge Key. This can only be done in TEST environments.
2. Configure the Purge Key in Configure HCM Data Loader > Purge Person Enabled Key
3. Run the Purge Person Data in Test Environments process using variety of parameters.
- Person numbers can be provided using % like 1001% along with full person numbers like 1234
- To remove all eligible person data a simple query like 'select person_is from per_all_people_f' can be used.
- Save 'N' lists down the eligible person number before purging.
- Save 'Y' purges the person numbers eligible.
The following rules apply for the purging process to work.
A person record cannot be deleted if it:
- Was created using File-Based Loader (FBL)
- Has been processed in a Payroll run
- Is the record of a contact who is enrolled in a Benefits program
Happy GDPR.
Integrations Lead - Lessons learnt
Integrations have been my passion for a while but like anything tech there is no credit given when things go right but always heaps of pres...
-
For most outbound interfaces bursting to content server and then picking the file from UCM is the best approach for large extracts. Default...
-
While developing Cloud integrations I could not find a single place for all details like InterfaceID or jobdefinitionname or job name etc. ...
-
Integrations have been my passion for a while but like anything tech there is no credit given when things go right but always heaps of pres...