Loading
Assicurazioni
InsPolicyService:createPolicyVersion

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.

Classe: InsPolicyService

Metodo: createPolicyVersion

Funzionamento

  1. Prende il assetId o il policyId della policy corrente e il JSON indicato dal inputKey.

  2. Crea un clone della policy originale.

  3. 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 è Valid e il campo isPaid è 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.

  4. 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
    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.
  5. Se includeRevenueSchedule è impostato su true, chiama il servizio pianificazione reddito per modificare la pianificazione reddito.

  6. Se si tratta della prima modifica di questa policy, il servizio contrassegna il originalVersionId__c e il previousVersionId__c con lo stesso assetId. Se non si tratta della prima modifica di questa policy, il servizio riporta la OriginalVersionId__c alla nuova versione e contrassegna la assetId precedente come PreviousVersionId__c nella nuova policy.

  7. Se i nodi taxesAndFees, taxAmount e/o feeAmount sono inclusi nel JSON di input, nella nuova versione della policy vengono creati e ripartiti i campi imposta/tariffa e/o i record corrispondenti.

  8. Se applicabile, verrà creata una InsurancePolicyTransaction per la rettifica del pagamento.

  9. Se calculateCommission è true, il servizio chiama InsurancePolicyService.calculateAndSaveCommission, che prepara l'input per i servizi di InsCommissionService.calculate e InsCommissionService.saveCommissions. Dopo che il servizio di calcolo ha elaborato l'input, il servizio di salvataggio memorizza il valore calcolato in TotalCommissionAmount, quindi lo riporta al TotalCommissionAmount della policy originale.

  10. Se il flag disableAttributeCategories nel servizio getquotedetail è impostato su true, il servizio omette il nodo attributeCategory dalla risposta e il servizio createPolicyVersion non riesce a creare i termini della policy. Per assicurarsi che il servizio createPolicyVersion crei i termini della policy, impostare il flag disableAttributeCategories nel servizio getQuoteDetail su false.
Nota
Nota Il servizio supporta inoltre le conferme delle polizze in cui la durata della versione originale della polizza è inferiore a 365 giorni o inferiore a 366 giorni in un anno bisestile. Vedere Considerazioni e limitazioni per le polizze assicurative.

Tasse e commissioni

Ecco come funziona questo servizio per imposte e commissioni:

  • Se il campo taxesAndFees è specificato in un record JSON, viene mantenuto un record AssetPricingAdjustment__c corrispondente per ogni elemento dell'elenco taxesAndFees.

  • Se il campo taxAmount è specificato in un record JSON, il campo TaxAmount__c verrà impostato sul valore del campo taxAmount nell'oggetto AssetItem creato.

  • Se il campo feeAmount è specificato in un record JSON, il campo FeeAmount__c verrà impostato sul valore del campo feeAmount nel AssetItem creato.

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 campo TotalTaxForTerm__c.

  • Se la policy corrente ha un TotalFeeAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campo TotalFeeForTerm__c.

  • Se la AssetItem sulla policy corrente ha un TaxAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campo ProratedTaxAmount__c.

  • Se la AssetItem sulla policy corrente ha un FeeAmount__c, il valore viene ripartito tra la data effettiva e finale e impostato sul campo ProratedFeeAmount__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 campo TotalTaxForTerm__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 campo TotalFeeForTerm__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 campo ProratedTaxAmount__c.

  • Se i campi AssetItem della policy precedente hanno un FeeAmount__c, tale valore viene ripartito tra le nuove date di validità e di fine e viene impostato sul campo ProratedFeeAmount__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

Opzione

Descrizione

assetId o policyId

Obbligatorio.

ID della policy corrente.

createContactForParticipants

Facoltativo.

true o false

Per impostazione predefinita, true.

Se false, il servizio non crea record referente.

createInsuredItemsRelationships

true o false

Se questa opzione è impostata su true, è possibile specificare un elenco di instanceKey > Relazioni di parentInstanceKey tra voci assicurate.

Questa opzione supporta le relazioni voce controllante > controllato e controllante > controllato > assicurato nipote.

createTransaction

Facoltativo.

true o false

Per impostazione predefinita, false.

Se true, il servizio crea una transazione che verrà utilizzata dai servizi di pianificazione del reddito.

effectiveDate

“YYYY-MM-DD HH:MM:SS” o %OmniScriptDataElement%

Data di entrata in vigore della policy.

Se nella mappa delle opzioni non è presente alcun valore di effectiveDate, il servizio lo cerca nella mappa delle rootAttributes. Se il servizio non trova un effectiveDate, utilizza la data odierna.

Se si utilizza il pacchetto Insurance Industries Extension, il valore di indicazione oraria nell'opzione effectiveDate viene ignorato. Il valore dell'indicazione oraria della data effettiva è invece impostato sulle 00:00 della data effettiva selezionata e il valore della data di scadenza è impostato sulle 23:59 della data di scadenza selezionata. L'indicazione oraria viene impostata utilizzando il fuso orario specificato dall'utente.

getDataCustomClassName

Facoltativo.

Nome della classe personalizzata utilizzata da questo servizio per recuperare le informazioni sulla policy (asset).

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o postDataDRBundleName.

Il valore predefinito è impostato su GetInsurancePolicy.

getDataDRBundleName

Facoltativo,

Nome del Data Mapper utilizzato da questo servizio per recuperare le informazioni sulle policy (asset).

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o getDataCustomClassName.

  • Se si specificano entrambi, il servizio utilizza il valore getDataDRBundleName.

  • Se non si specifica nessuno dei due valori, il servizio utilizza il valore predefinito per getDataCustomClassName (GetInsurancePolicy).

includePaymentSchedule

Facoltativo.

True se la pianificazione dei pagamenti verrà aggiornata per la policy.

Il valore predefinito è false.

includeRevenueSchedule

Facoltativo. Utilizzato solo se createTransaction è impostato su true.

true o false

Se true, questa opzione chiama InsPolicyRevenueScheduleService: modify

inputKey

Obbligatorio.

%theJSONyouneed%

isCreatingPolicyTerms

true o false

Se impostato su true, il servizio restituisce un nodo policyTermIds nel JSON di output.

postDataCustomClassName

Facoltativo.

Nome della classe personalizzata utilizzata da questo servizio per salvare la nuova versione della policy.

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o postDataDRBundleName.

Il valore predefinito è impostato su PostInsurancePolicy.

postDataDRBundleName

Facoltativo.

Nome del Data Mapper utilizzato da questo servizio per salvare la nuova versione della policy.

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o postDataCustomClassName.

  • Se si specificano entrambi, il servizio utilizza il valore postDataDRBundleName.

  • Se non si specifica nessuno dei due valori, il servizio utilizza il valore predefinito per postDataCustomClassName (PostInsurancePolicy).

transactionType

Facoltativo. Utilizzato solo se createTransaction è impostato su true.

Se non viene fornito alcun valore per transactionType, per impostazione predefinita viene utilizzato Changed/Endorsed.

updateDataCustomClassName

Facoltativo.

Aggiorna la policy corrente.

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o updateDataDRBundleName.

Il valore predefinito è impostato su PostInsurancePolicy.

updateDataDRBundleName

Facoltativo.

Nome del Data Mapper utilizzato da questo servizio per aggiornare la policy corrente.

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o updateDataCustomClassName.

  • Se si specificano entrambi, il servizio utilizza il valore updateDataDRBundleName.

  • Se non si specifica nessuno dei due valori, il servizio utilizza il valore predefinito per updateDataCustomClassName (PostInsurancePolicy).

useLocalTimezone

true o false

Per impostazione predefinita, true.

Quando è impostato su true, questo servizio utilizza il fuso orario locale in cui viene creata la versione della policy.

Quando è impostato su false, questo servizio utilizza GMT come fuso orario.

calculateCommission

true o false

Quando è impostato su true, il servizio calcola le commissioni per gli elementi radice e salva l'importo totale in TotalCommissionAmount.

Se impostato su false (impostazione predefinita), il servizio non calcola le commissioni.

Nota
Nota

Se si imposta questa opzione su true, è necessario immettere anche almeno uno dei valori del produttore o del codice di produzione: producerId , productionCodeId o productionCodeName.

commissionType

Facoltativo.

Tipo di commissione (ad esempio Bonus o Standard).

commissionStatus

Facoltativo.

Stato della commissione (ad esempio, In sospeso, Pagato o Derogato).

producerId

Facoltativo.

ID produttore dell'elaborazione, ovvero il produttore utilizzato per recuperare commissionScheduleId e calcolare l'ammontare della commissione.

Assegnato a InsurancePolicy.ProducerId.

productionCodeId

Facoltativo.

ID codice di produzione.

Assegnato a InsurancePolicy.ProductionCodeId__c.

productionCodeName

Facoltativo.

Il nome del codice di produzione passato al servizio InsCommissionService.calculate.

Se non si immettono productionCodeId, il servizio utilizza productionCodeName per cercare il productionCodeId. Se si immettono entrambi i valori ma non corrispondono, productionCodeId ha la precedenza.

memberPlanIntegrationProcedure

Avvia una procedura di integrazione personalizzata in base alla configurazione utente. Quando si utilizza questa opzione, passa tutte le opzioni del servizio alla procedura di integrazione personalizzata e tutti gli ID polizza come input per l'integrazione con l'oggetto, ad esempio l'oggetto polizza assicurativa con il piano membro.

ratingDate

Data di valutazione utilizzata per assegnare il prezzo al JSON di input.

Nota
Nota Non è possibile passare un'ora specifica per ratingField poiché il tipo di campo è Data. Pertanto, l'indicazione oraria della data di valutazione viene impostata automaticamente sulle 00:00.
term

Termine della policy creata dal servizio.

InsPolicyService:createPolicyVersion supporta solo i termini delle polizze annuali.

useIsPaidFlag

Facoltativo

Specifica se il flag IsPaid deve essere abilitato o meno.

Se true, il campo isPaid nell'oggetto Voce schema di pagamento viene considerato durante il calcolo di premi, imposte e commissioni.

Il valore predefinito è false.

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"
  ]
}

JSON di output

Il servizio restituisce il nuovo numero di versione della policy nel JSON di output.

{
    "policyId": "02i0b00000uRwhVAAS"
    "error": "ok"
}
 
Caricamento
Salesforce Help | Article