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 la política de modificación 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 pago existente, el servicio actualiza la programación de pago y crea una entrada de programación de pago en la fecha efectiva de aprobación. Si la
useIsPaidFlages verdadera, 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 basándose en nuevas primas, impuestos y comisiones y entradas de programación de pagos actualizadas. Además, se actualizan los registros de contribución de componentes de póliza en cada entrada de programación de pagos. -
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 la Prima total a plazo, la Tarifa total a plazo y los Impuestos totales a 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 al importe total 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
includeRevenueSchedulese establece 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 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 enTotalCommissionAmounty 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 política, establezca el indicador dedisableAttributeCategoriesen el en el servicio degetQuoteDetailcomo falso.
Impuestos y tasas
Este es el funcionamiento de este servicio para impuestos y comisiones:
-
Si se especifica el campo
taxesAndFeesen un registro JSON, persiste un registroAssetPricingAdjustment__ccorrespondiente para cada elemento de 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 (de nueva creación):
-
Si la política actual tiene un
TotalTaxAmount__c, ese valor se prorratea sobre las fechas de entrada en vigor 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 entrada en vigor 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 transfieren los impuestos y las comisiones:
-
Si la política anterior tiene un
TotalTaxAmount__c, ese valor se prorratea sobre las nuevas fechas de entrada en vigor 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 entrada en vigor 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
AssetItemde la política anterior tienen unFeeAmount__c, ese valor se prorratea entre las nuevas fechas de entrada en vigor y finalización y se establece en el campoProratedFeeAmount__c.
Finalmente, si la opción createTransaction (consulte a continuación) se establece como verdadera 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"
]
}