Benutzerdefinierte TRMs und ELMs mit COMTIContext
Transaktionsintegratorentwickler (Transaction Integrator, TI) können benutzerdefinierte formatierte Transaktionsanforderungsmeldungen (TRMs) oder erweiterte Listenernachrichten (ELMs) von einem Clientprogramm an das CICS-System übergeben und benutzerdefinierte formatierte TRMs oder ELMs empfangen.
Benutzerdefinierte TRMs oder ELMs werden durch Kontextdaten übergeben. Die Kontextdaten sind im optionalen COMTIContext-Parameter enthalten, der im Clientanwendungscode definiert ist, und müssen der endgültige Parameter im Methodenaufruf sein. Ein TRM, das für den Host bestimmt ist, muss als benutzerdefinierter Typ (UDT) für das COM-Modell oder als Struktur für das .NET Framework-Modell definiert werden. Der Name des UDT muss mit den Zeichen TRMIN beginnen. Eine TRM-Antwort vom Host muss auch als UDT definiert werden. Der Name des UDT muss mit den Zeichen TRMOUT beginnen. Beispiele für gültige TRM-Namen sind TRMINMyVeryOwn, TRMINStandard, TRMOUTMyVeryOwn und TRMOUTStandard.
Die Typbibliothek oder -struktur kann mehrere TRM-Definitionen enthalten, aber Sie sollten nur eine TRM für jede Richtung (d. h. ein TRMIN und ein TRMOUT) im COMTIContext-Parameter in einem einzelnen Methodenaufruf einschließen. In Visual Basic wird z. B. jedes COMTIContext-Array als dynamisches Array von Varianten mit einer einzelnen Dimension deklariert (d. a. die Anzahl der Vorkommen wird nicht angegeben).
Wenn Sie mehrere TRMs für dieselbe Richtung definieren, verwendet die TI-Laufzeit nur das erste TRM, das im Kontextarray auftritt. (Unter bestimmten Umständen ist das erste TRM möglicherweise nicht immer das erste TRM, das Sie dem Kontextarray hinzugefügt haben.) Die TI-Laufzeit ignoriert die verbleibenden TRMs im Array, bis das verwendete TRM zerstört wird. Um sicherzustellen, dass die TI-Laufzeit das richtige TRM verwendet, fügen Sie einem Kontextarray nicht mehrere TRMs hinzu, die für dieselbe Richtung vorgesehen sind.
Hinweis
Die Clientanwendung, die das Context-Array bearbeitet, muss zur Laufzeit auf die entsprechende Datei zugreifen können. Wenn Sie Visual Basic6.0 verwenden, muss die Anwendung auf COMTIContext.dll zugreifen können. Wenn Sie Visual Basic .NET verwenden, muss die Anwendung auf Microsoft.HostIntegration.TI.ClientContext.dll zugreifen können.
Hinweis
Wenn Sie Visual Basic .NET verwenden, muss die als benutzerdefinierte TRM verwendete Datenstruktur einem Parameter innerhalb der Assembly zugeordnet sein. Daher müssen Sie eine Dummymethode innerhalb der Assembly, einen der Methode zugewiesenen Parameter und die Datenstruktur erstellen, die als TRM verwendet werden soll. Andernfalls wird verhindert, dass Sie innerhalb der Visual Basic .NET-Anwendung auf die Struktur verweisen. Das Zuordnen eines UDT zu einer Methode war in Visual Basic 6.0 nicht erforderlich, da Visual Basic 6.0 verweise auf UDTs erlaubte, die nicht Methoden zugeordnet sind.
Weitere Informationen
Transaktionsanforderungsnachrichten
Übergeben eines benutzerdefinierten TRM