Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

KC_SEND_MESSAGE - Nachricht senden (BS2000-Systeme)

Mit KC_SEND_MESSAGE können Sie eine Nachricht an ein, mehrere oder alle aktiven Terminals einer UTM-Anwendung auf einem BS2000-System senden. Der Text der Nachricht darf bis zu 74 Zeichen lang sein und wird im Datenbereich an UTM übergeben. Als Nachricht sendet UTM dann die Meldung K023 mit der angegebenen Nachricht als Insert. Sie wird standardmäßig in der Systemzeile am Terminal ausgegeben. Das Meldungsziel der Meldung K023 kann jedoch auch geändert werden. Ist für die UTM-Meldung K023 das Meldungsziel PARTNER ausgewählt (siehe openUTM-Handbuch „Meldungen, Test und Diagnose auf BS2000-Systemen“), können Sie die Nachricht auch an eine, mehrere oder alle konnektierten TS-Anwendungen senden. Die Nachricht geht nur an Dialog-Partner (LTERM mit USAGE=D).

Mit KC_SEND_MESSAGE können Sie:

  • eine Nachricht an alle Terminals senden, die zur Zeit mit der Anwendung verbunden sind. Dies gilt auch für Terminals, die über einen LTERM-Pool mit der Anwendung verbunden sind.

  • eine Nachricht an alle TS-Anwendungen senden, die mit der UTM-Anwendung verbunden sind, sofern das Meldungsziel PARTNER für K023 generiert ist.

  • eine Nachricht an einen bestimmten Terminal-Benutzer oder, vorausgesetzt das Meldungsziel PARTNER ist generiert, an eine bestimmte TS-Anwendung senden. In diesem Fall müssen Sie im Identifikationsbereich den Namen des LTERM-Partners angeben, über den das Terminal mit der Anwendung verbunden ist. Voraussetzung für das Zustellen der Nachricht ist, dass das Terminal zum Zeitpunkt des KC_SEND_MESSAGE-Aufrufs mit der Anwendung verbunden ist.

    Wollen Sie die Nachricht an einen bestimmten Benutzer senden, dann können Sie den LTERM-Partner, über den der Benutzer bei der Anwendung angemeldet ist, wie folgt ermitteln:

    Sie fordern mit KC_GET_OBJECT zunächst Informationen über die Benutzerkennung an, mit der sich der Benutzer bei der Anwendung angemeldet hat (Objekttyp KC_USER).

    UTM liefert dann die Eigenschaften der Benutzerkennung in der Datenstruktur kc_user_str zurück. Ist der Benutzer zum Zeitpunkt der Abfrage mit der Anwendung verbunden, dann steht im Feld lterm_curr der Name des LTERM-Partners, über den der Benutzer angemeldet ist. Diesen Namen übergeben Sie beim Senden der Nachricht mit KC_SEND_MESSAGE im Identifikationsbereich.


Ablauf / Transaktionssicherung

Ein Aufruf von KC_SEND_MESSAGE unterliegt nicht der Transaktionssicherung. Er ist nicht durch einen RSET-Aufruf in derselben Transaktion rücksetzbar.

Geben Sie im Identifikationsbereich keinen Empfänger an und setzen Sie im Parameterbereich obj_number=0, dann ermittelt UTM alle derzeit aktiven LTERM-Partner, die mit usage_type='D' eingetragen sind, und sendet ihnen die Nachricht zu. Bei der Rückkehr in das Teilprogramm wurde die Nachricht bereits gesendet.

Geben Sie im Identifikationsbereich den Namen eines LTERM-Partners an und setzen im Parameterbereich obj_number=1, dann bedeutet die erfolgreiche Bearbeitung des KC_SEND_MESSAGE-Aufrufs, dass die Nachricht an diesen LTERM-Partner gesendet wurde. Ist der LTERM-Partner zur Zeit nicht erreichbar, dann liefert UTM einen entsprechenden Returncode zurück.

Versorgung der zu übergebenden Bereiche

Funktion des Aufrufs

Angabe im

Parameterbereich 1

Identifikationsbereich

Selektionsbereich

Datenbereich


Nachricht an alle aktiven LTERM-Partner senden

obj_number: 0

                                    

——

——

Nachricht

Nachricht an einen LTERM-Partner senden

obj_number: 1

Name des LTERM-Partners

——

Nachricht

1 In allen Fällen muss im Parameterbereich der Operationscode KC_SEND_MESSAGE angegeben werden.

Versorgung der Parameter

Parameterbereich

Feldname

Inhalt

version

KC_ADMI_VERSION_1

retcode

KC_RC_NIL

version_data

KC_VERSION_DATA_11

opcode

KC_SEND_MESSAGE

obj_number

1 / 0

id_lth

Länge Objektname / 0

select_lth

0

data_lth

Länge  der Nachricht

Identifikationsbereich

Objektname / —

Selektionsbereich

Datenbereich

Nachricht

KDCADMI-Aufruf

KDCADMI (&parameter_area, &identification_area, NULL, &data_area) oder
KDCADMI (&parameter_area, NULL, NULL, &data_area)

Rückgaben von UTM

Parameterbereich

Feldname

Inhalt

retcode

Returncodes


obj_number

In obj_number geben Sie an, ob die Nachricht an alle derzeit aktiven LTERM-Partner gesendet werden soll, oder nur an einen bestimmten LTERM-Partner.

  • obj_number=0 bedeutet:
    Die Nachricht soll an alle aktiven LTERM-Partner gesendet werden. Als Adresse des Identifikationsbereichs muss der Nullpointer übergeben werden.

  • obj_number=1 bedeutet:
    Die Nachricht soll nur an einen LTERM-Partner gesendet werden. Der Name des LTERM-Partners ist im Identifikationsbereich zu übergeben.

id_lth

In id_lth ist die Länge des Identifikationsbereichs anzugeben. D.h.:

  • bei obj_number=0 müssen Sie id_lth=0 setzen.

  • bei obj_number=1 müssen Sie in id_lth die Länge des Objektnamens angeben, der im Identifikationsbereich übergeben wird.

data_lth

Länge der Nachricht, die gesendet werden soll. Die Nachricht müssen Sie im Datenbereich übergeben. Es muss sein: 1 <= data_lth <= 74.

Identifikationsbereich

Wie Sie den Identifikationsbereich versorgen müssen, ist abhängig von obj_number.

  • bei obj_number=0 müssen Sie beim KC_SEND_MESSAGE-Aufruf den Nullpointer übergeben.

  • bei obj_number=1 müssen Sie im Identifikationsbereich die Union kc_id_area mit dem Namen des LTERM-Partners angeben (Feld kc_name8), an den die Nachricht gesendet werden soll.

Datenbereich

Im Datenbereich ist die Nachricht, die UTM senden soll, als Character-String zu übergeben. Die Nachricht darf nicht länger als 74 Zeichen sein. 

retcode

Im Feld retcode liefert UTM den Returncode des Aufrufs zurück. Neben den im Abschnitt „Returncodes" aufgelissteten Returncodes können zusätzlich folgende Returncodes auftreten.


Maincode = KC_MC_REJECTED

Der Aufruf wurde von UTM abgewiesen.

Subcodes:

KC_SC_NOT_EXISTENT

Der im Identifikationsbereich angegebene Name ist unbekannt, ein LTERM-Partner mit diesem Namen existiert nicht.

KC_SC_NOT_ALLOWED

Für den im Identifikationsbereich angegebenen LTERM-Partner bzw. für den Client, der diesem LTERM-Partner zugeordnet ist, ist die Operation nicht zulässig.
Mögliche Gründe für die Ablehnung sind:

  • Es besteht derzeit keine Verbindung zu dem Client; der LTERM-Partner ist nicht aktiv.

  • Dem LTERM-Partner ist derzeit kein Client zugeordnet.

  • Der angegebene LTERM-Partner ist kein Dialog-Partner, d.h. er wurde mit usage_type='O' konfiguriert.

  • Der Client, der dem angegebenen LTERM-Partner zugeordnet ist, wurde aus der Konfiguration gelöscht.

KC_SC_DELETED

Der angegebene LTERM-Partner existiert nicht mehr, er wurde aus der Konfiguration der Anwendung gelöscht.