How to fix it

  1. Navigate to System Definition > Business Rules and open your Business Rule.
  2. Check the When field. If it's set to after, you need to call gr.update() after your setValue() calls.
  3. If in an after rule, modify your script to: current.setValue('field_name', 'value'); current.update();
  4. If it's a before rule, check for conflicting Business Rules by filtering System Definition > Business Rules by your table name.
  5. Sort by Order and look for other before or before rules with higher Order values that modify the same field.
  6. If found, either adjust the Order of your Business Rule to run last, or modify the conflicting rule's condition to avoid overwriting your value.
  7. For reference fields, verify you're using setValue() with the sys_id, not setDisplayValue() with the display name.
  8. Check field permissions by navigating to System Definition > Tables & Columns and searching for your table and field name.
  9. Verify the field's Read only checkbox is unchecked and no Default value is conflicting with your setValue().
  10. Add logging to verify your setValue() is executing: gs.info('Setting field to: ' + value); current.setValue('field', value);
💡

Test your fix by triggering the Business Rule and checking System Logs > System Log > All for your debug message, then verify the field value in the record.