위치:
InsPolicyService:createUpdatePolicy
이 서비스를 사용하여 새 보험 증권을 만들거나 기존 증권을 새 정보로 업데이트합니다.
작동 방식
-
서비스는
inputKey의 입력 JSON을 검색합니다.inputKey노드는 서비스가 정책을 만들거나 업데이트하는 데 필요한 정보를 포함합니다. 이 서비스에 필요한 정보에는 다음이 포함됩니다.-
accountId -
term -
productConfigurationDetail기록 -
insuredItems기록(옵션) -
endDate -
effectiveDate
-
-
정책(자산) 개체를 만듭니다.
-
증권에 대한 기존 결제 일정이 있는 경우 서비스에서 오류 메시지를 반환합니다.
-
초기 결제가 발생하면 InsurancePolicyTransaction이 생성됩니다. 트랜잭션 생성 외에도 트랜잭션 분석 데이터가 트랜잭션 세부 사항 개체에 채워집니다. 이 개체는 각 자산, 참가자 또는 보장 범위가 보험료, 세금, 수수료와 관련하여 총 거래 금액에 얼마나 기여하는지에 대한 데이터를 저장합니다. 보험료, 세금 또는 수수료의 값이 0 이상인 자산, 참가자, 보장 범위만 표시됩니다. 트랜잭션에 대한 관련 목록에 트랜잭션 세부 사항 개체를 추가해야 합니다.
-
결제 일정을 저장하는 경우 기록이 증권의 원래 증권 ID에 연결됩니다.
-
입력 JSON에
taxesAndfees,taxAmount및/또는feeAmount노드가 있는 경우 세금 및/또는 수수료 레코드가 생성됩니다. -
서비스가
assetId를 전달하지 않을 경우 출력 JSON에 정책 ID를 반환합니다.서비스가 입력 JSON에서
assetId을 전달하면assetId에서 지정한 자산을 업데이트합니다. -
calculateCommission=true인 경우: 서비스에서InsurancePolicyService.calculateAndSaveCommission를 호출하여InsCommissionService.calculate및InsCommissionService.saveCommissions서비스에 대한 입력을 준비합니다. 계산 서비스가 입력을 처리한 후 저장 서비스는 계산된 값을TotalCommissionAmount로 저장합니다.-
서비스에서
InsCommissionService.calculate및InsCommissionService.saveCommissions서비스에 대한 입력을 준비하는InsurancePolicyService.calculateAndSaveCommission을 호출합니다. -
커미션 유형(예: 커미션 또는 보너스)은
commissionType로InsCommissionService.saveCommissions서비스에 전달됩니다. -
커미션 상태(예: 면제됨 또는 지불됨)는
InsCommissionService.saveCommissions서비스에commissionStatus로 전달됩니다.
계산 서비스가 입력을 처리한 후 저장 서비스는 계산된 값을
TotalCommissionAmount로 저장합니다. -
endDate 및 effectiveDate에 따라 정책 기간이 결정됩니다. 첫 번째 증권 버전의 기간은 365일 미만이거나 윤년에는 366일 미만일 수 있습니다. 보험 증권에 대한 고려 사항 및 제한 사항을 참조하십시오.세금 및 수수료
세금 및 수수료가 사용되는 경우 이 서비스가 작동하는 방식은 다음과 같습니다.
JSON 레코드에
taxesAndFees필드가 지정된 경우taxesAndFees목록의 각 항목에 해당하는AssetPricingAdjustment__c레코드가 유지됩니다.JSON 레코드에
taxAmount필드가 지정된 경우TaxAmount__c필드는 생성된AssetItem의 taxAmount 필드 값으로 설정됩니다.JSON 레코드에
feeAmount필드가 지정된 경우FeeAmount__c필드는AssetItem의feeAmount필드 값으로 설정됩니다.
원격 옵션
입력 JSON
이 서비스는 inputKey의 가치를 찾습니다.
이 예에서는 inputKey = newPolicyJSON입니다.
"newPolicyJSON": {
"accountId": "001f400000OSHq2AAH",
"term": "Annual",
"endDate": "2019-05-14T07:00:00.000Z",
"effectiveDate": "2018-05-15T07:00:00.000Z",
"productConfigurationDetail": {
...
},
"insuredItems": {
...
},
"additionalFields": {
"SerialNumber": "AUTO-123",
"Status": "InForce",
"vlocityins2__Type__c": "AUTO",
"vlocityins2__PaymentMethodId__c": "a2Rf40000002NrgEAE"
},
}inputKey 내의 JSON에는 정책을 만들거나 업데이트하는 데 필요한 여러 키/값 쌍이 포함되어 있습니다. 또한 보험 항목 및 총 증권 가격과 함께 제품 JSON이 포함됩니다.
키 |
값 |
|---|---|
|
자산에 대해 생성된 계정 ID입니다. |
|
(선택 사항) 서비스의 일부가 아닌 증권(자산) 필드를 포함하는 키/값 쌍입니다. |
|
(선택 사항) 정책이 만료되는 날짜입니다. |
|
정책이 적용되는 날짜입니다. 옵션 맵에 |
|
서비스에서 정책을 만드는 데 사용하는 보험 항목의 키/값 쌍입니다. |
|
정책이 수정된 날짜 |
|
제품 JSON 구조 모델을 따르는 레코드의 배열입니다. |
|
서비스에서 생성할 정책의 기간입니다. |
이 예제의 insuredItems 레코드에는 보험 항목 및 사용자가 각 항목에 대해 선택한 값이 포함됩니다.
이 예에서는 inputKey = quotepolicyJSON입니다.
"quotepolicyJson": {
"productConfigurationDetail": {
...
}
"insuredItems": {
"DRIVER": [{
"GENDER": "Female",
"FN": "Joan",
"AGE": 20,
"LN": "Smith",
"instanceKey": "Joan Smith",
"isPrimary": false
"isParent": false
},
{
"GENDER": "Male",
"FN": "John",
"AGE": 30,
"LN": "Smith",
"instanceKey": "John Smith",
"isPrimary": false
"isParent": false
},
{
"GENDER": "Male",
"FN": "Robert",
"AGE": 30,
"LN": "Henderson",
"instanceKey": "Robert Henderson",
"isPrimary": false
"isParent": false
},
{
"GENDER": "Female",
"FN": "Kinsey",
"AGE": 20,
"LN": "Schell",
"instanceKey": "Kinsey Schell",
"isPrimary": false
"isParent": false
}
],
"AUTO": [{
"autoLicNum": "Lexus",
"autoModel": "LX250",
"autoYear": 2015,
"instanceKey": "2015 Lexus LX250",
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
},
{
"autoLicNum": "Honda",
"autoModel": "Odyssey",
"autoYear": 2006,
"instanceKey": "2006 Honda Odyssey",
"BodyClass": "Minivan",
"VehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"isPrimary": true
"isParent": true
}
]
},
"accountId": "0011I00000QknfjQAB",
"opportunityId": "0061I00000AV8gBQAT"
},
"quoteId": "0Q01I000000206USAQ",
"error": "OK"출력 JSON
서비스가 새로 만든 정책의 정책 ID를 반환합니다.
{
"policyId": "02if4000001uCZXAA2",
"error": "OK"
}isCreatingPolicyTerms 원격 옵션이 true로 설정된 경우 policyTermIds 노드가 포함됩니다. 다음은 policyTermIds 노드의 예입니다.
{
"policyId": "02i6g000000h110AAA",
"policyTermIds": [
"a5X6g000001LeUUEA0",
"a5X6g000001LeUVEA0",
"a5X6g000001LeUWEA0",
"a5X6g000001LeUXEA0",
"a5X6g000001LeUYEA0",
"a5X6g000001LeUZEA0",
"a5X6g000001LeUaEAK",
"a5X6g000001LeUbEAK",
"a5X6g000001LeUcEAK",
"a5X6g000001LeUdEAK",
"a5X6g000001LeUeEAK",
"a5X6g000001LeUfEAK"
]
}