OEBS Программа – проведение журналов SQLGL GLPPOSS
13 Ноябрь 2012
Нет комментариев
ОЕБС Пример вызова параллельной программы для проведения журналов
-- ----------------------------------------------------- -- Проведение журналов -- ----------------------------------------------------- PROCEDURE post_journals(p_ledger_id NUMBER ,p_group_id NUMBER ,p_period VARCHAR2 ,p_rev NUMBER ,x_return_status OUT VARCHAR2 ,x_mess OUT VARCHAR2) IS l_request_id INTEGER; l_posting_run_id INTEGER; l_chart_of_accounts_id INTEGER; l_access_set_id INTEGER; BEGIN write_log('START POST_JOURNALS'); x_return_status := 'E'; l_posting_run_id := gl_je_posting_s.nextval; IF (p_rev = 0) THEN UPDATE gl_je_batches b SET status = 'S' ,approval_status_code = 'Z' -- пакет должен быть утвержден ,posting_run_id = l_posting_run_id WHERE b.status = 'U' AND b.GROUP_ID = p_group_id; ELSIF (p_rev = 1) THEN UPDATE gl_je_batches b SET status = 'S' ,approval_status_code = 'Z' -- пакет должен быть утвержден ,posting_run_id = l_posting_run_id WHERE b.status = 'U' AND EXISTS (SELECT 1 FROM gl_je_batches jb, gl_je_headers h, gl_je_headers hr WHERE jb.je_batch_id = h.je_batch_id AND h.je_header_id = hr.reversed_je_header_id AND (h.name LIKE G_JH_NAME_IN || '%' OR h.name LIKE G_JH_NAME_OUT || '%') AND h.period_name = p_period AND h.ledger_id = p_ledger_id AND hr.je_batch_id = b.je_batch_id) AND 2 = 2; END IF; write_log(' UPDATE ' || SQL%ROWCOUNT || ' rows in GL_JE_BATCHES'); IF (SQL%ROWCOUNT > 0) THEN -- SELECT l.chart_of_accounts_id, a.access_set_id INTO l_chart_of_accounts_id, l_access_set_id FROM gl_ledgers l, gl_access_sets a WHERE 1 = 1 AND l.ledger_id = p_ledger_id AND a.default_ledger_id = l.ledger_id AND a.chart_of_accounts_id = l.chart_of_accounts_id AND a.period_set_name = l.period_set_name AND a.accounted_period_type = l.accounted_period_type; l_request_id := fnd_request.submit_request( application => 'SQLGL' ,program => 'GLPPOSS' ,description => NULL ,start_time => NULL ,sub_request => FALSE ,argument1 => p_ledger_id ,argument2 => TO_CHAR(fnd_profile.value('GL_ACCESS_SET_ID')) ,argument3 => l_chart_of_accounts_id ,argument4 => l_posting_run_id); COMMIT; IF l_request_id = 0 THEN x_mess := 'Ошибка при отправке запроса проводки журналов'; RETURN; END IF; -- описание функции http://apps-oracle.ru/fnd_request_exec/#WAIT_CONCURRENT if NOT (wait_concur(l_request_id,x_mess)) then write_log(x_mess); RETURN; end if; END IF; x_return_status := 'S'; write_log('END POST_JOURNALS' || chr(10)); RETURN; EXCEPTION WHEN OTHERS THEN x_mess := 'Ошибка при запуске запроса проводки журналов: ' || SQLERRM; END;
Последние комментарии