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
appscaleto 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
scaleto 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
appscalemust be less than the value forscale. - If you do not set a value
for
appscale, then PolicyCenter uses the value forscalein the user interface and in the database.
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.