SELECT FDS.DB_SEQUENCE_NAME,
FDSA.SET_OF_BOOKS_ID,
SOB.NAME,
FDS.DOC_SEQUENCE_ID,
FAT.APPLICATION_NAME,
FDS.NAME,
FDS.START_DATE,
FDS.END_DATE,
FDS.INITIAL_VALUE,
FDSA.DOC_SEQUENCE_ASSIGNMENT_ID,
FDSC.NAME,
FDSA.START_DATE,
FDSA.END_DATE
FROM FND_DOCUMENT_SEQUENCES FDS,
FND_DOC_SEQUENCE_ASSIGNMENTS FDSA,
FND_DOC_SEQUENCE_CATEGORIES FDSC,
FND_APPLICATION_TL FAT,
GL_SETS_OF_BOOKS SOB
WHERE 1 = 1
AND FDS.DOC_SEQUENCE_ID = FDSA.DOC_SEQUENCE_ID(+)
AND FDSA.CATEGORY_CODE = FDSC.CODE(+)
AND FDS.APPLICATION_ID = FAT.APPLICATION_ID(+)
AND FAT.SOURCE_LANG = 'ZHT'
AND FDSA.SET_OF_BOOKS_ID = SOB.SET_OF_BOOKS_ID(+)
AND TO_CHAR(FDS.START_DATE, 'YYYY') = '2023'
--AND FDS.NAME = 'ACETJ_OM_1031012_23'
ORDER BY FDSA.SET_OF_BOOKS_ID, FAT.APPLICATION_NAME
2023-01-11
[Oracle]檢查年度開帳資料
2023-01-05
[Oracle]How to Delete Concurrent Program
DECLARE
P_PROG_SHORT_NAME VARCHAR2(240) := 'CSTR002';
P_EXEC_SHORT_NAME VARCHAR2(240) := 'CSTR002';
P_APPL_FULL_NAME VARCHAR2(240) := '成本管理系統';
P_APPL_SHORT_NAME VARCHAR2(240) := 'CST';
P_DEL_PROG_FLAG VARCHAR2(1) := 'Y';
P_DEL_EXEC_FLAG VARCHAR2(1) := 'Y';
BEGIN
--檢查是否存在
IF FND_PROGRAM.PROGRAM_EXISTS(P_PROG_SHORT_NAME, P_APPL_SHORT_NAME) AND
FND_PROGRAM.EXECUTABLE_EXISTS(P_EXEC_SHORT_NAME, P_APPL_SHORT_NAME) THEN
IF P_DEL_PROG_FLAG = 'Y' THEN
FND_PROGRAM.DELETE_PROGRAM(P_PROG_SHORT_NAME, P_APPL_FULL_NAME);
END IF;
IF P_DEL_EXEC_FLAG = 'Y' THEN
FND_PROGRAM.DELETE_EXECUTABLE(P_EXEC_SHORT_NAME, P_APPL_FULL_NAME);
END IF;
COMMIT;
DBMS_OUTPUT.PUT_LINE('刪除成功');
ELSE
DBMS_OUTPUT.PUT_LINE('刪除失敗');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('錯誤: ' || SQLERRM);
END;
2022-12-29
[Oracle]How to Disable/Enable Oracle User Account
DECLARE
P_USER_NAME VARCHAR2(100) :='A0001'; --帳號
P_FND_END_DATE DATE := TO_DATE('2022/12/29','YYYY/MM/DD'); --帳號啟動時間
BEGIN
--關閉帳號
FND_USER_PKG.UPDATEUSER(X_USER_NAME => P_USER_NAME,
X_OWNER => NULL,
X_END_DATE => P_FND_END_DATE);
END;
Enable Oracle User Account
DECLARE
P_USER_NAME VARCHAR2(100) :='A0001'; --帳號
P_FND_START_DATE DATE := TO_DATE('20221229','YYYYMMDD'); --帳號啟動時間
BEGIN
--使用FND_USER_PKG.UPDATEUSER失效日期壓空值沒有作用,改用FND_USER_PKG.ENABLEUSER
FND_USER_PKG.ENABLEUSER(USERNAME => P_USER_NAME,
START_DATE => P_FND_START_DATE);
END;
2022-12-14
[Oracle]Setup Document Sequences by Dataload
--定義
SELECT FDS.NAME,
'TAB',
FAT.APPLICATION_NAME,
'TAB',
FDS.START_DATE,
'TAB',
FDS.END_DATE,
'TAB',
'自動',
'TAB',
'TAB',
FDS.INITIAL_VALUE,
'TAB',
'ENT'
FROM FND_DOCUMENT_SEQUENCES FDS, FND_APPLICATION_TL FAT
WHERE 1 = 1
AND FDS.APPLICATION_ID = FAT.APPLICATION_ID
AND FAT.SOURCE_LANG = 'ZHT'
AND FDS.NAME LIKE 'XXX%'
--AND FAT.APPLICATION_NAME = '應付帳款管理系統'
AND TO_CHAR(FDS.START_DATE, 'YYYY') = '2022'
ORDER BY FDS.NAME;
--指定
SELECT FAT.APPLICATION_NAME,
'TAB',
FDSC.NAME,
'TAB',
SOB.NAME,
'TAB',
'TAB',
FDSA.START_DATE,
'TAB',
FDSA.END_DATE,
'TAB',
FDS.NAME,
'ENT'
FROM FND_DOCUMENT_SEQUENCES FDS,
FND_DOC_SEQUENCE_ASSIGNMENTS FDSA,
FND_DOC_SEQUENCE_CATEGORIES FDSC,
FND_APPLICATION_TL FAT,
GL_SETS_OF_BOOKS SOB
WHERE 1 = 1
AND FDS.DOC_SEQUENCE_ID = FDSA.DOC_SEQUENCE_ID
AND FDSA.APPLICATION_ID = FAT.APPLICATION_ID
AND FDSA.CATEGORY_CODE = FDSC.CODE
AND FDSA.SET_OF_BOOKS_ID = SOB.SET_OF_BOOKS_ID
AND FAT.SOURCE_LANG = 'ZHT'
AND SOB.NAME = 'XX'
--AND FAT.APPLICATION_NAME = '總帳會計管理系統'
AND TO_CHAR(FDS.START_DATE, 'YYYY') = '2022'
ORDER BY SOB.NAME,FAT.APPLICATION_NAME, FDSC.NAME, FDSA.START_DATE;
2022-12-12
[Oracle]How to Query Organization
SELECT GL.LEDGER_ID,
GL.CHART_OF_ACCOUNTS_ID COA_ID,
GL.NAME,
GL.SHORT_NAME,
GL.PERIOD_SET_NAME,
GL.CURRENCY_CODE,
HOU.DEFAULT_LEGAL_CONTEXT_ID LEGAL_ID,
HOU.ORGANIZATION_ID OU_ID,
HOU.NAME OU_NAME,
OOD.ORGANIZATION_ID ORG_ID,
OOD.ORGANIZATION_CODE ORG_CODE,
OOD.ORGANIZATION_NAME ORG_NAME
FROM HR_OPERATING_UNITS HOU,
ORG_ORGANIZATION_DEFINITIONS OOD,
GL_LEDGERS GL
WHERE HOU.ORGANIZATION_ID(+) = OOD.OPERATING_UNIT
AND OOD.SET_OF_BOOKS_ID(+) = GL.LEDGER_ID
AND HOU.DATE_TO IS NULL
ORDER BY GL.CHART_OF_ACCOUNTS_ID, OOD.ORGANIZATION_ID
[Oracle]How to Query Value Set
SELECT *
FROM FND_FLEX_VALUE_SETS FFVS,
FND_FLEX_VALUES FFV
WHERE 1 = 1
AND FFVS.FLEX_VALUE_SET_ID = FFV.FLEX_VALUE_SET_ID
AND FFVS.FLEX_VALUE_SET_ID = 1009721
[Oracle]How to Query Flexfield
SELECT *
FROM (SELECT 'GLOBAL' TYPE,
FDFV.APPLICATION_ID,
FPV.APPLICATION_SHORT_NAME,
FDFV.APPLICATION_TABLE_NAME,
FDFV.CONTEXT_COLUMN_NAME,
FDFV.TITLE,
FDFC.DESCRIPTIVE_FLEX_CONTEXT_CODE,
FDFU.APPLICATION_COLUMN_NAME,
FDFU.END_USER_COLUMN_NAME,
FDFU.ENABLED_FLAG
FROM FND_DESCRIPTIVE_FLEXS_VL FDFV,
FND_DESCR_FLEX_CONTEXTS_VL FDFC,
FND_DESCR_FLEX_COL_USAGE_VL FDFU,
FND_APPLICATION_VL FPV
WHERE 1 = 1
AND FDFV.APPLICATION_ID = FDFC.APPLICATION_ID
AND FDFV.DESCRIPTIVE_FLEXFIELD_NAME =
FDFC.DESCRIPTIVE_FLEXFIELD_NAME
AND FDFC.DESCRIPTIVE_FLEXFIELD_NAME =
FDFU.DESCRIPTIVE_FLEXFIELD_NAME
--AND FDFC.DESCRIPTIVE_FLEX_CONTEXT_CODE = FDFU.DESCRIPTIVE_FLEX_CONTEXT_CODE
AND UPPER(FDFC.DESCRIPTIVE_FLEX_CONTEXT_CODE) =
'GLOBAL DATA ELEMENTS'
AND FDFV.APPLICATION_ID = FPV.APPLICATION_ID
UNION ALL
SELECT 'OTHERS' TYPE,
FDFV.APPLICATION_ID,
FPV.APPLICATION_SHORT_NAME,
FDFV.APPLICATION_TABLE_NAME,
FDFV.CONTEXT_COLUMN_NAME,
FDFV.TITLE,
FDFC.DESCRIPTIVE_FLEX_CONTEXT_CODE,
FDFU.APPLICATION_COLUMN_NAME,
FDFU.END_USER_COLUMN_NAME,
FDFU.ENABLED_FLAG
FROM FND_DESCRIPTIVE_FLEXS_VL FDFV,
FND_DESCR_FLEX_CONTEXTS_VL FDFC,
FND_DESCR_FLEX_COL_USAGE_VL FDFU,
FND_APPLICATION_VL FPV
WHERE 1 = 1
AND FDFV.APPLICATION_ID = FDFC.APPLICATION_ID
AND FDFV.DESCRIPTIVE_FLEXFIELD_NAME =
FDFC.DESCRIPTIVE_FLEXFIELD_NAME
AND FDFC.DESCRIPTIVE_FLEXFIELD_NAME =
FDFU.DESCRIPTIVE_FLEXFIELD_NAME
AND FDFC.DESCRIPTIVE_FLEX_CONTEXT_CODE =
FDFU.DESCRIPTIVE_FLEX_CONTEXT_CODE
AND FDFV.APPLICATION_ID = FPV.APPLICATION_ID)
WHERE 1 = 1
AND APPLICATION_TABLE_NAME = 'WIP_DISCRETE_JOBS'
2017-12-20
[Oracle]Query Function in User Name
DECLARE
P_COUNT NUMBER;
CURSOR CUR_DATA IS
SELECT FU.USER_NAME,
FU.DESCRIPTION,
FU.START_DATE 帳號啟用時間,
FU.END_DATE 帳號關閉時間,
FR.RESPONSIBILITY_NAME,
FURG.START_DATE 權限啟用時間,
FURG.END_DATE 權限關閉時間
FROM FND_USER_RESP_GROUPS_DIRECT FURG,
FND_USER FU,
FND_RESPONSIBILITY_TL FR
WHERE 1 = 1
AND FU.END_DATE IS NULL
AND FURG.END_DATE IS NULL
--AND substr(user_name, 1, 1) in ('C', 'K', 'S', 'L')
AND user_name not in ('CS_CPA',
'CCS001',
'SYSADMIN',
'WIZARD',
'ASGADM',
'AUTOINSTALL',
'EFLOW_ADMIN',
'GUEST',
'IBEGUEST',
'IBE_ADMIN',
'MOBADM',
'MOBDEV',
'MOBILEADM')
AND SUBSTR(USER_NAME, 1, 1) NOT IN ('B')
AND FU.END_DATE IS NULL
AND FR.LANGUAGE = 'US'
AND FURG.USER_ID = FU.USER_ID
AND FURG.RESPONSIBILITY_ID = FR.RESPONSIBILITY_ID
AND SUBSTR(FU.USER_NAME, 1, 1) IN ('T')
ORDER BY USER_NAME;
BEGIN
FOR C1 IN CUR_DATA LOOP
SELECT COUNT(*)
INTO P_COUNT
FROM FND_RESPONSIBILITY_VL FRV, FND_FORM_FUNCTIONS FFF
WHERE 1 = 1
AND FFF.FUNCTION_NAME LIKE 'WIP_WIPMRMDF%' --FORM FUNCTION NAME
AND FRV.RESPONSIBILITY_NAME LIKE '%DGP%'
AND FRV.RESPONSIBILITY_NAME = C1.RESPONSIBILITY_NAME
AND FRV.MENU_ID IN
(SELECT ME.MENU_ID
FROM FND_MENU_ENTRIES ME
START WITH ME.FUNCTION_ID = FFF.FUNCTION_ID
CONNECT BY PRIOR ME.MENU_ID = ME.SUB_MENU_ID);
IF P_COUNT >= 1 THEN
DBMS_OUTPUT.PUT_LINE(C1.USER_NAME || '---' || C1.DESCRIPTION ||
'---' || C1.RESPONSIBILITY_NAME);
ELSE
NULL;
END IF;
END LOOP;
END;
2017-02-23
[Oracle]How To Disable Users Using API
CREATE OR REPLACE PROCEDURE CBM_FND_PRC_001(P_USER_NAME IN VARCHAR2,
P_USER_END_DATE IN VARCHAR2,
P_MESSAGE OUT VARCHAR2) IS
P_COUNT NUMBER;
P_USER_END_DATE1 VARCHAR2(20);
BEGIN
P_USER_END_DATE1 := TO_DATE(P_USER_END_DATE, 'YYYY/MM/DD');
SELECT COUNT(*)
INTO P_COUNT
FROM FND_USER FU
WHERE 1 = 1
AND FU.USER_NAME = P_USER_NAME
AND FU.END_DATE IS NULL;
IF P_COUNT = 1 THEN
FND_USER_PKG.UPDATEUSER(X_USER_NAME => P_USER_NAME,
X_OWNER => NULL,
X_END_DATE => P_USER_END_DATE1);
ELSE
P_MESSAGE := '權限已經關閉';
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
P_MESSAGE := DBMS_UTILITY.FORMAT_ERROR_BACKTRACE ||
DBMS_UTILITY.FORMAT_ERROR_STACK;
END;
2016-11-02
[Oracle]Routine FDPREP cannot read the file
今天同仁上新的Report,出現以下錯誤,紀錄一下找不到rep,但是明明上Report不需要Compiler,結果問了一下Google大神,原來是副檔名問題 只要把副檔名改為小寫就可以了 Arguments ------------ P_ORDER_NUM='8108674' ------------ Routine FDPREP cannot read the file /u01/dev/devappl/ont/11.5.0/reports/US/CBM_OM_RPT_004.rep. Check if the file exists under correct product directory. Check if the person who started the Concurrent Manager has read privileges on the dir Concurrent Manager encountered an error while running Oracle*Report for your concurrent request 19397257. Review your concurrent request log and/or report output file for more detailed information.
2016-08-05
[Oracle]Query to list all Oracle report assigned to a responsibility
參考網址:http://dbnerdz.blogspot.tw/2013/09/query-to-list-all-oracle-reports.html
如何透過報表名稱,回查報表名稱位置,但是這個SQL應該可以改善,再找時間研究看看
SELECT DISTINCT FCPL.USER_CONCURRENT_PROGRAM_NAME "REPORT NAME",
FNRTL.RESPONSIBILITY_NAME--,
--FRG.REQUEST_GROUP_NAME,
--FCP.CONCURRENT_PROGRAM_NAME "CONCURRENT PROGRAM SHORT NAME"
FROM APPS.FND_REQUEST_GROUPS FRG,
APPS.FND_REQUEST_GROUP_UNITS FRGU,
APPS.FND_CONCURRENT_PROGRAMS FCP,
APPS.FND_CONCURRENT_PROGRAMS_TL FCPL,
APPS.FND_EXECUTABLES FE,
APPS.FND_RESPONSIBILITY FNR,
APPS.FND_RESPONSIBILITY_TL FNRTL
WHERE FRG.APPLICATION_ID = FRGU.APPLICATION_ID
AND FRG.REQUEST_GROUP_ID = FRGU.REQUEST_GROUP_ID
AND FRG.REQUEST_GROUP_ID = FNR.REQUEST_GROUP_ID
AND FRG.APPLICATION_ID = FNR.APPLICATION_ID
AND FNR.RESPONSIBILITY_ID = FNRTL.RESPONSIBILITY_ID
AND FRGU.REQUEST_UNIT_ID = FCP.CONCURRENT_PROGRAM_ID
AND FRGU.UNIT_APPLICATION_ID = FCP.APPLICATION_ID
AND FCP.CONCURRENT_PROGRAM_ID = FCPL.CONCURRENT_PROGRAM_ID
AND FE.EXECUTION_METHOD_CODE LIKE 'P' --'ORACLE REPORTS'
AND FCP.EXECUTABLE_ID = FE.EXECUTABLE_ID
AND FE.APPLICATION_ID = FCP.EXECUTABLE_APPLICATION_ID
--AND FNRTL.RESPONSIBILITY_NAME LIKE '&RESPONSIBILITY_NAME'
-- Example Resp. Name : Oracle Inventory or put '%' to get the list of all the responsibilities
AND FNRTL.LANGUAGE = 'US'
AND FCPL.LANGUAGE = 'US'
AND FCP.CONCURRENT_PROGRAM_NAME LIKE 'CB%'
2016-07-30
[Oracle]Query to list all Oracle function assigned to a responsibility
參考資料:https://community.oracle.com/thread/2208873?tstart=0
https://dotblogs.com.tw/jeff-yeh/2009/05/20/8489
可以輸入Function Name來查詢這個程式是位於那些權限
- 需要找時間研究一下 CONNECT BY
- 應該可以找到掛在那一階
SELECT DISTINCT FRT.RESPONSIBILITY_ID, FRT.RESPONSIBILITY_NAME
FROM APPLSYS.FND_RESPONSIBILITY FR,
APPLSYS.FND_RESPONSIBILITY_TL FRT,
APPLSYS.WF_LOCAL_USER_ROLES WLUR
WHERE FR.APPLICATION_ID = FRT.APPLICATION_ID
AND FR.RESPONSIBILITY_ID = FRT.RESPONSIBILITY_ID
AND FR.RESPONSIBILITY_ID = WLUR.ROLE_ORIG_SYSTEM_ID
AND WLUR.ROLE_ORIG_SYSTEM = 'FND_RESP'
AND SYSDATE BETWEEN FR.START_DATE AND NVL(FR.END_DATE, SYSDATE + 1)
AND SYSDATE BETWEEN WLUR.START_DATE AND
NVL(WLUR.EXPIRATION_DATE, SYSDATE + 1)
AND FR.MENU_ID IN
(SELECT MENU_ID
FROM APPLSYS.FND_MENU_ENTRIES FME
CONNECT BY PRIOR FME.MENU_ID = FME.SUB_MENU_ID
START WITH FME.FUNCTION_ID =
(SELECT FUNCTION_ID
FROM APPLSYS.FND_FORM_FUNCTIONS FFF
WHERE FFF.FUNCTION_NAME = 'CBM_OM_FRM_040'));
20170517
http://192.168.50.10/wordpress/blog/2017/05/17/oraclestart-with-connect-by-prior%e7%94%a8%e6%b3%95/
2016-06-04
[Oracle]Responsibility not display
參考網址:
http://somebabytina.pixnet.net/blog/post/30684439
https://bbs.aliyun.com/simple/t499645.html
權限名稱:GL_會計負責人
狀況描述:User因為某些關係關閉 GL_會計負責人權限,但是今天因為測試需要重新開啟,於Define_User重新開啟權限後,卻發現沒有在清單中
執行Request:Workflow Directory Services User/Role Validation,參數:10000, Y, Y, Y,
沒有作用後選擇以下方式
SELECT USER_NAME,
ROLE_NAME,
USER_END_DATE,
ROLE_END_DATE,
ASSIGNING_ROLE_END_DATE,
EFFECTIVE_END_DATE
FROM WF_USER_ROLE_ASSIGNMENTS
WHERE USER_NAME IN ('A0AA','A0BB')
AND ROLE_NAME LIKE '%GL%CBM%';SELECT USER_NAME,ROLE_NAME, USER_END_DATE, ROLE_END_DATE, EFFECTIVE_END_DATE,ROWID
FROM WF_LOCAL_USER_ROLES
WHERE USER_NAME IN ('A0AA','A0BB')
AND ROLE_NAME LIKE '%GL%CBM%';
比對以上兩個資料表發現EFFECTIVE_END_DATE不一致,改為9999/1/1,User反應正常顯示
20170222補充,因為還是偶爾會遇到,進行程式改良
DECLARE
P_USER_NAME VARCHAR2(50) := 'R0028';
P_USER_ID NUMBER;
P_RESPONSIBILITY_KEY VARCHAR2(50);
P_EFFECTIVE_END_DATE DATE;
CURSOR CUR_DATA IS
SELECT FUR.RESPONSIBILITY_ID
FROM FND_USER_RESP_GROUPS_DIRECT FUR
WHERE FUR.USER_ID = (SELECT FU.USER_ID
FROM FND_USER FU
WHERE FU.USER_NAME = P_USER_NAME)
AND TRUNC(NVL(FUR.END_DATE, SYSDATE + 1)) > TRUNC(SYSDATE);
BEGIN
FOR C1 IN CUR_DATA LOOP
SELECT FRV.RESPONSIBILITY_KEY
INTO P_RESPONSIBILITY_KEY
FROM FND_RESPONSIBILITY_VL FRV
WHERE FRV.RESPONSIBILITY_ID = C1.RESPONSIBILITY_ID;
DBMS_OUTPUT.PUT_LINE(P_RESPONSIBILITY_KEY);
UPDATE WF_LOCAL_USER_ROLES WL
SET WL.EFFECTIVE_END_DATE = TO_DATE('9999/1/1', 'YYYY/MM/DD')
WHERE WL.USER_NAME = P_USER_NAME
AND WL.ROLE_NAME LIKE '%' || P_RESPONSIBILITY_KEY || '%';
END LOOP;
COMMIT;
END;20170424補充,程式應該是有作用,只是似乎有背後排程
20171109補充,程式有作用,再去Define_User,同仁帳號表身看不到的權限上,隨便更動一下這筆資料,就會馬上生效
20171201補充
- Sync responsibility role data into the WF table
- Synchronize Workflow Local Tables(可能是R12)
- Synchronize WF LOCAL tables(11i 版本有找到這個)
- Workflow Directory Services User/Role Validation ( 在跳出的參數選取畫面的第二欄Fix dangling user/roles 選擇yes)