Après beaucoup de googler et de lire la documentation IBM, j'ai pu mettre et obtenir des messages dans MQ de UFT. .. Ci-dessous dans l'extrait de code qui a fonctionné pour moi .. J'espère que cela aide quelqu'un .. Je travaillais sur PUT et GET séparément, d'où il pourrait y avoir une certaine répétition dans le code.
Condition préalable pour ce .. Vous devez télécharger MQ client à partir du site IBM et l'installer sur PC où UFT est installé .. client IBM MQ est un logiciel gratuit
Dim oMQEnvironment
Dim oMQM
Dim oMQC
Dim oMQMessage
Dim oMQQueue
Dim intOpenOptions
strMQMDLLPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll"
strHostName= "Host Name"
intPort = "Port Number"
strChannel ="Channel Name"
strMessage ="UFT Test Message"
strMQManager = "Quemanager Name"
strMessageQueue = "Queue Name"
'Cette partie du code est manifestement copié de l'un des messages en ligne. Affichera le lien une fois que je trouve à nouveau
« pour l'application (UFT) pour se connecter à un gestionnaire de file d'attente en mode client
Set oMQEnvironment = DotNetFactory.CreateInstance("IBM.WMQ.MQEnvironment",strMQMDLLPath)
'Initize the Environment
With oMQEnvironment
.HostName = strHostName
.Port = intPort
.Channel = strChannel
End with
On Error Resume Next
'Create MQ Instatnces
Set oMQM = DotnetFactory.CreateInstance("IBM.WMQ.MQQueueManager",strMQMDLLPath)
'Check if MQM Connected
If Err.Number <> 0 Then
Reporter.ReportEvent micFail , "Step: Creating MQM Object" , "Unable to Connect to MQ Manager at" & strHostName
'Exit Test
End If
Set oMQC = DotnetFactory.CreateInstance("IBM.WMQ.MQC",strMQMDLLPath)
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
'Declare Q open options
intOpenOptions = oMQC.MQOO_OUTPUT or oMQC.MQOO_FAIL_IF_QUIESCING ' 16 + 8192
'Open the Q to post the messages
If strRemoteMQManager = "" Then
Set oMQQueue = oMQM.AccessQueue(strMessageQueue , intOpenOptions)
Else
Set oMQQueue = oMQM.AccessQueue(strMessageQueue , intOpenOptions ,strRemoteMQManager, "","")
End If
'Format Message
With oMQMessage
.CharacterSet = 819
.WriteString(strMessage)
End with
'Post Message
With oMQQueue
.Put(oMQMessage)
.Close()
End With
Maintenant, pour faire passer le message de MQ
Dim oMQEnvironment
Dim oMQM
Dim oMQC
Dim oMQMessage
Dim oMQQueue
strMQMDLLPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll"
strHostName= "host name"
intPort = "port number"
strChannel ="channel name"
strMessage ="UFT Test Message"
strMessageQueue = "message queue intended to access"
strMQManager = "mq manager name"
strRemoteMQManager=""
'Create MQ Instances
Set oMQC = DotnetFactory.CreateInstance("IBM.WMQ.MQC",strMQMDLLPath)
'set the properties of the Queue manager
Set properties = DotNetFactory.CreateInstance("System.Collections.Hashtable")
properties.Add oMQC.HOST_NAME_PROPERTY, strHostName
properties.Add oMQC.PORT_PROPERTY, intPort
properties.Add oMQC.CHANNEL_PROPERTY, strChannel
'access the queue manager
Set oMQM = DotnetFactory.CreateInstance("IBM.WMQ.MQQueueManager",strMQMDLLPath,strMQManager,properties)
'here We are trying to browse the message one by one and keep the messages on the queue.
'Declare Q open options
Set oMQQueue = oMQM.AccessQueue(strMessageQueue,oMQC.MQOO_BROWSE)
Set oMQGetMessageOptions = DotNetFactory.CreateInstance("IBM.WMQ.MQGetMessageOptions",strMQMDLLPath)
oMQGetMessageOptions.Options = oMQC.MQGMO_BROWSE_FIRST
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
oMQQueue.Get oMQMessage,oMQGetMessageOptions
Set mqGetNextMsgOpts = DotNetFactory.CreateInstance("IBM.WMQ.MQGetMessageOptions",strMQMDLLPath)
mqGetNextMsgOpts.Options = oMQC.MQGMO_BROWSE_NEXT
browseMessages = true
Do while browseMessages
on error resume next
messageText = oMQMessage.ReadString(oMQMessage.MessageLength)
'Print messageText
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
oMQQueue.Get oMQMessage,mqGetNextMsgOpts
if Err.Number <> 0 then browseMessages =false
'Clear both MsgID and CorrelID for next use.
oMQMessage.MessageId = oMQC.MQMI_NONE
oMQMessage.CorrelationId = oMQC.MQCI_NONE
Loop
'Cleanup
Set oMQQueue = Nothing
Set oMQMessage= Nothing
Set oMQOpenOptions= Nothing
Set oMQM= Nothing
Set oMQEnvironment = Nothing