Setting a currency field to Mandatory, is not taking into consideration the value of 0.00 which is populated by default in the system. Essentially, this invalidates the fact that the field was set to Mandatory, since it will always be populated with the value of 0.00, if nothing else, therefore it will always pass the 'Mandatory' validation.
Release or Environment
1. In the sys_dictionary record for the currency field you want to be mandatory, verify that the Mandatory checkbox is checked.
2. Create a business rule on the table with the currency field you want to be mandatory. The examples in this article are for the 'estimated_cost' column on the 'project_change_request' table. You can swap out any table and currency field you want in the example.
Business Rule Configuration:
WHEN TO RUN:
1. On Insert and Update
2. Filter the currency field when it is less than 0.01 (This is to make sure any format of 0.00 will trigger the invalid update, 0 or 0.0 or 0.00, etc.)
1. You can add a message if you want to
2. Make sure to check the box 'Abort Action' which is what will prompt the Invalid Update if the user doesn't enter a value greater than 0.
Here is how it looks when the user enters 0 for the mandatory currency field (this is with the optional message):