DECLARE
G_LAST_UPDATE_DATE DATE := SYSDATE;
G_LAST_UPDATED_BY NUMBER ;
G_LAST_UPDATE_LOGIN NUMBER ;
G_APPLICATION_ID NUMBER ;
G_RESPONSIBILITY_ID NUMBER ;
L_FUNCTION_ID NUMBER;
CURSOR C_UPDATE_MENU
IS
SELECT FMEV.MENU_ID,
FMEV.ENTRY_SEQUENCE,
FMEV.SUB_MENU_ID,
FMEV.GRANT_FLAG,
FMEV.PROMPT,
FMEV.DESCRIPTION,
FM.MENU_NAME
FROM FND_MENU_ENTRIES_VL FMEV,
FND_FORM_FUNCTIONS FF,
FND_MENUS FM
WHERE FMEV.MENU_ID = FM.MENU_ID
AND FMEV.FUNCTION_ID = FF.FUNCTION_ID
AND FF.FUNCTION_NAME = 'BNE_CREATE_DOCUMENT'
AND FM.MENU_NAME LIKE 'XX%';
BEGIN
SELECT USER_ID
INTO G_LAST_UPDATED_BY
FROM FND_USER
WHERE USER_NAME = 'ORACLE12.1.0';
G_LAST_UPDATE_LOGIN := G_LAST_UPDATED_BY;
SELECT FUNCTION_ID
INTO L_FUNCTION_ID
FROM FND_FORM_FUNCTIONS
WHERE FUNCTION_NAME = 'BNE_ADI_CREATE_DOCUMENT';
FOR C_UPDATE_MENU_REC IN C_UPDATE_MENU
LOOP
BEGIN
FND_MENU_ENTRIES_PKG.UPDATE_ROW( X_MENU_ID => C_UPDATE_MENU_REC.MENU_ID,
X_ENTRY_SEQUENCE => C_UPDATE_MENU_REC.ENTRY_SEQUENCE,
X_SUB_MENU_ID => C_UPDATE_MENU_REC.SUB_MENU_ID,
X_FUNCTION_ID => L_FUNCTION_ID,
X_GRANT_FLAG => C_UPDATE_MENU_REC.GRANT_FLAG,
X_PROMPT => C_UPDATE_MENU_REC.PROMPT,
X_DESCRIPTION => C_UPDATE_MENU_REC.DESCRIPTION,
X_LAST_UPDATE_DATE => G_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY => G_LAST_UPDATED_BY,
X_LAST_UPDATE_LOGIN => G_LAST_UPDATE_LOGIN
);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Failed the update Menu '||C_UPDATE_MENU_REC.MENU_NAME);
END;
END LOOP;
COMMIT;
-- Compiling Security Profile
DECLARE
L_REQUEST_ID NUMBER;
BEGIN
SELECT APPLICATION_ID,RESPONSIBILITY_ID
INTO G_APPLICATION_ID,G_RESPONSIBILITY_ID
FROM FND_RESPONSIBILITY_TL
WHERE RESPONSIBILITY_NAME = 'System Administrator';
Fnd_Global.apps_initialize(G_LAST_UPDATED_BY,G_RESPONSIBILITY_ID,G_APPLICATION_ID);
L_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST(
APPLICATION => 'FND',
PROGRAM => 'FNDSCMPI',
ARGUMENT1 => 'No');
DBMS_OUTPUT.PUT_LINE ('Request ID: '||L_REQUEST_ID);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Error While compiling Security Profile');
END;
END;
/
Friday, 19 April 2013
Script to Update the form Function
DECLARE
G_LAST_UPDATE_DATE DATE := SYSDATE;
G_LAST_UPDATED_BY NUMBER ;
G_LAST_UPDATE_LOGIN NUMBER ;
CURSOR C_UPDATE_FUNCTION
IS
SELECT FUNCTION_ID,
WEB_HOST_NAME,
WEB_AGENT_NAME,
WEB_HTML_CALL,
WEB_ENCRYPT_PARAMETERS,
WEB_SECURED,
WEB_ICON,
OBJECT_ID,
REGION_APPLICATION_ID,
FORM_ID,
REGION_CODE,
FUNCTION_NAME,
APPLICATION_ID,
PARAMETERS,
TYPE,
USER_FUNCTION_NAME,
DESCRIPTION,
MAINTENANCE_MODE_SUPPORT,
CONTEXT_DEPENDENCE,
JRAD_REF_PATH
FROM FND_FORM_FUNCTIONS_VL
WHERE FUNCTION_NAME LIKE 'XX%';
BEGIN
SELECT USER_ID
INTO G_LAST_UPDATED_BY
FROM FND_USER
WHERE USER_NAME = 'ORACLE12.1.0';
G_LAST_UPDATE_LOGIN := G_LAST_UPDATED_BY;
FOR C_UPDATE_FUNCTION_REC IN C_UPDATE_FUNCTION
LOOP
BEGIN
FND_FORM_FUNCTIONS_PKG.UPDATE_ROW ( X_FUNCTION_ID => C_UPDATE_FUNCTION_REC.FUNCTION_ID,
X_WEB_HOST_NAME => C_UPDATE_FUNCTION_REC.WEB_HOST_NAME,
X_WEB_AGENT_NAME => C_UPDATE_FUNCTION_REC.WEB_AGENT_NAME,
X_WEB_HTML_CALL => 'BneApplicationService',
X_WEB_ENCRYPT_PARAMETERS => C_UPDATE_FUNCTION_REC.WEB_ENCRYPT_PARAMETERS,
X_WEB_SECURED => C_UPDATE_FUNCTION_REC.WEB_SECURED,
X_WEB_ICON => C_UPDATE_FUNCTION_REC.WEB_ICON,
X_OBJECT_ID => C_UPDATE_FUNCTION_REC.OBJECT_ID,
X_REGION_APPLICATION_ID => C_UPDATE_FUNCTION_REC.REGION_APPLICATION_ID,
X_REGION_CODE => C_UPDATE_FUNCTION_REC.REGION_CODE,
X_FUNCTION_NAME => C_UPDATE_FUNCTION_REC.FUNCTION_NAME,
X_APPLICATION_ID => C_UPDATE_FUNCTION_REC.APPLICATION_ID,
X_FORM_ID => C_UPDATE_FUNCTION_REC.FORM_ID,
X_PARAMETERS => C_UPDATE_FUNCTION_REC.PARAMETERS,
X_TYPE => C_UPDATE_FUNCTION_REC.TYPE,
X_USER_FUNCTION_NAME => C_UPDATE_FUNCTION_REC.USER_FUNCTION_NAME,
X_DESCRIPTION => C_UPDATE_FUNCTION_REC.DESCRIPTION,
X_LAST_UPDATE_DATE => G_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY => G_LAST_UPDATED_BY,
X_LAST_UPDATE_LOGIN => G_LAST_UPDATE_LOGIN,
X_MAINTENANCE_MODE_SUPPORT => C_UPDATE_FUNCTION_REC.MAINTENANCE_MODE_SUPPORT,
X_CONTEXT_DEPENDENCE => C_UPDATE_FUNCTION_REC.CONTEXT_DEPENDENCE,
X_JRAD_REF_PATH => C_UPDATE_FUNCTION_REC.JRAD_REF_PATH
);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Failed the update function '||C_UPDATE_FUNCTION_REC.FUNCTION_NAME);
END;
END LOOP;
COMMIT;
END;
/
G_LAST_UPDATE_DATE DATE := SYSDATE;
G_LAST_UPDATED_BY NUMBER ;
G_LAST_UPDATE_LOGIN NUMBER ;
CURSOR C_UPDATE_FUNCTION
IS
SELECT FUNCTION_ID,
WEB_HOST_NAME,
WEB_AGENT_NAME,
WEB_HTML_CALL,
WEB_ENCRYPT_PARAMETERS,
WEB_SECURED,
WEB_ICON,
OBJECT_ID,
REGION_APPLICATION_ID,
FORM_ID,
REGION_CODE,
FUNCTION_NAME,
APPLICATION_ID,
PARAMETERS,
TYPE,
USER_FUNCTION_NAME,
DESCRIPTION,
MAINTENANCE_MODE_SUPPORT,
CONTEXT_DEPENDENCE,
JRAD_REF_PATH
FROM FND_FORM_FUNCTIONS_VL
WHERE FUNCTION_NAME LIKE 'XX%';
BEGIN
SELECT USER_ID
INTO G_LAST_UPDATED_BY
FROM FND_USER
WHERE USER_NAME = 'ORACLE12.1.0';
G_LAST_UPDATE_LOGIN := G_LAST_UPDATED_BY;
FOR C_UPDATE_FUNCTION_REC IN C_UPDATE_FUNCTION
LOOP
BEGIN
FND_FORM_FUNCTIONS_PKG.UPDATE_ROW ( X_FUNCTION_ID => C_UPDATE_FUNCTION_REC.FUNCTION_ID,
X_WEB_HOST_NAME => C_UPDATE_FUNCTION_REC.WEB_HOST_NAME,
X_WEB_AGENT_NAME => C_UPDATE_FUNCTION_REC.WEB_AGENT_NAME,
X_WEB_HTML_CALL => 'BneApplicationService',
X_WEB_ENCRYPT_PARAMETERS => C_UPDATE_FUNCTION_REC.WEB_ENCRYPT_PARAMETERS,
X_WEB_SECURED => C_UPDATE_FUNCTION_REC.WEB_SECURED,
X_WEB_ICON => C_UPDATE_FUNCTION_REC.WEB_ICON,
X_OBJECT_ID => C_UPDATE_FUNCTION_REC.OBJECT_ID,
X_REGION_APPLICATION_ID => C_UPDATE_FUNCTION_REC.REGION_APPLICATION_ID,
X_REGION_CODE => C_UPDATE_FUNCTION_REC.REGION_CODE,
X_FUNCTION_NAME => C_UPDATE_FUNCTION_REC.FUNCTION_NAME,
X_APPLICATION_ID => C_UPDATE_FUNCTION_REC.APPLICATION_ID,
X_FORM_ID => C_UPDATE_FUNCTION_REC.FORM_ID,
X_PARAMETERS => C_UPDATE_FUNCTION_REC.PARAMETERS,
X_TYPE => C_UPDATE_FUNCTION_REC.TYPE,
X_USER_FUNCTION_NAME => C_UPDATE_FUNCTION_REC.USER_FUNCTION_NAME,
X_DESCRIPTION => C_UPDATE_FUNCTION_REC.DESCRIPTION,
X_LAST_UPDATE_DATE => G_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY => G_LAST_UPDATED_BY,
X_LAST_UPDATE_LOGIN => G_LAST_UPDATE_LOGIN,
X_MAINTENANCE_MODE_SUPPORT => C_UPDATE_FUNCTION_REC.MAINTENANCE_MODE_SUPPORT,
X_CONTEXT_DEPENDENCE => C_UPDATE_FUNCTION_REC.CONTEXT_DEPENDENCE,
X_JRAD_REF_PATH => C_UPDATE_FUNCTION_REC.JRAD_REF_PATH
);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Failed the update function '||C_UPDATE_FUNCTION_REC.FUNCTION_NAME);
END;
END LOOP;
COMMIT;
END;
/
Saturday, 5 January 2013
Dividing pipe delimited string into columns
Example :-
String - CI-CT-WESTPORT-06880.02
Column1 - CI
Column2 - CT
Column3 - WESTPORT
Column4 - 06880.02
Solution :-
SELECT REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 1) COLUMN1,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 2) COLUMN2,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 3) COLUMN3,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 4) COLUMN4
FROM DUAL;
You can use
String - CI-CT-WESTPORT-06880.02
Column1 - CI
Column2 - CT
Column3 - WESTPORT
Column4 - 06880.02
Solution :-
SELECT REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 1) COLUMN1,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 2) COLUMN2,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 3) COLUMN3,
REGEXP_SUBSTR('CI-CT-WESTPORT-06880.02', '[^-]+', 1, 4) COLUMN4
FROM DUAL;
You can use
regexp_substr only for (10g +).
Thursday, 27 December 2012
Step by Step Process to add JSP page to Oracle Application
Below are the steps to add JSP page to Oracle Application
1. Upload the .jsp page to $OA_HTML top
2. Run " export PATH=$PATH:$FND_TOP/patch/115/bin "
3. Run " ojspCompile.pl --compile -s 'JSPFileName.jsp' --flush "
4. Create a form function with type "SSWA jsp function" and web call as "JSPFileName.jsp".
5. Bounce the server.
In R12 .class file is stored in $COMMON_TOP/_pages and in R11 is stored in $OA_HTML
1. Upload the .jsp page to $OA_HTML top
2. Run " export PATH=$PATH:$FND_TOP/patch/115/bin "
3. Run " ojspCompile.pl --compile -s 'JSPFileName.jsp' --flush "
4. Create a form function with type "SSWA jsp function" and web call as "JSPFileName.jsp".
5. Bounce the server.
In R12 .class file is stored in $COMMON_TOP/_pages and in R11 is stored in $OA_HTML
How to use FND_GLOBAL for SSWA jsp function
When you use FND_GLOBAL.USER_ID or FND_GLOBAL.RESP_ID for SSWA jsp function, it always returns -1.
To get the correct value of these functions you can use ICX_SEC.
procedure testing
IS
l_session boolean;
BEGIN
l_session := icx_sec.validateSession(c_update => FALSE);
htp.p('USER: ' || icx_sec.g_user_id );
htp.br;
htp.p('RESP: ' || icx_sec.g_responsibility_id );
END;
Results of launching the function I created referring to procedure testing is :
USER: 5008
RESP: 40398
To get the correct value of these functions you can use ICX_SEC.
procedure testing
IS
l_session boolean;
BEGIN
l_session := icx_sec.validateSession(c_update => FALSE);
htp.p('USER: ' || icx_sec.g_user_id );
htp.br;
htp.p('RESP: ' || icx_sec.g_responsibility_id );
END;
Results of launching the function I created referring to procedure testing is :
USER: 5008
RESP: 40398
Monday, 10 December 2012
Query to get the USER password
First compile the below package
create or replace
PACKAGE get_pwd
AS
FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
RETURN VARCHAR2;
end get_pwd;
/
create or replace
PACKAGE BODY get_pwd
AS
FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
RETURN VARCHAR2
AS
LANGUAGE JAVA
NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';
END get_pwd;
Now run this query to get the password
SELECT usr.user_name,
get_pwd.decrypt
((SELECT (SELECT get_pwd.decrypt
(fnd_web_sec.get_guest_username_pwd,
usertable.encrypted_foundation_password
)
FROM DUAL) AS apps_password
FROM fnd_user usertable
WHERE usertable.user_name =
(SELECT SUBSTR
(fnd_web_sec.get_guest_username_pwd,
1,
INSTR
(fnd_web_sec.get_guest_username_pwd,
'/'
)
- 1
)
FROM DUAL)),
usr.encrypted_user_password
) PASSWORD
FROM fnd_user usr
WHERE usr.user_name = 'USER';
Subscribe to:
Posts (Atom)