Account plugin

You can use the account plugin (IAccountPlugin) to customize how PolicyCenter manages accounts.

Performing account name clearance

Name clearance is part of an insurance application in which the insurance insurer determines whether this client already has insurance with the insurer or is represented by a different producer. If represented by another producer, the account is reserved for the other producer. Reservation is performed by line of business, so a client represented by one producer for one line of business could be represented by another producer for another type of policy. If the name is reserved, then the producer needs to be informed of the conflict. If not, the account is now reserved for this producer and the process can proceed.

The plugin’s performNameClearance method performs name clearance on the given account and producer in the form of an Account and a ProducerSelection. It returns the available products and sets the status appropriately based on the product model configuration. The status on a product might be something other than available, for example that the product is risk reserved or inapplicable.

Deleting an account

PolicyCenter calls this plugin’s freezeAccount method to signal that the passed-in Account entity is frozen and about to be deleted. If you need to do any special action before deletion, do it in this method. For example, if you have linked data through foreign keys on the Account entity, you might need to delete that data also.

PolicyCenter only calls this if PolicyCenter is not the true system of record for the account and the account is about to be deleted from the account system of record. This is also called after withdrawing accounts. PolicyCenter does not allow deletion of accounts if PolicyCenter is the account system of record.

Generating a new account number

Generate a new account number in the generateAccountNumber method. It takes an Account number and must return a unique ID for the account. For more information, see Creating unique numbers in a sequence.

Is account editable?

Implement the isEditable method in this plugin to indicate whether an account is editable. It takes an Account object and returns a boolean.

The default behavior is that an account is editable, but you can customize this behavior. For example, if PolicyCenter is not the system of record for the account, you might choose to always make the account non-editable.

Checking whether risk is reserved

Implement the isRiskReserved method to customize how PolicyCenter checks whether the given PolicyPeriod is already risk reserved.

Customizing behavior after merging accounts

After PolicyCenter merges two accounts, calls the mergeAccounts method in this plugin so you can customize the application logic. There is no required behavior, but if you have data model extension properties, you might need to merge or copy data to the merged account. If you have related foreign key fields to other data, you might need to merge or delete that data also.

PolicyCenter calls this method after the two accounts were merged into a single entity but the other (non-merged) account entity has not yet been retired. The first parameter to the method is Account that is soon to be retired. The second parameter is the destination merged account.

Merging two accounts is not enabled in the built-in PolicyCenter user interface, but can be triggered using the AccountAPI web service mergeAccounts.

Populating account summaries with extension properties

PolicyCenter has an entity called AccountSummary that it uses in several places in the user interface to summarize an account. The application copies the standard built-in properties automatically.

There is no required behavior. However, if you have data model extension properties in the Account that you want in the summary, copy them from the Account to the AccountSummary. Implement this action in the account plugin’s populateAccountSummary method.

Transferring policies from one account to another account

After PolicyCenter transfers policies from one account to another, you can customize the application logic.

There is no required behavior, but if you have any data model extension properties and possibly additional foreign key references, you might need to customize this logic. Implement the transferPolicies method, with the following signature.

void transferPolicies(Policy[] policies, Account fromAccount, Account toAccount)

Transferring policies from one account to another is not enabled in the built-in PolicyCenter user interface, but you can trigger it using the AccountAPI web service method transferPolicies. For more information, see Account web services.