We have standard interface for journal import. we can use web ADI to load journals from front end itself.
We can use our custom package as well, in order to import journals for PTD or YTD.
Below is a sample script to import journals from backend.
-->
CREATE OR REPLACE PROCEDURE load_glbalances
IS
CURSOR gl_balance_cur
IS
SELECT journal_batch_name, journal_batch_description, journal_name,
period, effective_date, CATEGORY, SOURCE, reference_date,
journal_description, REFERENCE, currency_code,
conversion_rate_date, conversion_type, conversion_rate,
ledger_name, of_balseg, of_dept_code, of_lob_code,
of_product, of_natural_ac, of_intercoseg, of_channel_code,
of_futureseg1, of_futureseg2, lopbaldb, lopbalcr, opbaldb,
opbalcr, journal_line_description
FROM xxran_gl_bal_stg where status is null;
l_set_of_books_id gl_sets_of_books.set_of_books_id%TYPE;
l_user_je_source_name gl_je_sources.user_je_source_name%TYPE;
l_user_je_category_name gl_je_categories.user_je_category_name%TYPE;
l_user_id NUMBER;
l_currency_code fnd_currencies.currency_code%TYPE;
l_conversion_date DATE;
l_conversion_type gl_interface.user_currency_conversion_type%TYPE;
l_conversion_rate gl_interface.currency_conversion_rate%TYPE;
l_period_name VARCHAR2 (20);
l_accounted_dr gl_interface.accounted_dr%TYPE;
l_accounted_cr gl_interface.accounted_cr%TYPE;
l_entered_dr gl_interface.entered_dr%TYPE;
l_entered_cr gl_interface.entered_cr%TYPE;
l_segment1 gl_interface.segment1%TYPE;
l_segment2 gl_interface.segment2%TYPE;
l_segment3 gl_interface.segment3%TYPE;
l_segment4 gl_interface.segment4%TYPE;
l_segment5 gl_interface.segment5%TYPE;
l_segment6 gl_interface.segment6%TYPE;
l_segment7 gl_interface.segment7%TYPE;
l_segment8 gl_interface.segment8%TYPE;
l_segment9 gl_interface.segment9%TYPE;
l_actual_flag gl_interface.actual_flag%TYPE;
accounting_dt DATE;
lc_error_loc VARCHAR2 (50);
lc_error_msg VARCHAR2 (500);
lc_program_name VARCHAR2 (150);
lc_error_flag VARCHAR2 (1);
lc_code_comb VARCHAR2(100);
ln_receivable_code_comb_id NUMBER;
--lc_error_msg VARCHAR2 (240);
lb_valid_source BOOLEAN;
lb_valid_category BOOLEAN;
lb_valid_currency BOOLEAN;
lb_valid_period BOOLEAN;
lb_code_comb BOOLEAN;
lc_dummy_var VARCHAR2(5);
BEGIN
lc_program_name := 'GL opening balance upload';
FOR lr_journal_rec IN gl_balance_cur
LOOP
lc_error_flag := 'N';
l_user_je_source_name := lr_journal_rec.SOURCE;
l_user_je_category_name := lr_journal_rec.CATEGORY;
l_set_of_books_id := /*get set of books ID */;
l_period_name := lr_journal_rec.period;
l_accounted_dr := lr_journal_rec.lopbaldb;
l_accounted_cr := lr_journal_rec.lopbalcr;
l_entered_dr := lr_journal_rec.opbaldb;
l_entered_cr := lr_journal_rec.opbalcr;
l_segment1 := lr_journal_rec.of_balseg;
l_segment2 := lr_journal_rec.of_dept_code;
l_segment3 := lr_journal_rec.of_lob_code;
l_segment4 := lr_journal_rec.of_product;
l_segment5 := lr_journal_rec.of_natural_ac;
l_segment6 := lr_journal_rec.of_intercoseg;
l_segment7 := lr_journal_rec.of_channel_code;
l_segment8 := lr_journal_rec.of_futureseg1;
l_segment9 := lr_journal_rec.of_futureseg2;
l_actual_flag := 'A';
l_currency_code := lr_journal_rec.currency_code;
l_conversion_type := lr_journal_rec.conversion_type;
l_conversion_rate := lr_journal_rec.conversion_rate;
/*-- Check for Valid Source
SELECT 'X'
INTO lc_dummy_var
FROM gl_je_sources gjs
WHERE gjs.user_je_source_name = p_source;
*/
/*-- Check for Valid Category
SELECT 'X'
INTO lc_dummy_var
FROM gl_je_categories gjc
WHERE gjc.user_je_category_name = p_category;
*/
/*-- Check for Valid Currency
fnd_currencies
*/
/*-- Check for Valid Period
SELECT 'X'
INTO lc_dummy_var
FROM gl_period_statuses gps
WHERE gps.period_name = p_period
AND gps.application_id = p_appl_id
AND gps.set_of_books_id = p_sob_id
AND gps.closing_status NOT IN ('C', 'N');
*/
lc_code_comb := l_segment1 ||'.'|| l_segment2 ||'.'|| '000' ||'.'|| '0000' ||'.'|| l_segment5 ||'.'||
l_segment6 ||'.'|| '00000' ||'.'|| '0000' ||'.'|| '0000';
lb_code_comb :=
check_code_combination (lc_code_comb,
lc_error_loc,
lc_error_msg,
ln_receivable_code_comb_id
);
IF NOT lb_code_comb
THEN
lc_error_flag := 'Y';
lc_error_msg := ('error during code combination validation.'||lc_error_msg);
END IF;
IF lc_error_flag = 'N'
THEN
BEGIN
INSERT INTO gl_interface
(status, set_of_books_id,
accounting_date, currency_code,
USER_CURRENCY_CONVERSION_TYPE,
CURRENCY_CONVERSION_RATE,CURRENCY_CONVERSION_DATE,
date_created, created_by, actual_flag,
user_je_source_name, user_je_category_name,
period_name, entered_dr, entered_cr,
accounted_dr, accounted_cr, /*segment1,
segment2, segment3, segment4, segment5,
segment6, segment7,l_segment8, l_segment9*/
CODE_COMBINATION_ID
)
VALUES ('NEW', l_set_of_books_id,
NVL (accounting_dt, SYSDATE), l_currency_code,
l_conversion_type,l_conversion_rate,NVL (accounting_dt, SYSDATE),
SYSDATE, l_user_id, l_actual_flag,
l_user_je_source_name, l_user_je_category_name,
l_period_name, l_entered_dr, l_entered_cr,
l_accounted_dr, l_accounted_cr, /*l_segment1,
l_segment2, l_segment3, l_segment4, l_segment5,
l_segment6, l_segment7,l_segment8, l_segment9*/
ln_receivable_code_comb_id
);
EXCEPTION
WHEN OTHERS
THEN
lc_error_flag := 'Y';
lc_error_msg := ('error during source validation.');
END;
END IF;
DBMS_OUTPUT.put_line ('Success');
END LOOP;
END;
/
-- Call Journal import standard concurrent program to import data from interface table to GL base tables
We can use our custom package as well, in order to import journals for PTD or YTD.
Below is a sample script to import journals from backend.
-->
CREATE OR REPLACE PROCEDURE load_glbalances
IS
CURSOR gl_balance_cur
IS
SELECT journal_batch_name, journal_batch_description, journal_name,
period, effective_date, CATEGORY, SOURCE, reference_date,
journal_description, REFERENCE, currency_code,
conversion_rate_date, conversion_type, conversion_rate,
ledger_name, of_balseg, of_dept_code, of_lob_code,
of_product, of_natural_ac, of_intercoseg, of_channel_code,
of_futureseg1, of_futureseg2, lopbaldb, lopbalcr, opbaldb,
opbalcr, journal_line_description
FROM xxran_gl_bal_stg where status is null;
l_set_of_books_id gl_sets_of_books.set_of_books_id%TYPE;
l_user_je_source_name gl_je_sources.user_je_source_name%TYPE;
l_user_je_category_name gl_je_categories.user_je_category_name%TYPE;
l_user_id NUMBER;
l_currency_code fnd_currencies.currency_code%TYPE;
l_conversion_date DATE;
l_conversion_type gl_interface.user_currency_conversion_type%TYPE;
l_conversion_rate gl_interface.currency_conversion_rate%TYPE;
l_period_name VARCHAR2 (20);
l_accounted_dr gl_interface.accounted_dr%TYPE;
l_accounted_cr gl_interface.accounted_cr%TYPE;
l_entered_dr gl_interface.entered_dr%TYPE;
l_entered_cr gl_interface.entered_cr%TYPE;
l_segment1 gl_interface.segment1%TYPE;
l_segment2 gl_interface.segment2%TYPE;
l_segment3 gl_interface.segment3%TYPE;
l_segment4 gl_interface.segment4%TYPE;
l_segment5 gl_interface.segment5%TYPE;
l_segment6 gl_interface.segment6%TYPE;
l_segment7 gl_interface.segment7%TYPE;
l_segment8 gl_interface.segment8%TYPE;
l_segment9 gl_interface.segment9%TYPE;
l_actual_flag gl_interface.actual_flag%TYPE;
accounting_dt DATE;
lc_error_loc VARCHAR2 (50);
lc_error_msg VARCHAR2 (500);
lc_program_name VARCHAR2 (150);
lc_error_flag VARCHAR2 (1);
lc_code_comb VARCHAR2(100);
ln_receivable_code_comb_id NUMBER;
--lc_error_msg VARCHAR2 (240);
lb_valid_source BOOLEAN;
lb_valid_category BOOLEAN;
lb_valid_currency BOOLEAN;
lb_valid_period BOOLEAN;
lb_code_comb BOOLEAN;
lc_dummy_var VARCHAR2(5);
BEGIN
lc_program_name := 'GL opening balance upload';
FOR lr_journal_rec IN gl_balance_cur
LOOP
lc_error_flag := 'N';
l_user_je_source_name := lr_journal_rec.SOURCE;
l_user_je_category_name := lr_journal_rec.CATEGORY;
l_set_of_books_id := /*get set of books ID */;
l_period_name := lr_journal_rec.period;
l_accounted_dr := lr_journal_rec.lopbaldb;
l_accounted_cr := lr_journal_rec.lopbalcr;
l_entered_dr := lr_journal_rec.opbaldb;
l_entered_cr := lr_journal_rec.opbalcr;
l_segment1 := lr_journal_rec.of_balseg;
l_segment2 := lr_journal_rec.of_dept_code;
l_segment3 := lr_journal_rec.of_lob_code;
l_segment4 := lr_journal_rec.of_product;
l_segment5 := lr_journal_rec.of_natural_ac;
l_segment6 := lr_journal_rec.of_intercoseg;
l_segment7 := lr_journal_rec.of_channel_code;
l_segment8 := lr_journal_rec.of_futureseg1;
l_segment9 := lr_journal_rec.of_futureseg2;
l_actual_flag := 'A';
l_currency_code := lr_journal_rec.currency_code;
l_conversion_type := lr_journal_rec.conversion_type;
l_conversion_rate := lr_journal_rec.conversion_rate;
/*-- Check for Valid Source
SELECT 'X'
INTO lc_dummy_var
FROM gl_je_sources gjs
WHERE gjs.user_je_source_name = p_source;
*/
/*-- Check for Valid Category
SELECT 'X'
INTO lc_dummy_var
FROM gl_je_categories gjc
WHERE gjc.user_je_category_name = p_category;
*/
/*-- Check for Valid Currency
fnd_currencies
*/
/*-- Check for Valid Period
SELECT 'X'
INTO lc_dummy_var
FROM gl_period_statuses gps
WHERE gps.period_name = p_period
AND gps.application_id = p_appl_id
AND gps.set_of_books_id = p_sob_id
AND gps.closing_status NOT IN ('C', 'N');
*/
lc_code_comb := l_segment1 ||'.'|| l_segment2 ||'.'|| '000' ||'.'|| '0000' ||'.'|| l_segment5 ||'.'||
l_segment6 ||'.'|| '00000' ||'.'|| '0000' ||'.'|| '0000';
lb_code_comb :=
check_code_combination (lc_code_comb,
lc_error_loc,
lc_error_msg,
ln_receivable_code_comb_id
);
IF NOT lb_code_comb
THEN
lc_error_flag := 'Y';
lc_error_msg := ('error during code combination validation.'||lc_error_msg);
END IF;
IF lc_error_flag = 'N'
THEN
BEGIN
INSERT INTO gl_interface
(status, set_of_books_id,
accounting_date, currency_code,
USER_CURRENCY_CONVERSION_TYPE,
CURRENCY_CONVERSION_RATE,CURRENCY_CONVERSION_DATE,
date_created, created_by, actual_flag,
user_je_source_name, user_je_category_name,
period_name, entered_dr, entered_cr,
accounted_dr, accounted_cr, /*segment1,
segment2, segment3, segment4, segment5,
segment6, segment7,l_segment8, l_segment9*/
CODE_COMBINATION_ID
)
VALUES ('NEW', l_set_of_books_id,
NVL (accounting_dt, SYSDATE), l_currency_code,
l_conversion_type,l_conversion_rate,NVL (accounting_dt, SYSDATE),
SYSDATE, l_user_id, l_actual_flag,
l_user_je_source_name, l_user_je_category_name,
l_period_name, l_entered_dr, l_entered_cr,
l_accounted_dr, l_accounted_cr, /*l_segment1,
l_segment2, l_segment3, l_segment4, l_segment5,
l_segment6, l_segment7,l_segment8, l_segment9*/
ln_receivable_code_comb_id
);
EXCEPTION
WHEN OTHERS
THEN
lc_error_flag := 'Y';
lc_error_msg := ('error during source validation.');
END;
END IF;
DBMS_OUTPUT.put_line ('Success');
END LOOP;
END;
/
-- Call Journal import standard concurrent program to import data from interface table to GL base tables
No comments:
Post a Comment