Home
Empresa
Noticias
Productos
Servicios
Contacto
FAQ
// **************************************************************************************
//
// SCRIPT: Ultimo Estado de Cuenta v2.3
// DESARROLLADO POR: OPTIMA Technology
// FECHA: Julio 11 del 2002
//
// Este script permite realizar una consulta de saldos de Tarjeta de Crédito, estableciando la conexión
// con un Mainframe IBM, ejecutando una aplicaciójn CICS, y extrayendo la información solictada por
// una aplicación remota. QUe para efectos de esta ejemplo, fué una aplicación WEB.
//
// Campos de Entrada:
//
// + PARAM001 - Este campo es obtenido en tiempo de ejecución del Script y pasa el número de Tarjeta de Crédito
//
//
// **************************************************************************************


BEGIN DATA

DECLARE @WORKPASSWORD IS " "
DECLARE @FREEPASSWORD IS " "

END DATA

BEGIN CODE

//--
// Envía comando de conexión
// --
WAIT SESSION LULU
SEND "CICSAPP", @@ENTER

//--
// Valida la excepción que la terminal no esté bloqueada por contención de HOST
// --
GET SCREEN
IF SCREEN = "THIS USERID IS CURRENTLY LOGGED"
    SEND "YES", @@ENTER
    SEND @@CLEAR
    SEND "SONI", @@ENTER
ENDIF


//--
// Envía clave de usuario y de password
// --
SEND @@PASSWORD, @@USERID, @@ENTER
SET @@PASSWORD TO @WORKPASSWORD
SET @@NEWPASSWORD TO @FREEPASSWORD

//--
// Si el password es inválido, entonces se intenta el SIGN ON con la segunda derivación
// --
GET SCREEN
IF SCREEN = "PASSWORD ERROR - SIGN-ON REJECTED"
   SEND @@CLEAR
   SEND "SONI", @@ENTER
   SEND @@NEWPASSWORD, @@USERID, @@ENTER
   SET @@NEWPASSWORD TO @WORKPASSWORD
   SET @@PASSWORD TO @FREEPASSWORD
   GET SCREEN
ENDIF


//--
// Si el password expiró, entonces actualiza la cuenta con la siguiente derivación de password disponible
// --
IF SCREEN = "PASSWORD EXPIRED--NEW PASSWORD REQUIRED"
   SEND @FREEPASSWORD, @@USERID, @@ENTER
   SET @FREEPASSWORD TO @WORKPASSWORD
   GET SCREEN
ENDIF

//--
// Se valida sí la cuenta de usuario no existe, entonces se reporta el error
// --
IF SCREEN = "OPERATOR NAME ERROR - SIGN-ON REJECTED"
   SEND @@CLEAR
   SET "USUARIO NO AUTORIZADO O INVALIDO" TO @@APPERRORMSG
   EXIT CODE
ENDIF

//--
// Sí la cuenta de usuario presenta este problema, entonces se deberá cancelar el script
// --
IF SCREEN = "EXCESSIVE OPERATOR VIOLATIONS"
   SET "PROBLEMAS CON LA CUENTA DEL USUARIO - REPORTE A SISTEMAS " TO @@APPERRORMSG
   EXIT CODE
ENDIF

//--
// Se valida que el ingreso no haya fallado y que la terminal no esté bloqueada
// --
IF SCREEN = "INVALID FUNCTION CODE"
   SEND @@CLEAR
   SEND "SOFI", @@ENTER
   SET "TERMINAL ESTA BLOQUEADA - REINTENTE" TO @@APPERRORMSG
   EXIT CODE
ENDIF

//--
// En este paso se entró al IBM exitosamente, entonces se almacena el último PASSWORD existoso  y se asocia a la terminal
// --
SET @WORKPASSWORD TO @@LUPASSWORD

//--
// Manda la Transacción IGB para obtener variaciones en CLASIFICACION & TRANSCOD
// --
SEND "IGB", PARAM001, @@ENTER
GET SCREEN

//--
// Se regresa si el número de tarjeta de crédito no existe
// --
IF SCREEN = "ACCOUNT NUMBER DOES NOT SELF-CHECK"
   SEND @@CLEAR
   SEND "SOFI", @@ENTER
   SET "NUMERO DE CUENTA NO EXISTE" TO @@APPERRORMSG
   EXIT CODE
ENDIF

//--
// Se valida que la transacción falló
// --
IF SCREEN = "INVALID FUNCTION CODE"
   SEND @@CLEAR
   SEND "SOFI", @@ENTER
   SET "TRANSACCION NO PUDO SER PROCESADA - REINTENTE" TO @@APPERRORMSG
   EXIT CODE
ENDIF

//--
// Se obtienen los datos deseados
// --
GET FIELD_NEXT "CLASIFICACION"
GET FIELD_NEXT "TRANSCOD"

SEND "IPS", @@ENTER

GET FIELD_POS 3,51,8
GET FIELD_POS 3,73,8

GET FIELD_POS 16,12,18
GET FIELD_POS 16,42,12
GET FIELD_POS 16,67,11

GET FIELD_POS 17,12,18
GET FIELD_POS 17,42,12
GET FIELD_POS 17,67,11

GET FIELD_POS 18,12,18
GET FIELD_POS 18,42,12
GET FIELD_POS 18,67,11

GET FIELD_POS 19,12,18
GET FIELD_POS 19,42,12
GET FIELD_POS 19,67,11

GET FIELD_POS 20,12,18
GET FIELD_POS 20,42,12
GET FIELD_POS 20,67,11

GET FIELD_POS 21,12,18
GET FIELD_POS 21,42,12
GET FIELD_POS 21,67,11

GET FIELD_POS 22,12,18
GET FIELD_POS 22,42,12
GET FIELD_POS 22,67,11

DO 
   GET SCREEN 5,1,14,80
   IF SCREEN <> LAST_SCREEN
      SEND @@PF8
   ENDIF
WHILE SCREEN <> LAST_SCREEN

//--
// Se sale de la apliación y se termina la sesión
// --
SEND @@CLEAR
SEND "SOFI", @@ENTER

END CODE

 

 

 

Copyright © 1991-2007 OPTIMA Technology.