Página 1 de 1

Llamar un programa Synon desde Plex

NotaPublicado: Jue Mar 02, 2006 3:17 pm
por AclamSabuc
¿Como puedo llamar un programa Synon (excextfun) desde una aplicacion Plex?

El programa Synon lo he definido en mi modelo plex como un API, defini los parametros y el lenguaje y luego lo llamo con un call.

Funciona pero tengo problemas en hacer coincidir los parametros, no estan pasando correctamente.
¿Como puedo hacer para que coincidan los parametros que envia el programa plex con los que espera el programa synon? He pasado 3 parametros de input
¿Como defino el codigo de retorno?

Saludos,

NotaPublicado: Vie Mar 03, 2006 7:27 pm
por pacopicon
Quizás el problema lo tengas precisamente con el parámetro del código de retorno. Los programas Synon siempre tienen como primer parámetro el código de retorno, o sea, que si tu programa Synon tiene 3 parámetros, le tienes que pasar uno (el primero de todos) que es el código de retorno y luego los otros 3 parámetros del programa synon. El código de retorno Synon es un alfanumérico de 7 posiciones.


Saludos

NotaPublicado: Jue Mar 09, 2006 2:07 pm
por Adolfo
Nosotros lo hemos hecho alguna vez y nos hemos encontrado problemas con los parametros.

En nuestro entorno (Synon genera RPG) lo que hacemos es crear una cascarilla para la funcion de SYNON en el modelo plex.

Es decir, definimos una función external en plex sin codigo y con lenguaje RPG (e IMPL = NO).

Posteriormente vemos los parametros. Primero verificamos que la funcion de SYNON no tenga campos de entrada y de salida mezclados (en cuyo caso una de dos o modificamos la funcion en synon o creamos un CL ordenandolos, el resultado final es que deben ir primero el retorno (automatico en synon), la entrada y por ultimo la salida).

Posteriormente vemos como son los parametros. Si Synon recibe como entrada o como salida X campos de un registro (creo que es el nombre que se usa en Synon) introducimos todos esos campos en una unica variable de entrada o salida en nuestra funcion PLEX. Si recibe campos sueltos creamos en plex una variable para cada campo suelto concreto y introducimos dicho campo en la variable.

Es decir: imagina que tu funcion recibe como entrada una fecha, una hora y ademas los campos clave de una vista. Los campos claves de la vista estan tratados en Synon como un registro (record) de dicha vista.

El resultado es que tendríamos que crear en plex tres variables, en el mismo orden en que se encuentren en synon, es decir una variable para contener el campo fecha, otra para el campo hora y una tercera para contener los campos de la vista.

Si hubiera campos de salida obraríamos igual.

En este caso no es necesario hacer uso especifico del returned status ya que el tratamiento es igual en plex que en synon.