<HTML>
<HEAD> <META http-equiv="Content-Type" content="text/html; charset=windows-1252"> <META name="GENERATOR" content="Microsoft FrontPage 4.0"> <META name="ProgId" content="FrontPage.Editor.Document"> <TITLE>COMMUNICATION</TITLE> <link rel="stylesheet" href="../../gaussr3.css" tppabs="http://www.gaussr3.com/gaussr3.css" type="text/css"> </HEAD> <BODY><p align="left">⚠ <b>
<span class="titulo">COMMUNICATION</span>⚠ </b>
</p>
⚠ <B>
Definicin⚠ </B>
</P>
<P align="left" class="gaussr3">Permite realizar comunicacin directa "programa-a-programa"
(CPI-C) definida por IBM en el contexto de los estndares SAA.</P>
<P align="left" class="gaussr3">⚠ <B>
Sintaxis:⚠ </B>
</P>
<rc> se actualiza con el cdigo de retorno de la sentencia.</p>
<pre class="gaussr3">COMMUNICATION ALLOCATE ID <id>
[ RETURNCODE <rc> ].</pre> <p class="gaussr3">Establece la conexin con el otro programa. Esta sentenciadebe estar a continuacin de la variante anterior. En el campos <rc> se actualiza con el cdigo de retorno de la sentencia.</p>
<pre class="gaussr3">COMMUNICATION ACCEPT ID <id>
[ RETURNCODE <rc> ].</pre> <p class="gaussr3">Acepta la conexin requerida por el programa que controla lacomunicacin. En el campo <rc> se actualiza con el cdigo de retorno de la sentencia.</p>
<pre class="gaussr3">COMMUNICATION SEND ID <id> BUFFER <f>
[ RETURNCODE <rc> ] [ LENGTH <longitud> ].</pre> <p class="gaussr3">Envo de datos al programa principal. Los datos enviados seencuentran en el campo <f>. En el campo <rc> se actualiza con el cdigo de retorno de la sentencia. La clusula LENGTH se utiliza para especificar la longitud del campo <f>.</p>
<pre class="gaussr3">COMMUNICATION RECEIVE ID <id> BUFFER <f> DATAINFO <d> STATUSINFO <s>
[ RETURNCODE <rc> ] [ LENGTH <longitud> ] [ RECEIVED <m> ] [ HOLD ].</pre> <p class="gaussr3">Recibe datos de otro programa sobre el campo <f>. Enel campo <rc> se actualiza con el cdigo de retorno de la sentencia. La clusula LENGTH se utiliza para especificar la longitud del campo <f>. Despus de la llamada el campo <m> contiene el nmero de bytes recibidos. Con la clusula HOLD el proceso espera la recepcin completa de los datos.</p>
<pre class="gaussr3">COMMUNICATION DEALLOCATE ID <id>
[ RETURNCODE <rc> ].</pre> <p class="gaussr3">Cierra la conexin "programa-a-programa" y liberatodos los recursos utilizados. En el campo <rc> se actualiza con el cdigo de retorno de la sentencia.</p>
<p class="gaussr3">⚠ <b>
Ejemplo 1:⚠ </b>
</p>
DESTINATION(8) TYPE C, RETURN_CODE LIKE SY-SUBRC.
DATA: CONVID TYPE CONVERSATION_ID,
DEST TYPE DESTINATION VALUE 'C00', CPIC_RC TYPE RETURN_CODE.
INCLUDE RSCPICDF.
COMMUNICATION INIT DESTINATION DEST
ID CONVID RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: /'COMMUNICATION INIT, RC = ', CPIC_RC. EXIT.
ENDIF.
⚠ <b>
Ejemplo 2:⚠ </b>
</pre>
DESTINATION(8) TYPE C, RETURN_CODE LIKE SY-SUBRC.
DATA: CONVID TYPE CONVERSATION_ID,
DEST TYPE DESTINATION VALUE 'C00', CPIC_RC TYPE RETURN_CODE.
INCLUDE RSCPICDF.
COMMUNICATION INIT DESTINATION DEST
ID CONVID RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: /'COMMUNICATION INIT, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION ALLOCATE ID CONVID RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK.WRITE: /'COMMUNICATION ALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.
⚠ <b>
Ejemplo 3:⚠ </b>
</pre>
TYPES: CONVERSATION_ID(8) TYPE C, RETURN_CODE LIKE SY-SUBRC. DATA: CONVID TYPE CONVERSATION_ID, CPIC_RC TYPE RETURN_CODE. INCLUDE RSCPICDF. COMMUNICATION ACCEPT ID CONVID RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK. EXIT. ENDIF.
ENDFORM.
⚠ <b>
Ejemplo 4:⚠ </b>
</pre>
DESTINATION(8) TYPE C, RETURN_CODE LIKE SY-SUBRC.
DATA: CONVID TYPE CONVERSATION_ID,
DEST TYPE DESTINATION VALUE 'C00', CPIC_RC TYPE RETURN_CODE.
INCLUDE RSCPICDF.
COMMUNICATION INIT DESTINATION DEST
ID CONVID RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: /'COMMUNICATION INIT, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION ALLOCATE ID CONVID RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK.WRITE: /'COMMUNICATION ALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.
RECORD = 'Prueba de mensaje'. COMMUNICATION SEND ID CONVIDBUFFER RECORD LENGTH LENG RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION SEND, RC = ', CPIC_RC. EXIT.
ENDIF.
⚠ <b>
Ejemplo 5:⚠ </b>
</pre>
TYPES: CONVERSATION_ID(8) TYPE C, RETURN_CODE LIKE SY-SUBRC, C_INFO(4) TYPE X. DATA: CONVID TYPE CONVERSATION_ID, CPIC_RC TYPE RETURN_CODE, RECORD(80) TYPE C, DINFO TYPE C_INFO, SINFO TYPE C_INFO. INCLUDE RSCPICDF.</pre>
<pre class="gaussr3"> COMMUNICATION ACCEPT ID CONVID
RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK. EXIT. ENDIF.</pre>
<pre class="gaussr3"> COMMUNICATION RECEIVE ID CONVID
BUFFER RECORD STATUSINFO SINFO DATAINFO DINFO RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK. EXIT. ENDIF.
ENDFORM.
</pre> <p class="gaussr3">⚠ <b>
Ejemplo 6:⚠ </b>
</p>
<pre class="gaussr3">TYPES: CONVERSATION_ID(8) TYPE C,
DESTINATION(8) TYPE C, RETURN_CODE LIKE SY-SUBRC, C_INFO(4) TYPE X.
DATA: CONVID TYPE CONVERSATION_ID,
CPIC_RC TYPE RETURN_CODE, DEST TYPE DESTINATION VALUE 'C00'.</pre>
<pre class="gaussr3">DATA: RECORD(80) TYPE C,
LENG TYPE I VALUE 20.</pre>
<pre class="gaussr3">INCLUDE RSCPICDF.</pre>
<pre class="gaussr3">COMMUNICATION INIT DESTINATION DESTID CONVID RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION INIT, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION ALLOCATE ID CONVIDRETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION ALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.
RECORD = 'Prueba de mensaje'. COMMUNICATION SEND ID CONVIDBUFFER RECORD LENGTH LENG RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION SEND, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION DEALLOCATE ID CONVIDRETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION DEALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.</pre>
<p class="gaussr3">⚠ <b>
Ejemplo 7:⚠ </b>
</p>
<pre class="gaussr3">PROGRAM ZCPICTST.
TYPES: CONVERSATION_ID(8) TYPE C,
DESTINATION(8) TYPE C, RETURN_CODE LIKE SY-SUBRC, C_INFO(4) TYPE X.</pre>
<pre class="gaussr3">DATA: BEGIN OF CONNECT_STRING,
REQID(4) VALUE 'CONN', TYPE(4) VALUE 'CPIC', MODE(4) VALUE '1 ', MANDT(3) VALUE '000', NAME(12) VALUE 'CPICUSER', PASSW(8) VALUE 'CPIC', LANGU(1) VALUE 'D', KORRV(1), REPORT(8) VALUE 'ZCPICTST', FORM(30) VALUE 'CPIC_EXAMPLE', END OF CONNECT_STRING.</pre>
<pre class="gaussr3">DATA: CONVID TYPE CONVERSATION_ID,
DEST TYPE DESTINATION VALUE 'R2-SYST', CPIC_RC TYPE RETURN_CODE, DINFO TYPE C_INFO, SINFO TYPE C_INFO.</pre>
<pre class="gaussr3">DATA: RECORD(80) TYPE C,
LENG TYPE I VALUE 20.
INCLUDE RSCPICDF.</pre>
<pre class="gaussr3">COMMUNICATION INIT DESTINATION DESTID CONVID RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION INIT, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION ALLOCATE ID CONVIDRETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION ALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.</pre>
<pre class="gaussr3">* Convert logon data to EBCDIC TRANSLATE CONNECT_STRING TO CODE PAGE '0100'. COMMUNICATION SEND ID CONVID BUFFER CONNECT_STRING. IF CPIC_RC NE CM_OK.WRITE: / 'COMMUNICATION ALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION RECEIVE ID CONVID
BUFFER RECORD DATAINFO DINFO STATUSINFO SINFO RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION RECEIVE, RC = ', CPIC_RC. EXIT.
ENDIF.
TRANSLATE RECORD FROM CODE PAGE '0100'.</pre>
<pre class="gaussr3">* Now begin user-specific data exchange RECORD = 'The quick brown fox jumps over the lazy dog'.</pre> <pre class="gaussr3">* Depending on the partner system, convert to anotherTRANSLATE RECORD TO CODE PAGE '0100'.</pre>
<pre class="gaussr3">COMMUNICATION SEND ID CONVIDBUFFER RECORD LENGTH LENG RETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION SEND, RC = ', CPIC_RC. EXIT.
ENDIF.
COMMUNICATION DEALLOCATE ID CONVIDRETURNCODE CPIC_RC.
IF CPIC_RC NE CM_OK.
WRITE: / 'COMMUNICATION DEALLOCATE, RC = ', CPIC_RC. EXIT.
ENDIF.</pre>
<pre class="gaussr3">PROGRAM ZCPICTST. INCLUDE RSCPICDF.FORM CPIC_EXAMPLE.
TYPES: CONVERSATION_ID(8) TYPE C, RETURN_CODE LIKE SY-SUBRC, C_INFO(4) TYPE X. DATA: CONVID TYPE CONVERSATION_ID, CPIC_RC TYPE RETURN_CODE, RECORD(80) TYPE C, DINFO TYPE C_INFO, SINFO TYPE C_INFO.</pre>
<pre class="gaussr3"> COMMUNICATION ACCEPT ID CONVID
RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK. EXIT. ENDIF. COMMUNICATION RECEIVE ID CONVID BUFFER RECORD STATUSINFO SINFO DATAINFO DINFO RETURNCODE CPIC_RC. IF CPIC_RC NE CM_OK AND CPIC_RC NE CM_DEALLOCATED_NORMAL. EXIT. ENDIF.
ENDFORM.</pre>
</BODY>
</HTML>