E ai galera!!!! Beleza???
Utilizem o comando abaixo para criarem tabelas temporárias, ou seja, tabelas para manterem dados de cálculos ou para seleção e que depois podem ser excluídos.
Esse comando já define a tabela como temporária e seus dados são excluídos automaticamente após encerrar a sessão ou a transação.
CREATE GLOBAL TEMPORARY
TABLE nome_tabela ( definicao_campos....)
ON COMMIT DELETE ROWS -- exclui registros ao término da transação
-- ou
ON COMMIT PRESERVE ROWS -- exclui registros ao término da sessão
Vantagens das tabelas temporárias:
* São bem mais rápidas, pois não geram redo-logs e uma série de outras coisas.
* Os dados são vistos apenas pela sessão que inseriu os dados. Exemplo: Se alguém inserir dados dentro dela e comitar,ninguém vai ver o que tem na tabela, apenas será visto pela sessão que inseriu os dados. (cada sessão só enxerga o que é seu).
* Você não precisa se preocupar em apagar as informações, assim que a sessão ou transação (depende de como for criada a tabela temporária) terminar as informações da tabela se apagam automaticamente.
Colaboração Thiago Esmerine (Tripa).
Flw pessoal!!!
quarta-feira, 17 de junho de 2009
quarta-feira, 3 de junho de 2009
Estornar Lançamento Contábil do GL usando PL/SQL
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 abaixo
gl_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ábeis
Depois 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_id
INTO l_implicit_access_set_id
FROM gl_ledgers
WHERE 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 Concorrente
Bom, aqui isso ta funcionando... os lançamentos estão sendo estornados.
Absss
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 abaixo
gl_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ábeis
Depois 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_id
INTO l_implicit_access_set_id
FROM gl_ledgers
WHERE 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 Concorrente
Bom, aqui isso ta funcionando... os lançamentos estão sendo estornados.
Absss
Assinar:
Postagens (Atom)