docs: public boolean setupMessageHeaderFromCode(Message trxMessage, String strMessageCode, String strVersion)
      {
          TrxMessageHeader trxMessageHeader = (TrxMessageHeader)((BaseMessage)trxMessage).getMessageHeader();
          if ((trxMessageHeader == null) && (strMessageCode == null))
              return false;
          if (trxMessageHeader == null)
          {
              trxMessageHeader = new TrxMessageHeader(null, null);
              ((BaseMessage)trxMessage).setMessageHeader(trxMessageHeader);
          }
          if (strMessageCode == null)
              strMessageCode = (String)trxMessageHeader.get(TrxMessageHeader.MESSAGE_CODE);
          Utility.getLogger().info("Message code: " + strMessageCode);
          if (strMessageCode == null)
              return false;   // Message not found
          MessageProcessInfo recMessageProcessInfo = (MessageProcessInfo)this.getMessageProcessInfo(strMessageCode);
          if (recMessageProcessInfo == null)
              return false;   // Message not found
          MessageInfo recMessageInfo = (MessageInfo)((ReferenceField)this.getField(MessageProcessInfo.MESSAGE_INFO_ID)).getReference();
          if (recMessageInfo == null)
              return false;    // Impossible
          trxMessageHeader = recMessageInfo.addMessageProperties(trxMessageHeader);
          trxMessageHeader = this.addMessageProperties(trxMessageHeader);
          
          trxMessageHeader = this.addTransportProperties(trxMessageHeader, strVersion);
          return true;
      }