Usted está aquí:
InsPolicyService:createPolicyVersion
Utilice este servicio para crear una nueva versión de una política existente, mientras mantiene el registro de política existente tal cual.
Este servicio activa la versión de políticas. Todos los cambios en una política se siguen en diferentes versiones de esa política. Puede utilizarlo en modificar política y cancelar procedimientos de integración y OmniScripts de política. También puede utilizar este servicio para restablecer pólizas caducadas y canceladas.
Este servicio funciona con Salesforce Financial Services Cloud para la compatibilidad de creación de Programación de pagos opcional.
Funcionamiento
-
Toma la
assetIdopolicyIdde la política actual y el JSON indicado por elinputKey. -
Crea un duplicado de la política original.
-
Si hay una programación de pagos existente, el servicio actualiza la programación de pagos y crea una entrada de programación de pagos en la fecha efectiva de aprobación. Si
useIsPaidFlages verdadero, todas las entradas de programación de pagos futuras (desde la fecha de entrada en vigor) sin transacciones (para las que el campo de estado esValidy el campoisPaidno está seleccionado) se actualizan basándose en valores más recientes de prima, impuestos y comisiones. La nueva entrada de programación de pagos contiene los valores ajustados de prima, impuestos y comisiones en base a nuevas primas, impuestos y comisiones y entradas de programación de pagos actualizadas. Del mismo modo, los registros de contribución de componentes de póliza en cada entrada de programación de pagos se actualizan. -
El servicio utiliza el Método de cálculo de primas, el Tipo de pago y la Frecuencia de primas de la póliza anterior, así como las primas totales por plazo, la comisión total por plazo y los impuestos totales por plazo de la nueva póliza para generar la programación de pagos modificada. Además de la creación de la transacción, los datos de desglose de transacciones se rellenan en el objeto de detalles de transacción. Este objeto almacena datos acerca de cuánto contribuye cada activo, participante o cobertura a los importes totales de transacciones en términos de primas, impuestos y comisiones. Solo se muestran activos, participantes y coberturas con al menos un valor superior a cero para primas, impuestos o comisiones.
Nota Método de cálculo de primas, Tipo de pago y Frecuencia de primas no se copian de políticas anteriores y deben pasarse como entradas al servicio a través del JSON. -
Si
includeRevenueScheduleestá establecido como verdadero, llama al servicio de programación de ingresos para modificar la programación de ingresos. -
Si es la primera modificación de esta política, el servicio marca el
originalVersionId__cy elpreviousVersionId__ccon el mismoassetId. Si esta no es la primera modificación de esta política, el servicio transfiere laOriginalVersionId__ca la nueva versión y marca laassetIdanterior aPreviousVersionId__cen la nueva política. -
Si los nodos
taxesAndFees,taxAmounty/ofeeAmountestán incluidos en el JSON de entrada, los campos y/o registros de impuestos/tasas correspondientes se crean y se prorratea en la nueva versión de la política. -
Si procede, se creará InsurancePolicyTransaction para el ajuste de pago.
-
Si
calculateCommissionestrue, el servicio llama aInsurancePolicyService.calculateAndSaveCommission, que prepara la entrada para los servicios deInsCommissionService.calculateyInsCommissionService.saveCommissions. Después de que el servicio de cálculo procese la entrada, el servicio de guardado almacena el valor calculado enTotalCommissionAmount, y luego acumula el valor y lo agrega alTotalCommissionAmountde la Política original. - Si el indicador de
disableAttributeCategoriesen el servicio degetquotedetailestá establecido como true, el servicio omite el nodo attributeCategory de la respuesta y el servicio decreatePolicyVersionno crea términos de política. Para asegurarse de que el servicio decreatePolicyVersioncrea términos de póliza, establezca el indicador dedisableAttributeCategoriesen el en el servicio degetQuoteDetailcomo falso.
Impuestos y tasas
A continuación le mostramos cómo funciona este servicio para impuestos y comisiones:
-
Si el campo
taxesAndFeesse especifica en un registro JSON, persiste un registroAssetPricingAdjustment__ccorrespondiente para cada elemento en la lista detaxesAndFees. -
Si el campo
taxAmountse especifica en un registro JSON, el campoTaxAmount__cse establecerá en el valor del campotaxAmounten el objetoAssetItemcreado. -
Si el campo
feeAmountse especifica en un registro JSON, el campoFeeAmount__cse establecerá en el valor del campofeeAmounten elAssetItemcreado.
En lo que respecta a la política actual (nueva creación):
-
Si la política actual tiene un
TotalTaxAmount__c, ese valor se prorratea sobre las fechas de vigencia y finalización y se establece en el campoTotalTaxForTerm__c. -
Si la política actual tiene un
TotalFeeAmount__c, ese valor se prorratea sobre las fechas de vigencia y finalización y se establece en el campoTotalFeeForTerm__c. -
Si el
AssetItemde la política actual tiene unTaxAmount__c, ese valor se prorratea entre las fechas de vigencia y finalización y se establece en el campoProratedTaxAmount__c. -
Si el
AssetItemde la política actual tiene unFeeAmount__c, ese valor se prorratea entre las fechas de vigencia y finalización y se establece en el campoProratedFeeAmount__c.
Para pólizas ya creadas, este es el modo en que se pasan los impuestos y las comisiones:
-
Si la política anterior tiene un
TotalTaxAmount__c, ese valor se prorratea sobre las nuevas fechas de vigencia y finalización y se establece en el campoTotalTaxForTerm__c. -
Si la política anterior tiene un
TotalFeeAmount__c, ese valor se prorratea sobre las nuevas fechas de vigencia y finalización y se establece en el campoTotalFeeForTerm__c. -
Si los campos AssetItem tienen un
TaxAmount__c, ese valor se prorratea entre las nuevas fechas de entrada en vigor y finalización y se establece en el campoProratedTaxAmount__c. -
Si los campos de
AssetItemen la política anterior tienen unFeeAmount__c, ese valor se prorratea sobre las nuevas fechas de vigencia y finalización y se establece en el campoProratedFeeAmount__c.
Finalmente, si la opción createTransaction (consulte a continuación) está establecida como true y la nueva versión de política tiene impuestos y comisiones asociados, los campos TaxAmount__c y FeeAmount__c en la transacción creada se establecen como la diferencia entre la nueva política (actual) y las TotalTaxForTerm__c y TotalFeeForTerm__c de la política anterior.
Opciones remotas
JSON de entrada
Este servicio busca los inputKey especificados en el JSON del producto.
"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"
}Si la opción remota de isCreatingPolicyTerms está establecida como true, se incluye un nodo de policyTermIds. Este es un ejemplo de un nodo policyTermIds:
{
"policyId": "02i6g000000h110AAA",
"policyTermIds": [
"a5X6g000001LeUUEA0",
"a5X6g000001LeUVEA0",
"a5X6g000001LeUWEA0",
"a5X6g000001LeUXEA0",
"a5X6g000001LeUYEA0",
"a5X6g000001LeUZEA0",
"a5X6g000001LeUaEAK",
"a5X6g000001LeUbEAK",
"a5X6g000001LeUcEAK",
"a5X6g000001LeUdEAK",
"a5X6g000001LeUeEAK",
"a5X6g000001LeUfEAK"
]
}