Primeiro, vamos dar uma vista de olhos a um quadro geral do que o Oracle BRM facturação processo:
- Compila o valor total dos impactos no saldo que ocorreram no mês passado. Isto pode incluir taxas de utilização e taxas de subscrição.
- Altera o status de todos os itens de fatura associados à fatura de pendentes para abertos, de modo que eles parem de acumular cobranças e os pagamentos possam ser aplicados a eles. Além disso, uma data de vencimento do pagamento é adicionada à conta.
- Solicita automaticamente pagamentos a um processador de cartões de crédito ou solicita pagamentos através do envio de facturas.
- Actualiza automaticamente o saldo da conta de um cliente quando um pagamento é registado na base de dados BRM.
Então, como é que tudo isto é feito na prática?
Antes de executar uma faturação brm em produção, é necessário que sejam executados todos os passos pré-requisitos. O primeiro passo é preparar uma cópia do ambiente de produção - pode ser um ambiente de pré-produção ou um ambiente de teste. Este passo inclui a instalação da última versão de produção neste ambiente e a cópia da base de dados de produção. Em seguida, as configurações do ambiente têm de refletir as da produção. Aqui estão as principais configurações, que devem ser definidas adequadamente:
-• cm configuração ($HOME/pin/sys/cm/pin.conf),
o Verifique se a entrada loglevel está definida para 1
o Altere a entrada do parâmetro agent_return para 0
o Altere a entrada do parâmetro simulate_agent para 1
Estas duas últimas alterações são efectuadas de modo a não implicar qualquer ação de aprovisionamento durante a faturação.
-• dm_oracle ($HOME/pin/sys/dm_oracle/pin.conf),
o Defina o parâmetro dm_bigsize para 8388608 ou superior
o Defina o parâmetro dm_shmsize para 33554432 ou superior
o Defina dm_n_fe para 8
o Defina dm_max_per_fe para 16
o Defina dm_n_be para 24
o Defina dm_trans_be_max para 22
-• pin_bill_accts ($HOME/pin/apps/pin_billd/pin.conf),
o Verifique o nível de registo. Altere-o para o valor apropriado, dependendo do que precisa de ser verificado durante o teste de faturação, 1 ou 3.
o Altere o parâmetro de crianças para pin_billd e pin_mta para 5
o Altere o parâmetro per_batch para pin_billd e pin_mta para 20000
o Altere o parâmetro fetch_size para pin_billd e pin_mta para 150000
-• pin_inv_accts ($HOME/pin/apps/pin_inv/pin.conf),
o Verifique o nível de registo. Altere-o para o valor apropriado, dependendo do que precisa de ser verificado durante o teste de faturação, 1 ou 3.
o Altere o parâmetro de crianças para pin_billd e pin_mta para 5
o Altere o parâmetro per_batch para pin_billd e pin_mta para 2000
o Altere o parâmetro fetch_size para pin_billd e pin_mta para 15000
Para obter a melhor simulação possível da produção, o pin_virtual_time da faturação tem de ser definido para a data em que a faturação real na produção será executada. Uma vez feito isso, a execução da fatura pode ser iniciada.
Executamos a faturação mensalmente com o script pin_bill_day que cria cerca de 100.000 facturas por hora. O script cria facturas para contas em que a data de faturação é qualquer dia antes da meia-noite do dia em que executamos a faturação. Então, o que é que o script pin_billd_day faz realmente? Executa os seguintes utilitários de faturação:
- pin_deferred_act: Executa acções diferidas; por exemplo, se uma conta se tornar inativa, este utilitário efectua a alteração do estado na data prevista.
- pin_bill_accts: Calcula o saldo devedor das contas e cria uma fatura para o saldo devedor.
- pin_collect: Recolhe o saldo devido para contas que utilizam cartões de crédito e métodos de pagamento de débito direto.
- pin_refund: Encontra contas que têm itens de reembolso e efectua transacções de reembolso online.
- pin_inv_accts: Cria uma fatura para cada conta que é facturada.
- pin_cycle_fees: Aplica o impacto do saldo da taxa do ciclo avançado à conta do cliente e cancela os produtos que têm uma data de cancelamento pendente expirada.
Para verificar o progresso e o desempenho do script pin_bill_day, executamos consultas na base de dados para obter informações sobre quantas facturas estão feitas, quantas ainda estão por fazer, se há facturas com erros, etc.
Depois de terminada a parte de faturação do brm e de todas as facturas terem sido criadas, começa a faturação. Após a criação das facturas, estas são exportadas para documentos XML, que são depois convertidos para o formato PDF.
Para além das consultas mencionadas anteriormente, existem também outras consultas que têm de ser executadas quando a faturação e a cobrança estiverem concluídas, de modo a verificar a exatidão dos dados gerados por este processo. Executamos um lote de consultas; aqui estão algumas delas:
-• A faturação falhou?
seleccione * from billinfo_t where billing_state = 4 and bill_info_id'Bill Unit(1)';
-Resultados esperados: Não foram encontradas linhas
-• Existem contas não facturadas?
seleccione poid_id0, first_name,last_name,a.status from account_t a, account_nameinfo_t an where
a.poid_id0=an.obj_id0 e
created_t< e
not exists (select b.account_obj_id0 from bill_t b
em que end_t= e
b.account_obj_id0=a.poid_id0);
-Resultados esperados: Não foram encontradas linhas
-• Há alguma fatura sem número de fatura?
seleccione * from bill_t where end_t= and bill_no is null;
- Esperado: Nenhuma linha encontrada
Quaisquer problemas encontrados são então investigados e corrigidos através do sistema de controlo de versões, onde as correcções são posteriormente incluídas na versão seguinte.