docs: public void addListeners()
      {
          super.addListeners();
          
          this.getMainRecord().addListener(new FileListener(null)
          {
              public int doRecordChange(FieldInfo field, int iChangeType, boolean bDisplayOption)
              {   // Return an error to stop the change
                  if (iChangeType == DBConstants.AFTER_ADD_TYPE)
                  {
                      strMessage = DBConstants.BLANK;
                      afterAdd();
                      if ((strMessage != null) && (strMessage.toUpperCase().startsWith("ERROR")))
                          return getTask().setLastError(strMessage);
                  }
                  return super.doRecordChange(field, iChangeType, bDisplayOption);
              }
          });
          
          MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager();
          if (messageManager != null)
          {
              Object source = this;
              BaseMessageFilter filter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null);
              filter.addMessageListener(this);
              messageManager.addMessageFilter(filter);
              m_intRegistryID = filter.getRegistryID();
          }
      }