docs: public TrxMessageHeader addMessageProperties(TrxMessageHeader trxMessageHeader)
      {
          Map<String, Object> mapHeaderMessageInfo = trxMessageHeader.getMessageInfoMap();
          Map<String, Object> propMessageInfo = ((PropertiesField)this.getField(MessageInfo.MESSAGE_PROPERTIES)).loadProperties();
          propMessageInfo.put(TrxMessageHeader.INTERNAL_MESSAGE_CLASS, this.getField(MessageInfo.MESSAGE_CLASS).toString());
          
          MessageInfoType recMessageInfoType = (MessageInfoType)((ReferenceField)this.getField(MessageInfo.MESSAGE_INFO_TYPE_ID)).getReference();
          if (recMessageInfoType != null)
              propMessageInfo.put(TrxMessageHeader.MESSAGE_INFO_TYPE, recMessageInfoType.getField(MessageInfoType.CODE).toString());
          String schemaLocation = (String)propMessageInfo.get(SCHEMA_LOCATION);
          if (schemaLocation == null)
              schemaLocation = this.getField(MessageInfo.CODE).toString();
          if (schemaLocation != null)
              propMessageInfo.put(SCHEMA_LOCATION, schemaLocation);
          
          Record recRequestType = ((ReferenceField)this.getField(MessageInfo.REQUEST_TYPE_ID)).getReference();
          if ((recRequestType != null) && (recRequestType.getEditMode() == DBConstants.EDIT_CURRENT))
              propMessageInfo.put(TrxMessageHeader.MESSAGE_REQUEST_TYPE, recRequestType.getField(RequestType.CODE).toString());
          
          if (mapHeaderMessageInfo != null)
              mapHeaderMessageInfo.putAll(propMessageInfo);
          else
              mapHeaderMessageInfo = propMessageInfo;
          trxMessageHeader.setMessageInfoMap(mapHeaderMessageInfo);
          
          return trxMessageHeader;
      }