Crear un Comando para invocación a un Procedimiento GeneXus
La invocación a Procedimientos Genexus desde los Test Cases de GXtest dan la posibilidad de ingresar validaciones a nivel de datos (implementando lógica Genexus para verificar que el estado en la base de datos es el que se esperaba) o para ejecutar cualquier tipo de acción o cálculo con programas Genexus. Estos pueden recibir cualquier cantidad de parámetros de entrada y salida.
Crear un Proc GX
Primero veremos cómo crear un ProcGX en Genexus para que quede expuesto como Web Service, y luego veremos cómo cargarlo en GXtest.
Definir un Procedimiento como Web Service en Genexus
Veamos a modo de ejemplo la creación de un procedimiento de suma. Este nos serviría para tener en GXtest la posibilidad de sumar dos números en un Test Case.
Definición del procedimiento:
Rules
Parm(in:&NroA, in:&NroB, out:&ResultadoSuma,out:&OtraVariable);
En este ejemplo tendremos dos salidas, el resultado de la suma y otro valor cualquiera, sólo para mostrar que se pueden manejar varios parámetros de salida a nivel de GXtest.
Source
&ResultadoSuma = &NroA+&NroB &OtraVariable = 4
Propiedades
- Call Protocol: SOAP
- Main Program: True
Cargar el Procedimiento en GXtest
Acceder al menú para crear un Proc GX.
Luego, haciendo clic en Add Prog GX, se le presenta la siguiente pantalla al usuario donde se puede cargar el Procedimiento Genexus:
Ahí se debe indicar la URL al WSDL del Procedimiento Genexus y presionar .
Al hacer esto se carga la definición del procedimiento y ahi podemos visualizar el nombre del procedimiento y los parámetros de entrada y salida. En el ejemplo de la suma veríamos los parámetros como se muestran a continuación:
Ahí se puede editar el nombre con el cual se va a referenciar luego el comando, la descripción, y si lo utilizaremos como Acción o Validación.
Usar un Proc GX
Una vez que se crea un Proc GX este queda disponible en GXtest de la misma forma que cualquier comando nativo, permitiendo agregarlos y editarlos en forma manual.
Observar que los parámetros de salida se pueden cargar en variables, y los de entrada pueden tomar tanto variables, valores fijos o tomados de DataPools.