Skip to main content

Veritran Docs

Pasos opcionales en transacciones configurables

La iniciativa de pasos opcionales permite configurar solicitudes opcionales dentro de las transacciones configurables para administrar los tiempos de espera de las transacciones de manera más efectiva. Permite designar una solicitud como opcional dentro de un flujo de transacción, asegurando que si un paso opcional experimenta un tiempo de espera o un error de conexión, la transacción continuará sin interrupción. Esto es útil para servicios no críticos, como la verificación de las promociones de un usuario o el saldo de una tarjeta, donde las demoras no deben interrumpir la transacción principal, como una transacción de inicio de sesión.

Importante

Para utilizar esta función, debes actualizar VT-NET a la versión 1.15.0.14.

Todas las acciones que ejecutan una solicitud, como HTTP Request, API Rest y API Soap, se pueden establecer como opcionales.

Una vez configurada como opcional, la solicitud muestra tres rutas diferentes: response, timeout y error. Dependiendo de la respuesta del servicio, la transacción continuará su ejecución a través de una de estas rutas. Consulta la tabla a continuación para obtener información sobre el comportamiento de la transacción en cada ruta.

Flujo

Comportamiento

Resultado

Response

La solicitud recibe una respuesta del servicio, que puede ser correcta o incorrecta. Posible estado recibido: 200, 300, 400, 500.

El valor 000 se almacena en el token 10.

Timeout

La transacción no recibe una respuesta del servicio antes de que expire el tiempo de espera configurado en la solicitud opcional. En una transacción secuencial, esto devolvería errores como H23 o H24 en el caso de transacciones monetarias.

El valor 100 se almacena en el token 10.

Error

La solicitud no se puede completar debido a un error de conexión causado por una URL incorrecta, un error en un certificado SSL o un problema de infraestructura con VT-NET. En una transacción secuencial, esto devolvería errores como H78.

El vaor 101 se almacena en el token 10.

Después de ejecutar uno de estos conjuntos de pasos, la transacción continuará su ejecución desde el flujo principal, conectado a la acción que ejecuta la solicitud (acciones HTTP Request, API Rest o SOAP), hasta el nodo End. Ve un ejemplo a continuación.

Importante

Ninguna de las posibles respuestas recibidas de la solicitud opcional interrumpirá la ejecución de la transacción principal.

Crear solicitudes opcionales para verificar promociones

A continuación, se muestra un ejemplo de cómo crear pasos opcionales para validar las promociones de los usuarios. Ten en cuenta que, ya que las transacciones varían según la funcionalidad que deseas construir y los requisitos del cliente, es posible que encuentres diferentes enfoques sobre cómo crear una transacción similar.

Considera este escenario: Debes crear un flujo para una transacción para validar si un usuario tiene alguna promoción disponible en su perfil. Este flujo se insertará dentro de una transacción de inicio de sesión, que será la transacción principal en este escenario. Dado que el paso de validación de promociones es opcional y no debe interferir con la ejecución de la transacción principal, esta parte del flujo se construye configurando la solicitud como opcional. De esta manera, si falla la verificación de promociones, la transacción principal de inicio de sesión continuará su flujo según lo esperado.

  1. Abre la transacción en la que desees incluir una solicitud opcional o crea una nueva, tal y como se describe en Crear una transacción configurable.

  2. Antes de crear una solicitud HTTP, debes preparar los datos en una acción Script.

    1. Agrega una acción Script al canvas y, en la pestaña Configurations, cambia su nombre a PromotionsURL.

    2. Pega los datos del servicio en el editor del nodo Script. Para este ejemplo, usa lo siguiente, que es la dirección URL del servicio.

    3. Ve a la sección de salida del script y agrega los siguientes outputs, que son los datos del servicio que se transferirán a la siguiente acción: URL, method, headers, body.

      opcionales_1.png
  3. Agrega una acción HTTP Request al canvas y conéctala al script anterior. Esta solicitud se establecerá como opcional, ya que recuperará información de promociones. Para ello:

    1. Cambia el nombre del nodo HTTP Request a GetPromotions para que la funcionalidad de la transacción sea más fácil de entender.

      optional_true.gif
    2. Haz clic en el menú desplegable Is optional en la pestaña Configurations en el panel derecho, y selecciona True.

    3. En el campo Optional Timeout, configura un tiempo de espera diferente para esta acción en particular. Este es el tiempo que la transacción esperará una respuesta. Ingresa el tiempo de espera en segundos y asegúrate de que no exceda el tiempo de espera de la transacción establecido en Settings. Para este ejemplo, configura 25 como el tiempo de espera.

  4. Configura la acción HTTP Request para recibir datos del script. Ve a la pestaña Inputs de la solicitud HTTP. Aquí verás los menúes desplegables url, method, headers y body ya creados. Para cada menú desplegable, haz clic y selecciona los datos correspondientes recuperados de la acción Script, denominada PromotionURL.

    optional_rest.gif
  5. Los chips Response, Timeout y Error aparecerán al configurar la solicitud HTTP como opcional. Puedes crear un flujo específico para cada escenario posible. En este ejemplo, establecerás un valor para una variable de modo que pueda capturar la respuesta y realizar un seguimiento de ella. Por ejemplo, establecerás el valor o el mensaje Transacción exitosa para una variable, de modo que, si la solicitud de la transacción responde y continúa a través del flujo response, puedes ver ese valor asignado a la variable. Para hacerlo, sigue estos pasos:

    1. Agrega una acción Scrip después de cada flujo y conéctelos.

    2. Cambia los nombres o labels para que sean más intuitivos a la hora de leer la transacción. Cambia el nombre del script después del flujo response a ScriptResponseVar,el nombre del script que sigue al flujo de timeout a ScriptTimeoutVary el del script que sigue al flujo error a ScriptErrorVar. La transacción se verá como en el siguiente ejemplo:

      Resumen_trx.png
    3. Pega los scripts correspondientes para las acciones Script que siguen luego de los flujos Response, Timeout y Error:

      HttpReqVar = "Successful transaction"
      HttpReqVar = "Transaction timeout"
      HttpReqVar = "Transaction failed"
      script_variable.gif
    4. En la pestaña Outputs de cada nodo Script, haz clic en Add Output y agrega un valor de salida, como se muestra a continuación. Esto ayudará a crear una conexión de datos que transferirá el valor de la variable al siguiente paso del flujo.

  6. Luego, debes establecer la variable desde el script, HttpReqVar, con la acción Set Variable y consumirla. Este proceso se realizará en los tres flujos opcionales y te permitirá recuperar datos de cada respuesta.

    1. Agrega una acción Set Variable después de cada flujo y conéctalos.

    2. Cambia los nombres o labels para que sean más intuitivos a la hora de leer la transacción. Cambia el nombre de la acción Set Variable después del flujo response a SetResponseVar,el nombre del Set Variable que sigue al flujo de timeout a SetTimeoutVary el del Set Variable que sigue al flujo error a SetErrorVar. La transacción se verá como en el siguiente ejemplo:

      optional_setvariable.png
    3. En el campo Variable Name de las tres acciones Set Variable, ingresa HTTPReqVar.

    4. Deje el tipo de datos como string.

    5. Selecciona la primera acción Set Variable y ve a la pestaña Inputs. Haz clic en el menú desplegable de valores y selecciona el parámetro value del Script ScriptResponseVar, como se muestra a continuación.

      input_setvariable.gif
    6. Repite el paso anterior para las acciones Set Variable colocadas después de las respuestas de timeout y error y conéctalas con las salidas de la acción Script correspondiente.

  7. Agrega una acción Get Variable después de la acción HTTP Request y conéctala al flujo principal. Una vez que se ejecuta la solicitud HTTP opcional, el flujo de transacción principal continuará desde esta acción Get Variable. Recuperará, de uno de los tres resultados posibles, la variable establecida con la acción Set Variable y su valor.

    1. En el campo Label, cambie el nombre de la acción a GetResponseVar.

    2. En Name Variable, escriba HTTPReqVar, que se estableció previamente.

    3. Conéctalo al nodo End como el siguiente paso de la transacción.

      getvariabletrx.png
  8. Ve al nodo End y hazclic en la pestaña Inputs. El nodo End recibirá el resultado de la llamada de servicio y la variable de su flujo de respuesta correspondiente. Por ejemplo, si la transacción recibe un tiempo de espera del servicio y continúa desde el flujo timeout, enviará la variable y su valor a la acción Get Variable, que obtendrá el resultado y lo pasará al nodo End.

    endoftrx.gif
    1. Haz clic en Inputs Bulk Connection y, en el campo Source node, haz clic en el nodo Get Variable.

    2. El parámetro value aparecerá en la lista. Selecciónalo, introduce el token en el que deseas almacenar esta información en el campo External Variable y haz clic en Import & connect.

    3. Haz clic en Inputs Bulk Connection de nuevo, ahora para recibir la información de la solicitud. Selecciona la solicitud HTTP en el menú desplegable Source node.

    4. Los parámetros status y response aparecerán en la lista. Selecciónalos, introduce los tokens en los que deseas almacenar esta información en el campo External Variable y haz clic en Import & connect.

El flujo opcional explicado anteriormente se puede insertar en cualquier transacción. Por ejemplo, puedes crear una transacción de inicio de sesión y agregar esta solicitud opcional para recuperar las promociones disponibles de un usuario final.