Partager via


TI (Transaction Integrator) dans un environnement non-DPL

Un environnement non lié (autrement dit, un environnement non-DPL) est un environnement qui n’utilise pas la fonctionnalité IBM DPL (Distributed Program Link). Avec TI (Transaction Integrator), vous pouvez appeler un programme transactionnel (TP) mainframe qui utilise les commandes COBOL EXEC CICS RECEIVE INTO et EXEC CICS SEND FROM. Ces deux commandes COBOL sont utiles si vous souhaitez qu’un TP CICS prenne des responsabilités de conversation SNA (APPC/LU 6.2) et contourne ainsi le TP miroir. En d’autres termes, les commandes COBOL EXEC CICS RECEIVE INTO et EXEC CICS SEND FROM sont le plus souvent utilisées dans un environnement non lié pour transférer des données vers et à partir d’une unité logique (LU) de type 6.2 (APPC).

TI prend en charge le modèle LU 6.2 à la fois pour des environnements liés et des environnements non liés. Vous pouvez créer les types d’environnement distant (RE) suivants pour permettre la prise en charge de chaque modèle :

  • Liaison CICS à l’aide de LU 6.2 Utilisez-le dans un environnement IBM DPL qui utilise mirror TP.

  • CICS avec LU 6.2 Choisissez ce type dans un environnement non DPL qui contourne le TP miroir.

Séparer la logique métier de la logique de présentation

Beaucoup de clients utilisent TI dans un environnement non DPL. La seule préoccupation est alors de savoir si la logique de terminal est incorporée à la logique métier. Quand un TP COBOL prend en charge IBM DPL, la logique de présentation a déjà été séparée de la logique métier. Vous n’aurez donc probablement pas besoin de modifier le code COBOL. En revanche, si le TP a été écrit en vue de communiquer avec un terminal, vous devrez sans doute modifier le code COBOL pour séparer la logique métier de la logique de présentation.

L’exemple de code COBOL suivant montre comment gérer des recordsets non liés à l’aide des commandes COBOL EXEC CICS RECEIVE INTO et EXEC CICS SEND FROM :

*****************************************************  
* Example showing how to send unbounded recordsets  
* to a client application.  
*****************************************************  
 IDENTIFICATION DIVISION.  
  
 ENVIRONMENT DIVISION.  
  
 DATA DIVISION.  
  
 WORKING-STORAGE SECTION.  
  
* INPUT AREA  
 01  CUSTOMER-INPUT-NUMBER                PIC 9(9).  
  
* OUTPUT AREA  
 01  CUSTOMER-DATA.  
     05  LAST-NAME                        PIC X(20).  
     05  FIRST-NAME                       PIC X(20).  
  
* ONE ROW IN A DATABASE TABLE  
 01  INVOICES.  
     05  INVOICE-NUMBER                   PIC 9(10).  
     05  INVOICE-DATE                     PIC 9(7) COMP-3.  
     05  INVOICE-AMOUNT                   PIC S9(13)V9(2) COMP-3.  
     05  INVOICE-DESCRIPTION              PIC X(40).  
  
 LINKAGE SECTION.  
  
 PROCEDURE DIVISION.  
*  
*   Get the input customer account number from the  
*   client applicaton:  
*  
     MOVE LENGTH OF CUSTOMER-INPUT-NUMBER TO RECEIVE-LENGTH  
     EXEC-CICS RECEIVE INTO(CUSTOMER-INPUT-NUMBER)  
               LENGTH(RECEIVE-LENGTH)  
               END-EXEC.  
*  
*   Do some work; then send the first and last name back:  
*  
     MOVE LENGTH OF CUSTOMER-DATA TO SEND-LENGTH  
     EXEC-CICS SEND FROM(CUSTOMER-DATA)  
               LENGTH(SEND-LENGTH)  
               END-EXEC.  
*  
*   Follow regular data with unbounded table data that  
*   the client application sees as a recordset:  
*  
     MOVE LENGTH OF INVOICES TO SEND-LENGTH  
     PERFORM UNTIL        NO-MORE-INVOICES  
*  
*   Do some work to get the next row:  
*  
     MOVE DB-INVOICE-NUMBER TO INVOICE-NUMBER  
     MOVE DB-INVOICE-DATE   TO INVOICE-DATE  
     MOVE DB-INVOICE-AMOUNT TO INVOICE-AMOUNT  
     MOVE DB-INVOICE-DESC   TO INVOICE-DESCRIPTION  
*  
*   Send the row:  
*  
     EXEC-CICS SEND FROM(INVOICES)  
               LENGTH(SEND-LENGTH)  
               END-EXEC.  
     END-PERFORM.   

Voir aussi

Réponse à des besoins spécifiques du monde réel