먼저, 다음과 같은 예시를 살펴보겠습니다. 전체적인 그림 의 오라클 BRM 청구 프로세스가 수행합니다:
- 지난 달에 발생한 잔액 영향의 총 금액을 집계합니다. 여기에는 사용료와 구독료가 포함될 수 있습니다.
- 청구서와 관련된 모든 청구서 항목의 상태를 보류 중이던 것을 처리 중으로 변경하여 요금 누적을 중지하고 해당 항목에 결제를 적용할 수 있도록 합니다. 또한 청구서에 결제 기한이 추가됩니다.
- 신용카드 처리업체에 자동으로 결제를 요청하거나 인보이스를 전송하여 결제를 요청합니다.
- 결제가 BRM 데이터베이스에 기록되면 고객의 계정 잔액을 자동으로 업데이트합니다.
그렇다면 이 모든 것이 실제로 어떻게 이루어질까요?
프로덕션에서 brm 청구를 실행하기 전에 모든 사전 필수 단계를 실행해야 합니다. 첫 번째 단계는 프로덕션 환경의 복사본을 준비하는 것입니다. 이 환경은 사전 프로덕션 또는 일부 테스트 환경일 수 있습니다. 이 단계에는 이 환경에 최신 프로덕션 릴리스를 설치하고 프로덕션 데이터베이스를 복사하는 작업이 포함됩니다. 다음으로, 환경 구성은 프로덕션 환경의 구성을 반영해야 합니다. 다음은 적절하게 설정해야 하는 주요 구성입니다:
- cm 구성($HOME/pin/sys/cm/pin.conf)을 변경합니다,
o 직급 항목이 1로 설정되어 있는지 확인합니다.
o 에이전트 반환 매개변수의 항목을 0으로 변경합니다.
o simulate_agent 매개변수의 항목을 1로 변경합니다.
이 두 가지 마지막 변경 사항은 법안 실행 중에 프로비저닝 작업을 포함하지 않도록 하기 위해 수행되었습니다.
- dm_oracle 구성($HOME/pin/sys/dm_oracle/pin.conf)을 변경합니다,
o dm_bigsize 매개 변수를 8388608 이상으로 설정합니다.
o dm_shmsize 매개 변수를 33554432 이상으로 설정합니다.
o dm_n_fe를 8로 설정합니다.
o dm_max_per_fe를 16으로 설정합니다.
o dm_n_be를 24로 설정합니다.
o dm_trans_be_max를 22로 설정합니다.
- PIN_BILL_ACCTS 구성($HOME/pin/apps/pin_billd/pin.conf)을 변경합니다,
o 레벨을 확인합니다. 청구서 테스트 중에 확인해야 하는 항목에 따라 1 또는 3 중 적절한 값으로 변경합니다.
o 핀_빌드 및 핀_m타의 자식 매개변수를 5로 변경합니다.
o 핀_빌드 및 핀_타에 대한 per_batch 파라미터를 20000으로 변경합니다.
o 핀_빌드 및 핀_타에 대한 fetch_size 매개변수를 150000으로 변경합니다.
- PIN_INV_ACCTS 구성($HOME/pin/apps/pin_inv/pin.conf)을 변경합니다,
o 레벨을 확인합니다. 청구서 테스트 중에 확인해야 하는 항목에 따라 1 또는 3 중 적절한 값으로 변경합니다.
o 핀_빌드 및 핀_m타의 자식 매개변수를 5로 변경합니다.
o 핀_빌드 및 핀_m타의 per_batch 매개변수를 2000으로 변경합니다.
o 핀_빌드 및 핀_m타의 fetch_size 매개변수를 15000으로 변경합니다.
최상의 프로덕션 시뮬레이션을 얻으려면 빌런 핀_가상_시간을 프로덕션에서 실제 빌런이 실행되는 날짜로 설정해야 합니다. 이 작업이 완료되면 빌런을 시작할 수 있습니다.
시간당 약 100,000건의 청구서를 생성하는 pin_bill_day 스크립트를 사용하여 매월 청구를 실행합니다. 이 스크립트는 청구일이 청구일을 실행하는 날의 자정 이전인 계정에 대한 청구서를 생성합니다. 그렇다면 pin_billd_day 스크립트는 실제로 어떤 기능을 하나요? 다음 청구 유틸리티를 실행합니다:
- PIN_DEFERRED_ACT: 지연된 작업을 실행합니다. 예를 들어 계정이 비활성 상태가 되어야 하는 경우 이 유틸리티는 예약된 날짜에 상태 변경을 수행합니다.
- PIN_BILL_ACCTS: 계정의 미결제 잔액을 계산하고 미결제 잔액에 대한 청구서를 생성합니다.
- PIN_COLLECT: 신용 카드를 사용하는 계정의 미결제 잔액을 수금하고 직불 결제 방법을 안내합니다.
- PIN_REFUND: 환불 항목이 있는 계정을 찾아 온라인 환불 거래를 진행합니다.
- PIN_INV_ACCTS: 청구되는 각 계정에 대한 인보이스를 생성합니다.
- PIN_CYCLE_FEES: 고객의 계정에 이월 수수료 잔액 영향을 적용하고 보류 중인 취소 날짜가 만료된 상품을 취소합니다.
핀빌데이 스크립트의 진행 상황과 성능을 확인하기 위해 데이터베이스에 대한 쿼리를 실행하여 완료된 청구서 수, 아직 완료되지 않은 청구서 수, 오류가 있는 청구서가 있는지 등에 대한 정보를 얻습니다.
BRM 청구 부분이 끝나고 모든 청구서가 생성되면 인보이스 발행이 시작됩니다. 인보이스가 생성된 후에는 XML 문서로 내보낸 다음 PDF 형식으로 변환됩니다.
앞서 언급한 쿼리 외에도 청구 및 인보이스 발행이 완료된 후 이 프로세스에서 생성된 데이터의 정확성을 확인하기 위해 실행해야 하는 다른 쿼리도 있습니다. 다음은 몇 가지 쿼리를 일괄적으로 실행하는 예입니다:
- 청구가 실패했나요?
billinfo_t에서 * select * 여기서 청구_상태 = 4, bill_info_id'청구 단위(1)';
-예상 결과: 행을 찾을 수 없음
- 청구되지 않은 계정이 있나요?
SELECT PID_ID0, FIRST_NAME, SAME_NAME, A.STATUS FROM ACCOUNT_T A, ACCOUNT_NAMEINFO_T AN WHERE
a.poid_id0=an.obj_id0 및
created_t< 및
존재하지 않음(bill_t b에서 b.account_obj_id0 선택)
여기서 end_t= 및
b.account_obj_id0=a.poid_id0);
-예상 결과: 행을 찾을 수 없음
- 청구서 번호가 없는 청구서가 있나요?
bill_t에서 *를 선택합니다. 여기서 end_t=이고 bill_no는 null입니다;
- 예상됩니다: 행을 찾을 수 없음
발견된 모든 문제는 버전 관리 시스템을 통해 조사 및 수정되며, 수정 사항은 나중에 다음 릴리스 버전에 포함됩니다.