Ti trovi qui:
InsPolicyService:createPolicyVersion
Utilizzare questo servizio per creare una nuova versione di una policy esistente, mantenendo invariato il record della policy esistente.
Questo servizio abilita il controllo delle versioni delle policy. Tutte le modifiche apportate a una policy vengono tracciate nelle diverse versioni della policy. È possibile utilizzarlo in OmniScript e procedure di integrazione per modificare la policy e annullare la policy. È anche possibile utilizzare questo servizio per ripristinare le polizze scadute e annullate.
Questo servizio funziona con Salesforce Financial Services Cloud per il supporto facoltativo per la creazione di Pianificazioni di pagamento.
Funzionamento
-
Prende il
assetIdo ilpolicyIddella policy corrente e il JSON indicato dalinputKey. -
Crea un clone della policy originale.
-
Se esiste una pianificazione di pagamento, il servizio aggiorna la pianificazione di pagamento e crea una voce pianificazione di pagamento alla data effettiva della conferma. Se
useIsPaidFlagè true, tutte le voci future dello schema di pagamento (a partire dalla data effettiva) senza transazioni (per cui il campo stato èValide il campoisPaidè deselezionato) vengono aggiornate in base ai nuovi valori di premio, imposta e commissione. La nuova voce dello schema di pagamento contiene i valori rettificati di premi, imposte e commissioni in base ai nuovi premi, imposte e commissioni e alle voci dello schema di pagamento aggiornate. Vengono inoltre aggiornati i record contributo dei componenti della polizza in ogni voce del piano di pagamento. -
Il servizio utilizza il metodo di calcolo del premio, il tipo di pagamento e la frequenza del premio della polizza precedente e il premio totale per durata, la commissione totale per durata e l'imposta totale per durata della nuova polizza per generare la pianificazione di pagamento modificata. Oltre alla creazione della transazione, i dati di suddivisione delle transazioni vengono compilati nell'oggetto dettaglio della transazione. Questo oggetto memorizza i dati relativi al contributo di ogni asset, partecipante o copertura all'ammontare totale delle transazioni in termini di premi, imposte e commissioni. Vengono visualizzati solo gli asset, i partecipanti e le coperture con almeno un valore maggiore di zero per premi, imposte o commissioni.
Nota Metodo di calcolo premio, Tipo di pagamento e Frequenza premio non vengono copiati dalla policy precedente e devono essere passati come input al servizio tramite il JSON. -
Se
includeRevenueScheduleè impostato su true, chiama il servizio pianificazione reddito per modificare la pianificazione reddito. -
Se si tratta della prima modifica di questa policy, il servizio contrassegna il
originalVersionId__ce ilpreviousVersionId__ccon lo stessoassetId. Se non si tratta della prima modifica di questa policy, il servizio riporta laOriginalVersionId__calla nuova versione e contrassegna laassetIdprecedente comePreviousVersionId__cnella nuova policy. -
Se i nodi
taxesAndFees,taxAmounte/ofeeAmountsono inclusi nel JSON di input, nella nuova versione della policy vengono creati e ripartiti i campi imposta/tariffa e/o i record corrispondenti. -
Se applicabile, verrà creata una InsurancePolicyTransaction per la rettifica del pagamento.
-
Se
calculateCommissionètrue, il servizio chiamaInsurancePolicyService.calculateAndSaveCommission, che prepara l'input per i servizi diInsCommissionService.calculateeInsCommissionService.saveCommissions. Dopo che il servizio di calcolo ha elaborato l'input, il servizio di salvataggio memorizza il valore calcolato inTotalCommissionAmount, quindi lo riporta alTotalCommissionAmountdella policy originale. - Se il flag
disableAttributeCategoriesnel serviziogetquotedetailè impostato su true, il servizio omette il nodo attributeCategory dalla risposta e il serviziocreatePolicyVersionnon riesce a creare i termini della policy. Per assicurarsi che il serviziocreatePolicyVersioncrei i termini della policy, impostare il flagdisableAttributeCategoriesnel serviziogetQuoteDetailsu false.
Tasse e commissioni
Ecco come funziona questo servizio per imposte e commissioni:
-
Se il campo
taxesAndFeesè specificato in un record JSON, viene mantenuto un recordAssetPricingAdjustment__ccorrispondente per ogni elemento dell'elencotaxesAndFees. -
Se il campo
taxAmountè specificato in un record JSON, il campoTaxAmount__cverrà impostato sul valore del campotaxAmountnell'oggettoAssetItemcreato. -
Se il campo
feeAmountè specificato in un record JSON, il campoFeeAmount__cverrà impostato sul valore del campofeeAmountnelAssetItemcreato.
Per quanto riguarda l'attuale (politica appena creata):
-
Se la policy corrente ha un
TotalTaxAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campoTotalTaxForTerm__c. -
Se la policy corrente ha un
TotalFeeAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campoTotalFeeForTerm__c. -
Se la
AssetItemsulla policy corrente ha unTaxAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campoProratedTaxAmount__c. -
Se la
AssetItemsulla policy corrente ha unFeeAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campoProratedFeeAmount__c.
Per le polizze già create, ecco come vengono trasferite le imposte e le spese:
-
Se la policy precedente ha un
TotalTaxAmount__c, il valore viene ripartito tra le nuove date di validità e di fine e viene impostato sul campoTotalTaxForTerm__c. -
Se la policy precedente ha un
TotalFeeAmount__c, il valore viene ripartito tra le nuove date di validità e di fine e viene impostato sul campoTotalFeeForTerm__c. -
Se i campi AssetItem hanno un
TaxAmount__c, tale valore viene ripartito tra le nuove date di efficacia e di fine e viene impostato sul campoProratedTaxAmount__c. -
Se i campi
AssetItemdella policy precedente hanno unFeeAmount__c, tale valore viene ripartito tra le nuove date di validità e di fine e viene impostato sul campoProratedFeeAmount__c.
Infine, se l'opzione createTransaction (vedere sotto) è impostata su true e la nuova versione della polizza ha imposte e commissioni associate, i campi TaxAmount__c e FeeAmount__c della transazione creata vengono impostati sulla differenza tra la nuova polizza (corrente) e i TotalTaxForTerm__c e TotalFeeForTerm__c della polizza precedente.
Opzioni remote
Input JSON
Questo servizio cerca le inputKey specificate nel JSON del prodotto.
"policyJson": {
"productConfigurationDetail": {
"insuredItems": {
"Auto": [{
"instanceKey": "2015 Lexus LX250",
"autoLicNum": "Lexus",
"autoModel": "LX150",
"autoYear": 2015,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2006 Honda Odyssey",
"autoLicNum": "Honda",
"autoModel": "Odyssey",
"autoYear": 2006,
"BodyClass": "Minivan",
"VehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2018 530 BMW",
"autoLicNum": "530",
"autoModel": "BMW",
"autoYear": 2018,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
},
{
"instanceKey": "2016 Camry Toyota",
"autoLicNum": "Camry",
"autoModel": "Toyota",
"autoYear": 2016,
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
"isParent": true
}
],
"Driver": [{
"AGE": 20,
"instanceKey": "Joan Smith",
"FN": "Joan",
"GENDER": "Female",
"LN": "Smith",
"isPrimary": false
"isParent": false
},
{
"AGE": 30,
"instanceKey": "John Smith",
"FN": "John",
"GENDER": "Male",
"LN": "Smith",
"isPrimary": false
"isParent": false
},
{
"AGE": 30,
"instanceKey": "Robert Henderson",
"FN": "Robert",
"GENDER": "Male",
"LN": "Henderson",
"isPrimary": false
"isParent": false
},
{
"AGE": 20,
"instanceKey": "Kinsey Schell",
"FN": "Kinsey",
"GENDER": "Female",
"LN": "Schell",
"isPrimary": false
"isParent": false
}
]
},
"accountId": "001f400000RrQSrAAN"
}Se l'opzione isCreatingPolicyTerms remoto è impostata su true, viene incluso un nodo policyTermIds. Di seguito è riportato un esempio di nodo policyTermIds:
{
"policyId": "02i6g000000h110AAA",
"policyTermIds": [
"a5X6g000001LeUUEA0",
"a5X6g000001LeUVEA0",
"a5X6g000001LeUWEA0",
"a5X6g000001LeUXEA0",
"a5X6g000001LeUYEA0",
"a5X6g000001LeUZEA0",
"a5X6g000001LeUaEAK",
"a5X6g000001LeUbEAK",
"a5X6g000001LeUcEAK",
"a5X6g000001LeUdEAK",
"a5X6g000001LeUeEAK",
"a5X6g000001LeUfEAK"
]
}