Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiele zu einzelnen KDCS-Aufrufen

In diesem Abschnitt finden Sie Codierbeispiele für folgende KDCS-Aufrufe:

  • MGET

  • MPUT

  • DPUT

  • MCOM mit DPUT im Auftrags-Komplex

  • APRO mit MPUT bei verteilter Verarbeitung

Da die übrigen KDCS-Aufrufe auf analoge Weise codiert werden, wird an dieser Stelle auf eine explizite Darstellung verzichtet.

Beim KDCS-Aufruf bezeichnet KCPAC die Adresse des KDCS-Parameterbereichs und NB die Adresse des Nachrichtenbereichs; es wird angenommen, dass das COPY-Element KCOPC (Konstanten für die Operationscodes) verwendet wird.

MGET-Aufruf

  • Eine unformatierte Dialog-Nachricht von genau 80 Bytes Länge soll empfangen werden. Wurden weniger als 80 Zeichen eingelesen, soll eine erneute Eingabe angefordert werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MGET   TO KCOP.
    MOVE 80     TO KCLA.
    MOVE SPACES TO KCMF.
    CALL "KDCS" USING KCPAC, NB.
     IF KCRCCC NOT = ZERO
       THEN PERFORM MGET-RETURN-CODE.  1)
     IF KCRLM NOT = KCLA
       THEN PERFORM WIEDERHOLUNG.      2)
    

    1) Wurden mehr als 80 Zeichen eingelesen, wird eine Fehlerbehandlung durchgeführt.

    2) In der Routine WIEDERHOLUNG wird eine Aufforderung zur Eingabe-Wiederholung an das Terminal gesendet. 

  • In einem laufenden Vorgang kann eine Eingabe kommen, die aus einer Kurznachricht, erzeugt mit der Funktionstaste F2, sowie aus Daten von 10 Zeichen besteht. Sie soll eine Sonderfunktion auslösen. Der Taste F2 wurde beim Generieren der Returncode 21Z zugewiesen.

     ...
     MOVE LOW-VALUE TO KCPAC.
     MOVE MGET TO KCOP.
     ...
     CALL "KDCS" USING KCPAC, NB.
     IF KCRCCC = "21Z"                   1)
        THEN PERFORM MGET-2.
     ...
    MGET-2.                                2)
     MOVE LOW-VALUE TO KCPAC.
     MOVE MGET   TO KCOP.
     MOVE 10     TO KCLA.
     MOVE SPACES TO KCMF.
     CALL "KDCS" USING KCPAC, NB.
     IF KCRCCC NOT = ZERO
        THEN PERFORM MGET-RETURN-CODE.
    

    1) Eine Sonderfunktion wird abgefragt.

    2) Für die 10 Zeichen ist ein weiterer MGET erforderlich.

  • BS2000-Systeme:
    Das Format "BILD15" wurde von einem Terminal angefordert. Die Länge der ungeschützten Daten beträgt 500 Zeichen in verschiedenen Formatfeldern. Dieses Format soll im Programm empfangen werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MGET       TO KCOP.
    MOVE 500        TO KCLA.
    MOVE "*BILD15 " TO KCMF.
    CALL "KDCS" USING KCPAC, IBILD15.
    IF KCRCCC = "05Z" GO TO FORMAT-FEHLER.      1)
    IF KCRCCC NOT = ZERO GO TO MGET-RETURN-CODE.
    ...
    

    1) In der Routine ’FORMAT-FEHLER’ muss das Format nochmals ausgegeben werden, um mit dem richtigen Format weiterarbeiten zu können.

MPUT-Aufruf

  • Eine unformatierte Nachricht von 80 Bytes soll an das Terminal gesendet werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MPUT   TO KCOP.
    MOVE "NE"   TO KCOM.
    MOVE 80     TO KCLM.
    MOVE SPACES TO KCRN.
    MOVE SPACES TO KCMF.
    MOVE ZERO   TO KCDF.
    CALL "KDCS" USING KCPAC, NB.
    IF KCRCCC NOT = ZERO
       THEN PERFORM MPUT-RETURN-CODE.
    
  • BS2000-Systeme:
    Das Format "BILD15" wurde von einem Terminal angefordert. Die Länge der ungeschützten Daten beträgt 500 Zeichen in verschiedenen Formatfeldern. Dieses Format soll im Programm empfangen werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MGET       TO KCOP.
    MOVE 500        TO KCLA.
    MOVE "*BILD15 " TO KCMF.
    CALL "KDCS" USING KCPAC, IBILD15.
    IF KCRCCC = "05Z" GO TO FORMAT-FEHLER.      1)
    IF KCRCCC NOT = ZERO GO TO MGET-RETURN-CODE.
    ...
    

    1) In der Routine ’FORMAT-FEHLER’ muss das Format nochmals ausgegeben werden, um mit dem richtigen Format weiterarbeiten zu können.

  • BS2000-Systeme:
    Eine formatierte Nachricht von 500 Bytes soll an das Terminal geschickt werden. Der Name des *Formats ist "BILD15". Der Bildschirm soll vorher gelöscht werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MPUT      TO KCOP.
    MOVE "NE"      TO KCOM.
    MOVE 500       TO KCLM.
    MOVE SPACES    TO KCRN.
    MOVE "*BILD15" TO KCMF.
    MOVE KCREPL    TO KCDF.           1)
    CALL "KDCS" USING KCPAC, NB.
    IF KCRCCC NOT = ZERO
       THEN PERFORM MPUT-RETURN-CODE.
    

    1) REPLACE wird bei Formatwechsel standardmäßig ausgeführt. Die Ausgabe erfolgt, um Fehler wegen undefinierter Feldinhalte auszuschließen.

  • BS2000-Systeme:
    In einem *Format "BILD10", das laut letzter Eingabe am Terminal noch vorhanden ist, sollen als Antwort alle ungeschützten Felder gelöscht werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE MPUT      TO KCOP.
    MOVE "NE"      TO KCOM.
    MOVE ZEROES    TO KCLM.
    MOVE SPACES    TO KCRN.
    MOVE "*BILD10" TO KCMF.
    MOVE KCERAS    TO KCDF.
    CALL "KDCS" USING KCPAC, NB.
    IF KCRCCC NOT = ZERO
       THEN PERFORM MPUT-RETURN-CODE.
    

DPUT-Aufruf

  • Ein Asynchron-Auftrag mit einer Nachricht von 11 Zeichen soll am 11.11. (= 315. Tag im Jahr) um 11.11 Uhr an ein Teilprogramm gegeben werden (absolute Zeitangabe). Der TAC lautet "ALAAF".

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE DPUT    TO KCOP.
    MOVE "NE"    TO KCOM.
    MOVE 11      TO KCLM.
    MOVE "ALAAF" TO KCRN.
    MOVE ZERO    TO KCDF.
    MOVE SPACES  TO KCMF.
    MOVE "A"     TO KCMOD.
    MOVE "315"   TO KCTAG.
    MOVE "11"    TO KCSTD.
    MOVE "11"    TO KCMIN.
    MOVE "00"    TO KCSEK.
    CALL "KDCS" USING KCPAC, NB.
    IF KCRCCC NOT = ZERO
       THEN PERFORM DPUT-RETURN-CODE.
    
  • Eine Asynchron-Nachricht von 80 Zeichen soll nach 1 Stunde an das Terminal ’DSS1’ ausgegeben werden (relative Zeitangabe). Dabei soll die Bildschirmfunktion ’akustischer Alarm’ (BEL) ausgelöst werden.

    ...
    MOVE LOW-VALUE TO KCPAC.
    MOVE DPUT       TO KCOP.
    MOVE "NE"       TO KCOM.
    
    MOVE 80         TO KCLM.
    MOVE "DSS1    " TO KCRN.
    MOVE SPACES     TO KCMF.
    MOVE KCALARM    TO KCDF.
    MOVE "R"        TO KCMOD.
    MOVE "000"      TO KCTAG.
    MOVE "01"       TO KCSTD.
    MOVE "00"       TO KCMIN.
    MOVE "00"       TO KCSEK.
    CALL "KDCS" USING KCPAC, NB.
    IF KCRCCC NOT = ZERO
       THEN PERFORM DPUT-RETURN-CODE.

Auftrags-Komplex: MCOM- und DPUT-Aufruf

Eine formatierte Asynchron-Nachricht (200 Byte) soll am selben Tag um 18.00 Uhr auf dem Drucker PRINTER2 ausgedruckt werden. Die Quittung vom Drucker wird per Programm behandelt.

Bei positiver Quittung erhält ein Asynchron-Programm mit dem TAC PRINTPOS einen Quittungsauftrag mit einer Nachricht in der Länge von 20 Byte, bei negativer Quittung wird ein Asynchron-Programm mit dem TAC PRINTNEG gestartet (ohne Nachricht). Zur negativen Quittung wird eine Benutzerinformation in der Länge von 80 Byte protokolliert. Diese kann mit DADM UI gelesen werden, sobald der Quittungsauftrag zum Hauptauftrag wird. Quittungsaufträge können nicht über eine Auftrags-ID angesprochen werden.

Der Auftrags-Komplex wird durch zwei MCOM-Aufrufe eingerahmt; dabei werden die Ziele von Druckauftrag (=Basisauftrag) und Quittungsaufträgen im Aufruf MCOM BC festgelegt; die Komplexidentifikation lautet "*PRICOMP".

    ...
COMPLEX-BEGIN.
    MOVE LOW-VALUE  TO KCPAC.
    MOVE MCOM       TO KCOP.
    MOVE BC         TO KCOM.
    MOVE "PRINTER2" TO KCRN.
    MOVE "PRINTPOS" TO KCPOS.
    MOVE "PRINTNEG" TO KCNEG.
    MOVE "*PRICOMP" TO KCCOMID.
    CALL "KDCS" USING KCPAC.
    IF KCRCCC NOT = ZERO
       THEN PERFORM MCOM-RETURN-CODE.
DPUT-NE.
    MOVE DPUT       TO KCOP.
    MOVE "NE"       TO KCOM.
    MOVE 200        TO KCLM.
    MOVE "*PRICOMP" TO KCRN.
    MOVE "*FORM1"   TO KCMF. *** nur auf BS2000-Systemen)
    MOVE ZERO       TO KCDF.
    MOVE "A"        TO KCMOD.
    MOVE KCTJHVG    TO KCTAG.
    MOVE "18"       TO KCSTD.
    MOVE "00"       TO KCMIN.
    MOVE "00"       TO KCSEK.
    CALL "KDCS" USING KCPAC, NB1.
    IF KCRCCC NOT = ZERO
       THEN PERFORM DPUT-RETURN-CODE.
DPUT-PLUS-T.

***************************************************************
* Acknowledgement job in positive case
***************************************************************
     MOVE LOW-VALUE  TO KCPAC.
     MOVE DPUT       TO KCOP.
     MOVE "+T"       TO KCOM.
     MOVE 20         TO KCLM.
     MOVE "*PRICOMP" TO KCRN.
     MOVE SPACES     TO KCMF.
     MOVE ZERO       TO KCDF.
     CALL "KDCS" USING KCPAC, NB2.
     IF KCRCCC NOT = ZERO
        THEN PERFORM DPUT-RETURN-CODE.
 DPUT-USER-INFO.
***************************************************************
* User-Information for negative case
***************************************************************
     MOVE LOW-VALUE  TO KCPAC.
     MOVE DPUT       TO KCOP.
     MOVE "-I"       TO KCOM.
     MOVE 80         TO KCLM.
     MOVE "*PRICOMP" TO KCRN.
     MOVE SPACES     TO KCMF.
     MOVE ZERO       TO KCDF.
     CALL "KDCS" USING KCPAC, NB3.
     IF KCRCCC NOT = ZERO
        THEN PERFORM DPUT-RETURN-CODE.
 DPUT-MINUS-T.
***************************************************************
* Acknowledgement job in negative case
***************************************************************
     MOVE LOW-VALUE  TO KCPAC.
     MOVE DPUT       TO KCOP.
     MOVE "-T"       TO KCOM.
     MOVE ZERO       TO KCLM.
     MOVE "*PRICOMP" TO KCRN.
     MOVE SPACES     TO KCMF.
     MOVE ZERO       TO KCDF.
     CALL "KDCS" USING KCPAC, NB4.
     IF KCRCCC NOT = ZERO
        THEN PERFORM DPUT-RETURN-CODE.
 COMPLEX-END.
     MOVE LOW-VALUE  TO KCPAC.
     MOVE MCOM       TO KCOP.
     MOVE EC         TO KCOM.
     MOVE "*PRICOMP" TO KCCOMID.
     CALL "KDCS" USING KCPAC.
     IF KCRCCC NOT = ZERO
        THEN PERFORM MCOM-RETURN-CODE.
     ...

Beispiel für verteilte Verarbeitung: APRO-Aufruf mit anschließendem MPUT

Vom Auftraggeber-Vorgang aus soll der Dialog-Vorgang mit dem Transaktionscode LTAC1 der Anwendung PARTNER1 adressiert werden (zweistufige Adressierung). Dabei soll dem Auftragnehmer-Vorgang die Vorgangs-Identifikation >VGID1 zugeordnet werden. Anschließend wird eine MPUT-Nachricht mit Länge 100 im Zeilenmodus an die Partner-Anwendung geschickt.

...
MOVE LOW-VALUE  TO KCPAC.
MOVE APRO       TO KCOP.
MOVE "DM"       TO KCOM.
MOVE ZERO       TO KCLM.
MOVE "LTAC1   " TO KCRN.
MOVE "PARTNER1" TO KCPA.
MOVE ">VGID1  " TO KCPI.
CALL "KDCS" USING KCPAC.
IF KCRCCC NOT = ZERO
   THEN PERFORM APRO-RETURN-CODE.
...
MOVE LOW-VALUE  TO KCPAC.
MOVE MPUT     TO KCOP.
MOVE "NE"     TO KCOM.
MOVE 100      TO KCLM.
MOVE ">VGID1" TO KCRN.
MOVE SPACES   TO KCMF.
MOVE ZEROES   TO KCDF.
CALL "KDCS" USING KCPAC, NB.
IF KCRCCC NOT = ZERO
   THEN PERFORM MPUT-RETURN-CODE.