W Pub: ABAP Cursosentenciacalltransaction

<html>

<head>

<title>CALL TRANSACTION</title>

</head>

<BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000">

<p align="left">⚠ &lt;b&gt;<span class="titulo">CALL TRANSACTION </span>⚠ &lt;/b&gt;</p>

<p align="left">⚠ &lt;b&gt;Definicin⚠ &lt;/b&gt;</p>

<p align="left">La sentencia CALL TRANSACTION permite ejecutar

  una transaccin.</p>

<p align="left">⚠ &lt;b&gt;Sintaxis:⚠ &lt;/b&gt;</p>

<pre>CALL TRANSACTION <transaccion> [AND SKIP FIRST SCREEN ].</pre>

<p>Esta sentencia llama a la transaccin <transaccin>.

  <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 ⚠ &lt;a href="set_parameter.htm" tppabs="set_parameter.htm"&gt;SET 
    PARAMETERS⚠ &lt;/a&gt;) para que el momento de la ejecucin de la transaccin, sta 
    tome los parmtros de la memoria (sentencia ⚠ &lt;a href="get_parameter.htm" tppabs="get_parameter.htm"&gt;GET 
    PARAMETERS⚠ &lt;/a&gt;) 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 cual

  vamos 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 (⚠ &lt;a href="report.htm" tppabs="report.htm"&gt;REPORT 
    ..... MESSAGE-ID xx⚠ &lt;/a&gt;).</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 proceso

  ha sido satisfactorio. En caso contrario toma un valor distinto de 0. Una llamada 
  a una transaccin puede terminar satisfactoriamente si se realiza un ⚠ &lt;a href="commit_work.htm" tppabs="commit_work.htm"&gt;COMMIT 
  WORK⚠ &lt;/a&gt;, un ⚠ &lt;a href="call_screen.htm" tppabs="call_screen.htm"&gt;CALL SCREEN⚠ &lt;/a&gt; con valor 0 o un ⚠ &lt;a href="leave_to_transaction.htm" tppabs="leave_to_transaction.htm"&gt;LEAVE 
  TO TRANSACTION⚠ &lt;/a&gt; <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 actualizacin

  de 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 tabla

  interna <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>