Loading
Försäkring
InsCommissionService:calculate

InsCommissionService:calculate

Använd denna tjänst för att beräkna provisionen för en producent.

Klass: InsCommissionService

Metod: calculate

Beskrivning

Denna tjänst använder detaljer om producenten, försäkringsprodukten och den provisionerbara händelsen för att beräkna en provision för en producent.

Så här fungerar det

För att beräkna en provision gör denna tjänst följande:

  1. Accepterar indata från productionCode, producerId, productId, commissionableEvent, context och effectiveDate för att hitta rätt CommissionSchedule att använda för beräkningen.

  2. Beräknar provisionen baserat på Provisionsschema.

  3. Utvärderar provisionen för att avgöra om det är en chargeback (ett returnerat provisionsbelopp).

    • Om det provisionerbara beloppet är negativt behandlar tjänsten provisionen som en chargeback.

    • Om provisionen inte är en chargeback jämför tjänsten det beräknade provisionsbeloppet med lägsta och högsta provisionsbelopp. Om det beräknade beloppet är för lågt eller för högt returnerar tjänsten det lägsta eller högsta beloppet istället för det beräknade beloppet.

  4. Returnerar kommissionsbeloppet, ID för kommissionsschemat som används för att beräkna det och de lägsta och högsta belopp som gäller för denna kommission.

Indata

Indata

Beskrivning

productionCode

Valfritt.

Namnet på produktionskoden, inte ID:t, för bearbetningsproducenten.

producerId

Valfritt.

ID för bearbetningsproducenten.

productId

Obligatoriskt.

ID för produkten som provisionen betalas för.

commissionableEvent

Valfritt.

Händelsen eller transaktionen som utlöser en provisionsberäkning (till exempel Offert, Såldpolicy eller Ändrad/Bekräftad).

effectiveDate

Valfritt.

Provisionsbetalningens giltighetsdatum. Om null använder tjänsten dagens datum.

context

Obligatoriskt.

Fältnamn och värdepar för posten som provision beräknas på. Du måste:

  • Inkludera ett namnutrymme i API-namnet om ett sådant finns.

  • Inkludera objectId, det vill säga ID för posten som provisionen beräknas för.

Format utan sökfält:

{ objectAPI.fieldAPI : fieldValue }

Format med sökfält:

{ objectAPI.relationshipAPI.fieldAPI : fieldValue }

Du kan specificera upp till två nivåer av fält om du formaterar inmatningen med ett sökfält.

commissionableAmount

Valfritt.

Beloppet som provisionsberäkningen baseras på.

Indata-JSON

Så här formaterar du JSON för indata.

{
   "productionCode": ProductionCode.Name,
   "producerId": Producer.Id,
   "product2Id": Product2.Id,
   "commissionableEvent": event type,
   "commissionableAmount": amount of the transaction,
   "context": {
      "objectId": ID of applicable object used,
	  "objectAPI.fieldAPI" : value
   }
}

Detta exempel beräknar en provision för ett godkännande.

{
   "productionCode":AX001,
   "producerId":ay001jh002,
   "product2Id":az011jh022,
   "commissionableEvent":"Endorsement",
   "commissionableAmount":500,
   "context":{
      "Quote.vlocity_ins__TotalPremiumforTerm__c":100,
      "QuoteLineItem.vlocity_ins__GroupClassId__r.vlocity_ins__ClassCode__c":"Managers",
      "QuoteLineItem.vlocity_ins__FeeAmount__c":5,
      "objectId":ax003jh001
   }
}

JSON för utdata

Här är formatet för JSON för utdata.

{
   "commissionAmount": amount,
   "commissionScheduleId": ID of the commission schedule used,
   "minCommissionAmount": CommissionScheduleAssignment.MinCommissionAmount,
   "maxCommissionAmount": CommissionScheduleAssignment.MaxCommissionAmount
}

Här är exempelutdata som visar det beräknade beloppet (167 kr) inom det intervall som definieras av lägsta och högsta värden (100 kr-500 kr).

{
   "commissionAmount":167,
   "commissionScheduleId":"ab001od002",
   "minCommissionAmount":100,
   "maxCommissionAmount":500
}
 
Laddar
Salesforce Help | Article