Upgrading from a single currency instance to a multicurrency instance

If you are upgrading from a single currency instance to a multicurrency instance, you need to provide a currency-specific scale for the new currencies that will be supported. This information cannot be inferred from the current instance because the currency instance is single currency. Guidewire provides a special appscale attribute to facilitate this.

The appscale attribute is a data type attribute that facilitates the upgrade of a single currency configuration to a multicurrency configuration. appscale is specified in the <MoneyDataType> tag in datatypes.xml. The value of appscale must be less than the value of scale.

Setting a value for the appscale attribute enables a single currency configuration to operate with a scale in the user interface that is appropriate to a particular currency. At the same time, monetary amounts stored in the database have a different and larger scale. The appscale value becomes the effective scale of BigDecimal values that PolicyCenter saves to and loads from monetary columns in the database.

For example, suppose that you implement a single currency configuration of PolicyCenter for the Japanese Yen, which typically has a scale of zero. You intend to convert to a multicurrency configuration in the future. In the conversion, you intend to add the U.S. Dollar, which typically has a scale of two.

In this example, you initially set appscale=0 and scale=2. Thus in the interface, BigDecimal values for money data types have a scale of zero but are stored in the database with a scale of two. Later, during your conversion to multicurrency, you remove the appscale attribute from datatypes.xml. In its place, you use the storageScale attributes in the currency.xml configuration files for each currency to specify the scale of each currency.

Otherwise, you must re-create monetary columns during an upgrade to have a scale value of two. The Guidewire upgrade tool does not support changes in the scale of monetary columns.

The following rules and restrictions apply:

  • Set the value for appscale to the largest number of decimal positions that the currency you currently use requires. This value sets the scale for monetary amounts in the interface.
  • Set the value for scale to the largest number of decimal positions that the currencies you plan to use in the future require. This value sets the scale for monetary amounts in the database.
  • The value for appscale must be less than the value for scale.
  • If you do not set a value for appscale, then PolicyCenter uses the value for scale in the user interface and in the database.
Important: Guidewire does not use the appscale attribute in the base configuration. If you want to use this attribute, then you must add this attribute to the <MoneyDataType> element in datatypes.xml. Use the appscale attribute only in single currency mode. In multicurrency mode, use the storageScale attribute in the currency.xml file for each currency.