code: public int doRecordChange(FieldInfo field, int iChangeType, boolean bDisplayOption)
      {
          if (iChangeType == DBConstants.AFTER_UPDATE_TYPE)
          {
              Map<String,Object> properties = ((PropertiesField)this.getOwner().getField(UserInfo.PROPERTIES)).getProperties();
              if (properties != null)
              {
                  if (m_properties != null)
                  {
                      for (String strProperty : m_properties.keySet())
                      {
                          Object objValue = m_properties.get(strProperty);
                          if (!objValue.equals(properties.get(strProperty)))
                          {
                              String strValue = null;
                              if (properties.get(strProperty) != null)
                                  strValue = properties.get(strProperty).toString();
                              this.getOwner().getTask().getApplication().getSystemRecordOwner().setProperty(strProperty, strValue);
                              properties.remove(strProperty);
                          }
                      }                            
                  }
                  for (String strProperty : properties.keySet())
                  {
                      String strValue = properties.get(strProperty).toString();
                      this.getOwner().getTask().getApplication().getSystemRecordOwner().setProperty(strProperty, strValue);
                  }
              }
          }
          return super.doRecordChange(field, iChangeType, bDisplayOption);
      }
docs: Called when a change is the record status is about to happen/has happened.
  @param field If this file change is due to a field, this is the field.
  @param iChangeType The type of change that occurred.
  @param bDisplayOption If true, display any changes.
  @return an error code.
  ADD_TYPE - Before a write.
  UPDATE_TYPE - Before an update.
  DELETE_TYPE - Before a delete.
  AFTER_UPDATE_TYPE - After a write or update.
  LOCK_TYPE - Before a lock.
  SELECT_TYPE - After a select.
  DESELECT_TYPE - After a deselect.
  MOVE_NEXT_TYPE - After a move.
  AFTER_REQUERY_TYPE - Record opened.
  SELECT_EOF_TYPE - EOF Hit.