Pages

Recently Viewed

Tuesday, April 7, 2020

Context in Fast Formula

Fast Formula in Cloud can use context setting to derive values at different context.

For example if there is a requirement to display Current Salary and First Salary for given assignment. An Extract can be setup by creating 3 attributes with Assignment  user entity.

Attribute1 - CurrentSal - Type (Database Item Group)  - ASSIGNMENT SALARY
Attribute2  - DATE_FROM  Type (Database Item Group) - ASSIGNMENT START DATE

Attribute3 - FirstSal      - Type (Rule)












Fast Formula To derive Salary on different date.
/**************************************************************/
DEFAULT FOR CMP_ASSIGNMENT_SALARY_AMOUNT IS 0

INPUTS ARE DATA_ELEMENTS (TEXT_TEXT)

l_effective_date = TO_DATE(SUBSTR(TRANSLATE(DATA_ELEMENTS['DATE_FROM'],'01234567890:.-TZ', '01234567890:.- '), 1, 19), 'YYYY-MM-DD HH24:MI:SS')

CHANGE_CONTEXTS(EFFECTIVE_DATE= l_effective_date)

RULE_VALUE = TO_CHAR(CMP_ASSIGNMENT_SALARY_AMOUNT)

RULE_VALUE = TRIM(RULE_VALUE)

RETURN RULE_VALUE
/**************************************************************/

. Read the Extract Attribute - DATE FROM
. Set The Context for Effective Date
. Get the Database Item Value ( as on set date)
. Return this value 

Create Custom Fast Formula in HCM Cloud

1) Go to Setup and Maintenance >> Search Task Fast Formulas
2) Create a new fast formula
3) Give Name , Type and Effective Start Date


















4) Don't assign Legislative Data Group Name ( Otherwise you can't refer these Fast Formula)
5) Effective Start Date should be 01/01/0001

Use SELECT Query In Fast Formula

SQL can be used in fast formula with help of TABLE type value set

Steps:

1) Go to Setup and Maintenance >> Search Manage Value Sets for Global Human Resource task >> Create a new value Set
>> Validation Type = TABLE

Module                       -  Module Name  ( Extract etc)
From Clause               -  TABLE Name ( cmp_salary)
Value Column Name  -  ColumnName ( Salary_amount )
WHERE Clause          - Conditions

2) Use Parameter in WHERE Clause if required. ( Parameter will be passed from fast Formula only).
Example
Assignment_id = :{PARAMETER.ASSIGNMENT_ID}

ASSIGNMENT_ID is parameter Name, which need to be passed from Fast Formula.

3) Create Fast Formula and fetch value set value using following method  GET_VALUE_SET('ValueSetName','BindVariable')

ValueSetName - Mandatory - Pass ValueSet Name
BindVariable   - Optional  -  Value for Parameters

Syntex for Bind variable -
'|=PARAMNAME1='''''||Value1||'|PARAMNAME2=''''||Value2||''''


** This method might work only for payroll flow. I could not get return while using from Extract




List of Programs in Request Set

--SQL – List of Request Set Programs
SELECT USER_REQUEST_SET_NAME,
  a.REQUEST_SET_ID,
  Sequence,
  b.CONCURRENT_PROGRAM_ID,
  c.USER_CONCURRENT_PROGRAM_NAME
FROM FND_REQUEST_SETS_VL a,
  FND_REQUEST_SET_PROGRAMS b,
  FND_CONCURRENT_PROGRAMS_VL c
WHERE 1=1
--AND USER_REQUEST_SET_NAME LIKE '%RequestSetname%'
AND a.REQUEST_SET_ID        = B.REQUEST_SET_ID
AND b.concurrent_program_id = c.concurrent_program_id
ORDER BY USER_REQUEST_SET_NAME,sequence ;

Logical and Physical Query in OTBI

OTBI reporting is based on pre-configured subject areas.  Oracle provide multiple SAs for respective area which can be used to create an OTBI analysis by drag drop and calculations.

Based on selected SA and columns system generates a logical query, which can be viewed from Advanced  => SQL.


Physical query is SQL used to fetch logical query from Oracle DB. Physical query can be view in nqquery.log [Doc ID 1469168.1 - How to generate nqquery.log]

Steps to view physical query 
1) Get the logical query
2) Go to Administraton >> SQL Issues >> Paste following line followed by logical query
SET VARIABLE DISABLE_CACHE_HIT=1,DISABLE_PLAN_CACHE_HIT=1;
<<logicalQuery>>
3) Click on view log 

Script to find Form Personlizations

SELECT FORM_NAME,
  FUNCTION_NAME,
  Description,
  SEQUENCE,
  CONDITION
FROM FND_FORM_CUSTOM_RULES
WHERE ENABLED = 'Y';

Friday, January 12, 2018

SQL to find OAF personalizations


SELECT JDR_MDS_INTERNAL.GETDOCUMENTNAME(PATH_DOCID) DOCUMENT_ID,
  jdr_mds_internal.exportDocumentAsXML(jdr_mds_internal.getDocumentName(path_docid)) personalization_xml
FROM jdr_paths,
  jdr_attributes
WHERE PATH_DOCID = ATT_COMP_DOCID
AND path_name    = SUBSTR(att_value,INSTR(att_value, '/', -1, 1)+1)
AND att_comp_seq = 0
AND ATT_NAME     = 'customizes'
AND ATT_VALUE    = ATT_VALUE
AND jdr_mds_internal.getDocumentName(path_docid) LIKE '%/responsibility/53621%'


This would return all OAF personalization for responsibility id 53621.

Friday, November 10, 2017

Regular Expression for Date Format DD-MON-YYYY HH24:MI:SS

Use below regular expression to validate if given string is in specific date format.

select COUNT(1)  from DUAL where regexp_like('12-JUN-2016 23:34:59','^(\d){2}-[A-Z]{3}-(\d){4}\s(\d){2}:(\d){2}:(\d){2}$')
1

select COUNT(1)  from DUAL where regexp_like('121-JUN-2016 23:34:59','^(\d){2}-[A-Z]{3}-(\d){4}\s(\d){2}:(\d){2}:(\d){2}$')
0


=======================

^          : Starting String
$          : Ending String
{n}      : Execute last rule n time
[A-Z]   : All CAP Alphabets check
\d         :  digit check
\s          : Space






Sunday, April 9, 2017

Script to find Template and associated JSP file



SELECT 
ida.access_name,
ida.file_name,
DECODE(ida.site_id, 1, 'All', s.msite_name) site_name,
ida.default_msite,
ida.language_code,
ida.default_language
FROM IBE_DSP_ATTACHMENTS_V ida, ibe_msites_tl s
WHERE m.site_id = s.msite_id and file_name = ‘ibeSeededPage.jsp’; 


Once identify the target JSP page use above SQL to find the associated program access name.

Create a custom version of seeded JSP (i.e. xxskpibeSeededPage.jsp)

Login to iStore Administrator Responsibility >> Advanced >> Template Manager 

Search the program access name with the out of above SQL 

Update >> Add new file >> provide custom file name for all countries and US language. 


Now place the custom file at OA_HTML file path and compile JSP (Click here for compilation and migrations)

Thursday, August 25, 2016

SQL - Menu and Functions assigned to Responsibilities

SELECT a.seq,
  a.ENTRY_SEQUENCE,
  (SELECT menu_name FROM fnd_menus WHERE menu_id = a.menu_id
  ) menu,
  (SELECT menu_name FROM fnd_menus WHERE menu_id = a.sub_menu_id
  ) sub_menu,
  (SELECT FUNCTION_NAME
  FROM fnd_form_functions
  WHERE FUNCTION_ID = a.FUNCTION_ID
  ) function_name ,
  prompt,
  description
FROM
  (SELECT c.*
  FROM
    (SELECT level seq,
      ENTRY_SEQUENCE,
      x.menu_id,
      sub_menu_id,
      function_id,
      prompt,
      description
    FROM fnd_menu_entries_vl x
      START WITH x.menu_id =
      (SELECT menu_id
      FROM fnd_menus
      WHERE menu_id=
        (SELECT menu_id
        FROM fnd_responsibility_vl
        WHERE responsibility_name=:Responsibility_Name
        )
      )
      CONNECT BY prior sub_menu_id = x.menu_id
    ) c
  WHERE NOT EXISTS
    (SELECT 1
    FROM FND_RESP_FUNCTIONS
    WHERE responsibility_id =
      (SELECT responsibility_id
      FROM fnd_responsibility_tl
      WHERE responsibility_name=:Responsibility_Name
      )
    AND action_id = c.menu_id
    AND rule_type ='M'
    )
  AND NOT EXISTS
    (SELECT 1
    FROM FND_RESP_FUNCTIONS
    WHERE responsibility_id =
      (SELECT responsibility_id
      FROM fnd_responsibility_tl
      WHERE responsibility_name=:Responsibility_Name
      )
    AND action_id = c.function_id
    AND rule_type ='F'
    )
  ) A
ORDER BY 1,2,3