Estornar Lançamento Contábil do GL usando PL/SQL
Autor: Rique | Publicado: 2009-06-03T15:14:00-03:00

E ai galera, belezeria???Depois um tempo sem postar nada, estou de volta!!! Hoje vou dar uma dica sobre como fazer um estorno de um lançamento contábil do GL vai PL/SQL.Em primeiro lugar temos que atualizar o ACCRUAL_REV_FLAG da GL_JE_HEADERS, para fazer isso estou usando uma API conforme abaixogl_je_headers_pkg.update_row( x_rowid => l_rowid -- ROWID da linha a ser atualizada, x_je_header_id => r_gl_je_headers.je_header_id, x_last_update_date => r_gl_je_headers.last_update_date, x_last_updated_by => r_gl_je_headers.last_updated_by, x_ledger_id => r_gl_je_headers.ledger_id, x_je_category => r_gl_je_headers.je_category, x_je_source => r_gl_je_headers.je_source, x_period_name => r_gl_je_headers.period_name, x_name => r_gl_je_headers.NAME, x_currency_code => r_gl_je_headers.currency_code, x_status => r_gl_je_headers.status, x_date_created => r_gl_je_headers.date_created, x_accrual_rev_flag => 'Y' --Flag que atualiza os dados para Y confirmando o estorno, x_multi_bal_seg_flag => r_gl_je_headers.multi_bal_seg_flag, x_actual_flag => r_gl_je_headers.actual_flag, x_default_effective_date => r_gl_je_headers.default_effective_date, x_conversion_flag => r_gl_je_headers.conversion_flag, x_last_update_login => r_gl_je_headers.last_update_login, x_encumbrance_type_id => r_gl_je_headers.encumbrance_type_id, x_budget_version_id => r_gl_je_headers.budget_version_id, x_balanced_je_flag => r_gl_je_headers.balanced_je_flag, x_balancing_segment_value => r_gl_je_headers.balancing_segment_value, x_je_batch_id => r_gl_je_headers.je_batch_id, x_from_recurring_header_id => r_gl_je_headers.from_recurring_header_id, x_unique_date => r_gl_je_headers.unique_date, x_earliest_postable_date => r_gl_je_headers.earliest_postable_date, x_posted_date => r_gl_je_headers.posted_date, x_accrual_rev_effective_date => r_gl_je_headers.accrual_rev_effective_date, x_accrual_rev_period_name => r_gl_je_headers.period_name, x_accrual_rev_status => r_gl_je_headers.accrual_rev_status, x_accrual_rev_je_header_id => r_gl_je_headers.accrual_rev_je_header_id, x_accrual_rev_change_sign_flag => r_gl_je_headers.accrual_rev_change_sign_flag, x_description => r_gl_je_headers.description, x_tax_status_code => r_gl_je_headers.tax_status_code, x_control_total => r_gl_je_headers.control_total, x_running_total_dr => r_gl_je_headers.running_total_dr, x_running_total_cr => r_gl_je_headers.running_total_cr, x_running_total_accounted_dr => r_gl_je_headers.running_total_accounted_dr, x_running_total_accounted_cr => r_gl_je_headers.running_total_accounted_cr, x_currency_conversion_rate => r_gl_je_headers.currency_conversion_rate, x_currency_conversion_type => r_gl_je_headers.currency_conversion_type, x_currency_conversion_date => r_gl_je_headers.currency_conversion_date, x_external_reference => r_gl_je_headers.external_reference, x_attribute1 => r_gl_je_headers.attribute1, x_attribute2 => r_gl_je_headers.attribute2, x_attribute3 => r_gl_je_headers.attribute3, x_attribute4 => r_gl_je_headers.attribute4, x_attribute5 => r_gl_je_headers.attribute5, x_attribute6 => r_gl_je_headers.attribute6, x_attribute7 => r_gl_je_headers.attribute7, x_attribute8 => r_gl_je_headers.attribute8, x_attribute9 => r_gl_je_headers.attribute9, x_attribute10 => r_gl_je_headers.attribute10, x_context => r_gl_je_headers.CONTEXT, x_ussgl_transaction_code => r_gl_je_headers.ussgl_transaction_code, x_context2 => r_gl_je_headers.context2, x_doc_sequence_id => r_gl_je_headers.doc_sequence_id, x_doc_sequence_value => r_gl_je_headers.doc_sequence_value);COMMIT; --Commit no processamento da API que atualiza os dados do cabeçalho dos lançamentos contábeisDepois da atualização pego o IMPLICIT_ACCESS_SET_ID do livro contábil, esse valor será usado como parâmetro para submeter o concurrent de estorno.SELECT implicit_access_set_idINTO l_implicit_access_set_idFROM gl_ledgersWHERE ledger_id = r_gl_je_headers.ledger_id;O próximo e ultimo passo seria chamar o concurrent que estorna os lançamentos (GLPREV) passando como parametros o IMPLICIT_ACCESS_SET_ID e o ID do lote (JE_HEADER_ID da GL_JE_HEADERS).l_n_request_id := fnd_request.submit_request( application => 'SQLGL', program => 'GLPREV', description => 'Estornar Lancamentos', argument1 => l_implicit_access_set_id, argument2 => r_gl_je_headers.je_header_id);COMMIT; --Commit no processamento do ConcorrenteBom, aqui isso ta funcionando... os lançamentos estão sendo estornados.Absss