Per prima cosa, diamo un'occhiata a una quadro generale di ciò che il Oracle BRM fatturazione Il processo lo fa:
- Compila l'importo totale degli impatti sul saldo che si sono verificati nell'ultimo mese. Questo può includere le spese di utilizzo e le spese di abbonamento.
- Cambia lo stato di tutte le voci di fattura associate alla fattura da in sospeso ad aperte, in modo che smettano di accumulare addebiti e si possano applicare i pagamenti. Inoltre, viene aggiunta una data di scadenza del pagamento alla fattura.
- Richiede automaticamente i pagamenti da un processore di carte di credito o richiede i pagamenti inviando le fatture.
- Aggiorna automaticamente il saldo del conto di un cliente quando un pagamento viene registrato nel database BRM.
Quindi, come si fa tutto questo nella pratica?
Prima di eseguire una fatturazione brm in produzione, è necessario eseguire tutte le fasi preliminari. Il primo passo consiste nel preparare una copia dell'ambiente di produzione - che può essere di pre-produzione o di un ambiente di test. Questa fase comprende l'installazione dell'ultima release di produzione in questo ambiente e la copia del database di produzione. Successivamente, le configurazioni dell'ambiente devono riflettere quelle della produzione. Ecco le configurazioni principali, che devono essere impostate in modo appropriato:
- cm ($HOME/pin/sys/cm/pin.conf),
o Verificare che la voce loglevel sia impostata su 1
o Modifichi la voce per il parametro agent_return a 0
o Modifichi la voce del parametro simulate_agent a 1.
Queste due ultime modifiche vengono effettuate in modo da non comportare alcuna azione di provisioning durante l'esecuzione della fattura.
- dm_oracle ($HOME/pin/sys/dm_oracle/pin.conf),
o Imposti il parametro dm_bigsize a 8388608 o superiore.
o Imposti il parametro dm_shmsize a 33554432 o superiore.
o Impostare dm_n_fe su 8
o Impostare dm_max_per_fe su 16
o Impostare dm_n_be su 24
o Impostare dm_trans_be_max su 22
- pin_fattura_atti ($HOME/pin/apps/pin_billd/pin.conf),
o Verifichi il livello di log. Lo modifichi con il valore appropriato a seconda di ciò che deve essere controllato durante il test della fattura, 1 o 3.
o Modifichi il parametro bambini per pin_billd e pin_mta a 5
o Modificare il parametro per_batch per pin_billd e pin_mta a 20000.
o Modificare il parametro fetch_size per pin_billd e pin_mta a 150000.
- pin_inv_accts ($HOME/pin/apps/pin_inv/pin.conf),
o Verifichi il livello di log. Lo modifichi con il valore appropriato a seconda di ciò che deve essere controllato durante il test della fattura, 1 o 3.
o Modifichi il parametro bambini per pin_billd e pin_mta a 5
o Modificare il parametro per_batch per pin_billd e pin_mta a 2000.
o Modificare il parametro fetch_size per pin_billd e pin_mta a 15000.
Per ottenere la migliore simulazione possibile della produzione, il pin_virtual_time della billrun deve essere impostato sulla data in cui verrà eseguita la billrun reale sulla produzione. Una volta fatto questo, la billrun può essere avviata.
Eseguiamo la fatturazione mensile con lo script pin_bill_day che crea circa 100.000 fatture all'ora. Lo script crea fatture per gli account la cui data di fatturazione è qualsiasi giorno precedente alla mezzanotte del giorno in cui eseguiamo la fatturazione. Che cosa fa lo script pin_billd_day? Esegue le seguenti utility di fatturazione:
- pin_deferred_act: Esegue azioni differite; ad esempio, se un conto deve diventare inattivo, questa utility esegue il cambio di stato alla data prevista.
- pin_fattura_conti: Calcola il saldo dovuto per i conti e crea una fattura per il saldo dovuto.
- pin_collect: Incassa il saldo dovuto per i conti che utilizzano carte di credito e metodi di pagamento diretto.
- pin_refund: Trova i conti che hanno voci di rimborso ed effettua transazioni di rimborso online.
- pin_inv_accts: Crea una fattura per ogni conto che viene fatturato.
- pin_cycle_fees: Applica l'impatto del saldo delle spese di spedizione del ciclo al conto del cliente e cancella i prodotti che hanno una data di cancellazione in sospeso scaduta.
Per verificare i progressi e le prestazioni dello script pin_bill_day, eseguiamo delle query sul database per ottenere informazioni su quante fatture sono state fatte, quante devono ancora essere fatte, se ci sono fatture con errori, ecc.
Una volta terminata la parte di fatturazione brm e create tutte le fatture, inizia la fatturazione. Dopo la creazione delle fatture, queste vengono esportate in documenti XML, che vengono poi convertiti in formato PDF.
Oltre alle query menzionate in precedenza, ci sono anche altre query che devono essere eseguite una volta terminate la fatturazione e la bollettazione, per verificare l'accuratezza dei dati generati da questo processo. Eseguiamo un gruppo di query; eccone alcune:
- La fatturazione è fallita?
selezionare * da billinfo_t dove billing_state = 4 e bill_info_id'Bill Unit(1)';
-Risultati attesi: Nessuna riga trovata
- Ci sono conti non fatturati?
selezionare poid_id0, nome_nome, cognome, a.status da account_t a, account_nameinfo_t an dove
a.poid_id0=an.obj_id0 e
creato_t< e
non esiste (selezionare b.account_obj_id0 da bill_t b
dove fine_t= e
b.account_obj_id0=a.poid_id0);
-Risultati attesi: Nessuna riga trovata
- Ci sono delle fatture senza numero di fattura?
selezionare * da bill_t dove end_t= e bill_no is null;
- Previsto: Nessuna riga trovata
Qualsiasi problema riscontrato viene poi analizzato e risolto attraverso il sistema di controllo delle versioni, dove le correzioni vengono poi incluse nella versione successiva.