====== Adaptador Host 3270 ====== ===== Introducción ===== Este adaptador es utilizado para ejecutar pruebas en el Adaptador Host 3270. Este adaptador nos permite por un lado hacer pruebas en pantallas mainframe HOST y también generar macros que permiten automatizar pruebas en sistemas "transformados a HTML". ===== Configuración ===== En el proceso de inicialización, es necesario proporcionar la información para conectarse al servidor Host 3270. Esa es la información del objeto Adaptador. ===== Parámetros de Inicialización ===== ==== Conexión ==== * **Host:** nombre de la máquina o dirección IP. Obligatorio. SESSION_HOST. * **Port:** puerto de conexión. Obligatorio. SESSION_HOST_PORT. Es 23 por defecto. * **Use proxy:** debe estar marcado si se quiere usar un proxy. * **Proxy host:** nombre del proxy o dirección IP. Por defecto es localhost. * **Proxy port:** puerto del proxy. Es 1080 por defecto. * **LU Name:** nombre de la conexión LU, opcional. * **Enhanced:** indica si se emplea el protocolo Mejorado (por defecto no está marcado) SESSION_TN_ENHANCED. * **Telnet_Negotiated:** la información telnet. * **Server_Authentication:** información de autenticación al 3270 Server. * **Client_Certificate_Autentication:** certificado de autenticación. * **Personal_Certificate:** certificado personal de autenticación. * **Personal_Certificate_File Path:** ruta de acceso al Certificado de autenticación. * **Personal_Certificate_pass:** pase al Certificado de autenticación. * **Certificate_Name:** nombre del certificado. * **Certificate_Pass:** pase al Certificado. * **Certificate_Source:** fuente del Certificado. * **Certificate_URL:** Url al Certificado. * **Prompt_Required:** PromptRequired. * **Certificate_Based_Keys:** llaves basadas en certificados. * **SSL:** SSL. * **KeyStore_FilePath:** KeyStore File Path. * **P12_FilePath:** P12 File Path. * **KeyStore_Pass:** KeyStore Pass. * **Certificate_Trusted:** certificado de autenticación. * **Code_Page:** código de página. Por defecto es INTERNAL – Built-in EBCDIC conversion (CP037). * **Session_Type:** tipo de sesión. * **Security_Type:** tipo de seguridad. * **Protocol:** protocolo. * **Protocol_Version:** versión del protocolo. * **Certificate_Type:** tipo de certificado.\\ \\ **Conexión Adaptador 3270 para ejecutar diagramas en Tast**\\ \\ 3270 – Vamos a cumplimentar los parámetros necesarios del adaptador.\\ \\ **Adaptador =** 3270\\ **Session Name =** nombre que queramos dar.\\ **Host:**\\ - VPS = 127.0.0.1\\ - TAST1 = vipadpre.scger.pre.corp\\ **Port:**\\ - VPS = 3270\\ - TAST1 = 23\\ **TN3270E =** para los 2 entornos marcados. Está marcado por defecto.\\ ===== Funciones predefinidas ===== * **clearAndWriteField**: limpia y escribe un texto en un campo, en el campo indicado. * Parámetro Field: número de campo empezando por 1. * Parámetro Offset: offset en el campo empezando por 1. * Parámetro Value: texto. * **clearField**: limpia el campo con número de campo introducido en el parámetro. * **containsText(Text):** esta función evalúa si dentro de una pantalla host, existe un texto en concreto que definimos en dicha función.\\ * Parámetro Text: en el mapeo del mensaje se añade en el campo Value el texto que queremos encontrar. * **getLenghField**: obtiene la longitud del campo con número de campo introducido en el parámetro. * **nextScreen:** esta función directamente avanza a la pantalla siguiente de navegación (previamente habrás tenido que pasar por ella para que la encuentre). No requiere parámetros en su codificación. * **previusScreen:** esta función directamente avanza a la pantalla anterior de navegación. No requiere parámetros en la codificación. * **readField(Field,Offset,Length):** esta función lee un campo que definimos en los parámetros de la misma.\\ *Parámetro Field: posición (numérica) en que está situado el campo. *Parámetro Offset: posición dentro del campo a partir de la cual quieres leer. *Parámetro Length: longitud del campo que vamos a leer.\\ \\ Estos 3 parámetros se obtienen pulsando el botón derecho del ratón, sobre el campo que queremos leer.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ * **readRow(Row):** esta función lee una línea determinada de la pantalla. Toda la línea. *Parámetro Row: posición (numérica) en que está situado la línea.\\ \\ Este parámetro se obtienen pulsando el botón derecho del ratón, sobre la línea que queremos leer.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ * **readScreen:** esta función lee la pantalla en la que estas posicionado. Función sin parámetros. * **readScreenByRows**: lee la pantalla actual por filas. * **rowContaintsText(Text,Row):** esta función comprueba si existe un determinado texto en una línea de pantalla. *Parámetro Text: introducimos el texto a buscar. *Parámetro Row: posición (numérica) de la línea.\\ \\ Estos parámetros se obtienen pulsando el botón derecho del ratón, sobre la línea que queremos encontrar el texto definido.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ * **waitCRC(screen_CRC):** esta función espera a que aparezca la pantalla que queremos ver a continuación. *Parámetro screen_CRC: value -> Se obtiene pulsando botón derecho del ratón sobre la pantalla que queremos mostrar.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ * **waitFor**: espera a que transcurra el tiempo en segundos recibido en el parámetro. * **waitForChange(TimeOut(msec)):** esta función espera por tiempo a que se muestre la siguiente pantalla. *Parámetro TimeOut(msec): value-> Tiempo en msec de espera a ser mostrada. * **waitForText(Text,Row,Column):** esta función espera a que aparezca un determinado texto para mostrar la siguiente pantalla.\\ *Parámetro Text: value-> texto que debe aparecer. *Parámetro Row: línea de la palabra. *Parámetro Column: columna de la palabra. * **writeAftherLabel(Label,Text):** esta función escribe en la pantalla cualquier texto, **después** de que se haya mostrado (en la pantalla) la etiqueta que hemos definido en el parámetro Label.\\ *Parámetro Label: value-> Texto que debe aparecer. *Parámetro Text: texto que vamos a escribir. * **writeBeforeLabel(Label,Text):** esta función escribe en la pantalla cualquier texto, **antes** de que se haya mostrado (en la pantalla) la etiqueta que hemos definido en el parámetro Label.\\ *Parámetro Label: value-> Texto que debe aparecer. *Parámetro Text: texto que vamos a escribir. * **writeField(Text,Field,Offset):** esta función escribe en un determinado campo el valor que definimos en el parámetro Texto.\\ *Parámetro Text: value-> Texto que debe aparecer. *Parámetro Field: campo que vamos a escribir. *Parámetro Offset: posición del campo.\\ \\ Estos parámetros se obtienen pulsando botón derecho del ratón sobre la pantalla que queremos mostrar.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ * **writeKey(Key):** esta función ejecuta una tecla predefinida de la pantalla.\\ (ENTER, PF8, PF4,etc...). *Parámetro Key: value-> Tecla de función. * **writeKeyUntilFind(Key, Text)**: esta función ejecuta la tecla de función (Key) y espera a que aparezca en pantalla el texto (Text). * **writeText(Text,Row,Column):** esta función escribe un texto en una posición definida.\\ (línea y columna). *Parámetro Text: value-> Texto a escribir. *Parámetro Row: value-> Número de Línea. *Parámetro Column: value-> Número de columna.\\ \\ Estos parámetros se obtienen pulsando botón derecho del ratón sobre la pantalla que queremos mostrar.\\ {{ :en:image_2021_01_11t12_08_14_736z.png?400 |}}\\ ===== Generación de macros===== Como ya se ha mencionado en la Introducción, con este adaptador, se pueden generar macros que permiten automatizar pruebas en sistemas “transformados a HTML”. Vamos a explicar, como se realiza la grabación de una serie de acciones de teclado, para después poder ejecutarlas.\\ \\ Nos conectamos al emulador 3270: {{ :es:1emulador3270.png?&400 |}}\\ Pulsamos la opción Macro para grabar la prueba y después marcamos la opción Record en el desplegable que nos aparece.\\ {{ :es:2emulador3270.png?&400 |}}\\ Damos un nombre de archivo. \\ {{ :es:31emulador3270.png?&400 |}}\\ Y empezamos la grabación, confirmando al pulsar la casilla Aceptar. {{ :es:4emulador3270.png?&400 |}}\\ Una vez que finalizamos, detenemos la grabación, pulsando Stop recording en el desplegable. {{ :es:5emulador3270.png?&400 |}}\\ Y confirmamos la detención pulsando la casilla Aceptar. {{ :es:6emulador3270.png?&400 |}}\\ Este proceso genera un archivo **toExport** que se guarda automáticamente en la siguiente ruta:\\ **C:\Users\xxxxx\jagacy_data**\\ donde **xxxxx** variará en función del nombre de cada usuario. Más tarde necesitaremos buscar este archivo para importarlo. {{ :es:emulador32708a.png?&400 |}}\\ Seguidamente, accedemos a la herramienta TAST. * Marcamos la casilla de nuevo diagrama y accedemos a Dominio, Proyecto, Carpeta, Nombre del diagrama y Descripción del diagrama, cómo hacemos siempre que diseñamos uno nuevo. Después aparece el Canvas o lienzo en blanco. * Accedemos a la barra de herramientas y nos posicionamos en la casilla de Asistentes. * Nos aparecerá un desplegable con diferentes opciones. Las opciones a elegir son:\\ - Importación de 3270 a 3270.\\ - Importación de 3270 a HTML.\\ * Importamos desde el asistente el archivo **toExport** que hemos grabado y se ha guardado en la Unidad **C:**\\ * En cualquiera de las dos opciones que nos proporciona la casilla Asistentes, se generará automáticamente un diagrama, que reflejará paso a paso, todo el proceso de grabación de las diferentes acciones realizadas y en el que figurarán dos adaptadores, el adaptador Objeto de Usuario y el adaptador 3270. * Guardamos y validamos el diagrama. * Y por último, lo llevaremos al cliente TAST para ejecutarlo.