41: | - Modified the code to support 'Disable |
42: | Journal Import' profile option. |
43: | 01-Mar-2005 Shishir Joshi Inserting -1 value for set of books when |
44: | inserting rows into the |
45: | gl_interface_confrol table per Deborah's |
46: | recommendation. JI is modified to |
47: | support intercompany functionality. |
48: | 15-Apr-2005 Swapna Vellani Added mutl-table Journal Import. |
49: | 04-Aug-2005 Wynne Chan Bug 4458381 - Public Sector Enhancements |
51: | 30-Nov-2005 Vinay Kumar Bug4769315 Added filter on application_id|
52: | 13-Jan-2005 Vinay Kumar Modified the logic to pick JE to transfer|
53: | and signature of gl_transfer_main |
54: | Bug 4945075 Acoid creating n1_index and |
55: | n2_index on GL INTERFACE Table |
56: | 03-Mar-2006 Vinay Kumar Bug 5041325 Removed the procedure |
57: | update_gl_sl_link |
58: | 09-Mar-2006 S. Singhania Bug 5056632. |
59: | - Modified validate_input_parameters. |
94: TYPE r_ledger_rec IS RECORD
95: (ledger_id NUMBER
96: ,NAME gl_ledgers.NAME%TYPE
97: ,ledger_category_code gl_ledgers.ledger_category_code%TYPE
98: ,group_id gl_interface.group_id%TYPE
99: ,interface_run_id gl_interface_control.interface_run_id%TYPE
100: ,gllezl_request_id NUMBER
101: ,access_set_id NUMBER
102: );
95: (ledger_id NUMBER
96: ,NAME gl_ledgers.NAME%TYPE
97: ,ledger_category_code gl_ledgers.ledger_category_code%TYPE
98: ,group_id gl_interface.group_id%TYPE
99: ,interface_run_id gl_interface_control.interface_run_id%TYPE
100: ,gllezl_request_id NUMBER
101: ,access_set_id NUMBER
102: );
103: TYPE t_array_ledgers IS TABLE OF r_ledger_rec INDEX BY BINARY_INTEGER;
143: g_group_id PLS_INTEGER;
144: g_transfer_summary_mode VARCHAR2(1);
145: g_access_set_id PLS_INTEGER := fnd_profile.value('GL_ACCESS_SET_ID');
146: g_sec_access_set_id PLS_INTEGER := fnd_profile.value('XLA_GL_SECONDARY_ACCESS_SET_ID');
147: g_gl_interface_table_name VARCHAR2(30);
148: g_budgetary_control_flag gl_ledgers.enable_budgetary_control_flag%TYPE;
149: --
150: -- Flow Control Flags
151: --
235: l_status VARCHAR2(30);
236: l_dev_phase VARCHAR2(30);
237: l_dev_status VARCHAR2(30);
238: l_message VARCHAR2(240);
239: l_gllezl_status gl_interface.status%TYPE;
240: l_index PLS_INTEGER := 0;
241: l_log_module VARCHAR2(240);
242: BEGIN
243:
299:
300:
301:
302: /*===================================================================
303: | INSERT ROWS INTO THE GL_INTERFACE_CONTROL |
304: | |
305: =====================================================================*/
306: PROCEDURE insert_interface_control(p_ledger_id NUMBER
307: ,p_table_name VARCHAR2) IS
322:
323: trace('g_budgetary_control_flag:',C_LEVEL_STATEMENT,l_Log_module);
324: END IF;
325:
326: INSERT INTO gl_interface_control
327: (
328: je_source_name,
329: status,
330: interface_run_id,
357: EXCEPTION
358: WHEN xla_exceptions_pkg.application_exception THEN
359: RAISE;
360: WHEN OTHERS THEN
361: trace('Insert into the GL_INTERFACE_CONTROL failed',C_LEVEL_UNEXPECTED,l_Log_module);
362: xla_exceptions_pkg.raise_message
363: (p_location => 'xla_transfer_pkg.get_gllezl_status');
364:
365: END insert_interface_control;
1095: END IF;
1096: END IF;
1097:
1098: --
1099: -- Delete rows from gl_interface, GL journals
1100: --
1101:
1102: FOR i IN g_primary_ledgers_tab.FIRST..g_primary_ledgers_tab.LAST
1103: LOOP
1906: END set_application_info;
1907:
1908: /*===========================================================================+
1909: PROCEDURE
1910: gl_interface_insert
1911:
1912: DESCRIPTION
1913: Inserts ROWS INTO THE GL_ITERFACE TABLE
1914:
1922: NOTES
1923:
1924: +===========================================================================*/
1925:
1926: PROCEDURE insert_gl_interface IS
1927: l_log_module VARCHAR2(240);
1928: l_statement VARCHAR2(4000);
1929: l_je_count NUMBER;
1930:
1930:
1931:
1932: BEGIN
1933: IF g_log_enabled THEN
1934: l_log_module := C_DEFAULT_MODULE||'.insert_gl_interface';
1935: END IF;
1936:
1937: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1938: trace('gl_interface_insert.Begin',C_LEVEL_PROCEDURE,l_log_module);
1934: l_log_module := C_DEFAULT_MODULE||'.insert_gl_interface';
1935: END IF;
1936:
1937: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1938: trace('gl_interface_insert.Begin',C_LEVEL_PROCEDURE,l_log_module);
1939: trace('g_disable_gllezl_flag = '||g_disable_gllezl_flag,C_LEVEL_PROCEDURE,l_log_module);
1940: END IF;
1941:
1942: -- Check if GL Journal Import should be submitted. Do not use multi table insert if
1942: -- Check if GL Journal Import should be submitted. Do not use multi table insert if
1943: -- GL is not installed or for document level transfer.
1944:
1945: IF g_disable_gllezl_flag = 'Y' OR g_entity_id IS NOT NULL THEN
1946: g_gl_interface_table_name := 'GL_INTERFACE';
1947: ELSE
1948: g_gl_interface_table_name := 'XLA_GLT_'||to_char(g_group_id);
1949: GL_JOURNAL_IMPORT_PKG.create_table(g_gl_interface_table_name);
1950: END IF;
1944:
1945: IF g_disable_gllezl_flag = 'Y' OR g_entity_id IS NOT NULL THEN
1946: g_gl_interface_table_name := 'GL_INTERFACE';
1947: ELSE
1948: g_gl_interface_table_name := 'XLA_GLT_'||to_char(g_group_id);
1949: GL_JOURNAL_IMPORT_PKG.create_table(g_gl_interface_table_name);
1950: END IF;
1951:
1952: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1945: IF g_disable_gllezl_flag = 'Y' OR g_entity_id IS NOT NULL THEN
1946: g_gl_interface_table_name := 'GL_INTERFACE';
1947: ELSE
1948: g_gl_interface_table_name := 'XLA_GLT_'||to_char(g_group_id);
1949: GL_JOURNAL_IMPORT_PKG.create_table(g_gl_interface_table_name);
1950: END IF;
1951:
1952: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1953: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1948: g_gl_interface_table_name := 'XLA_GLT_'||to_char(g_group_id);
1949: GL_JOURNAL_IMPORT_PKG.create_table(g_gl_interface_table_name);
1950: END IF;
1951:
1952: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1953: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1954: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1955: END IF;
1956:
1950: END IF;
1951:
1952: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1953: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1954: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1955: END IF;
1956:
1957:
1958:
1955: END IF;
1956:
1957:
1958:
1959: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1960: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1961: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1962: END IF;
1963:
1957:
1958:
1959: print_logfile ('GL Inerface tablename = ' || g_gl_interface_table_name);
1960: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1961: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1962: END IF;
1963:
1964:
1965: print_logfile ('tablename = ' || g_gl_interface_table_name);
1961: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1962: END IF;
1963:
1964:
1965: print_logfile ('tablename = ' || g_gl_interface_table_name);
1966: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1967: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1968: END IF;
1969:
1963:
1964:
1965: print_logfile ('tablename = ' || g_gl_interface_table_name);
1966: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1967: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1968: END IF;
1969:
1970: --7512923 added extra columns to gl_interface_table
1971: --7419726 changed the decode statement of funds_reserved_flag
1966: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1967: trace('tablename = '||g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
1968: END IF;
1969:
1970: --7512923 added extra columns to gl_interface_table
1971: --7419726 changed the decode statement of funds_reserved_flag
1972: l_statement := 'INSERT INTO '||g_gl_interface_table_name||
1973: '(
1974: status, ledger_id
1968: END IF;
1969:
1970: --7512923 added extra columns to gl_interface_table
1971: --7419726 changed the decode statement of funds_reserved_flag
1972: l_statement := 'INSERT INTO '||g_gl_interface_table_name||
1973: '(
1974: status, ledger_id
1975: ,user_je_source_name, user_je_category_name
1976: ,accounting_date
2095: -- Add the code to stop the transfer batch if no entries are
2096: -- found for the primary ledger.
2097: g_proceed := 'N';
2098: IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2099: trace(SQL%ROWCOUNT || ' rows are inserted into the GL_INTERFACE table',C_LEVEL_STATEMENT,l_log_module);
2100: END IF;
2101: ELSE
2102: g_proceed := 'Y';
2103: IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2100: END IF;
2101: ELSE
2102: g_proceed := 'Y';
2103: IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2104: trace(SQL%ROWCOUNT || ' rows are inserted into the GL_INTERFACE table',C_LEVEL_STATEMENT,l_log_module);
2105: END IF;
2106:
2107: END IF;
2108: -- end bug 7640725
2107: END IF;
2108: -- end bug 7640725
2109:
2110: IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2111: trace('gl_interface_insert.End',C_LEVEL_PROCEDURE,l_log_module);
2112: END IF;
2113: EXCEPTION
2114: WHEN xla_exceptions_pkg.application_exception THEN
2115: RAISE;
2114: WHEN xla_exceptions_pkg.application_exception THEN
2115: RAISE;
2116: WHEN OTHERS THEN
2117: xla_exceptions_pkg.raise_message
2118: (p_location => 'xla_transfer_pkg.gl_interface_insert');
2119: END insert_gl_interface;
2120:
2121: /*===========================================================================+
2122: PROCEDURE
2115: RAISE;
2116: WHEN OTHERS THEN
2117: xla_exceptions_pkg.raise_message
2118: (p_location => 'xla_transfer_pkg.gl_interface_insert');
2119: END insert_gl_interface;
2120:
2121: /*===========================================================================+
2122: PROCEDURE
2123: wait_for_gllezl
2145: l_gllezl_status BOOLEAN := TRUE;
2146: l_index PLS_INTEGER := 0;
2147: l_log_module VARCHAR2(240);
2148: l_gl_status VARCHAR2(30);
2149: g_gl_interface_table_name VARCHAR2(30);
2150: l_journal_import_status BOOLEAN :=TRUE;
2151: BEGIN
2152: IF g_log_enabled THEN
2153: l_log_module := C_DEFAULT_MODULE||'.wait_for_gllezl';
2185: trace('l_dev_phase = ' || l_dev_phase,C_LEVEL_STATEMENT,l_log_module);
2186: trace('l_dev_status = ' || l_dev_status,C_LEVEL_STATEMENT,l_log_module);
2187: END IF;
2188:
2189: g_gl_interface_table_name := 'XLA_GLT_'||to_char(g_primary_ledgers_tab(i).group_id);
2190:
2191:
2192: --added bug 6945231
2193: IF ( l_dev_phase = 'COMPLETE' AND l_dev_status ='WARNING') THEN
2191:
2192: --added bug 6945231
2193: IF ( l_dev_phase = 'COMPLETE' AND l_dev_status ='WARNING') THEN
2194: IF (C_LEVEL_ERROR >= g_log_level) THEN
2195: trace('selecting from gl interface '|| g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
2196: END IF;
2197:
2198: -- removed join of ledger id from below query for bug 7529513
2199: BEGIN
2197:
2198: -- removed join of ledger id from below query for bug 7529513
2199: BEGIN
2200: EXECUTE IMMEDIATE
2201: 'select status from ' ||g_gl_interface_table_name||
2202: ' where user_je_source_name= :1
2203: and group_id = :2
2204: and request_id = :4
2205: and status like ''E%''
2207: using g_user_source_name,g_primary_ledgers_tab(i).group_id, g_primary_ledgers_tab(i).gllezl_request_id;
2208: EXCEPTION
2209: WHEN NO_DATA_FOUND THEN
2210: IF (C_LEVEL_ERROR >= g_log_level) THEN
2211: trace('No data in gl_interface '|| g_gl_interface_table_name,C_LEVEL_PROCEDURE,l_log_module);
2212: END IF;
2213: END;
2214:
2215:
2217:
2218:
2219: IF l_gl_status like 'E%' THEN
2220: IF (C_LEVEL_ERROR >= g_log_level) THEN
2221: trace('Data found in Gl interface with Error Status and journal import request failed. Request Id = ' || g_primary_ledgers_tab(i).gllezl_request_id,C_LEVEL_ERROR,l_log_module);
2222: END IF;
2223: l_journal_import_status:=FALSE;
2224: xla_accounting_err_pkg.build_message
2225: (p_appli_s_name => 'XLA'
2450: | COMPLETE_BATCH |
2451: | |
2452: | DESCRIPTION |
2453: | The procedure performs the finishing tasks after inserting journal |
2454: | entries into the GL interface table. |
2455: | |
2456: | |
2457: | SCOPE - PRIVATE |
2458: | |
2833: INTO g_primary_ledgers_tab(i).interface_run_id
2834: FROM dual;
2835: ELSE
2836: SELECT gl_journal_import_s.NEXTVAL
2837: ,gl_interface_control_s.NEXTVAL
2838: INTO g_primary_ledgers_tab(i).interface_run_id
2839: ,g_primary_ledgers_tab(i).group_id
2840: FROM dual;
2841:
2897: -- Create a log entry
2898: --
2899: insert_transfer_log(g_primary_ledgers_tab(i).ledger_id);
2900: --
2901: -- Populate the GL_INTERFACE table
2902: --
2903: insert_gl_interface;
2904: IF g_disable_gllezl_flag = 'N' THEN
2905: IF (get_gllezl_status) THEN
2899: insert_transfer_log(g_primary_ledgers_tab(i).ledger_id);
2900: --
2901: -- Populate the GL_INTERFACE table
2902: --
2903: insert_gl_interface;
2904: IF g_disable_gllezl_flag = 'N' THEN
2905: IF (get_gllezl_status) THEN
2906: insert_interface_control
2907: (p_ledger_id => g_primary_ledgers_tab(i).ledger_id
2904: IF g_disable_gllezl_flag = 'N' THEN
2905: IF (get_gllezl_status) THEN
2906: insert_interface_control
2907: (p_ledger_id => g_primary_ledgers_tab(i).ledger_id
2908: ,p_table_name => g_gl_interface_table_name
2909: );
2910:
2911: IF (C_LEVEL_STATEMENT>= g_log_level) THEN
2912: trace('Calling PSA_FUNDS_CHECKER_PKG',C_LEVEL_STATEMENT,l_log_module);
2957: IF (wait_for_gllezl) THEN
2958: print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||'- Journal Import completed ');
2959: complete_batch(p_submit_gl_post => p_submit_gl_post);
2960:
2961: -- Drop GL_INTERFACE tables.
2962: --7512923 GL_INTERFACE tables will not be dropped.
2963: /*IF g_caller <> C_ACCTPROG_DOCUMENT THEN -- Document mode use GL_INTERFACE table only
2964: FOR i IN g_primary_ledgers_tab.FIRST..g_primary_ledgers_tab.LAST
2965: LOOP
2958: print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||'- Journal Import completed ');
2959: complete_batch(p_submit_gl_post => p_submit_gl_post);
2960:
2961: -- Drop GL_INTERFACE tables.
2962: --7512923 GL_INTERFACE tables will not be dropped.
2963: /*IF g_caller <> C_ACCTPROG_DOCUMENT THEN -- Document mode use GL_INTERFACE table only
2964: FOR i IN g_primary_ledgers_tab.FIRST..g_primary_ledgers_tab.LAST
2965: LOOP
2966: IF g_primary_ledgers_tab(i).gllezl_request_id IS NOT NULL
2959: complete_batch(p_submit_gl_post => p_submit_gl_post);
2960:
2961: -- Drop GL_INTERFACE tables.
2962: --7512923 GL_INTERFACE tables will not be dropped.
2963: /*IF g_caller <> C_ACCTPROG_DOCUMENT THEN -- Document mode use GL_INTERFACE table only
2964: FOR i IN g_primary_ledgers_tab.FIRST..g_primary_ledgers_tab.LAST
2965: LOOP
2966: IF g_primary_ledgers_tab(i).gllezl_request_id IS NOT NULL
2967: AND (g_entity_id IS NULL OR g_disable_gllezl_flag = 'N') THEN