<html>
<head> <title>CALL TRANSACTION</title> </head> <BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000"> <p align="left">⚠ <b>
<span class="titulo">CALL TRANSACTION </span>⚠ </b>
</p>
<p align="left">⚠ <b>
Definicin⚠ </b>
</p>
<p align="left">La sentencia CALL TRANSACTION permite ejecutar
una transaccin.</p>
<p align="left">⚠ <b>
Sintaxis:⚠ </b>
</p>
<transaccin> puede ser un literal o una variable. Para retornar desde la transaccin al programa se utiliza la sentencia LEAVE PROGRAM.</p>
<ul>
<li>Con la clusula AND SKIP FIRST SCREEN adems de llamar a la sentencia indicada se puede saltar la primera pantalla de la transaccin. Esta accin debe ir combinada con el uso de parmetros SPA/GPA de los campos de la primera pantalla de la transaccin (sentencia⚠ <a href="set_parameter.htm" tppabs="set_parameter.htm">
SET PARAMETERS⚠ </a>
) para que el momento de la ejecucin de la transaccin, sta tome los parmtros de la memoria (sentencia⚠ <a href="get_parameter.htm" tppabs="get_parameter.htm">
GET PARAMETERS⚠ </a>
) y as, de esta forma, poder saltar la primera pantalla. Si para pasar la primera pantalla se necesita rellenar parametros que no indicamos, el sistema presenta la primera pantalla y ser el usuario el que realiza la entrada manualmente.</li> <li>Esta sentencia tiene una variante con la clusula USING que cambia totalmente el significado de la sentencia. Se utiliza como mtodo de batch-input.</li>
</ul>
<p>Sentencia utilizada para implementar el mtodo CALL TRANSACTION.</p> <pre>CALL TRANSACTION <transaccin> USING <tabla> [ MODE <modo> ] [ UPDATE <actualizacin> ] [ MESSAGES INTO <tabla-mensajes ].</pre> <p><transaccin> es el cdigo de la transaccin, a la cualvamos a realizar el batch-input. <tabla> es la tabla interna con los datos de batch-input (estructura BDCDATA). Si la transaccin devuelve algn tipo de mensaje, las siguientes variables del sistema guardan la siguiente informacin:</p>
<ul>
<li>SY-MSGID -> Identificador de mensaje (⚠ <a href="report.htm" tppabs="report.htm">
REPORT ..... MESSAGE-ID xx⚠ </a>
).</li> <li>SY-MSGTY -> Tipo de mensaje (A -> Abend, E-> Error, ...)</li> <li>SY-MSGNO -> Nmero de mensaje.</li> <li>SY-MSGV1 -> Valor 1 del mensaje (si existe).</li> <li>SY-MSGV2 -> Valor 2 del mensaje (si existe).</li> <li>SY-MSGV3 -> Valor 3 del mensaje (si existe).</li> <li>SY-MSGV4 -> Valor 4 del mensaje (si existe).</li>
</ul>
<p>La variable del sistema SY-SUBRC toma el valor 0 si el procesoha sido satisfactorio. En caso contrario toma un valor distinto de 0. Una llamada a una transaccin puede terminar satisfactoriamente si se realiza un⚠ <a href="commit_work.htm" tppabs="commit_work.htm">
COMMIT WORK⚠ </a>
, un⚠ <a href="call_screen.htm" tppabs="call_screen.htm">
CALL SCREEN⚠ </a>
con valor 0 o un⚠ <a href="leave_to_transaction.htm" tppabs="leave_to_transaction.htm">
LEAVE TO TRANSACTION⚠ </a>
<cdigo-transaccin>.</p>
<p>Con la clusula MODE especificamos el modo de ejecucin de
la transaccin. <modo> puede tener uno de los siguientes valores (el valor por defecto es A):</p>
<ol>
<li>A -> Se muestran todas las pantallas.</li> <li>E -> Se muestran slo las pantallas con error.</li> <li>N -> No se muestra ninguna pantalla.</li>
</ol>
<p>Con la clusula UPDATE especificamos el modo de actualizacinde la base de datos. <actualizacin> puede tener uno de los siguientes valores (el valor por defecto es A):</p>
<ol>
<li>A -> Modo asncrono.</li> <li>S -> Modo sncrono.</li>
</ol>
<p>Con la clusula MESSAGES INTO el sistema actualiza la tablainterna <tabla-mensajes> con todos los mensajes que se generan en la transaccin. La tabla interna debe tener la estructura BDCMSGCOLL.</p>
<p>Los errores que se pueden producir en tiempo de ejecucin son
los siguientes:</p>
<ol>
<li>CALL_TRANSACTION_NOT_FOUND -> Transaccin desconocida.</li> <li>CALL_TRANSACTION_IS_MENU -> La transaccin especificada es un men.</li> <li>CALL_TRANSACTION_USING_NESTED -> Se ha utilizado una llamada recursiva invlida para esta sentencia.</li> <li>CALL_TRANSACTION_LOCKED -> Transaccin bloqueda.</li>
</ol>
</body>
</html>