위치:
InsProductAsyncRatingService:repriceProduct
selectedProduct JSON 및 userInput를 기반으로 제품의 가격을 비동기식으로 재계산합니다.
클래스: InsProductAsyncRatingService
방법: repriceProduct
이 서비스는 그룹 보상 대량 제품 등급 사용 사례를 위해 구축되었습니다.
작동 방법
- 이 서비스는 JSON,
userInput및censusId을selectedProduct합니다. - 그런 다음, 서비스는 제품을 검토하여 인구 조사 기반 등급 또는 요약 기반 등급(
PricingStrategyType__c필드 기준)에 대해 구성했는지 확인합니다. - 이 서비스는 모든 제품의 가격을 계산하기 위해
InsuranceRatingPtc.rateCensusCore 서비스를 호출합니다.InsuranceRatingPtc.rateCensus서비스는 비동기식 서비스이므로 즉시 가격을 반환하지 않습니다. 대신, 그것은asyncRequestId를 반환합니다.
입력
| 입력 | 설명 |
|---|---|
groupClassIds
|
(선택 사항) 그룹 클래스 ID의 목록입니다. |
productCategories
|
(선택 사항) 제품 범주 목록입니다. 순서는 |
selectedProduct
|
(필수) 재평가할 제품입니다. |
userInputs
|
(필수) 평가 절차에서 제품의 가격을 가져오기 위해 사용하는 입력 데이터 집합입니다. 매핑 <문자열, 개체>의 경우 모든 제품에 동일한 입력 데이터 집합이 사용됩니다. 목록<Map<String, Object>>의 경우 목록의 크기는
|
원격 옵션
| 옵션 | 설명 |
|---|---|
censusId
|
(필수) 그룹 인구 조사의 ID입니다. |
effectiveDate
|
등급에 사용되는 유효 일자입니다. "YYYY-MM-DD HH:MM:SS" 형식을 사용합니다. 기본값은 오늘 날짜입니다. |
evalOptionalCoverageRelationship
|
기본 인구 조사 구성원과의 관계를 기반으로 참가자에게 제공되는 옵션 보장 범위를 평가할지 여부를 결정합니다. 이 옵션이 true로 설정된 경우 서비스에서 먼저 updateOptionalCovIsSelectedField을 호출한 다음, repriceProduct을 호출합니다. |
ruleAttributeSetValues
|
값 설정 규칙을 실행할지 여부를 결정합니다. 이 옵션이 true로 설정된 경우 서비스에서 가격 책정 엔진을 호출하기 전에 특성 값 설정 규칙을 실행합니다. |
validateCoverageSelection
|
선택한 보장 범위에 대한 보장 확인 규칙을 실행할지 여부를 결정합니다. 이 옵션이 true로 설정되면 서비스에서 repriceProduct를 호출하기 전에 InsuranceSelectValidationService를 호출합니다. |
입력 JSON
다음은 샘플 입력 JSON입니다.
{
"userInputs": {"DentalCoverage.copay": 100},
"groupClassIds": ["0rEDI0000000IEe2AM", "0rEDI0000000IEe4Hr"],
"productCategories": ["Dental"],
"selectedProduct": {
"records": [
{
"displaySequence": -1,
"CalculatedPriceData": {
"2015 Lexus LX250": {
" DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"totalPrice": 1650,
"comprehensiveTotal": 500,
"collisionTotal": 500,
"liabilityTotal": 650,
"totalTotal": 400,
"perAccidentTotal": 150,
"perPersonTotal": 100,
"ID": "1"
}
},
"Id": "01tB0000001qc4JIAQ",
"Name": "Auto Root",
"ProductCode": "AUTOROOT",
"IsRecommended__c": false,
"RecordTypeName__c": "Product",
"IsConfigurable__c": false,
"PricingFormula__c": "SUM(liabilityTotal + comprehensiveTotal + collisionTotal + stateTotal)",
"Term__c": "Annual",
"TotalInsuredFormula__c": "SUM(AUTO.carValue)",
"productId": "01tB0000001qc4JIAQ",
"currencyCode": "USD",
"currencySymbol": "$",
"Price": 1000,
"totalSumInsured": 0,
"taxesAndFees": [
{
"calculatedAmount": 100,
"currencySymbol": "$",
"currencyCode": "USD",
"Type__c": "Fee",
"RatingType__c": "Amount",
"ProcedureSource__c": null,
"ProcedureName__c": null,
"ProcedureFormula__c": null,
"Percent__c": null,
"JurisdictionId__c": null,
"IsRefundable__c": false,
"Condition__c": null,
"Amount__c": 100,
"Name": "acaf9c93-67b1-5a94-c98f-e7a1387361f1",
"Id": "a4OB0000000ErbeMAC"
},
{
"calculatedAmount": 50,
"currencySymbol": "$",
"currencyCode": "USD",
"Type__c": "Tax",
"RatingType__c": "Percent",
"ProcedureSource__c": null,
"ProcedureName__c": null,
"ProcedureFormula__c": null,
"Percent__c": 5,
"JurisdictionId__c": null,
"IsRefundable__c": true,
"Condition__c": null,
"Amount__c": null,
"Name": "c4b50dd7-7b28-27c0-8b9f-87cd68e6a478",
"Id": "a4OB0000000ErbfMAC"
}
],
"taxAmount": 160,
"feeAmount": 145,
"totalTaxFeeAmount": 305,
"childProducts": {
"totalSize": 2,
"records": [
{
"displaySequence": 1,
"Id": "01tB0000001qc5lIAA",
"Name": "Collision Deductible Waiver",
"Description": "We waive your Collision deductible when you're in an accident caused by a driver who has no insurance.",
"ProductCode": "COL_WAIVER",
"IsRecommended__c": false,
"RecordTypeName__c": "CoverageSpec",
"IsConfigurable__c": true,
"productId": "01tB0000001qc5lIAA",
"pciId": "a4bB0000000CzkzIAC",
"isOptional": false,
"isSelected": true,
"attributeCategories": {
"totalSize": 1,
"records": [
{
"displaySequence": 1981,
"Code__c": "AUTO_COVERAGE",
"Name": "Auto Coverage",
"productAttributes": {
"totalSize": 1,
"records": [
{
"code": "DED_WAIVER",
"dataType": "text",
"inputType": "dropdown",
"multiselect": false,
"required": false,
"readonly": false,
"disabled": false,
"filterable": true,
"label": "Collision Deductible Waiver",
"displaySequence": 3,
"hasRules": false,
"hidden": false,
"values": [
{
"id": "0",
"label": "No coverage",
"readonly": false,
"disabled": false,
"value": "No coverage"
},
{
"id": "1",
"label": "$1,000 deductible",
"readonly": false,
"disabled": false,
"value": "1000"
}
],
"userValues": "No coverage"
}
]
}
}
]
}
}
]
}
}
]
}
}옵션 JSON
다음은 JSON 옵션 샘플입니다.
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}출력 JSON
샘플 출력 JSON은 다음과 같습니다.
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}